/* ** Druck-, Vorschau, Sichern des Registrierungsformulars ** $VER: XXRegistrierung.brarexx V1.01 (15.08.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 || "[5F"; /* Automat. linksbündig */ aJFY7 = ESC || "[7F"; /* Automat. rechtsbünbünd. */ aJFY6 = ESC || "[6F"; /* Automat. Randausgleich */ aJFY0 = ESC || "[0F"; /* Automat. Formatier. AUS */ aJFY3 = ESC || "[3F"; /* Zeichenabstand (format.)*/ aJFY1 = ESC || "[1F"; /* 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: x = 5; Anz_Zeilen = 4; FORMAT_DATE_LONG date(s); Heute = MTR_RESULT; DruckString = aRIS || aVERP1 || aSHORP0 || aVERP1 || LF || LF; i = INDEX( OFFICE.ADDRESS.ADDRESS.2, LF); DruckString = DruckString || COPIES(" ", x) || LEFT( OFFICE.ADDRESS.ADDRESS.2,(i-1)) || COPIES(" ", (75 - x - i - LENGTH(Heute))) || Heute || LF; j = i + 1; i = INDEX( OFFICE.ADDRESS.ADDRESS.2, LF, j); DO WHILE( i > 0 ); DruckString = DruckString || COPIES(" ", x) || SUBSTR(OFFICE.ADDRESS.ADDRESS.2,j,(i-j)) || LF; j = i + 1; i = INDEX( OFFICE.ADDRESS.ADDRESS.2, LF, j); Anz_Zeilen = Anz_Zeilen + 1; END; DruckString = DruckString || COPIES(" ", x) || SUBSTR(OFFICE.ADDRESS.ADDRESS.2,j) || LF; DO i = Anz_Zeilen TO 14; DruckString = DruckString || LF; END; IF OFFICE.ADDRESS.BANK_CODE_NUMBER = "0" THEN OFFICE.ADDRESS.BANK_CODE_NUMBER = ""; DruckString = DruckString || COPIES(" ", x) || aSUS4 || aSGR4 || aSHORP4 || OFFICE.ADDRESS.ADDRESS.0 || aSHORP3 || aSGR24 || aSUS3 || LF; DruckString = DruckString || COPIES(" ", x) || "MT Graphic & Design " || aSHORP6 || "Registrierung" || aSHORP5 || LF; DruckString = DruckString || COPIES(" ", x) || "Manfred Tremmel" || LF; DruckString = DruckString || COPIES(" ", x) || "Marschalkstr. 20" || LF || LF; DruckString = DruckString || COPIES(" ", x) || "D-84419 Schwindegg" || LF || LF || LF || LF || LF || LF || LF; DruckString = DruckString || COPIES(" ", x) || "Registrieren Sie mich bitte für MT-RechnungIII, hier meine Daten:"|| LF || LF; NAME_OF_SALUTATION OFFICE.ADDRESS.SALUTATION; ZW_Anrede = MTR_RESULT; DruckString = DruckString || COPIES(" ", x) || "Anrede: " || ZW_Anrede || LF; DruckString = DruckString || COPIES(" ", x) || "Name: " || OFFICE.ADDRESS.SURNAME || LF; DruckString = DruckString || COPIES(" ", x) || "Vorname: " || OFFICE.ADDRESS.PRENAME || LF; DruckString = DruckString || COPIES(" ", x) || "Firma1: " || OFFICE.ADDRESS.COMPANY1 || LF; DruckString = DruckString || COPIES(" ", x) || "Firma2: " || OFFICE.ADDRESS.COMPANY2 || LF; DruckString = DruckString || COPIES(" ", x) || "Straße: " || OFFICE.ADDRESS.STREET || LF; DruckString = DruckString || COPIES(" ", x) || "PLZ: " || OFFICE.ADDRESS.ZIP || LF; DruckString = DruckString || COPIES(" ", x) || "Ort: " || OFFICE.ADDRESS.CITY || LF; GET_COUNTRY OFFICE.ADDRESS.COUNTRY_NUMBER; i = OFFICE.ADDRESS.STATE_NUMBER; DruckString = DruckString || COPIES(" ", x) || "Land: " || COUNTRY.NAME || LF; DruckString = DruckString || COPIES(" ", x) || "Bundesland: " || COUNTRY.STATE.i || LF; DruckString = DruckString || COPIES(" ", x) || "Telefon: " || OFFICE.ADDRESS.PHONE || LF; DruckString = DruckString || COPIES(" ", x) || "Telefax: " || OFFICE.ADDRESS.FAX || LF; DruckString = DruckString || COPIES(" ", x) || "DFÜ-Nummer: " || OFFICE.ADDRESS.EDI || LF; DruckString = DruckString || COPIES(" ", x) || "EMail 1: " || OFFICE.ADDRESS.EMAIL.0 || LF; DruckString = DruckString || COPIES(" ", x) || "EMail 2: " || OFFICE.ADDRESS.EMAIL.1 || LF; DruckString = DruckString || COPIES(" ", x) || "EMail 3: " || OFFICE.ADDRESS.EMAIL.2 || LF; DruckString = DruckString || COPIES(" ", x) || "BLZ: " || OFFICE.ADDRESS.BANK_CODE_NUMBER || LF; DruckString = DruckString || COPIES(" ", x) || "Bank: " || OFFICE.ADDRESS.BANK_NAME || LF; DruckString = DruckString || COPIES(" ", x) || "Bankkurzbezeich.: " || OFFICE.ADDRESS.BANK_SHORT || LF; DruckString = DruckString || COPIES(" ", x) || "Kontonummer: " || OFFICE.ADDRESS.ACCOUNT || LF; FORMAT_DATE_LONG OFFICE.ADDRESS.BIRTHDAY; DruckString = DruckString || COPIES(" ", x) || "Geboren am: " || MTR_RESULT || LF || LF; DruckString = DruckString || COPIES(" ", x) || "Mit freundlichen Grüssen" || LF || LF || LF || LF; DruckString = DruckString || COPIES(" ", x) || aSGR4 || " " || aSGR24 || LF; DruckString = DruckString || COPIES(" ", x) || aSUS2 IF OFFICE.ADDRESS.SURNAME = "" THEN DruckString = DruckString || "(Unterschrift)"; ELSE DruckString = DruckString || '(' || OFFICE.ADDRESS.PRENAME OFFICE.ADDRESS.SURNAME|| ')'; DruckString = DruckString || aSUS1 || FF; RETURN;