/* ** Druck-, Vorschau, Sichern der Rückumschlag Lieferanten C6-Format ** $VER: XXUmschlagLR_C6.inbrexx V1.00 (30.07.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 */ /* Oberfläche sperren */ LOCKGUI; /* Art ermitteln: 0 = Drucken, 1 = Vorschau, 2 = Speichern */ PRINTSTATE; Druckart = MTR_RESULT; Ende_Kennzeichen = 'N'; /* Suchen der zu druckenden Daten */ PRINTFIND; DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N'); SELECT; WHEN Druckart = 0 THEN CALL DruckRoutine; WHEN Druckart = 1 THEN CALL VorschauRoutine; WHEN Druckart = 2 THEN CALL SpeichernRoutine; OTHERWISE DO; ES_TITLE = "Warnung"; ES_TEXTFORMAT = "Druckart wird nicht unterstützt!"; ES_GADGETFORMAT = "Ok"; EASY_REQUEST; Ende_Kennzeichen = 'J'; END; END; PRINTFIND; END; /* Oberfläche wieder entsperren */ FREEGUI; EXIT; /* Routine, die die eigentliche Druckausgabe realisiert */ DruckRoutine: IF OPEN(Dru_Dat, "prt:", "write") THEN DO; CALL DatenAufbereiten; WRITECH( Dru_Dat, DruckString ); CLOSE(Dru_Dat); END; RETURN; /* Routine, die die Druckvorschau realisiert */ VorschauRoutine: IF OPEN(Dru_Dat, "t:MTR_Vorschau", "write") THEN DO; CALL DatenAufbereiten; WRITECH( Dru_Dat, DruckString ); CLOSE(Dru_Dat); PUBSCREEN; PubScreenName = MTR_RESULT; ADDRESS COMMAND "sys:Utilities/MultiView t:MTR_Vorschau pubscreen=" || PubScreenName; END; RETURN; /* Routine, die die Druckvorschau realisiert */ SpeichernRoutine: 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 DO; CALL DatenAufbereiten; WRITECH( Dru_Dat, DruckString ); CLOSE(Dru_Dat); END; END; RETURN; DatenAufbereiten: Anz_Zeilen = 3; x1 = 2; x2 = 25; DruckString = aRIS || aVERP1 || aSHORP0 || aVERP1 || LF || LF; Ausgangsadresse = IB.SUPPLIER.ADDRESS.ADDRESS.2; i = INDEX( Ausgangsadresse, LF); DO WHILE( i > 0 ); Ausgangsadresse = INSERT(COPIES(" ", x1), Ausgangsadresse, i, x1 ); i = INDEX( Ausgangsadresse, LF, i+1); Anz_Zeilen = Anz_Zeilen + 1; END; DruckString = DruckString || COPIES(" ", x1) || Ausgangsadresse; DO i = Anz_Zeilen TO 13; DruckString = DruckString || LF; END; Zieladresse = IB.OFFICE.ADDRESS.ADDRESS.2; i = INDEX( Zieladresse, LF); DO WHILE( i > 0 ); Zieladresse = INSERT(COPIES(" ", x2), Zieladresse, i, x2 ); i = INDEX( Zieladresse, LF, i+1); END; DruckString = DruckString || COPIES(" ", x2) || Zieladresse || FF; RETURN;