/* ** Druck-, Vorschau, Sichern der Rechnungsübersicht Brutto Währung1 ** $VER: XXRechÜber_BW1.outrexx V1.04 (31.10.98) */ PARSE ARG ARexxPort; ADDRESS VALUE ARexxPort; OPTIONS RESULTS; /*********************************************************************/ /* Druckerunabhängige Standard-ANSI-Escape-Sequenzen und ASCII-Zeich.*/ /* Siehe auch Workbench-Handbuch (bei OS3.1: Kapitel 9.6.1) */ /*********************************************************************/ CR = '0d'x; /* Wagenrücklauf */ LF = '0a'x; /* Zeilenvorschub */ FF = '0c'x; /* Seitenvorschub */ TAB = '09'x; /* Tabulator */ ESC = '1b'x; /* ESC */ aRIS = ESC || "c"; /* Drucker zurücksetzen */ aRIN = ESC || "#1"; /* Drucker initialisieren */ aIND = ESC || "D"; /* Zeilenvorschub */ aNEL = ESC || "E"; /* Wagenruecklauf + */ aRI = ESC || "M"; /* umgekehrter Zeilenvors. */ aSGR0 = ESC || "[0m"; /* Normaler Zeichensatz */ aSGR3 = ESC || "[3m"; /* Kursivdruck EIN */ aSGR23 = ESC || "[23m"; /* Kursivdruck AUS */ aSGR4 = ESC || "[4m"; /* Unterstreichung EIN */ aSGR24 = ESC || "[24m"; /* Unterstreichung AUS */ aSGR1 = ESC || "[1m"; /* Fettdruck EIN */ aSGR22 = ESC || "[22m"; /* Fettdruck AUS */ aSFC_0 = ESC || "[30m"; /* Farbe Schrift: Schwarz */ aSFC_1 = ESC || "[31m"; /* Farbe Schrift: Rot */ aSFC_2 = ESC || "[32m"; /* Farbe Schrift: Grün */ aSFC_3 = ESC || "[33m"; /* Farbe Schrift: Gelb */ aSFC_4 = ESC || "[34m"; /* Farbe Schrift: Violett */ aSFC_5 = ESC || "[35m"; /* Farbe Schrift: Magenta */ aSFC_6 = ESC || "[36m"; /* Farbe Schrift: Zyan */ aSFC_7 = ESC || "[37m"; /* Farbe Schrift: Schwarz */ aSFC_8 = ESC || "[38m"; /* Farbe Schrift: Schwarz */ aSFC_9 = ESC || "[39m"; /* Farbe Schrift: Schwarz */ aSBC_0 = ESC || "[40m"; /* Farbe Hinterg: Weiß */ aSBC_1 = ESC || "[41m"; /* Farbe Hinterg: Rot */ aSBC_2 = ESC || "[42m"; /* Farbe Hinterg: Grün */ aSBC_3 = ESC || "[43m"; /* Farbe Hinterg: Gelb */ aSBC_4 = ESC || "[44m"; /* Farbe Hinterg: Violett */ aSBC_5 = ESC || "[45m"; /* Farbe Hinterg: Magenta */ aSBC_6 = ESC || "[46m"; /* Farbe Hinterg: Zyan */ aSBC_7 = ESC || "[47m"; /* Farbe Hinterg: Schwarz */ aSBC_8 = ESC || "[48m"; /* Farbe Hinterg: Schwarz */ aSBC_9 = ESC || "[49m"; /* Farbe Hinterg: Schwarz */ aSHORP0 = ESC || "[0w"; /* Normale Zeichendichte */ aSHORP = ESC || "[2w"; /* Zeichend. "Elite" EIN */ aSHORP1 = ESC || "[1w"; /* Zeichend. "Elite" AUS */ aSHORP4 = ESC || "[4w"; /* Engschrift EIN */ aSHORP3 = ESC || "[3w"; /* Engschrift AUS */ aSHORP6 = ESC || "[6w"; /* Breitdruck EIN */ aSHORP5 = ESC || "[5w"; /* Breitdruck AUS */ aDEN6 = ESC || "[6"||'22'x||"z"; /* Schattendruck EIN */ aDEN5 = ESC || "[5"||'22'x||"z"; /* Schattendruck AUS */ aDEN4 = ESC || "[4"||'22'x||"z"; /* Doppeldruck EIN */ aDEN3 = ESC || "[3"||'22'x||"z"; /* Doppeldruck AUS */ aDEN2 = ESC || "[2"||'22'x||"z"; /* NLQ/LQ EIN */ aDEN1 = ESC || "[1"||'22'x||"z"; /* NLQ/LQ AUS */ aSUS2 = ESC || "[2v"; /* Hochstellung EIN */ aSUS1 = ESC || "[1v"; /* Hochstellung AUS */ aSUS4 = ESC || "[4v"; /* Tiefstellung EIN */ aSUS3 = ESC || "[3v"; /* Tiefstellung AUS */ aSUS0 = ESC || "[0v"; /* Zeile Zurück zu Normal */ aPLU = ESC || "1"; /* Textzeile nach oben */ aPLD = ESC || "K"; /* Textzeile nach unten */ aFNT0 = ESC || "(B"; /* Zeichensatz US */ aFNT1 = ESC || "(R"; /* Zeichensatz Französisch */ aFNT2 = ESC || "(K"; /* Zeichensatz Deutsch */ aFNT3 = ESC || "(A"; /* Zeichensatz GB */ aFNT4 = ESC || "(E"; /* Zeichensatz Dänisch I */ aFNT5 = ESC || "(H"; /* Zeichensatz Schwedisch */ aFNT6 = ESC || "(Y"; /* Zeichensatz Italienisch */ aFNT7 = ESC || "(Z"; /* Zeichensatz Spanisch */ aFNT8 = ESC || "(J"; /* Zeichensatz Japanisch */ aFNT9 = ESC || "(6"; /* Zeichensatz Norwegisch */ aFNT10 = ESC || "(C"; /* Zeichensatz Dänisch II */ aPROP2 = ESC || "[2p"; /* Proportionaldruck EIN */ aPROP1 = ESC || "[1p"; /* Proportionaldruck AUS */ aPROP0 = ESC || "[0p"; /* Proportionaldruck lösch.*/ aTSS = ESC; /* Rand Proport.d. setzen */ /* z.B. Rand5: aTSS || "5E"*/ aJFY5 = ESC || "[5 F"; /* Automat. linksbündig */ aJFY7 = ESC || "[7 F"; /* Automat. rechtsbünbünd. */ aJFY6 = ESC || "[6 F"; /* Automat. Randausgleich */ aJFY0 = ESC || "[0 F"; /* Automat. Formatier. AUS */ aJFY3 = ESC || "[3 F"; /* Zeichenabstand (format.)*/ aJFY1 = ESC || "[1 F"; /* Automat. Zentrieren */ aVERP0 = ESC || "[0z"; /* Zeilenabstand 1/8 Zoll */ aVERP1 = ESC || "[1z"; /* Zeilenabstand 1/6 Zoll */ aSLPP = ESC || "["; /* Seitenlänge, z.B. 66 Z. */ /* aSLPP || "66t" */ aPERF = ESC || "["; /* Perforation überspring. */ /* z.B. aPERF || "5q" */ aPERF0 = ESC || "[0q"; /* Perforation übespr. AUS */ aLMS = ESC || "#9"; /* Linken Rand setzen */ aRMS = ESC || "#0"; /* Rechten Rand setzen */ aTMS = ESC || "#8"; /* Oberen Rand setzen */ aBMS = ESC || "#2"; /* Unteren Rand setzen */ aSTBM = ESC || "["; /* Oberen und unteren Rand */ /* z.B. aSTBM || "5;66r" */ aSLRM = ESC || "["; /* Linken und rechten Rand */ /* z.B. aSLRM || "5;75s" */ aCAM = ESC || "#3"; /* Ränder löschen */ aHTS = ESC || "H"; /* Horizontaltabulator setz*/ aVTS = ESC || "J"; /* Vertikaltabulator setzen*/ aTBC0 = ESC || "[0g"; /* Horizontaltab. löschen */ aTBC3 = ESC || "[3g"; /* alle Horizontaltab. lös.*/ aTBC1 = ESC || "[1g"; /* Vertikaltab. löschen */ aTBC4 = ESC || "[4g"; /* alle Vertikaltab. lösch.*/ aTBCALL = ESC || "#4"; /* alle Tabulatoren löschen*/ aTBSALL = ESC || "#5"; /* Standardtab. setzen */ aEXTEND_1 = ESC || "[1"||'22'x||"x"; /* Erweiterte Befehle */ aEXTEND_2 = ESC || "[2"||'22'x||"x"; /* Erweiterte Befehle */ aEXTEND_3 = ESC || "[3"||'22'x||"x"; /* Erweiterte Befehle */ aEXTEND_4 = ESC || "[4"||'22'x||"x"; /* Erweiterte Befehle */ aEXTEND_5 = ESC || "[5"||'22'x||"x"; /* Erweiterte Befehle */ aEXTEND_6 = ESC || "[6"||'22'x||"x"; /* Erweiterte Befehle */ aEXTEND_7 = ESC || "[7"||'22'x||"x"; /* Erweiterte Befehle */ aEXTEND_8 = ESC || "[8"||'22'x||"x"; /* Erweiterte Befehle */ aEXTEND_9 = ESC || "[9"||'22'x||"x"; /* Erweiterte Befehle */ aRAW_1 = ESC || "[1"||'22'x||"r"; /* Direkte Befehle */ aRAW_2 = ESC || "[2"||'22'x||"r"; /* Direkte Befehle */ aRAW_3 = ESC || "[3"||'22'x||"r"; /* Direkte Befehle */ aRAW_4 = ESC || "[4"||'22'x||"r"; /* Direkte Befehle */ aRAW_5 = ESC || "[5"||'22'x||"r"; /* Direkte Befehle */ aRAW_6 = ESC || "[6"||'22'x||"r"; /* Direkte Befehle */ aRAW_7 = ESC || "[7"||'22'x||"r"; /* Direkte Befehle */ aRAW_8 = ESC || "[8"||'22'x||"r"; /* Direkte Befehle */ aRAW_9 = ESC || "[9"||'22'x||"r"; /* Direkte Befehle */ Seite = 1; ZZ_Start = 4; ZZ_Max = 63; ZZ = ZZ_Start; w = 1; wm = 0; Gesamtsumme.0 = 0; Gesamtsumme.1 = 0; MWStSumme.0.0 = 0; MWStSumme.0.1 = 0; MWStSumme.1.0 = 0; MWStSumme.1.1 = 0; MWStSumme.2.0 = 0; MWStSumme.2.1 = 0; MWStSumme.3.0 = 0; MWStSumme.3.1 = 0; MWStSumme.4.0 = 0; MWStSumme.4.1 = 0; MWStSumme.5.0 = 0; MWStSumme.5.1 = 0; MWStSumme.6.0 = 0; MWStSumme.6.1 = 0; MWStSumme.7.0 = 0; MWStSumme.7.1 = 0; MWStSumme.8.0 = 0; MWStSumme.8.1 = 0; MWStSumme.9.0 = 0; MWStSumme.9.1 = 0; MWStSatz.0 = 0; MWStSatz.1 = 0; MWStSatz.2 = 0; MWStSatz.3 = 0; MWStSatz.4 = 0; MWStSatz.5 = 0; MWStSatz.6 = 0; MWStSatz.7 = 0; MWStSatz.8 = 0; MWStSatz.9 = 0; NeueSeite = aSGR1 || aSHORP3 || aSHORP1 || aSHORP6 || " Ausgangsrechnungen (Brutto)" || LF || LF || aSHORP5 || aSHORP4 || aSGR3; NeueSeite = NeueSeite || " RechNr. Datum Rechnungsempfänger Verkäufer" || LF; NeueSeite = NeueSeite || " " || aSGR4 || " ArtikelNr. Anzahl Einheit MWSt. Einzelpreis Positionssumme Endsumme"; NeueSeite = NeueSeite || aSGR24 || aSGR23 || aSGR22 || LF; StartString = aRIS || aVERP1; /* Oberfläche sperren */ LOCKGUI; /* Art ermitteln: 0 = Drucken, 1 = Vorschau, 2 = Speichern */ PRINTSTATE; Druckart = MTR_RESULT; Ende_Kennzeichen = 'N'; /* Vorbereitungen */ SELECT; WHEN Druckart = 0 THEN CALL DruckRoutineStart; WHEN Druckart = 1 THEN CALL VorschauRoutineStart; WHEN Druckart = 2 THEN CALL SpeichernRoutineStart; OTHERWISE DO; ES_TITLE = "Warnung"; ES_TEXTFORMAT = "Druckart wird nicht unterstützt!"; ES_GADGETFORMAT = "Ok"; EASY_REQUEST; Ende_Kennzeichen = 'J'; END; END; /* Eigentliche Verarbeitung */ IF Ende_Kennzeichen = 'N' THEN DO; WRITECH( Dru_Dat, (StartString || NeueSeite) ); ZZ = ZZ_Start; GET_PREFS; /* Suchen der zu druckenden Daten */ PRINTFIND; DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N'); CALL DatenAufbereiten; PRINTFIND; END; IF w < 2 THEN FORMAT_MONEY1 Gesamtsumme.0; ELSE FORMAT_MONEY2 Gesamtsumme.0; ZW_Betrag = RIGHT(MTR_RESULT, 89); DruckString = " Gesamtsumme (Netto):" ZW_Betrag || LF; ZW_ZZ = 2; DO i = 0 TO 9; IF MWStSumme.i.0 > 0 THEN DO; FORMAT_NUMBER MWStSatz.i PREFS.FRAC_DIGITS_PERCENT; ZW_MWSt = "Mehrwertsteuer (" || MTR_RESULT || "%, Netto: "; IF w < 2 THEN FORMAT_MONEY1 MWStSumme.i.0; ELSE FORMAT_MONEY2 MWStSumme.i.0; ZW_MWSt = ZW_MWSt || MTR_RESULT || ", Brutto: "; IF w < 2 THEN FORMAT_MONEY1 MWStSumme.i.1; ELSE FORMAT_MONEY2 MWStSumme.i.1; ZW_MWSt = ZW_MWSt || MTR_RESULT || "):"; IF w < 2 THEN FORMAT_MONEY1 (MWStSumme.i.1 - MWStSumme.i.0); ELSE FORMAT_MONEY2 (MWStSumme.i.1 - MWStSumme.i.0); DruckString = DruckString || " " || ZW_MWSt || RIGHT(MTR_RESULT, (110 - LENGTH(ZW_MWSt))) || LF; ZW_ZZ = ZW_ZZ + 1; END; END; IF w < 2 THEN FORMAT_MONEY1 Gesamtsumme.1; ELSE FORMAT_MONEY2 Gesamtsumme.1; ZW_Betrag = RIGHT(MTR_RESULT, 88); DruckString = DruckString || " Gesamtsumme (Brutto):" ZW_Betrag || LF; IF ZZ + 4 > ZZ_Max THEN DO; WRITECH( Dru_Dat, (FF || NeueSeite) ); ZZ = ZZ_Start; END; WRITECH( Dru_Dat, (DruckString || aSHORP3 || FF) ); END; IF Ende_Kennzeichen = 'N' THEN DO; WRITECH( Dru_Dat, aSHORP3 || FF ); CLOSE(Dru_Dat); IF Druckart = 1 THEN DO; PUBSCREEN; PubScreenName = MTR_RESULT; ADDRESS COMMAND "sys:Utilities/MultiView t:MTR_Vorschau pubscreen=" || PubScreenName; END; END; /* Oberfläche wieder entsperren */ FREEGUI; EXIT; /* Routine, die die Druckdatei öffnet */ DruckRoutineStart: IF OPEN(Dru_Dat, "prt:", "write") THEN NOP; ELSE Ende_Kennzeichen = 'J'; RETURN; /* Routine, die die Druckvorschau realisiert */ VorschauRoutineStart: IF OPEN(Dru_Dat, "t:MTR_Vorschau", "write") THEN NOP; ELSE Ende_Kennzeichen = 'J'; RETURN; /* Routine, die die Druckvorschau realisiert */ SpeichernRoutineStart: ASLFR_TITLETEXT = "Dateiname des zu druckenden Dokuments"; ASLFR_INITIALDRAWER = "ram:"; ASLFR_INITIALPATTERN = "#?"; ASLFR_INITIALFILE = "MTRSaveDok"; ASL_FILE_REQUEST; IF MTR_RESULT = "" THEN Ende_Kennzeichen = 'J'; ELSE DO; IF OPEN(Dru_Dat, MTR_RESULT, "write") THEN NOP; ELSE Ende_Kennzeichen = 'J'; END; RETURN; DatenAufbereiten: IF PREFS.NUMBER_DIGITS > 0 THEN ZW_Nummer = LEFT(RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || MTR_RESULT), PREFS.NUMBER_DIGITS ), 18); ELSE ZW_Nummer = LEFT(MTR_RESULT, 18); FORMAT_DATE_LONG OB.DATE_PAYED; ZW_Datum = LEFT(MTR_RESULT, 38); IF PREFS.CLIENT_CODE = 1 THEN ZW_RechEmpf = LEFT(OB.INVOICEE.CUSTOMER.CLIENT_CODE, 18); ELSE IF PREFS.NUMBER_DIGITS > 0 THEN ZW_RechEmpf = LEFT(RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || OB.INVOICEE_NUMBER), PREFS.NUMBER_DIGITS ), 18); ELSE ZW_RechEmpf = LEFT(OB.INVOICEE_NUMBER, 18); IF PREFS.NUMBER_DIGITS > 0 THEN ZW_Verkauefer = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || OB.SELLER_NUMBER), PREFS.NUMBER_DIGITS ); ELSE ZW_Verkauefer = OB.SELLER_NUMBER; ZW_ZZ = 1; DruckString = " " || ZW_Nummer ZW_Datum ZW_RechEmpf ZW_Verkauefer || LF; DO i = 1 to OB.COUNT_ARTICLE; ZW_ArtikelNr = LEFT(OB.i.POS_ARTICLE_NUMBER_FORMATED, 15); FORMAT_NUMBER (OB.i.POS_QUANTITY / OB.i.POS_PRICE_UNIT) PREFS.FRAC_DIGITS; ZW_Anzahl = RIGHT(MTR_RESULT, 13); NAME_OF_QUANTITY_UNIT OB.i.ARTICLE.QUANTITY_UNIT; ZW_Einheit = LEFT( MTR_RESULT, 9 ); j = OB.i.POS_VALUE; FORMAT_NUMBER OB.VALUE_PERCENT.j PREFS.FRAC_DIGITS_PERCENT; ZW_MWSt = RIGHT(MTR_RESULT, 10); IF w < 2 THEN FORMAT_MONEY1 OB.i.POS_SINGLE_PRICE.w; ELSE FORMAT_MONEY2 OB.i.POS_SINGLE_PRICE.w; ZW_EinzelPreis = RIGHT(MTR_RESULT, 18); DruckString = DruckString || COPIES(" ", 16) || ZW_ArtikelNr ZW_Anzahl ZW_Einheit ZW_MWSt ZW_EinzelPreis; DO i2 = 0 TO 2; IF OB.i.POS_ADD_RED_USED.i2 > 0 THEN DO; j2 = OB.i.POS_ADD_RED_USED.i2 - 1; IF OB.i.POS_ADD_RED_TYPE.i2 = 0 | OB.i.POS_ADD_RED_TYPE.i2 = 5 THEN DO; FORMAT_NUMBER OB.i.POS_ADD_RED_VALUE.i2.w PREFS.FRAC_DIGITS_PERCENT; END; ELSE DO; IF w < 2 THEN FORMAT_MONEY1 OB.i.POS_ADD_RED_VALUE.i2.w; ELSE FORMAT_MONEY2 OB.i.POS_ADD_RED_VALUE.i2.w; END; ZW_EinzelPreis = RIGHT(MTR_RESULT, 15); IF w < 2 THEN FORMAT_MONEY1 OB.i.POS_ADD_RED_VALUE_POS.i2.w; ELSE FORMAT_MONEY2 OB.i.POS_ADD_RED_VALUE_POS.i2.w; ZW_PosPreis = RIGHT(MTR_RESULT, 18); DruckString = DruckString || LF || COPIES(" ", 29) || LEFT(PREFS.ADD_RED_TEXT.j2,21) ZW_EinzelPreis ZW_PosPreis; ZW_ZZ = ZW_ZZ + 1; END; END; IF w < 2 THEN FORMAT_MONEY1 OB.i.POS_SUM_M_ALL.w; ELSE FORMAT_MONEY2 OB.i.POS_SUM_M_ALL.w; ZW_PosPreis = RIGHT(MTR_RESULT, 17); DruckString = DruckString || ZW_PosPreis || LF; ZW_ZZ = ZW_ZZ + 1; END; DO i = 0 to 2; IF OB.ADD_RED_USED.i > 0 THEN DO; j2 = OB.ADD_RED_USED.i - 1; IF OB.ADD_RED_TYPE.i = 0 | OB.ADD_RED_TYPE.i = 5 THEN DO; FORMAT_NUMBER OB.ADD_RED_VALUE.i.w PREFS.FRAC_DIGITS_PERCENT; END; ELSE DO; IF w < 2 THEN FORMAT_MONEY1 OB.ADD_RED_VALUE.i.w; ELSE FORMAT_MONEY2 OB.ADD_RED_VALUE.i.w; END; ZW_EinzelPreis = RIGHT(MTR_RESULT, 16); IF w < 2 THEN FORMAT_MONEY1 OB.ADD_RED_VALUE_POS.i.w; ELSE FORMAT_MONEY2 OB.ADD_RED_VALUE_POS.i.w; ZW_PosPreis = RIGHT(MTR_RESULT, 16); DruckString = DruckString || COPIES(" ", 16) || LEFT(PREFS.ADD_RED_TEXT.j2,52) ZW_EinzelPreis ZW_PosPreis || LF; ZW_ZZ = ZW_ZZ + 1; END; END; IF OB.DISCOUNT.w > 0 THEN DO; FORMAT_NUMBER OB.DISCOUNT_PERCENT PREFS.FRAC_DIGITS_PERCENT; ZW_Prozent = LEFT( (MTR_RESULT "%:"), 20); IF w < 2 THEN FORMAT_MONEY1 OB.DISCOUNT.w; ELSE FORMAT_MONEY2 OB.DISCOUNT.w; ZW_Betrag = RIGHT(MTR_RESULT, 48); DruckString = DruckString || " abzüglich Skonto" ZW_Prozent ZW_Betrag || LF; ZW_ZZ = ZW_ZZ + 1; END; IF OB.DISPATCH_COSTS.w > 0 THEN DO; IF w < 2 THEN FORMAT_MONEY1 OB.DISPATCH_COSTS.w; ELSE FORMAT_MONEY2 OB.DISPATCH_COSTS.w; ZW_Betrag = RIGHT(MTR_RESULT, 71); DruckString = DruckString || " Versandkosten:" ZW_Betrag || LF; ZW_ZZ = ZW_ZZ + 1; END; IF w < 2 THEN FORMAT_MONEY1 OB.TOTAL_M_ALL_CH.w; ELSE FORMAT_MONEY2 OB.TOTAL_M_ALL_CH.w; ZW_Betrag = RIGHT(MTR_RESULT, 84); DruckString = DruckString || " Rechnungsendbetrag:" ZW_Betrag || LF; ZW_ZZ = ZW_ZZ + 1; IF w < 2 THEN DO; Gesamtsumme.0 = Gesamtsumme.0 + OB.TOTAL_M_ALL_CH.0; Gesamtsumme.1 = Gesamtsumme.1 + OB.TOTAL_M_ALL_CH.1; DO i = 0 TO 9; MWStSatz.i = OB.VALUE_PERCENT.i MWStSumme.i.0 = MWStSumme.i.0 + OB.SUM_PER_VALUE_M_ALL_CH.i.0; MWStSumme.i.1 = MWStSumme.i.1 + OB.SUM_PER_VALUE_M_ALL_CH.i.1; END; END; ELSE DO; Gesamtsumme.0 = Gesamtsumme.0 + OB.TOTAL_M_ALL_CH.2; Gesamtsumme.1 = Gesamtsumme.1 + OB.TOTAL_M_ALL_CH.3; DO i = 0 TO 9; MWStSatz.i = OB.VALUE_PERCENT.i MWStSumme.i.0 = MWStSumme.i.0 + OB.SUM_PER_VALUE_M_ALL_CH.i.2; MWStSumme.i.1 = MWStSumme.i.1 + OB.SUM_PER_VALUE_M_ALL_CH.i.3; END; END; DruckString = DruckString || LF; ZW_ZZ = ZW_ZZ + 1; IF ZZ + ZW_ZZ > ZZ_Max THEN DO; WRITECH( Dru_Dat, (FF || NeueSeite) ); ZZ = ZZ_Start; END; WRITECH( Dru_Dat, DruckString ); ZZ = ZZ + ZW_ZZ; RETURN;