/* ** Druck-, Vorschau, Sichern eines Briefumschlags an den Warenempfänger mit Hilfe von WordWorth ** $VER: WWUmschlagWE_DL.outrexx V1.01 (18.08.98) */ PARSE ARG ARexxPort; ADDRESS VALUE ARexxPort; OPTIONS RESULTS; WWVorlage = "WWDokumente/Umschlag_DL.ww"; WWDokument = "t:Umschlag_DL.ww"; WWPort = "WORDWORTH." LF = '0a'x; /* Zeilenvorschub */ Gefunden = 0; DO i = 1 TO 20 WHILE(Gefunden = 0) IF show(ports, (WWPort || i)) THEN DO; Gefunden = 1; WWPort = WWPort || i; END; END; IF Gefunden = 0 THEN DO; ES_TITLE = "Warnung"; ES_TEXTFORMAT = "WordWorth ist nicht aktiv, bitte starten sie dieses" || LF || "und versuchen Sie es erneut"; ES_GADGETFORMAT = "Abbrechen"; EASY_REQUEST; EXIT; END; /* Original WW-Dokument nach t: kopieren, um ein versehentliches überschreiben */ /* dieser Vorlage zu verhindern */ GET_REXXPATH; WWVorlage = MTR_RESULT || WWVorlage; ADDRESS COMMAND "copy" WWVorlage WWDokument; /* 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; /* Neues Dokument öffnen */ ADDRESS VALUE WWPort; NEW; WWPort = RESULT; DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N'); ADDRESS VALUE WWPort; CALL DatenAufbereiten; SELECT; WHEN Druckart = 0 THEN /* Drucken */ DO; ADDRESS VALUE WWPort; PRINT; ADDRESS VALUE ARexxPort; MTSCREENTOFRONT; END; WHEN Druckart = 1 THEN /* Vorschau */ ADDRESS VALUE ARexxPort; WHEN Druckart = 2 THEN /* Sichern */ DO; ADDRESS VALUE WWPort; 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" WWDokument; /* Oberfläche wieder entsperren */ ADDRESS VALUE ARexxPort; FREEGUI; EXIT; DatenAufbereiten: OPEN FILENAME WWDokument FORCE; DruckString = OB.OFFICE.ADDRESS.ADDRESS.2 || LF; i = INDEX( DruckString, LF); IF i > 0 THEN DO; DruckTeil = LEFT( DruckString, (i - 1) ); DruckString = SUBSTR(DruckString, (i + 1) ); i = INDEX( DruckString, LF); END; ELSE DruckTeil = DruckString; FINDCHANGE FIND "" CHANGE DruckTeil; DO WHILE( i > 0 ); DruckTeil = LEFT( DruckString, (i - 1) ); DruckString = SUBSTR(DruckString, (i + 1) ); LINE 1; TEXT DruckTeil; i = INDEX( DruckString, LF); END; POSITION SOF; DruckString = OB.CONSIGNEE.CUSTOMER.ADDRESS.ADDRESS.2 || LF; i = INDEX( DruckString, LF); IF i > 0 THEN DO; DruckTeil = LEFT( DruckString, (i - 1) ); DruckString = SUBSTR(DruckString, (i + 1) ); i = INDEX( DruckString, LF); END; ELSE DruckTeil = DruckString; FINDCHANGE FIND "" CHANGE DruckTeil; DO WHILE( i > 0 ); DruckTeil = LEFT( DruckString, (i - 1) ); DruckString = SUBSTR(DruckString, (i + 1) ); LINE 1; TEXT DruckTeil; i = INDEX( DruckString, LF); END; RETURN;