Beispiele (Befehl PRINT SPACE)

Einfügen einer leeren Zeile nach der Ausgabe für jeden Fall

PRINT / NAME DEPT82 *
        MOHIRED(T30,F2) '/' YRHIRED *
        SALARY82 (T35,DOLLAR8).
PRINT SPACE.
EXECUTE.
  • Bei jeder Ausführung zeigt PRINT SPACE eine Leerzeile an. Da PRINT SPACE nicht in einer DO IF-END IF -Struktur verwendet wird, wird PRINT SPACE einmal für jeden Fall ausgeführt. In der Tat ist die Ausgabe doppelt verteilt.

Verwenden von PRINT SPACE innerhalb einer DO IF-END IF-Struktur

NUMERIC #LINE.
DO IF MOD(#LINE,5) = 0.
PRINT SPACE 2.
END IF.
COMPUTE #LINE=#LINE + 1.
PRINT / NAME DEPT *
        MOHIRED 30-31 '/' YRHIRED *
        SALARY 35-42(DOLLAR).
EXECUTE.
  • DO IF gibt an, dass PRINT SPACE ausgeführt wird, wenn MOD (der Rest) von #LINE dividiert durch 5 gleich 1 ist. Da #LINE für jeden Fall um 1 erhöht wird, wird PRINT SPACE einmal für alle fünf Fälle ausgeführt. (Informationen zur Funktion MOD finden Sie unter Arithmetische Funktionen .)
  • PRINT SPACE gibt zwei Leerzeilen an. Fälle werden in Gruppen von fünf Fällen mit zwei Leerzeilen zwischen jeder Gruppe angezeigt.

Verwenden eines Ausdrucks zur Angabe der Anzahl Leerzeilen

* Printing addresses on labels.
 
COMPUTE #LINES=0.               /*Initiate #LINES to 0
DATA LIST FILE=ADDRESS/RECORD 1-40 (A).  /*Read a record
COMPUTE #LINES=#LINES+1.        /*Bump counter and print
WRITE OUTFILE=LABELS /RECORD.
 
DO IF RECORD EQ ' '.            /*Blank between addresses
+  PRINT SPACE OUTFILE=LABELS 8 - #LINES.  /*Add extra blank #LINES
+  COMPUTE #LINES=0.
END IF.
EXECUTE.
  • PRINT SPACE verwendet einen komplexen Ausdruck zur Angabe der Anzahl der anzuzeigenden Leerzeilen. Die Daten enthalten eine variable Anzahl Eingabedatensätze für jeden Namen und jede Adresse, die in einer festen Anzahl von Zeilen für Mailing-Beschriftungen gedruckt werden müssen. Ziel ist es zu wissen, wann die letzte Zeile für jede Adresse gedruckt wurde, wie viele Zeilen gedruckt wurden und wie viele leere Sätze gedruckt werden müssen, damit die nächste Adresse auf das nächste Etikett passt. Das Beispiel geht davon aus, dass zwischen jeder Adresse in der Eingabe bereits eine Leerzeile vorhanden ist und dass Sie acht Zeilen pro Etikett drucken wollen.
  • Der Befehl DATA LIST definiert die Daten. Jede Zeile der Adresse ist in den Spalten 1 bis 40 der Datendatei enthalten und erhält den Variablennamen RECORD. Für die Leerzeile zwischen den einzelnen Adressen ist RECORD leer.
  • Variable #LINES wird als Arbeitsvariable mit 0 initialisiert und für jeden geschriebenen Datensatz inkrementiert. Wenn das Programm auf eine Leerzeile (RECORD EQ ' ') trifft, gibt PRINT SPACE eine Anzahl von Leerzeilen aus, die gleich 8 minus der bereits gedruckten Zahl ist, und #LINES wird dann auf 0 zurückgesetzt.
  • OUTFILE on PRINT SPACE gibt dieselbe Datei an, die OUTFILE on WRITEangibt.