V - Variable ausgeben
|
Funktion
|
Der Operator ermöglicht die Ausgabe von Feldern aus Datensätzen einer Datei oder von Daten, die das jeweilige Programm zur Verfügung stellt. Die Daten können zur Ausgabe aufbereitet werden. Dafür stehen mehrere Formatanweisungen zur Verfügung.
Es ist darauf zu achten, dass nur Daten aus Dateien ausgegeben werden können, die bereits im Zugriff sind, d.h. deren Index in einem der anderen, schon vorhandenen Operatoren angegeben wurde.
|
Syntax
|
V:[Druckposition],Index,Position,Druckformat#
Beispiele
|
V:69,252,69,C68#
|
69
|
Die gewünschten Daten werden an der Stelle 69 ausgegeben.
|
|
|
252 69
|
Die Datei, aus der die Daten entnommen werden, hat den Index 252. Dabei handelt es sich um den Dateipuffer, der Daten für die erste und die letzte Druckzeile des Programms enthält (nähere Beschreibung im Kapitel 18.06 Aufbau des Standard-Druckpuffers (Pufferindex 252)).
|
|
|
C68
|
Die Daten werden in dem Format C68, also als alphanumerische Zeichenkette von 68 Zeichen ausgegeben.
|
|
V:128,,,P#
|
In diesem Beispiel wurde das Format P verwendet. Durch die Formatangabe stellt das System die Seitennummer zur Verfügung. Diese wird an der Stelle 128 ausgegeben. Für die Seitennummer ist keine Angabe eines Index oder einer Position notwendig.
| |
|
Beschreibung der Argumente
|
-
DruckpositionPosition, an der die Variabel ausgegeben wird.
-
IndexNummer des Puffers, aus dem die Daten ausgelesen werden sollen.Alle Daten, die während eines Programmablaufs angezeigt werden, werden in sogenannten Dateipuffern gehalten.Diese Puffer sind eindeutig gekennzeichnet durch den Pufferindex.Eine Liste mit allen Dateien und dem dazugehörigen Index ist im Anhang vorhanden.Die verwendeten Puffer sind je nach Programm unterschiedlich.Üblicherweise werden Puffer für jede im Programm verwendete Datei, ein Puffer mit dem Index 255, der für programmindividuelle Angaben zur Verfügung stehtund ein Puffer mit dem Index 252, der Daten für die erste und die letzte Druckzeile eines Programms enthält, verwendet.Die Indexnummern sind in den von infra:NET angelegten Drucksteuertabellen bereits eingetragen.Wird ein neuer Operator angelegt, so kann dieser nur Daten aus einem Dateipuffer ausgeben, der vom Programm versorgt wird.Wird ein anderer Index angegeben, so führt das zu Fehlermeldungen im späteren Programmablauf.
-
PositionPosition steht für die Position im Dateipuffer. Die Angabe kann auf drei verschiedene Arten erfolgen.
-
Als ZahlWie unter "Index" beschrieben, werden alle Daten während eines Programmablaufs in sogenannten Dateipuffern gehalten. Die Position gibt nun die Position des gewünschten Felds innerhalb des durch Index gekennzeichneten Dateipuffers an. Dafür wird die Position als max. dreistellige Zahl angegeben.
-
Über das DataDictionaryWird die Position in dem Format Fnnn angegeben, so wird damit gesagt, dass die Position des Felds aus dem DataDictionary ermittelt wird. Das DataDictionary ist eine Beschreibung des Aufbaus aller von infra:NET verwendeten Daten. Es enthält für jedes Feld eines Datensatzes die Position im Satz, die Länge und das Format (zum Beispiel Datum, numerisch, alphanumerisch usw.). Das DataDictionary wird über den Datei-Index und die Feldnummer angesprochen. Ist der Index bereits unter "Index" angegeben, dann muss nur die Feldnummer als maximal dreistellige Zahl Fnnn angegeben werden. Ist unter "Index" ein anderer Index angegeben, dann wird die Position wie unter c) beschrieben angegeben:
-
Über das DataDictionary bei unterschiedlichem IndexSoll die Position im Dateipuffer über das DataDictionary ermittelt werden und ist der Datei-Index nicht bereits unter "Index" angegeben, dann muss die Position mit dem Format InnnFmmm angegeben werden. Hinter dem Buchstaben I wird der Index der Datei angegeben. Hinter dem Buchstaben F wird, wie bereits bei b), die maximal 3-stellige Feldnummer angegeben.
-
DruckformatIst die Angabe des Formats, in dem die Daten ausgegeben werden.Dabei kann entweder das Format laut DataDictionary oder ein fest vorgegebenes Format verwendet werden.Zusätzlich kann die Ausgabe durch sogenannte Steueranweisungen gesteuert werden.Die allgemeine Syntax von "Druckformat" lautet:Format[/Steueranweisung1[/Steueranweisung2[...[/Steueranweisungn]..]]]
-
Format:
-
Format laut DataDictionaryWie bereits unter "Position" erklärt, ist das DataDictionary eine Beschreibung des Aufbaus aller in infra:NET verwendeten Daten. Das Format eines Felds laut Formatbeschreibung aus dem DataDictionary kann übernommen werden. Das DataDictionary wird über Datei-Index und Feldnummer angesprochen. Ist der Datei-Index bereits unter "Index" oder unter "Position" angegeben, dann wird die Feldnummer in der Form Fnnn angegeben, wobei nnn die maximal 3-stellige Feldnummer darstellt.Beispiel: F34 = Das Format, das für das Feld 34 in derselben Datei, wie unter "Index" angegeben, im DataDictionary beschrieben wird, wird verwendet.Ist unter "Index" ein anderer Datei-Index angegeben, als hier benötigt wird, dann wird das Format in der Form InnnFmmm angegeben. Hinter dem Buchstaben I wird der Index der Datei angegeben. Hinter dem Buchstaben F wird die maximal 3-stellige Feldnummer angegeben.Beispiel: I6F3 = Das Format, das für das Feld 3 in der Datei mit dem Index 6 angegeben wird. In diesem Fall handelt es sich um die Teilenummer (3) aus dem Teilestamm (6).
-
Eigene Formatangabe:
|
D
|
Datum in dem Format tt.mm.jj: tt = Tag, mm = Monat, jj = Jahr
Beispiel: 26.03.04
Ein Datum wird innerhalb des Systems immer in der Form jjmmtt gehalten.
|
|
W
|
Woche in dem Format ww.jj: ww = Woche, jj = Jahr
Beispiel: 12.03
Eine Wochenangabe wird innerhalb des Systems immer in der Form wwjj gehalten.
|
|
U
|
Uhrzeit in dem Format hh:mm: hh = Stunde, mm = Minute
Beispiel: 12:25
Eine Uhrzeit wird innerhalb des Systems immer in der Form hhmm gehalten.
|
|
C
|
Zeichen oder Zeichenkette
Angaben in Cnn, wobei nn die Länge der Zeichenkette angibt.
Beispiel: C25 = Eine Zeichenkette mit der Länge von 25 Zeichen.
Das System überprüft, ob die Zeichenkette in der angegebenen Länge ab der unter "Druckposition" angegebenen Position in einer Zeile ausgegeben werden kann. Wenn nicht, dann wird eine Warnung ausgegeben. Eine Zeichenkette darf maximal 80 Zeichen lang sein.
|
|
N
|
Zahl mit oder ohne Dezimalpunkt. N wird mit folgender Syntax angegeben:
Nx[.y]
x ist die Anzahl Stellen vor dem Dezimalpunkt. Es dürfen maximal 21 Stellen angegeben werden.
y ist die Anzahl Stellen nach dem Dezimalpunkt. Es dürfen maximal 9 Stellen angegeben werden.
Die Vorkommastellen und die Nachkommastellen zusammen dürfen maximal 22 Stellen ergeben (einschließlich Dezimalpunkt und Vorzeichen).
Beispiel: N3.2 ergibt eine maximale ausgebbare Zahl von 999,99.
|
|
P
|
Ausgabe der Seitennummer
Bei diesem Format benötigt der Operator "V - Variable ausgeben" keine Angabe von "Index" und "Position". Die Syntax lautet dann:
V:[Druckposition],,,P#
|
|
S
|
Ausgabe der externen Seitennummer
Es besteht die Möglichkeit, innerhalb der infra-Programme die Seitennummer der ersten Seite eines Ausdrucks vorzubelegen, so, dass die erste Seite zum Beispiel nicht die Nummer 1, sondern die Nummer 35 erhält. Soll diese "externe" Seitennummer auf dem Ausdruck angezeigt werden, dann ist dieses Format S anzugeben.
|
|
L
|
Ausgabe der Zeilennummer
Es wird je Zeile die Zeilennummer angegeben. Die Nummerierung beginnt mit der ersten Zeile ab dem oberen Blattrand. Dabei wird nicht berücksichtigt, ab welcher Zeile tatsächlich gedruckt wird. (Die erste Druckzeile wird durch den Operator "Z - Druckzeile einteilen" festgelegt). Bei diesem Format benötigt der Operator "V - Variable ausgeben" keine Angabe von "Index" und "Position". Die Syntax lautet dann:
V:[Druckposition],,,L#
|
Steueranweisung
Je nach Datentyp können Steueranweisungen angegeben werden.
Dabei handelt es sich in der Regel um das Festlegen eines Zeichens.
Zum Beispiel kann hier bestimmt werden, ob der Dezimalpunkt als "." ausgegeben werden soll oder als ",".
Ein Zeichen ist entweder direkt festlegbar, wobei unter c das Zeichen eingetragen wird,
oder es wird der ASCII-Wert des Zeichens angegeben, wobei unter nnn der Wert eingetragen wird.
Für numerische Felder angebbar:
|
/N'c'
|
Dezimaltrenner. Das Zeichen, das als Dezimalpunkt verwendet werden soll, kann hier bestimmt werden.
Die Standard-Einstellung hat das Zeichen ",", das dem ASCII-Wert 44 entspricht.
|
|
/S'c', /Snnn
|
Schutzzeichen. Das Zeichen, das als Schutzzeichen verwendet werden soll, kann hier bestimmt werden.
Schutzzeichen werden verwendet, um zum Beispiel bei Überweisungen zu verhindern, dass vor dem Überweisungsbetrag noch Ziffern eingetragen werden können. Die Standard-Einstellung ist ein Leerzeichen, das dem ASCII-Wert 32 entspricht. Wird hier ein anderes Zeichen eingegeben, dann wird das entsprechende Feld auf dem Ausdruck mit dem angegebenen Zeichen geschützt.
Beispiel:
Für die Zahl 8,000 wird das Format N5.3 und das Schutzzeichen /S"*" angegeben. Auf dem Ausdruck erscheint diese Zahl in der Form *****8,000. Die vier leeren Vorkommastellen und die Stelle für das Vorzeichen werden also mit dem Schutzzeichen geschützt.
|
|
/G'c', /Gnnn
|
Gruppentrenner. Ein Gruppentrenner trennt die Ziffergruppen innerhalb einer Zahl. Das Zeichen, das als Gruppentrenner verwendet werden soll, kann hier bestimmt werden. Eine Standard-Einstellung ist nicht vorhanden, was bedeutet, dass eine Zahl erst in Ziffergruppen getrennt wird, wenn hier ein Gruppentrenner angegeben wird. Der Gruppentrenner wird nur dann ausgegeben, wenn auch die entsprechende Gruppenlänge angegeben wird (/Lnnn).
Beispiel:
Bei einem Gruppentrenner, für den das Format /G"." angegeben wurde, wird die Zahl 32000,95 in 32.000,95 getrennt (Gruppenlänge siehe /L).
|
|
/Lnnn
|
Gruppenlänge. In Verbindung mit der Angabe eines Gruppentrenners ist hier festlegbar, nach wie viel Ziffern getrennt werden soll. Es wird also als Angabe eine Zahl erwartet. In dem Format /Lnnn wird unter nnn direkt die Anzahl Ziffern pro Gruppe angegeben. Wurde ein Gruppentrenner, aber keine Gruppenlänge angegeben, dann wird auch kein Gruppentrenner ausgegeben.
Beispiel:
Die Zahl 325000,95 wird getrennt in:
/L2 32.50.00,95
/L3 325.000,95
/L4 32.5000,95 (Gruppentrenner siehe /G)
|
|
/0
|
Nullen werden am Ende hinter dem Komma abgeschnitten. Wenn hinter dem Komma ausschließlich Nullen sind, wird auch das Komma weggelassen.
Beispiele:
4.711,20300 -> 4.711,203
12.345,00000 -> 12.345
|
Für Datums-, Wochen- und Uhrzeitfelder angebbar:
|
/D'c', /Dnnn
|
Trenner. Hier ist festlegbar, welcher Trenner für ein Feld verwendet werden soll.
Beispiel:
/D"." bedeutet bei einem Datumsfeld die Druckausgabe in der Form tt.mm.jj
/D"*" bedeutet bei einer Uhrzeit die Druckausgabe in der Form hh*mm.
|
Für die Formate P, S und L angebbar:
|
/Hnnn
|
Feldlänge (noch nicht implementiert). Als Standard-Einstellung haben Seitennummern und Zeilennummern die Feldlänge 5. Über diese Steueranweisung kann die Feldlänge verkürzt oder verlängert werden.
Beispiel:
/H2 bedeutet bei einem Format P, dass die Seitenzahl maximal zweistellig ausgegeben wird. Eine Seitennummer > 99 wird so abgeschnitten, dass zum Beispiel die Seite 102 als Seite 10 ausgedruckt wird. Eine Seitennummer, die kleiner als die Feldlänge ist, wird mit führenden Leerzeichen ausgedruckt.
|
Für alle Felder angebbar:
|
/Fl
|
Linksbündige Ausgabe des Feldinhalts. Numerische Felder werden in der Regel automatisch rechtsbündig ausgegeben. Diese Steueranweisung erzwingt in diesem Fall eine linksbündige Ausgabe.
|
|
/Fr
|
Rechtsbündige Ausgabe des Feldinhalts. Nichtnumerische Felder werden in der Regel linksbündig ausgegeben. Diese Steueranweisung erzwingt die rechtsbündige Ausgabe. Dabei ist zu beachten, dass die Länge des auszugebenden Felds die rechte Begrenzung des Bereichs bestimmt, an dem die Ausrichtung erfolgt. Das gilt nicht bei Einsatz der "rechtsbündigen Positionsangabe" (siehe Option /Pr).
|
|
/Pr
|
Rechtsbündige Positionsangabe. Für rechtsbündig formatierte Ausgabefelder (numerische Felder und Felder mit der Ausgabeoption /Fr) wird mit dieser Option erreicht, dass das betreffende Ausgabefeld ab der angegebenen Position nach links ausgegeben wird. Die Position bildet also die rechte Begrenzung des auszugebenden Felds. Dadurch ist es möglich, bei Formatänderungen (Änderung der Feldlänge im DataDictionary) oder beim Einfügen von Gruppierungszeichen die Druckausgabe nicht anpassen zu müssen, um weiterhin die Rechtsbündigkeit der Feldausgabe (samt Überschrift) zu erhalten, das Ausgabefeld wächst nach links. Voraussetzung: Vor dem rechtsbündigen Ausgabefeld muss ausreichend Platz sein.
Um die rechtsbündige Positionsangabe für alle Elemente einer Drucksteuertabelle (MIL) zu aktivieren und sich die Angabe der Option /Pr bei allen V-Operatoren zu ersparen, kann der Operator "C:$SV(UseRightPos,1)" am Anfang der Kopfausgabetabelle (i.d.R. MIL-Tabellennummer 10) oder in die Formularbeschreibungstabelle (i.d.R. MIL-Tabellennummer 1) eingebaut werden. Dadurch wird die rechtsbündige Positionsangabe auch für den kleinen s-Operator (rechtsbündige Textausgabe) und den C:$DO-Operator aktiviert.
|
|
/T
|
Automatische Übersetzung des Feldinhaltes. Der auszugebende Text wird analog der Beschreibung beim S-Operator (feste Texte ausgeben) automatisch übersetzt. So lassen sich z.B. Teilebezeichnungen oder Mengeneinheiten für fremdsprachige Belege übersetzen.
|
Erweiterung des V-Operators für die Doppelausweisung der Währung
(siehe auch Dokumentation EURO-HB)
Die Schalter des V-Operators haben alle die Form /W... und bieten folgende Optionen:
|
Schalter
|
Option
|
|
/Wiininame
|
Schalter(kombination) aus INI verwenden
|
|
/Wq...
|
Quellwährung
|
|
/Wz...
|
Zielwährung
|
|
/Wk...
|
Formatierung mit Währungskennzeichen
|
|
/Wl... , /Wr...
|
Formatierung mit Delimitern
|
|
/Wbz
|
Keine Aktion bei Ziel=blank (nur Leerzeichen)
|
|
/Wee...
|
Aktion bei Quelle == Ziel == Euro
|
|
/Wex...
|
Aktion bei Quelle == Ziel != Euro
|
Die Optionen können also in verschiedene Kategorien eingeteilt werden: Währungsauswahl für Quell- und Zielwährung, Ausgabeformatierung und Ablaufsteuerung.
Währungsspezifische Optionen des V-Operators
|
INI-Schalter
|
/Wi...
|
|
Syntax
|
/Wiininame
|
|
Variable
|
Ininame
mit dem Schlüssel VW-ininame wird ein INI-Wert in der Sektion [Euro] gelesen. Dieser Wert muss aus einer oder mehreren währungsspezifischen Optionen des V-Operators bestehen. Damit können z.B. häufig benutzte Schalterkombinationen einfach und zentral gepflegt werden. Wenn ein INI-Eintrag nicht gefunden wird oder einen leeren Wert besitzt, wird die Option einfach ignoriert. Dadurch ist es möglich, das währungsspezifische Verhalten beim Druck ohne Änderung der MIL allein über die INI zu steuern.
|
|
Quellwährung
|
/Wq...
| ||
|
Syntax
|
/Wq[(index,pis)]
| ||
|
Variable
|
Index
|
Index des assoziierten Puffers, in dem das Kennzeichen der Quellwährung abgestellt ist >0
| |
|
|
Pis
|
Position im Satz
Die Position im assoziierten Puffer beginnt ab 1 und kann auf drei Arten angegeben werden:
| |
|
|
|
nnn
|
direkt als Zahl > 0
|
|
|
|
Ffff
|
Position des Felds mit der Nummer 'fff' in der Datei mit dem Datei-Index index. In diesem Fall muss der Index 1...255 sein.
|
|
|
|
IiiiFfff
|
Position des Felds mit der Nummer 'fff' in der Datei mit dem Datei-Index 'iii'.
|
|
Erläuterung
|
Das Währungskennzeichen wird aus dem assoziierten Puffer ab der Position im Satz entnommen. Wenn nur '/Wq' angegeben ist oder das entnommene Währungskennzeichen nur aus Leerzeichen besteht, wird das Quellwährungskennzeichen aus der Globalvariablen GV_lwkz entnommen, also die Landeswährung aus der KO.DAT verwendet.
| ||
|
Zielwährung
|
/Wz...
| ||
|
Syntax
|
/Wz[(index,pis)]
| ||
|
Variable
|
Index
|
Index des assoziierten Puffers, in dem das Kennzeichen der Zielwährung abgestellt ist >0
| |
|
|
Pis
|
Position im Satz
Die Position im assoziierten Puffer beginnt ab 1 und kann auf drei Arten angegeben werden:
| |
|
|
|
nnn
|
direkt als Zahl > 0
|
|
|
|
Ffff
|
Position des Felds mit der Nummer 'fff' in der Datei mit dem Datei-Index index. In diesem Fall muss der Index 1...255 sein.
|
|
|
|
IiiiFff
|
Position des Felds mit der Nummer 'fff' in der Datei mit dem Datei-Index 'iii'.
|
|
Erläuterung
|
Das Währungskennzeichen wird aus dem assoziierten Puffer ab der Position im Satz entnommen. Wenn nur '/Wz' angegeben ist oder das entnommene Währungskennzeichen nur aus Leerzeichen besteht, wird das Zielwährungskennzeichen für den EURO aus der Globalvariablen GV_eurowkz entnommen.
| ||
|
Währungskenn-
zeichen
ausgeben
|
/Wk...
|
|
Syntax
|
/Wk[x][+]
|
|
Variable
|
X Positionsangabe
v "v"or dem Währungswert
h "h"inter dem Währungswert
default= v
+ Zwischenraum erzwingen
|
|
Erläuterung
|
Das Währungskennzeichen wird im Format von (44/1) mit gegebenenfalls einem trennenden Leerzeichen (+) vor oder hinter dem Währungswert ausgegeben. Dadurch vergrössert sich die Länge des auszugebenden Textes entweder um die Länge von (44/1) oder um diese Länge +1.
|
|
Vorderer
Delimiter
|
/Wl...
|
|
Syntax
|
/Wl[x]
|
|
Variable
|
X linkes Delimiter-Zeichen
alle darstellbaren Zeichen ausser # und /
default=(
|
|
Erläuterung
|
Der vordere Delimiter wird vor einem eventuellen vorderen Währungskennzeichen und dem Währungswert ausgegeben. Dadurch vergrößert sich die Länge des auszugebenden Textes um 1 Zeichen.
|
|
Hinterer
Delimiter
|
/Wr...
|
|
Syntax
|
/Wr[x]
|
|
Variable
|
x rechtes Delimiter-Zeichen
alle darstellbaren Zeichen ausser # und /
default=)
|
|
Erläuterung
|
Der hintere Delimiter wird hinter dem Währungswert und einem eventuellen hinteren Währungskennzeichen ausgegeben. Dadurch vergrößert sich die Länge des auszugebenden Textes um 1 Zeichen.
|
|
Delimiter
|
/Wd...
|
|
Syntax
|
/Wd[x]
|
|
Variable
|
x Delimiter-Zeichen
alle darstellbaren Zeichen ausser # und /
default=*
|
|
Erläuterung
|
Der Delimiter wird vor einem eventuellen vorderen Währungskennzeichen und dem Währungswert und hinter dem Währungswert und einem eventuellen hinteren Währungskennzeichen ausgegeben. Dadurch vergrößert sich die Länge des auszugebenden Textes um 2 Zeichen.
|
|
Ziel blank
|
/Wbz
|
|
Syntax
|
/Wbz
|
|
Erläuterung
|
Wenn das Zielwährungskennzeichen explizit mit /Wz(index,pos) auf ein existierendes Puffersegment mit lauter Leerzeichen verweist, erfolgt keine Umrechnung.
|
|
Quelle = Ziel = Euro
|
/Wee...
|
|
Syntax
|
/Wee[x]
|
|
Variable
|
x Ersatz-Zielwährung
l Landeswährung (GV_lwkz) oder, falls diese Euro (GV_eurowkz) ist,
(kleines L) Alternativwährung (GV_awkz), oder, falls Alternativwährung
Ebenfalls Euro oder nicht definiert ist, keine Aktion
a Alternativwährung (GV_awkz) oder, falls diese Euro oder nicht
definiert ist, keine Aktion
default=L
|
|
Quelle=Ziel <> Euro
|
/Wex...
|
|
Syntax
|
/Wex[x]
|
|
Variable
|
x Ersatz-Zielwährung
e Euro (GV_eurowkz)
a Alternativwährung (GV_awkz)
default=e
|
Beispiel einer Druckanpassung
Für den Einbau der Doppelauszeichnung wird ein zusätzliche V-Operator mit den Euro-Optionen, bei Bedarf der neue m-Operator (bedingter Zeilenvorschub) und der eigentliche Druckoperator in die MIL hinzugefügt. Der bedingte Zeilenvorschub (m-Operator) bewirkt einen Zeilenvorschub um die angegebene Anzahl nur für den Fall, dass eine Druckausgabe erfolgt (Druckpuffer nicht leer). Der Einsatz des m-Operators wird notwendig, wenn der vorherige Druck ohne Vorschub (D:0#) erfolgte. Dieser neue m-Operator (kleines m) kann nur mit den Werkzeugen GETMDD und PUTMDD und dem Einsatz eines geeigneten Editors eingebaut werden.
Beispiel 1: Positionsbetrag in der Auftragsbestätigung
Der Einbau der Doppelausweisung für den Positionsbetrag als eigene Zeile unter der Ausgabe des normalen Positionsbetrages in der Auftragsbestätigung sieht wie folgt aus:
Ausschnitt aus der Tabelle vor dem Einbau der Doppelausweisung:
V:79,255,1650,I6F27# ; Positionswert
D:0# ; Druck ohne Vorschub
Nach dem Einbau der Doppelausweisung:
V:79,255,1650,I6F27#
D:0#
V:79,255,1650,I6F27/Wq(38,F49)/Wz(41,F108)/Wkv+/Wl/Wr/Wbz/Wee/Wex#
m:1#
D:0#
Erläuterung:
Abhängig von den Dateninhalten stellt der V-Operator mit den Euro-Optionen ein Ergebnis in den Druckpuffer oder lässt diesen leer.
Der folgende m-Operator bewirkt nur einen Vorschub, wenn der Druckpuffer ein druckbares Ergebnis enthält (nicht leer). Dieser Vorschub wird vor der Ausgabe der Doppelausweisung durchgeführt, damit die beiden Beträge nicht übereinander gedruckt werden.
Mit dem nach dem m-Operator folgenden D-Operator (Druck) wird die Doppelausweisung mit der Vorschubzahl 0 ausgegeben.
Damit entsteht unabhängig von dem Ergebnis der Doppelausweisung die gleiche "Vorschubsituation" und keine zusätzliche Leerzeile.
