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 SPACEeine Leerzeile an. DaPRINT SPACEnicht in einerDO IF-END IF-Struktur verwendet wird, wirdPRINT SPACEeinmal 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 IFgibt an, dassPRINT SPACEausgeführt wird, wennMOD(der Rest) von #LINE dividiert durch 5 gleich 1 ist. Da #LINE für jeden Fall um 1 erhöht wird, wirdPRINT SPACEeinmal für alle fünf Fälle ausgeführt. (Informationen zur FunktionMODfinden Sie unter Arithmetische Funktionen .)PRINT SPACEgibt 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 SPACEverwendet 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 LISTdefiniert 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, gibtPRINT SPACEeine Anzahl von Leerzeilen aus, die gleich 8 minus der bereits gedruckten Zahl ist, und #LINES wird dann auf 0 zurückgesetzt. OUTFILEonPRINT SPACEgibt dieselbe Datei an, dieOUTFILEonWRITEangibt.