/* ** Druck-, Vorschau, Sichern der Überweisung über die Rechnungssumme mit Hilfe von FinalWriter ** $VER: FWÜberweisung.inbrexx V1.00 (14.11.98) */ PARSE ARG ARexxPort; ADDRESS VALUE ARexxPort; OPTIONS RESULTS; FWVorlage = "FWDokumente/Überweisung.fw"; FWDokument = "t:Überweisung.fw"; FWPort = "FINALW." LF = '0a'x; /* Zeilenvorschub */ Gefunden = 0; DO i = 1 TO 20 WHILE(Gefunden = 0) IF show(ports, (FWPort || i)) THEN DO; Gefunden = 1; FWPort = FWPort || i; END; END; IF Gefunden = 0 THEN DO; ES_TITLE = "Warnung"; ES_TEXTFORMAT = "FinalWriter ist nicht aktiv, bitte starten sie dieses" || LF || "und versuchen Sie es erneut"; ES_GADGETFORMAT = "Abbrechen"; EASY_REQUEST; EXIT; END; /* Original FW-Dokument nach t: kopieren, um ein versehentliches überschreiben */ /* dieser Vorlage zu verhindern */ GET_REXXPATH; FWVorlage = MTR_RESULT || FWVorlage; ADDRESS COMMAND "copy" FWVorlage FWDokument; /* Oberfläche sperren */ LOCKGUI; /* Art ermitteln: 0 = Drucken, 1 = Vorschau, 2 = Speichern */ PRINTSTATE; Druckart = MTR_RESULT; Ende_Kennzeichen = 'N'; /* Suchen der zu druckenden Daten */ GET_PREFS; PRINTFIND; DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N'); ADDRESS VALUE FWPort; SCREENTOFRONT; CALL DatenAufbereiten; SELECT; WHEN Druckart = 0 THEN /* Drucken */ DO; ADDRESS VALUE FWPort; PRINT; ADDRESS VALUE ARexxPort; MTSCREENTOFRONT; END; WHEN Druckart = 1 THEN /* Vorschau */ ADDRESS VALUE ARexxPort; WHEN Druckart = 2 THEN /* Sichern */ DO; ADDRESS VALUE FWPort; SAVEAS; ADDRESS VALUE ARexxPort; MTSCREENTOFRONT; END; OTHERWISE DO; ES_TITLE = "Warnung"; ES_TEXTFORMAT = "Druckart wird nicht unterstützt!"; ES_GADGETFORMAT = "Ok"; EASY_REQUEST; Ende_Kennzeichen = 'J'; END; END; PRINTFIND; END; /* WordWorth-Datei aus t: wieder entfernen */ ADDRESS COMMAND "delete" FWDokument; /* Oberfläche wieder entsperren */ ADDRESS VALUE ARexxPort; FREEGUI; EXIT; DatenAufbereiten: ADDRESS VALUE ARexxPort; ZW_Rechnung = IB.BILL_NUMBER; IF IB.SUPPLIER.ADDRESS.BANK_CODE_NUMBER = "0" THEN IB.SUPPLIER.ADDRESS.BANK_CODE_NUMBER = " "; /* Betrag korrekt formatieren, Währungssymbol separieren */ i = IB.CURRENCY_USED; FORMAT_MONEY2 IB.TOTAL_M_ALL_CH.i; j = index( MTR_RESULT, PREFS.CURRENCYSYMBOL ); l1 = j - 1; l2 = LENGTH( MTR_RESULT ) - l1 - LENGTH( PREFS.CURRENCYSYMBOL ); IF i < 2 THEN FORMAT_MONEY1 IB.TOTAL_M_ALL_CH.i; ZW_Betrag = LEFT(LEFT(MTR_RESULT, l1) || RIGHT(MTR_RESULT, l2), 12); ZW_WSymbol = LEFT(SUBSTR(MTR_RESULT, j, (LENGTH( MTR_RESULT ) - l1 - l2) ), 3); IF IB.SUPPLIER.ADDRESS.COMPANY1 > "" THEN ZW_Adresse = LEFT( (IB.SUPPLIER.ADDRESS.COMPANY1 || ", " || IB.SUPPLIER.ADDRESS.CITY), 27); ELSE ZW_Adresse = LEFT( (IB.SUPPLIER.ADDRESS.PRENAME IB.SUPPLIER.ADDRESS.SURNAME || ", " || IB.SUPPLIER.ADDRESS.CITY), 27); ADDRESS VALUE FWPort; CLEARDOC; OPEN FWDokument; FIND ""; FINDNEXT; TYPE ZW_Adresse; FIND ""; TYPE LEFT( IB.SUPPLIER.ADDRESS.ACCOUNT, 10 ); FIND ""; TYPE LEFT( IB.SUPPLIER.ADDRESS.BANK_CODE_NUMBER, 8 ); FIND ""; TYPE LEFT( IB.SUPPLIER.ADDRESS.BANK_NAME, 27 ); FIND ""; TYPE ZW_WSymbol; FIND ""; TYPE ZW_Betrag; FINDNEXT; TYPE ZW_Betrag; MoveToLine 1 1; FIND ""; TYPE ZW_Rechnung; FIND ""; IF IB.SUPPLIER.CLIENT_CODE = "" THEN TYPE " "; ELSE TYPE IB.SUPPLIER.CLIENT_CODE; IF IB.OFFICE.ADDRESS.COMPANY1 > "" THEN ZW_Adresse = LEFT( (IB.OFFICE.ADDRESS.COMPANY1 || ", " || IB.OFFICE.ADDRESS.CITY), 27); ELSE ZW_Adresse = LEFT( (IB.OFFICE.ADDRESS.PRENAME IB.OFFICE.ADDRESS.SURNAME || ", " || IB.OFFICE.ADDRESS.CITY), 27); FIND ""; TYPE ZW_Adresse; FIND ""; TYPE LEFT(IB.OFFICE.ADDRESS.ACCOUNT, 10); RETURN;