/* ** Druck-, Vorschau, Sichern der Inventurerliste mit Hilfe von FinalWriter ** $VER: FWInventurliste.storexx V1.00 (17.01.99) */ PARSE ARG ARexxPort; ADDRESS VALUE ARexxPort; OPTIONS RESULTS; FWVorlage = "FWDokumente/Inventurliste.fw"; FWDokument = "t:Inventurliste.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; 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; /* FinalWriter-Datei aus t: wieder entfernen */ ADDRESS COMMAND "delete" FWDokument; /* Oberfläche wieder entsperren */ ADDRESS VALUE ARexxPort; FREEGUI; EXIT; DatenAufbereiten: ADDRESS VALUE FWPort; CLEARDOC; OPEN FWDokument; FIND ""; FINDNEXT; STATUS LinePos; PARSE VAR RESULT BegLine BegPosition EndLine EndPosition; MoveToLine BegLine 0; ShiftDown; MoveToLine (BegLine + 1) 0; ShiftUp; CUT; w = ST.CURRENCY_USED; DO i = 0 TO (ST.ARTICLE_COUNT - 1); ADDRESS VALUE ARexxPort; GET_ARTICLE ST.ARTICLE_NUMBER.i; SELECT; WHEN PREFS.OUTBILL_ART = 0 THEN DO; IF PREFS.NUMBER_DIGITS > 0 THEN ZW_Nummer = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || ST.ARTICLE_NUMBER.i), PREFS.NUMBER_DIGITS ); ELSE ZW_Nummer = ST.ARTICLE_NUMBER.i; END; WHEN PREFS.OUTBILL_ART = 1 THEN DO; ZW_Nummer = ARTICLE.EAN; END; OTHERWISE DO; ZW_Nummer = ARTICLE.NUMBER2; END; END; FORMAT_NUMBER ST.ARTICLE_STOCK_SYSTEM.i PREFS.FRAC_DIGITS; ZW_Bestand = MTR_RESULT; FORMAT_NUMBER ST.ARTICLE_STOCK_TAKING.i PREFS.FRAC_DIGITS; ZW_Bestand2 = MTR_RESULT; IF w > 1 THEN FORMAT_MONEY2 ST.ARTICLE_STOCK_TAKING_MONEY.i.w; ELSE FORMAT_MONEY1 ST.ARTICLE_STOCK_TAKING_MONEY.i.w; ZW_Wert = MTR_RESULT; ADDRESS VALUE FWPort; PASTE; IF BegLine > 2 THEN MoveToLine (BegLine - 2) 0; ELSE MoveToLine 1 0; FIND ""; STATUS LinePos; PARSE VAR RESULT BegLine BegPosition EndLine EndPosition; IF ZW_Nummer = "" THEN TYPE " "; ELSE TYPE ZW_Nummer; FIND ""; IF ARTICLE.DESCRIPTION = "" THEN TYPE " "; ELSE TYPE ARTICLE.DESCRIPTION; FIND ""; TYPE ZW_Bestand; FIND ""; TYPE ZW_Bestand2; FIND ""; TYPE ZW_Wert; MoveToLine (BegLine + 1) 0; ADDRESS VALUE ARexxPort; PRINTFIND; END; IF w > 1 THEN FORMAT_MONEY2 ST.SUMM.w; ELSE FORMAT_MONEY1 ST.SUMM.w; ZW_Summe = MTR_RESULT; ADDRESS VALUE FWPort; FIND ""; TYPE ZW_Summe; RETURN;