&ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME C-Win /* Temp-Table and Buffer definitions */ DEFINE NEW SHARED TEMP-TABLE XTermOut NO-UNDO LIKE TermOut. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS C-Win /* -------------------------------------------------------------- File: Description: Input Parameters: Output Parameters: Author: Created: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress UIB. */ /*----------------------------------------------------------------------*/ /* Create an unnamed pool to store all the widgets created by this procedure. This is a good default which assures that this procedure's triggers and internal procedures will execute in this procedure's storage, and that proper cleanup will occur on deletion of the procedure. */ CREATE WIDGET-POOL. /* *************************** Definitions ************************** */ /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEF VAR DruckFlag AS LOG NO-UNDO. DEF VAR FDrucken AS LOG NO-UNDO. DEF VAR TRecid AS RECID NO-UNDO. DEF VAR RabText AS CHAR NO-UNDO. DEF VAR RabWert AS DEC NO-UNDO. DEF VAR VFak_Betr AS DEC DECIMALS 4 NO-UNDO. DEF VAR GTWpfl AS DEC EXTENT 12 NO-UNDO. DEF VAR DTWpfl AS DEC EXTENT 12 NO-UNDO. DEF VAR GTWust AS DEC EXTENT 12 NO-UNDO. DEF VAR DWpfl AS DEC EXTENT 12 NO-UNDO. DEF VAR GTFak_Betr AS DEC NO-UNDO. DEF VAR GTSk_Ber AS DEC NO-UNDO. DEF VAR SFaknr AS INT NO-UNDO. DEF VAR FLetzt AS LOG NO-UNDO. DEF VAR FErste AS LOG NO-UNDO. DEF VAR VZeile AS CHAR FORMAT "x(250)" NO-UNDO. DEF VAR RZeile AS CHAR FORMAT "x(250)" NO-UNDO. DEF VAR LiKopf AS LOG NO-UNDO. DEF VAR StBreite AS INT NO-UNDO. DEF VAR VWC AS INT NO-UNDO. DEF VAR VZTot AS DEC DECIMALS 4 NO-UNDO. DEF VAR FDatum AS DATE FORMAT "99.99.9999" NO-UNDO. DEF VAR VFaknr AS INT NO-UNDO. DEF VAR VesrKnr AS INT NO-UNDO. DEF VAR VesrFnr AS INT NO-UNDO. DEF VAR VBesr AS INT NO-UNDO. DEF VAR VRabText AS CHAR FORMAT "x(20)" NO-UNDO. DEF VAR VZusText AS CHAR FORMAT "x(20)" NO-UNDO. DEF VAR VEpzText AS CHAR FORMAT "x(20)" NO-UNDO. DEF VAR VTabTexte LIKE TabTexte.Inhalt NO-UNDO. DEF VAR XVersand AS CHAR NO-UNDO. DEF VAR XAblade AS CHAR NO-UNDO. DEF VAR XWirtesonntag AS CHAR NO-UNDO. DEF VAR XAuf_Text LIKE Aufko.Auf_Text NO-UNDO. DEF VAR XTelnr LIKE Aufko.Auf_Text NO-UNDO. DEF VAR VTemp AS CHAR FORMAT "x(100)" NO-UNDO. DEF VAR VDokart AS CHAR NO-UNDO. DEF VAR FPreis AS LOG NO-UNDO. DEF VAR WW AS DEC EXTENT 12 NO-UNDO. DEF VAR SK AS DEC EXTENT 12 NO-UNDO. DEF VAR VDetail AS DEC EXTENT 20 NO-UNDO. DEF VAR VNetto AS DEC EXTENT 20 NO-UNDO. DEF VAR VPreis_Grp AS INT NO-UNDO. DEF VAR VPreis AS DEC DECIMALS 4 NO-UNDO. DEF VAR VBetrag AS DEC DECIMALS 4 NO-UNDO. DEF VAR VAnkTot AS DEC DECIMALS 4 NO-UNDO. DEF VAR VDetTot AS DEC DECIMALS 4 NO-UNDO. DEF VAR VSchacht AS INT NO-UNDO. DEF VAR cTextArt AS CHAR NO-UNDO. DEF VAR fBatch AS LOG NO-UNDO. DEF VAR VKopf AS CHAR FORMAT "x(100)" EXTENT 20 NO-UNDO. DEF VAR VBesrKopf AS CHAR FORMAT "x(100)" EXTENT 20 NO-UNDO. DEF VAR iSeiZZ AS INT NO-UNDO. DEF VAR cSeiZeile AS CHAR NO-UNDO. DEF VAR cUSER AS CHAR NO-UNDO. DEF VAR cBenutzer AS CHAR NO-UNDO. DEF VAR FBetrag AS LOG NO-UNDO. DEF VAR FRabatt AS LOG NO-UNDO. DEF VAR FUeber AS LOG NO-UNDO. DEF VAR FSamm AS LOG NO-UNDO. DEF VAR FLagOrt AS LOG NO-UNDO. DEF VAR VKopfArt AS CHAR NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR ExZeile AS INT NO-UNDO. DEF VAR lRuestText AS LOG NO-UNDO. DEF VAR iLauf AS INT NO-UNDO. DEF VAR lViper AS LOG INIT TRUE NO-UNDO. DEF VAR iZaehler AS INT NO-UNDO. DEF VAR cTray AS CHAR EXTENT 10 NO-UNDO. DEF VAR iCodeI AS INT NO-UNDO. DEF VAR VSchachtOrig AS INT NO-UNDO. DEF VAR VSchachtKopi AS INT NO-UNDO. DEF VAR VSchachtBesr AS INT NO-UNDO. DEF VAR FormText AS CHAR FORMAT "x(80)" EXTENT 40. DEF BUFFER BAufko FOR Aufko. DEF BUFFER XAufko FOR Aufko. DEF BUFFER BAufze FOR Aufze. DEF BUFFER BAufGebKo FOR AufGebKo. DEF BUFFER FDebst FOR Debst. DEF BUFFER LDebst FOR Debst. DEF BUFFER BTabel FOR Tabel. DEF BUFFER TFakart FOR Tabel. DEF BUFFER TAufsta FOR Tabel. DEF BUFFER BAdresse FOR Adresse. DEF BUFFER LAdresse FOR Adresse. DEF VAR DebInkl AS LOG NO-UNDO. DEF VAR VWg_Grp AS INT INIT 0 NO-UNDO. DEF VAR VProd_Grp AS INT INIT 0 NO-UNDO. DEF VAR VArt_Grp AS INT INIT 0 NO-UNDO. DEF VAR AArtnr AS INT INIT 0 NO-UNDO. DEF VAR AInhalt AS INT INIT 0 NO-UNDO. DEF VAR AJahr AS INT INIT 0 NO-UNDO. DEF TEMP-TABLE tAdresse NO-UNDO LIKE Adresse. DEF TEMP-TABLE tAufze FIELD Aufnr AS INT FIELD Sort1 AS CHAR FIELD Sort2 AS CHAR FIELD Sort3 AS CHAR FIELD Artnr AS INT FIELD Inhalt AS INT FIELD Jahr AS INT FIELD Pos AS INT FIELD Zeile AS RECID FIELD Preis AS DEC DECIMALS 4 FIELD Aktion AS LOG FIELD LagOrt AS CHAR FIELD MGeli AS DEC FIELD MRuek AS DEC INDEX tAufze-k1 IS PRIMARY Aufnr Sort1 Sort2 Sort3. DEF TEMP-TABLE TGebKto FIELD Sort_Cd AS CHAR FIELD Geb_Cd AS CHAR FIELD Bez AS CHAR FIELD Preis AS DEC FIELD A_Anz AS DEC FIELD A_Betrag AS DEC FIELD E_Anz AS DEC FIELD E_Betrag AS DEC FIELD MWST_Art AS INT FIELD MWST_Cd AS INT. DEF TEMP-TABLE TRabSumm FIELD Rab_Summ AS INT FIELD Bez AS CHAR FIELD F_Rab_Art AS INT FIELD F_Wert AS DEC DECIMALS 4 FIELD A_Rab_Art AS INT FIELD A_Wert AS DEC DECIMALS 4 FIELD Auf_Rab AS DEC DECIMALS 4 FIELD Abh_Rab AS DEC DECIMALS 4. DEF TEMP-TABLE TUmsGrp FIELD Ums_Grp AS INT FIELD Mwst AS INT FIELD Ansatz AS DEC FIELD Bez AS CHAR FIELD Ums_Betr AS DEC DECIMALS 4. DEF TEMP-TABLE TGebuehr FIELD MWST_Cd AS INT FIELD Anz AS DEC FIELD Betrag AS DEC. DEF TEMP-TABLE SAMMFAK FIELD Knr AS INT FIELD Samm_Nr AS INT FIELD Aufnr AS INT FIELD RID AS RECID. DEF TEMP-TABLE TSpeRab FIELD Rab_Grp AS INT FIELD Auf_Betr AS DEC DECIMALS 4. DEF TEMP-TABLE TFiliale FIELD Fak_Knr AS INT FIELD Lie_Knr AS INT FIELD Det_Preis AS DEC DECIMALS 4 FIELD Net_Preis AS DEC DECIMALS 4 FIELD MWST_Cd AS INT FIELD Faknr AS INT. DEF TEMP-TABLE TMonat FIELD Lie_Knr AS INT FIELD Artnr AS INT FIELD Inhalt AS INT FIELD Jahr AS INT FIELD Det_Preis AS DEC DECIMALS 4 FIELD Net_Preis AS DEC DECIMALS 4 FIELD MWST_Cd AS INT FIELD Faknr AS INT FIELD Fak_Knr AS INT. DEF TEMP-TABLE TMonGeb FIELD Knr AS INT FIELD MWST_Cd AS INT FIELD Betrag AS DEC DECIMALS 4. DEF TEMP-TABLE tTexte FIELD Pos AS INT FIELD cText1 AS CHAR FIELD cText2 AS CHAR FIELD iRecid AS RECID. DEF TEMP-TABLE tRueckst LIKE tAufze. DEF TEMP-TABLE tViper NO-UNDO FIELD cGruppe AS CHAR FIELD cName AS CHAR FIELD iHoehe AS INT FIELD iBreite AS INT FIELD cInhalt AS CHAR. DEF VAR cvpr_Dokument AS CHAR NO-UNDO. DEF VAR iArtZeile AS INT NO-UNDO. DEF VAR iVPagePos AS INT NO-UNDO. DEF VAR iVGroupPos AS INT NO-UNDO. DEF VAR iVMaxPos AS INT INIT 2650 NO-UNDO. DEF TEMP-TABLE tTabTexte FIELD cRecArt AS CHAR FIELD iZeile AS INT FIELD cFeld1 AS CHAR FIELD cFeld2 AS CHAR FIELD cFeld3 AS CHAR FIELD iFeld1 AS INT FIELD iFeld2 AS INT FIELD iFeld3 AS INT INDEX tTabTexte-k1 IS PRIMARY cRecArt iZeile. DEF TEMP-TABLE tDrucker NO-UNDO FIELD cDrucker AS CHAR. DEF TEMP-TABLE tDokument FIELD cGruppe AS CHAR FIELD iZeile AS INT FIELD cFeld AS CHAR FIELD cInhalt AS CHAR INDEX tDokument-k1 IS PRIMARY cGruppe iZeile cFeld. DEF BUFFER XSchrift FOR Schrift. DEF BUFFER XDrucker FOR Drucker. DEF TEMP-TABLE tPdf FIELD cDokName AS CHAR. DEF VAR VTempVESR AS CHAR FORMAT "x(100)" NO-UNDO. DEF VAR XSchacht AS INT NO-UNDO. DEF STREAM VIn_Stream. DEF STREAM VOut_Stream. /* ---------- Globale Variablen ---------------------------------- */ /* { v8/globvar.i " " " " "SHARED" } */ /* { v8/debivar.i " " " " "SHARED" } */ /* { v8/artivar.i " " " " "SHARED" } */ /* { v8/contvar.i " " " " "SHARED" } */ /* */ { v8/listtitv.i "NEW" "SHARED" } { v8/aufkototv.i "NEW" "SHARED" } DEF VAR GVFirma AS CHAR INIT '1000' NO-UNDO. DEF VAR adFirma AS CHAR INIT '1000' NO-UNDO. DEF VAR i1 AS INT. DEF VAR i2 AS INT. DEF VAR i5 AS INT. DEF VAR ix AS INT. DEF VAR LVSprcd AS INT. DEF VAR Ja AS LOG. DEF VAR Rundbetr AS DEC DECIMALS 4. DEF VAR Rundcode AS INT. DEF VAR GVSprcd AS INT. DEF VAR XVAufnr AS INT. DEF VAR HelpText AS CHAR EXTENT 50. { windows.i } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE Window &Scoped-define DB-AWARE no /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME DEFAULT-FRAME /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz ~ F_Kzz F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier ~ Btn_Drucken Btn_Abbrechen &Scoped-Define DISPLAYED-OBJECTS F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz ~ F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz ~ F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define the widget handle for the window */ DEFINE VAR C-Win AS WIDGET-HANDLE NO-UNDO. /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Abbrechen LABEL "&Abbrechen" SIZE 15 BY 1. DEFINE BUTTON Btn_Drucken LABEL "&Drucken" SIZE 15 BY 1. DEFINE VARIABLE E_Adresse AS CHARACTER VIEW-AS EDITOR MAX-CHARS 1000 SIZE 45 BY 6.19 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Aufnr AS INTEGER FORMAT "zzzzzz9":U INITIAL 0 LABEL "Auftragsnummer" VIEW-AS FILL-IN NATIVE SIZE 13 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U LABEL "Fakturadatum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Dokart AS CHARACTER FORMAT "x(50)":U LABEL "Dokumentart" VIEW-AS FILL-IN NATIVE SIZE 28 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Drucker AS CHARACTER FORMAT "x(50)":U LABEL "Drucker" VIEW-AS FILL-IN NATIVE SIZE 40 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Faknr AS INTEGER FORMAT "zzzzzzz":U INITIAL 0 LABEL "Fakturanummer" VIEW-AS FILL-IN NATIVE SIZE 13 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Fzz AS INTEGER FORMAT "zz9":U INITIAL 0 LABEL "Leere Fusszeilen" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_KOPIE AS INTEGER FORMAT "zz9":U INITIAL 0 LABEL "Anz. Kopien" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Kzz AS INTEGER FORMAT "zz9":U INITIAL 0 LABEL "Leere Kopfzeilen" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Papier AS CHARACTER FORMAT "x(50)":U LABEL "Auftragspapier" VIEW-AS FILL-IN NATIVE SIZE 45 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Schrift AS CHARACTER FORMAT "x(50)":U LABEL "Schriftbild" VIEW-AS FILL-IN NATIVE SIZE 40 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Seite AS INTEGER FORMAT "zz9":U INITIAL 0 LABEL "Seite" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Tzz AS INTEGER FORMAT "zz9":U INITIAL 0 LABEL "Total Zeilen" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-1 EDGE-PIXELS 3 GRAPHIC-EDGE NO-FILL SIZE 116 BY 12.14. /* ************************ Frame Definitions *********************** */ DEFINE FRAME DEFAULT-FRAME F_Drucker AT ROW 2 COL 21 COLON-ALIGNED E_Adresse AT ROW 2 COL 70 NO-LABEL NO-TAB-STOP F_Schrift AT ROW 3 COL 21 COLON-ALIGNED F_Tzz AT ROW 4 COL 21 COLON-ALIGNED F_Kzz AT ROW 5 COL 21 COLON-ALIGNED F_Fzz AT ROW 6 COL 21 COLON-ALIGNED F_Aufnr AT ROW 7 COL 21 COLON-ALIGNED F_KOPIE AT ROW 7 COL 53 COLON-ALIGNED F_Faknr AT ROW 8 COL 21 COLON-ALIGNED F_Datum AT ROW 9 COL 21 COLON-ALIGNED F_Dokart AT ROW 9 COL 68 COLON-ALIGNED F_Seite AT ROW 9 COL 106 COLON-ALIGNED F_Papier AT ROW 10 COL 68 COLON-ALIGNED Btn_Drucken AT ROW 11.52 COL 70 Btn_Abbrechen AT ROW 11.52 COL 100 RECT-1 AT ROW 1.48 COL 3 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 126.41 BY 13.85 DEFAULT-BUTTON Btn_Drucken CANCEL-BUTTON Btn_Abbrechen. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: Window Allow: Basic,Browse,DB-Fields,Window,Query Other Settings: COMPILE Temp-Tables and Buffers: TABLE: XTermOut T "NEW SHARED" NO-UNDO AnaDat TermOut END-TABLES. */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW IF SESSION:DISPLAY-TYPE = "GUI":U THEN CREATE WINDOW C-Win ASSIGN HIDDEN = YES TITLE = "Drucken von Auftragsdokumenten" HEIGHT = 12.86 WIDTH = 120.6 MAX-HEIGHT = 26.57 MAX-WIDTH = 203 VIRTUAL-HEIGHT = 26.57 VIRTUAL-WIDTH = 203 RESIZE = YES SCROLL-BARS = NO STATUS-AREA = NO BGCOLOR = ? FGCOLOR = ? KEEP-FRAME-Z-ORDER = YES THREE-D = YES MESSAGE-AREA = NO SENSITIVE = YES. ELSE {&WINDOW-NAME} = CURRENT-WINDOW. /* END WINDOW DEFINITION */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW C-Win VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME DEFAULT-FRAME FRAME-NAME */ /* SETTINGS FOR EDITOR E_Adresse IN FRAME DEFAULT-FRAME 1 */ ASSIGN E_Adresse:RETURN-INSERTED IN FRAME DEFAULT-FRAME = TRUE E_Adresse:READ-ONLY IN FRAME DEFAULT-FRAME = TRUE. /* SETTINGS FOR FILL-IN F_Aufnr IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Datum IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Dokart IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Drucker IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Faknr IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Fzz IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_KOPIE IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Kzz IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Papier IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Schrift IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Seite IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Tzz IN FRAME DEFAULT-FRAME 1 */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win) THEN C-Win:HIDDEN = NO. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME C-Win &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win ON END-ERROR OF C-Win /* Drucken von Auftragsdokumenten */ OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO: /* This case occurs when the user presses the "Esc" key. In a persistently run window, just ignore this. If we did not, the application would exit. */ IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win ON WINDOW-CLOSE OF C-Win /* Drucken von Auftragsdokumenten */ DO: RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Abbrechen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Abbrechen C-Win ON CHOOSE OF Btn_Abbrechen IN FRAME DEFAULT-FRAME /* Abbrechen */ DO: DruckFlag = FALSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Drucken &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Drucken C-Win ON CHOOSE OF Btn_Drucken IN FRAME DEFAULT-FRAME /* Drucken */ DO: DruckFlag = TRUE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME E_Adresse &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL E_Adresse C-Win ON ENTRY OF E_Adresse IN FRAME DEFAULT-FRAME DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Aufnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Aufnr C-Win ON ENTRY OF F_Aufnr IN FRAME DEFAULT-FRAME /* Auftragsnummer */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Datum &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum C-Win ON ENTRY OF F_Datum IN FRAME DEFAULT-FRAME /* Fakturadatum */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Dokart &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Dokart C-Win ON ENTRY OF F_Dokart IN FRAME DEFAULT-FRAME /* Dokumentart */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Drucker &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Drucker C-Win ON ENTRY OF F_Drucker IN FRAME DEFAULT-FRAME /* Drucker */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Faknr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Faknr C-Win ON ENTRY OF F_Faknr IN FRAME DEFAULT-FRAME /* Fakturanummer */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Fzz &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Fzz C-Win ON ENTRY OF F_Fzz IN FRAME DEFAULT-FRAME /* Leere Fusszeilen */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Kzz &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Kzz C-Win ON ENTRY OF F_Kzz IN FRAME DEFAULT-FRAME /* Leere Kopfzeilen */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Papier &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Papier C-Win ON ENTRY OF F_Papier IN FRAME DEFAULT-FRAME /* Auftragspapier */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Schrift &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Schrift C-Win ON ENTRY OF F_Schrift IN FRAME DEFAULT-FRAME /* Schriftbild */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Seite &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Seite C-Win ON ENTRY OF F_Seite IN FRAME DEFAULT-FRAME /* Seite */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Tzz &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Tzz C-Win ON ENTRY OF F_Tzz IN FRAME DEFAULT-FRAME /* Total Zeilen */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK C-Win /* *************************** Main Block *************************** */ /* Set CURRENT-WINDOW: this will parent dialog-boxes and frames. */ ASSIGN CURRENT-WINDOW = {&WINDOW-NAME} THIS-PROCEDURE:CURRENT-WINDOW = {&WINDOW-NAME}. ON CLOSE OF THIS-PROCEDURE RUN disable_UI. PAUSE 0 BEFORE-HIDE. /* ASSIGN cTray[01] = '261' */ /* cTray[02] = '260' */ /* cTray[03] = '259' */ /* cTray[04] = '258' */ /* cTray[05] = '257'. */ /* ASSIGN cTray[01] = '259' */ /* cTray[02] = '260' */ /* cTray[03] = '261' */ /* cTray[04] = '258' */ /* cTray[05] = '257'. */ MAIN-BLOCK: DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK: RUN enable_UI. ASSIGN LVSprcd = 1 Ja = FALSE Rundbetr = 0.00 Rundcode = 1 GVSprcd = 1 XVAufnr = 0 HelpText = ''. FDrucken = TRUE. DruckFlag = TRUE. cUSER = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR. cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U) NO-ERROR. fBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR. FIND BSteuer USE-INDEX Steuer-k1 WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR. { vpr.i INIT } { vpr.i START } EMPTY TEMP-TABLE tPDF. iCodeI = -1. VERARBEITEN: DO WHILE FDrucken: FIND FIRST Tabel NO-LOCK USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'AUFDRUCK' AND Tabel.CodeC = cUSER AND Tabel.CodeI > iCodeI AND Tabel.Bez1 = '' NO-ERROR. IF NOT AVAILABLE Tabel THEN DO: FIND FIRST Tabel NO-LOCK USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'AUFDRUCK' AND Tabel.CodeC = cBenutzer AND Tabel.CodeI > iCodeI AND Tabel.Bez1 = '' NO-ERROR. END. IF NOT AVAILABLE Tabel THEN DO: FDrucken = FALSE. NEXT. END. TRecid = RECID(Tabel). iCodeI = Tabel.CodeI. REPEAT TRANSACTION: FIND BTabel EXCLUSIVE-LOCK WHERE RECID(BTabel) = TRecid NO-WAIT NO-ERROR. IF AVAILABLE BTabel THEN DO: BTabel.Bez1 = 'A'. RELEASE BTabel. LEAVE. END. IF LOCKED BTabel THEN DO: PAUSE 1 NO-MESSAGE. RELEASE BTabel. NEXT VERARBEITEN. END. TRecid = 0. LEAVE. END. IF TRecid = 0 THEN NEXT. FIND Tabel WHERE RECID(Tabel) = TRecid NO-LOCK. RUN DRUCKEN. IF RETURN-VALUE <> '' AND RETURN-VALUE <> 'ERROR' THEN NEXT. REPEAT TRANSACTION: FIND BTabel WHERE RECID(BTabel) = TRecid NO-ERROR. IF AVAILABLE bTabel THEN DO: DELETE BTabel. RELEASE BTabel. END. LEAVE. END. RELEASE Tabel. RELEASE BTabel. END. DYNAMIC-FUNCTION('setBatch':U, FALSE) NO-ERROR. REPEAT TRANSACTION: FOR EACH Tabel NO-LOCK USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'AUFDRUCK' AND Tabel.CodeC = cUSER AND Tabel.Bez1 = 'A': TRecid = RECID(Tabel). FIND BTabel WHERE RECID(BTabel) = TRecid NO-ERROR. IF AVAILABLE bTabel THEN DO: BTabel.Bez1 = ''. RELEASE bTabel. END. END. FOR EACH Tabel NO-LOCK USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'AUFDRUCK' AND Tabel.CodeC = cBenutzer AND Tabel.Bez1 = 'A': TRecid = RECID(Tabel). FIND BTabel WHERE RECID(BTabel) = TRecid NO-ERROR. IF AVAILABLE bTabel THEN DO: BTabel.Bez1 = ''. RELEASE bTabel. END. END. RELEASE Tabel. RELEASE bTabel. LEAVE. END. { vpr.i STOP } APPLY 'GO' TO FRAME {&FRAME-NAME}. APPLY 'CLOSE' TO THIS-PROCEDURE. RETURN. END. PROCEDURE ShellExecuteA EXTERNAL "shell32.dll" : DEFINE INPUT PARAMETER lphwnd AS LONG. DEFINE INPUT PARAMETER lpOperation AS CHAR. DEFINE INPUT PARAMETER lpFile AS CHAR. DEFINE INPUT PARAMETER lpParameters AS CHAR. DEFINE INPUT PARAMETER lpDirectory AS CHAR. DEFINE INPUT PARAMETER nShowCmd AS LONG. DEFINE RETURN PARAMETER hInstance AS LONG. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ABLADEVORSCHRIFT C-Win PROCEDURE ABLADEVORSCHRIFT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ XAblade = ''. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'ABLAD' AND Tabel.CodeC = '' AND Tabel.CodeI = BAufko.Ablad_Vor AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF NOT AVAILABLE Tabel THEN DO: XAblade = BAufko.Ablad_Vor_Text. RETURN. END. IF LENGTH(Tabel.Bez1) > 4 THEN XAblade = Tabel.Bez1. IF BAufko.Ablad_Vor_Text <> '' THEN DO: IF XAblade <> '' THEN XAblade = XAblade + " / ". XAblade = XAblade + BAufko.Ablad_Vor_Text. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE C-Win PROCEDURE ARTIKELZEILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WHILE Aufze.Artnr = 0: SUBSTRING(VZeile,015) = STRING(Aufze.Bez1,"x(30)"). { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: VZeile = RZeile. SUBSTRING(VZeile,015) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. SUBSTRING(VZeile,008) = STRING(Aufze.Artnr ,"999999"). SUBSTRING(VZeile,015) = STRING(Aufze.Bez1 ,"x(30)"). SUBSTRING(VZeile,045) = STRING(KGebinde.KBez,"x(08)"). IF Aufze.VGeb_Me <> 0 THEN DO: SUBSTRING(VZeile,053) = STRING(Aufze.VGeb_Me,"->>9x ") + STRING(VGebinde.KBez,"x(06)"). END. SUBSTRING(VZeile,066) = STRING(Aufze.MGeli ,"->>>9"). IF Aufze.Alk_Gehalt <> 0 THEN DO: SUBSTRING(VZeile,038) = STRING(Aufze.Alk_Gehalt,"zz9.9%"). END. IF Aufze.Jahr > 9 THEN DO: SUBSTRING(VZeile,041) = ' ' + SUBSTRING(STRING(Aufze.Jahr,"9999"),03). END. IF FPreis THEN DO: SUBSTRING(VZeile,072) = STRING(Aufze.Preis ,"zz9.999"). SUBSTRING(VZeile,081) = STRING(Aufze.Bru_Betr ,"->>,>>9.99"). SUBSTRING(VZeile,092) = STRING(Aufze.WuCd ,"z9"). END. { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: SUBSTRING(VZeile,015) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. IF Aufze.Aktion THEN DO: SUBSTRING(VZeile,015) = STRING(Aufze.Aktion_Text,"x(30)"). { v8/putstream.i "1" } END. DO WHILE FPreis: IF Aufze.Rab_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Rab_Wert). IF Aufze.Rab_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Rab_Betr < 0 THEN RabText = VZusText. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText. END. SUBSTRING(VZeile,015) = TRIM(RabText). IF Aufze.Rab_Art = 1 THEN SUBSTRING(VZeile,035) = STRING(RabWert,"->9.9 %"). IF Aufze.Rab_Art = 2 OR Aufze.Rab_Art = 3 THEN SUBSTRING(VZeile,035) = STRING(RabWert,"-9.99 Fr."). SUBSTRING(VZeile,081) = STRING(- Aufze.Rab_Betr ,"->>,>>9.99"). { v8/putstream.i "1" } LEAVE. END. DO WHILE FPreis: IF Aufze.Zus_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Zus_Wert). IF Aufze.Zus_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Zus_Betr < 0 THEN RabText = VRabText. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText. END. SUBSTRING(VZeile,015) = TRIM(RabText). IF Aufze.Zus_Art = 1 THEN SUBSTRING(VZeile,035) = STRING(RabWert,"->9.9 %"). IF Aufze.Zus_Art = 2 OR Aufze.Zus_Art = 3 THEN SUBSTRING(VZeile,035) = STRING(RabWert,"-9.99 Fr."). SUBSTRING(VZeile,081) = STRING(+ Aufze.Zus_Betr ,"->>,>>9.99"). { v8/putstream.i "1" } LEAVE. END. /* ---- Summengruppen-Total -------------------------------------------- */ IF Aufze.Rab_Su_Grp <> 0 THEN DO: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR. IF AVAILABLE TRabSumm THEN DO: TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab. END. END. /* ---- Warengruppen-Totale -------------------------------------------- */ FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR. CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp TUmsGrp.Mwst = Aufze.WuCd. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1. ELSE TUmsGrp.Bez = "??????????". END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Aufze.Net_Betr - Aufze.Auf_Rab - Aufze.Abh_Rab. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_NEU C-Win PROCEDURE ARTIKELZEILE_NEU : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. DO WHILE Aufze.Artnr = 0: SUBSTRING(VZeile,044) = STRING(Aufze.Bez1,"x(30)"). { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: VZeile = RZeile. SUBSTRING(VZeile,044) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. SUBSTRING(VZeile,008) = STRING(KGebinde.KBez,"x(10)"). IF Aufze.VGeb_Me <> 0 THEN DO: SUBSTRING(VZeile,019) = STRING(Aufze.VGeb_Me,'->>>') + 'x ' + STRING(VGebinde.KBez,'x(10)'). END. SUBSTRING(VZeile,035) = STRING(Aufze.MGeli ,"->>,>>9"). SUBSTRING(VZeile,044) = STRING(Aufze.Bez1 ,"x(30)"). IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,073) = STRING(Aufze.Jahr,"9999"). IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,078) = STRING(Aufze.Alk_Gehalt,"zz9.9%"). SUBSTRING(VZeile,086) = STRING(Aufze.Artnr ,"999999"). IF FPreis THEN DO: SUBSTRING(VZeile,095) = STRING(Aufze.Preis ,">,>>9.999"). SUBSTRING(VZeile,104) = STRING(Aufze.Bru_Betr ,"->>>,>>9.99"). SUBSTRING(VZeile,116) = STRING(Aufze.WuCd ,"z9"). END. VZeile = SUBSTRING(VZeile,001,018) + BDrucker.Drufettb + SUBSTRING(VZeile,019,016) + BDrucker.Drufette + SUBSTRING(VZeile,035). { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: SUBSTRING(VZeile,044) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. IF Aufze.Aktion THEN DO: SUBSTRING(VZeile,044) = STRING(Aufze.Aktion_Text,"x(30)"). { v8/putstream.i "1" } END. DO WHILE FPreis: IF Aufze.Rab_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Rab_Wert). IF Aufze.Rab_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Rab_Betr < 0 THEN RabText = VZusText. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText. END. SUBSTRING(VZeile,044) = TRIM(RabText). IF Aufze.Rab_Art = 1 THEN SUBSTRING(VZeile,099) = STRING(RabWert,"->9.9%"). IF Aufze.Rab_Art = 2 OR Aufze.Rab_Art = 3 THEN SUBSTRING(VZeile,099) = STRING(RabWert,"-9.99"). SUBSTRING(VZeile,104) = STRING(- Aufze.Rab_Betr ,"->>>,>>9.99"). { v8/putstream.i "1" } LEAVE. END. DO WHILE FPreis: IF Aufze.Zus_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Zus_Wert). IF Aufze.Zus_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Zus_Betr < 0 THEN RabText = VRabText. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText. END. SUBSTRING(VZeile,044) = TRIM(RabText). IF Aufze.Zus_Art = 1 THEN SUBSTRING(VZeile,099) = STRING(RabWert,"->9.9%"). IF Aufze.Zus_Art = 2 OR Aufze.Zus_Art = 3 THEN SUBSTRING(VZeile,099) = STRING(RabWert,"-9.99"). SUBSTRING(VZeile,104) = STRING(+ Aufze.Zus_Betr ,"->>>,>>9.99"). { v8/putstream.i "1" } LEAVE. END. /* ---- Summengruppen-Total -------------------------------------------- */ IF Aufze.Rab_Su_Grp <> 0 THEN DO: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR. IF AVAILABLE TRabSumm THEN DO: TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab. END. END. /* ---- Warengruppen-Totale -------------------------------------------- */ FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR. CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp TUmsGrp.Mwst = Aufze.WuCd. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1. ELSE TUmsGrp.Bez = "??????????". END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Aufze.Net_Betr - Aufze.Auf_Rab - Aufze.Abh_Rab. IF Aufze.MRuek > 0 THEN DO: CREATE tRueckst. BUFFER-COPY tAufze TO tRueckst. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_RUECKSTAND C-Win PROCEDURE ARTIKELZEILE_RUECKSTAND : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. FIND tRueckst WHERE RECID(tRueckst) = ipRecid NO-LOCK. FIND Aufze WHERE RECID(Aufze) = tRueckst.Zeile NO-LOCK. FIND Artst OF Aufze NO-LOCK. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. SUBSTRING(VZeile,008) = STRING(KGebinde.KBez,"x(10)"). IF Aufze.VGeb_Ru <> 0 THEN DO: SUBSTRING(VZeile,019) = STRING(Aufze.VGeb_Ru,'->>>') + 'x ' + STRING(VGebinde.KBez,'x(10)'). END. SUBSTRING(VZeile,035) = STRING(Aufze.MRuek ,"->>,>>9"). SUBSTRING(VZeile,044) = STRING(Aufze.Bez1 ,"x(30)"). IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,073) = STRING(Aufze.Jahr,"9999"). IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,078) = STRING(Aufze.Alk_Gehalt,"zz9.9%"). SUBSTRING(VZeile,086) = STRING(Aufze.Artnr ,"999999"). VZeile = SUBSTRING(VZeile,001,018) + BDrucker.Drufettb + SUBSTRING(VZeile,019,016) + BDrucker.Drufette + SUBSTRING(VZeile,035). { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: SUBSTRING(VZeile,044) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. IF Aufze.Aktion THEN DO: SUBSTRING(VZeile,044) = STRING(Aufze.Aktion_Text,"x(30)"). { v8/putstream.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_RUEST C-Win PROCEDURE ARTIKELZEILE_RUEST : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. DEF VAR cBarCode AS CHAR NO-UNDO. DEF VAR oBarCode AS CHAR NO-UNDO. /* DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO. */ DEF VAR cCodeArt AS CHAR INIT 'P0205080' NO-UNDO. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. DO WHILE Aufze.Artnr = 0: SUBSTRING(VZeile,036) = STRING(Aufze.Bez1,"x(30)"). { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: VZeile = RZeile. SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. FIND FIRST ArtLief NO-LOCK WHERE ArtLief.Firma = GVFirma AND ArtLief.Artnr = Aufze.Artnr AND ArtLief.Inhalt = Aufze.Inhalt AND ArtLief.Jahr = Aufze.Jahr NO-ERROR. cBarCode = ''. oBarCode = ''. IF Artst.Strichcode = '' THEN DO: cBarCode = TRIM(STRING(Aufze.Artnr ,'zzzzz9')) + '/' + TRIM(STRING(Aufze.Inhalt,'zzz9')) + '/' + TRIM(STRING(Aufze.Jahr ,'zzz9')). . RUN BAR-CODE-39 ( INPUT cBarCode, INPUT cCodeArt, OUTPUT oBarCode ). END. /* IF AVAILABLE ArtLief THEN DO: IF ArtLief.Strichcode_KGeb <> '' THEN cBarCode = ArtLief.Strichcode_KGeb. ELSE IF Artst.Strichcode <> '' THEN cBarCode = Artst.Strichcode . END. */ SUBSTRING(VZeile,001) = STRING(KGebinde.KBez,"x(10)"). IF Aufze.VGeb_Me <> 0 THEN DO: SUBSTRING(VZeile,012) = STRING(Aufze.VGeb_Me,'->>>') + 'x ' + VGebinde.KBez. END. SUBSTRING(VZeile,028) = STRING(Aufze.MGeli ,"->>>>9"). SUBSTRING(VZeile,036) = STRING(Aufze.Bez1 ,"x(30)"). IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,068) = STRING(Aufze.Alk_Gehalt,"zz9.9%"). IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,075) = STRING(Aufze.Jahr,"9999"). SUBSTRING(VZeile,081) = STRING(Aufze.Artnr ,"999999"). SUBSTRING(VZeile,089) = STRING(tAufze.LagOrt,'x(08)'). IF oBarCode <> '' THEN DO: SUBSTRING(VZeile,099) = CHR(27) + "&f0S" /* Cursorposition speichern */ + CHR(27) + "*p" /* Cursor neu Positionieren anhand der Zeile */ + STRING((VLine * 50) - 50,"9999") + "Y" + oBarcode + CHR(027) + "&f1S". /* Cusrorposition zurückholen */ END. VZeile = BDrucker.Drufettb + SUBSTRING(VZeile,001,027) + BDrucker.Drufette + SUBSTRING(VZeile,028,061) + BDrucker.Drufettb + SUBSTRING(VZeile,089,010) + BDrucker.Drufette + SUBSTRING(VZeile,099). { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1 } END. { v8/putstream.i "1 } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_RUESTSCHEIN C-Win PROCEDURE ARTIKELZEILE_RUESTSCHEIN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. DEF VAR cBarCode AS CHAR NO-UNDO. DEF VAR oBarCode AS CHAR NO-UNDO. /* DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO. */ DEF VAR cCodeArt AS CHAR INIT 'P0205080' NO-UNDO. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. DO WHILE Aufze.Artnr = 0: SUBSTRING(VZeile,036) = STRING(Aufze.Bez1,"x(30)"). { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: VZeile = RZeile. SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. FIND FIRST ArtLief NO-LOCK WHERE ArtLief.Firma = GVFirma AND ArtLief.Artnr = Aufze.Artnr AND ArtLief.Inhalt = Aufze.Inhalt AND ArtLief.Jahr = Aufze.Jahr NO-ERROR. cBarCode = ''. oBarCode = ''. IF AVAILABLE ArtLief THEN DO: IF ArtLief.Strichcode_KGeb <> '' THEN cBarCode = ArtLief.Strichcode_KGeb. ELSE IF Artst.Strichcode <> '' THEN cBarCode = Artst.Strichcode . END. /* cBarCode = TRIM(STRING(Aufze.Artnr ,'zzzzz9')) + '.' + TRIM(STRING(Aufze.Inhalt,'zzz9')) + '.' + TRIM(STRING(Aufze.Jahr ,'zzz9')). . RUN BAR-CODE-39 ( INPUT cBarCode, INPUT cCodeArt, OUTPUT oBarCode ). */ SUBSTRING(VZeile,001) = STRING(KGebinde.KBez,"x(10)"). IF Aufze.VGeb_Me <> 0 THEN DO: SUBSTRING(VZeile,012) = STRING(Aufze.VGeb_Me,'->>>') + 'x ' + VGebinde.KBez. END. SUBSTRING(VZeile,028) = STRING(Aufze.MBest ,"->>>>9"). SUBSTRING(VZeile,036) = STRING(Aufze.Bez1 ,"x(30)"). IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,068) = STRING(Aufze.Alk_Gehalt,"zz9.9%"). IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,075) = STRING(Aufze.Jahr,"9999"). SUBSTRING(VZeile,081) = STRING(Aufze.Artnr ,"999999"). SUBSTRING(VZeile,089) = STRING(tAufze.LagOrt,'x(08)'). VZeile = BDrucker.Drufettb + SUBSTRING(VZeile,001,027) + BDrucker.Drufette + SUBSTRING(VZeile,028,061) + BDrucker.Drufettb + SUBSTRING(VZeile,089,008) + BDrucker.Drufette + SUBSTRING(VZeile,097). { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1 } END. IF oBarCode <> '' THEN DO: SUBSTRING(VZeile,036) = CHR(27) + "&f0S" /* Cursorposition speichern */ + CHR(27) + "*p" /* Cursor neu Positionieren anhand der Zeile */ + STRING((VLine * 50) - 25,"9999") + "Y" + oBarcode + CHR(027) + "&f1S". /* Cusrorposition zurückholen */ { v8/putstream.i "2" } END. ELSE DO: { v8/putstream.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_SAMMFAK C-Win PROCEDURE ARTIKELZEILE_SAMMFAK : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. DO WHILE Aufze.Artnr = 0: SUBSTRING(VZeile,042) = STRING(Aufze.Bez1,"x(30)"). { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: VZeile = RZeile. SUBSTRING(VZeile,042) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. SUBSTRING(VZeile,006) = STRING(KGebinde.KBez,"x(10)"). IF Aufze.VGeb_Me <> 0 THEN DO: SUBSTRING(VZeile,017) = STRING(Aufze.VGeb_Me,'->>>') + 'x ' + STRING(VGebinde.KBez,'x(10)'). END. SUBSTRING(VZeile,033) = STRING(Aufze.MGeli ,"->>,>>9"). SUBSTRING(VZeile,042) = STRING(Aufze.Bez1 ,"x(30)"). IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,073) = STRING(Aufze.Jahr,"9999"). IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,078) = STRING(Aufze.Alk_Gehalt,"zz9.9%"). SUBSTRING(VZeile,086) = STRING(Aufze.Artnr ,"999999"). IF FPreis THEN DO: SUBSTRING(VZeile,093) = STRING(Aufze.Preis ,">,>>9.999"). SUBSTRING(VZeile,102) = STRING(Aufze.Bru_Betr ,"->>>,>>9.99"). SUBSTRING(VZeile,114) = STRING(Aufze.WuCd ,"z9"). END. VZeile = SUBSTRING(VZeile,001,018) + BDrucker.Drufettb + SUBSTRING(VZeile,019,016) + BDrucker.Drufette + SUBSTRING(VZeile,035). { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: SUBSTRING(VZeile,042) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. IF Aufze.Aktion THEN DO: SUBSTRING(VZeile,042) = STRING(Aufze.Aktion_Text,"x(30)"). { v8/putstream.i "1" } END. DO WHILE FPreis: IF Aufze.Rab_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Rab_Wert). IF Aufze.Rab_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Rab_Betr < 0 THEN RabText = VZusText. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText. END. SUBSTRING(VZeile,042) = TRIM(RabText). IF Aufze.Rab_Art = 1 THEN SUBSTRING(VZeile,097) = STRING(RabWert,"->9.9%"). IF Aufze.Rab_Art = 2 OR Aufze.Rab_Art = 3 THEN SUBSTRING(VZeile,097) = STRING(RabWert,"-9.99"). SUBSTRING(VZeile,102) = STRING(- Aufze.Rab_Betr ,"->>>,>>9.99"). { v8/putstream.i "1" } LEAVE. END. DO WHILE FPreis: IF Aufze.Zus_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Zus_Wert). IF Aufze.Zus_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Zus_Betr < 0 THEN RabText = VRabText. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText. END. SUBSTRING(VZeile,042) = TRIM(RabText). IF Aufze.Zus_Art = 1 THEN SUBSTRING(VZeile,097) = STRING(RabWert,"->9.9%"). IF Aufze.Zus_Art = 2 OR Aufze.Zus_Art = 3 THEN SUBSTRING(VZeile,097) = STRING(RabWert,"-9.99"). SUBSTRING(VZeile,102) = STRING(+ Aufze.Zus_Betr ,"->>>,>>9.99"). { v8/putstream.i "1" } LEAVE. END. /* ---- Summengruppen-Total -------------------------------------------- */ IF Aufze.Rab_Su_Grp <> 0 THEN DO: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR. IF AVAILABLE TRabSumm THEN DO: TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab. END. END. /* ---- Warengruppen-Totale -------------------------------------------- */ FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR. CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp TUmsGrp.Mwst = Aufze.WuCd. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1. ELSE TUmsGrp.Bez = "??????????". END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Aufze.Net_Betr - Aufze.Auf_Rab - Aufze.Abh_Rab. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSSCHEIN C-Win PROCEDURE AUFTRAGSSCHEIN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cCrLf AS CHAR NO-UNDO. DEF VAR xDokArt AS CHAR NO-UNDO. VSeite = 0. VFak_Betr = 0. cCrLf = CHR(13) + CHR(10). FPreis = TRUE. xDokArt = vDokArt. vDokArt = 'AUFTRAGSSCHEIN'. RUN LIBILD. RUN AUFTRAGSSCHEIN_KOPF. FOR EACH tAufze NO-LOCK BY tAufze.Aufnr BY tAufze.Sort1 BY tAufze.Sort2 BY tAufze.Sort3 BY tAufze.Pos : IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO: RUN AUFTRAGSSCHEIN_KOPF. END. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. PUT STREAM Out_Stream CONTROL BDrucker.Dru15cpi. RUN AUFTRAGSSCHEIN_ARTIKELZEILE ( RECID(tAufze) ). VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. IF FPreis = TRUE THEN DO: PUT STREAM Out_Stream CONTROL BDrucker.Dru15cpi. SUBSTRING(VZeile,040) = SUBSTRING(FormText[15],21,20). SUBSTRING(VZeile,100) = STRING(VFak_Betr,"->>>,>>9.99"). { v8/putstream.i "1" } PUT STREAM Out_Stream CONTROL BDrucker.Dru12cpi. END. { v8/putstream.i "1" } IF BAufko.Auf_Text <> '' THEN DO: XAuf_Text = BAufko.Auf_Text. i1 = NUM-ENTRIES(XAuf_Text, CHR(10)). IF i1 > 0 THEN Zuszz = Zuszz + i1 + 1. END. IF Zuszz > 0 THEN Zuszz = Zuszz + 2. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO: RUN AUFTRAGSSCHEIN_KOPF. END. /* Auftragstext ------------------------------------------------------ */ XAuf_Text = BAufko.Auf_Text. IF XAuf_Text <> '' THEN DO: i2 = 0. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)): SUBSTRING(VZeile,005) = ENTRY(i1, XAuf_Text, CHR(10)). { v8/putstreamf.i "1" } i2 = i2 + 1. END. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. RUN NEUE_SEITE. vDokArt = xDokArt. RUN LIBILD. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSSCHEIN_ARTIKELZEILE C-Win PROCEDURE AUFTRAGSSCHEIN_ARTIKELZEILE : /*-------------------------------------------------------------------------- Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. DO WHILE Aufze.Artnr = 0: SUBSTRING(VZeile,040) = STRING(Aufze.Bez1,"x(30)"). { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: VZeile = RZeile. SUBSTRING(VZeile,040) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. SUBSTRING(VZeile,003) = STRING(KGebinde.KBez,"x(10)"). IF Aufze.VGeb_Me <> 0 THEN DO: SUBSTRING(VZeile,015) = STRING(Aufze.VGeb_Me,'->>>') + 'x ' + STRING(VGebinde.KBez,'x(10)'). END. SUBSTRING(VZeile,031) = STRING(Aufze.MGeli ,"->>,>>9"). SUBSTRING(VZeile,040) = STRING(Aufze.Bez1 ,"x(30)"). IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,069) = STRING(Aufze.Jahr,"9999"). IF Aufze.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,074) = STRING(Aufze.Alk_Gehalt,"zz9.9%"). SUBSTRING(VZeile,082) = STRING(Aufze.Artnr ,"999999"). IF FPreis THEN DO: SUBSTRING(VZeile,091) = STRING(Aufze.Preis ,">,>>9.999"). SUBSTRING(VZeile,100) = STRING(Aufze.Bru_Betr ,"->>>,>>9.99"). SUBSTRING(VZeile,112) = STRING(Aufze.WuCd ,"z9"). END. VZeile = SUBSTRING(VZeile,001,014) + BDrucker.Drufettb + SUBSTRING(VZeile,015,016) + BDrucker.Drufette + SUBSTRING(VZeile,031). { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: SUBSTRING(VZeile,040) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. IF Aufze.Aktion THEN DO: SUBSTRING(VZeile,040) = STRING(Aufze.Aktion_Text,"x(30)"). { v8/putstream.i "1" } END. DO WHILE FPreis: IF Aufze.Rab_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Rab_Wert). IF Aufze.Rab_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Rab_Betr < 0 THEN RabText = VZusText. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText. END. SUBSTRING(VZeile,040) = TRIM(RabText). IF Aufze.Rab_Art = 1 THEN SUBSTRING(VZeile,095) = STRING(RabWert,"->9.9%"). IF Aufze.Rab_Art = 2 OR Aufze.Rab_Art = 3 THEN SUBSTRING(VZeile,095) = STRING(RabWert,"-9.99"). SUBSTRING(VZeile,100) = STRING(- Aufze.Rab_Betr ,"->>>,>>9.99"). { v8/putstream.i "1" } LEAVE. END. DO WHILE FPreis: IF Aufze.Zus_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Zus_Wert). IF Aufze.Zus_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Zus_Betr < 0 THEN RabText = VRabText. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText. END. SUBSTRING(VZeile,040) = TRIM(RabText). IF Aufze.Zus_Art = 1 THEN SUBSTRING(VZeile,095) = STRING(RabWert,"->9.9%"). IF Aufze.Zus_Art = 2 OR Aufze.Zus_Art = 3 THEN SUBSTRING(VZeile,095) = STRING(RabWert,"-9.99"). SUBSTRING(VZeile,100) = STRING(+ Aufze.Zus_Betr ,"->>>,>>9.99"). { v8/putstream.i "1" } LEAVE. END. /* ---- Summengruppen-Total -------------------------------------------- */ IF Aufze.Rab_Su_Grp <> 0 THEN DO: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR. IF AVAILABLE TRabSumm THEN DO: TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab. END. END. /* ---- Warengruppen-Totale -------------------------------------------- */ FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp AND TUmsGrp.MWst = Aufze.WuCd NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR. CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp TUmsGrp.Mwst = Aufze.WuCd. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1. ELSE TUmsGrp.Bez = "??????????". END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Aufze.Net_Betr - Aufze.Auf_Rab - Aufze.Abh_Rab. IF Aufze.MRuek > 0 THEN DO: CREATE tRueckst. BUFFER-COPY tAufze TO tRueckst. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSSCHEIN_KOPF C-Win PROCEDURE AUFTRAGSSCHEIN_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR kk AS INT NO-UNDO. DEF VAR iAnzPal AS INT NO-UNDO. RUN NEUE_SEITE. IF VSeite = 1 THEN DO: SFaknr = BAufko.Aufnr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. END. ASSIGN VKopf = '' VZeile = '' kk = 3. { v8/putstream.i BLiDruck.Listkzz }. IF BAufko.Adresse[05] <> '' THEN DO: kk = kk + 2. DO ix = 1 TO 5: IF ix = 5 THEN SUBSTRING(VZeile,003) = Drufettb + BAufko.Adresse[ix] + Drufette. ELSE SUBSTRING(VZeile,003) = BAufko.Adresse[ix]. kk = kk + 1. VKopf[kk] = VZeile. VZeile = ''. END. END. ELSE DO: DO ix = 5 TO 11: IF ix = 11 THEN SUBSTRING(VZeile,003) = Drufettb + Adresse.Anschrift[ix] + Drufette. ELSE SUBSTRING(VZeile,003) = Adresse.Anschrift[ix]. kk = kk + 1. VKopf[kk] = VZeile. VZeile = ''. END. END. kk = 12. IF BAufko.Auf_Tot >= 0 THEN SUBSTRING(VKopf[kk],067) = TRIM(SUBSTRING(FormText[02],01,20)). ELSE SUBSTRING(VKopf[kk],067) = TRIM(SUBSTRING(FormText[02],21,20)). VKopf[kk] = VKopf[kk] + STRING(BAufko.Aufnr,"zz999999"). VKopf[kk] = SUBSTRING(VKopf[kk],001,066) + BDrucker.Drufettb + SUBSTRING(VKopf[kk],067) + BDrucker.Drufette. kk = kk + 2. IF VSeite = 1 THEN DO: RUN ABLADEVORSCHRIFT. IF XAblade <> '' THEN DO: SUBSTRING(VKopf[kk],003) = TRIM(SUBSTRING(FormText[19],01,20)) + TRIM(BDrucker.Drufettb) + ' ' + XAblade + TRIM(BDrucker.Drufette). VZeile = ''. kk = kk + 1. END. RUN WIRTESONNTAG. IF XWirtesonntag <> '' THEN DO: SUBSTRING(VKopf[kk],003) = TRIM(SUBSTRING(FormText[19],21,20)) + TRIM(BDrucker.Drufettb) + ' ' + XWirtesonntag + TRIM(BDrucker.Drufette). VZeile = ''. kk = kk + 1. END. SUBSTRING(VKopf[kk],003) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + STRING(BAufko.Auf_Datum,"99.99.9999"). SUBSTRING(VKopf[kk],034) = TRIM(SUBSTRING(FormText[08],01,20)) + STRING(BAufko.Knr,"zzzzzzz999999"). SUBSTRING(VKopf[kk],067) = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). VZeile = ''. kk = kk + 1. SUBSTRING(VKopf[kk],003) = TRIM(SUBSTRING(FormText[09],21,20)) + " " + STRING(BAufko.Lief_Datum,"99.99.9999"). SUBSTRING(VKopf[kk],034) = TRIM(SUBSTRING(FormText[08],21,20)) + STRING(BAufko.Gewicht,"z,zzz,zz9.999-"). SUBSTRING(VKopf[kk],067) = TRIM(SUBSTRING(FormText[20],01,20)) + STRING(VSeite,'z9'). VKopf[kk] = SUBSTRING(VKopf[kk],01,33) + BDrucker.Drufettb + SUBSTRING(VKopf[kk],34,33) + BDrucker.Drufette + SUBSTRING(VKopf[kk],67). VZeile = ''. kk = kk + 1. SUBSTRING(VKopf[kk],003) = TRIM(SUBSTRING(FormText[07],21,20)) + " " + STRING(BAufko.U_Ref,'x(20)'). SUBSTRING(VKopf[kk],067) = TRIM(SUBSTRING(FormText[08],41,20)) + " " + Adresse.Tel-1. VZeile = ''. END. ELSE DO: kk = kk + 2. SUBSTRING(VKopf[kk],067) = TRIM(SUBSTRING(FormText[20],01,20)) + STRING(VSeite,'z9'). kk = kk + 1. END. kk = kk + 2. VZeile = 'Inhalt Gebinde Menge Bezeichnung JG Alk% ArtNr Preis Betrag C'. SUBSTRING(VKopf[kk],003) = BDrucker.Druunterb + VZeile + BDrucker.Druuntere. SUBSTRING(VKopf[kk - 1],003) = BDrucker.Druunterb + FILL(' ', LENGTH(VZeile)) + BDrucker.Druuntere. VKopf[kk - 1] = BDrucker.Dru15cpi + BDrucker.Drufettb + VKopf[kk - 1] + BDrucker.Drufettb + BDrucker.Dru12cpi. VKopf[kk] = BDrucker.Dru15cpi + BDrucker.Drufettb + VKopf[kk] + BDrucker.Drufettb + BDrucker.Dru12cpi. kk = kk + 1. VZeile = ''. DO ix = 1 TO kk: VZeile = VKopf[ix]. { v8/putstream.i "1" }. END. IF VSeite = 1 AND BAufko.Abh_Text <> '' THEN DO: XAuf_Text = BAufko.Abh_Text. i2 = 0. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)): SUBSTRING(VZeile,003) = ENTRY(i1, XAuf_Text, CHR(10)). { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BAR-CODE-39 C-Win PROCEDURE BAR-CODE-39 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipWert AS CHAR NO-UNDO. DEF INPUT PARAMETER ipCodeArt AS CHAR NO-UNDO. DEF OUTPUT PARAMETER opBarCode AS CHAR NO-UNDO. DEF VAR clr AS LOG INIT TRUE NO-UNDO. DEF VAR wk AS CHAR NO-UNDO. DEF VAR drw AS CHAR NO-UNDO. DEF VAR cDir AS CHAR NO-UNDO. DEF VAR k AS CHAR NO-UNDO. DEF VAR att AS CHAR NO-UNDO. DEF VAR kod AS CHAR NO-UNDO INIT "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.Ø *$/+%". att = "100100001001100001101100000000110001100110000001110000000100101100100100" + "001100100000110100100001001001001001101001000000011001100011000001011000" + "000001101100001100001001100000011100100000011001000011101000010000010011" + "100010010001010010000000111100000110001000110000010110110000001011000001" + "111000000010010001110010000011010000010000101110000100011000100010010100" + "010101000010100010010001010000101010". DEF VAR i AS INT NO-UNDO. DEF VAR j AS INT NO-UNDO. DEF VAR l AS INT NO-UNDO. DEF VAR brd AS INT NO-UNDO. DEF VAR jst AS INT NO-UNDO. ASSIGN i = (IF SUBSTRING (ipCodeArt, 1, 1) = "P" THEN 1 ELSE 2) opBarCode = "~E&f0S~E*c100G" drw = SUBSTRING("ab" , i, 1) + SUBSTRING(ipCodeArt, 6) + SUBSTRING("ba" , i, 1) + "P" cDir = SUBSTRING("XY", i, 1) k = "*" + ipWert + "*" . DO i = 1 TO LENGTH(k): ASSIGN j = INDEX(kod, SUBSTRING (k, i, 1)) * 9 - 8 wk = SUBSTRING (att, j, 9) + "0" . DO l = 1 TO 10: ASSIGN brd = IF SUBSTRING(wk,l,1) = "0" THEN 2 ELSE 4 opBarCode = opBarCode + (IF clr THEN "~E*c" + SUBSTRING (ipCodeArt, brd, 2) + drw ELSE "~E*p+" + STRING(INTEGER(SUBSTRING(ipCodeArt, brd, 2)) + jst) + cDir) jst = INTEGER (SUBSTRING (ipCodeArt, brd, 2)) clr = NOT clr. END. /* of looping 1 to 10 */ END. /* of going through string 'k' */ ASSIGN opBarCode = opBarCode + "~E&f1S" wk = "". /* DEF INPUT PARAMETER ipWert AS CHAR NO-UNDO. DEF INPUT PARAMETER ipCodeArt AS CHAR NO-UNDO. DEF OUTPUT PARAMETER opBarCode AS CHAR NO-UNDO. DEF VAR clr AS LOG INIT TRUE NO-UNDO. DEF VAR wk AS CHAR NO-UNDO. DEF VAR drw AS CHAR NO-UNDO. DEF VAR cDir AS CHAR NO-UNDO. DEF VAR k AS CHAR NO-UNDO. DEF VAR att AS CHAR NO-UNDO. DEF VAR kod AS CHAR NO-UNDO INIT "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.Ï *$/+%". att = "100100001001100001101100000000110001100110000001110000000100101100100100" + "001100100000110100100001001001001001101001000000011001100011000001011000" + "000001101100001100001001100000011100100000011001000011101000010000010011" + "100010010001010010000000111100000110001000110000010110110000001011000001" + "111000000010010001110010000011010000010000101110000100011000100010010100" + "010101000010100010010001010000101010". DEF VAR i AS INT NO-UNDO. DEF VAR j AS INT NO-UNDO. DEF VAR l AS INT NO-UNDO. DEF VAR brd AS INT NO-UNDO. DEF VAR jst AS INT NO-UNDO. ASSIGN i = IF SUBSTRING (ipCodeArt, 1, 1) = "P" THEN 1 ELSE 2 opBarCode = "~E&f0S~E*c100G" drw = SUBSTRING("ab" , i, 1) + SUBSTRING(ipCodeArt, 6) + SUBSTRING("ba" , i, 1) + "P" cDir = SUBSTRING("XY", i, 1) k = "*" + ipWert + "*" . DO i = 1 TO LENGTH(k): ASSIGN j = INDEX(kod, SUBSTRING (k, i, 1)) * 9 - 8 wk = SUBSTRING (att, j, 9) + "0" . DO l = 1 TO 10: ASSIGN brd = IF SUBSTRING(wk,l,1) = "0" THEN 2 ELSE 4 opBarCode = opBarCode + (IF clr THEN "~E*c" + SUBSTRING (ipCodeArt, brd, 2) + drw ELSE "~E*p+" + STRING(INTEGER(SUBSTRING(ipCodeArt, brd, 2)) + jst) + cDir) jst = integer (SUBSTRING (ipCodeArt, brd, 2)) clr = NOT clr. END. /* of looping 1 to 10 */ END. /* of going through string 'k' */ ASSIGN opBarCode = opBarCode + "~E&f1S" wk = "". */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI C-Win _DEFAULT-DISABLE PROCEDURE disable_UI : /*------------------------------------------------------------------------------ Purpose: DISABLE the User Interface Parameters: Notes: Here we clean-up the user-interface by deleting dynamic widgets we have created and/or hide frames. This procedure is usually called when we are ready to "clean-up" after running. ------------------------------------------------------------------------------*/ /* Delete the WINDOW we created */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win) THEN DELETE WIDGET C-Win. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE C-Win PROCEDURE DRUCKAUSGABE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR AnzKopien AS INT NO-UNDO. DEF VAR sRecid AS RECID NO-UNDO. DEF VAR iSize AS INT NO-UNDO. IF BAufko.AlsOfferte THEN RETURN. AnzKopien = F_Kopie. IF AnzKopien = 0 THEN AnzKopien = 1. DO VCopy = 1 TO AnzKopien: sRecid = RECID(BSchrift). VSchacht = BLiDruck.Schacht. IF VSchacht > 0 THEN DO: IF VCopy < AnzKopien THEN VSchacht = 3. IF VCopy = AnzKopien THEN VSchacht = 2. END. IF VDokArt = 'SammFak' THEN DO: IF VCopy = AnzKopien THEN DO: FIND FIRST Schrift NO-LOCK WHERE Schrift.Schname = '\\SBSHUBER\GEMIS SCHACHT-2'. sRecid = RECID(Schrift). SESSION:PRINTER-NAME = Schrift.Schname. VSchacht = 0. END. ELSE DO: FIND FIRST Schrift NO-LOCK WHERE Schrift.Schname = '\\SBSHUBER\GEMIS SCHACHT-5'. sRecid = RECID(Schrift). SESSION:PRINTER-NAME = Schrift.Schname. VSchacht = 3. END. END. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTemp , sRecid , VSchacht , 240 , /* Blockgrösse */ 'ibm850' , 1 ). /* Anzahl Kopien */ IF iSize = 0 THEN DO: MESSAGE 'Druckvorgang gescheitert !!! ' VIEW-AS ALERT-BOX ERROR. END. ETIME(TRUE). DO WHILE ETIME(FALSE) < 250: END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE_VESR C-Win PROCEDURE DRUCKAUSGABE_VESR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF BAufko.AlsOfferte THEN RETURN. IF BAufko.Auf_Tot <= 0 THEN RETURN. IF NOT AVAILABLE XSchrift THEN RETURN. IF NOT AVAILABLE XDrucker THEN RETURN. IF XDrucker.Emul = 'TERMINAL' THEN RETURN. DEF VAR sRecid AS RECID NO-UNDO. DEF VAR iSize AS INT NO-UNDO. DEF VAR ja AS LOG NO-UNDO. sRecid = RECID(XSchrift). IF VBesr = 04 OR VBesr = 02 THEN DO: ja = DYNAMIC-FUNCTION('loadOCRBFont':U, XSchrift.Schname). IF NOT ja THEN DO: MESSAGE 'OCRB-Font konnte nicht geladen werden !!! ' VIEW-AS ALERT-BOX ERROR. END. VSchacht = 4. END. ELSE DO: VSchacht = 0. END. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTempVESR , sRecid , VSchacht , 300 , /* Blockgrösse */ 'ibm850' , 1 ). IF iSize = 0 THEN DO: MESSAGE 'Druckvorgang gescheitert !!! ' VIEW-AS ALERT-BOX ERROR. END. ETIME(TRUE). DO WHILE ETIME(FALSE) < 250: END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN C-Win PROCEDURE DRUCKEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR iSortZeile AS INT NO-UNDO. DEF VAR iAbPos AS INT NO-UNDO. DEF VAR iPlusMinus AS INT NO-UNDO. DEF VAR hbAufko AS HANDLE NO-UNDO. DEF VAR htTabTexte AS HANDLE NO-UNDO. DEF VAR cDruckers AS CHAR NO-UNDO. DEF VAR xDrucker AS CHAR NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: DEF VAR XFakArt AS INT NO-UNDO. DEF VAR XAufSta AS INT NO-UNDO. DEF VAR ARecid AS RECID NO-UNDO. DEF VAR BRecid AS RECID NO-UNDO. DEF VAR CRecid AS RECID NO-UNDO. DEF VAR cLagOrt AS CHAR NO-UNDO. DEF VAR xLagOrt AS CHAR NO-UNDO. DEF VAR cGeschoss AS CHAR NO-UNDO. DEF VAR kGeschoss AS CHAR INIT 'zz' NO-UNDO. FIND Tabel NO-LOCK WHERE RECID(Tabel) = TRecid. ARecid = Tabel.Int_1. BRecid = Tabel.Int_2. CRecid = Tabel.Int_3. VBesr = Tabel.Dec_1. VSchacht = Tabel.Dec_3. VDokArt = Tabel.Bez2. F_DokArt = Tabel.Bez2. cLagOrt = ''. IF Tabel.BezL <> '' THEN DO: DO ix = 1 TO NUM-ENTRIES(Tabel.BezL, ';'): CASE ix: WHEN 1 THEN VSchachtOrig = INTEGER(ENTRY(ix, Tabel.BezL, ';')). WHEN 2 THEN VSchachtKopi = INTEGER(ENTRY(ix, Tabel.BezL, ';')). WHEN 3 THEN VSchachtBesr = INTEGER(ENTRY(ix, Tabel.BezL, ';')). WHEN 4 THEN VBesr = INTEGER(ENTRY(ix, Tabel.BezL, ';')). END CASE. END. END. FIND BSteuer WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR. FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR. FIND BLiDruck WHERE RECID(BLiDruck) = BRecid NO-LOCK NO-ERROR. FIND BAufko WHERE RECID(BAufko) = CRecid NO-LOCK NO-ERROR. IF NOT AVAILABLE BAufko THEN RETURN ''. REPEAT TRANSACTION: RUN AUFTRAGSTOTAL ( BAufko.Aufnr, OUTPUT cString ) NO-ERROR. cString = RETURN-VALUE. IF RETURN-VALUE <> '' THEN DO: IF NOT fBatch THEN DO: MESSAGE 'Fehler beim Rechnen des Auftrags-Total' SKIP 'Fehler-Meldung: ' cString VIEW-AS ALERT-BOX. END. RETURN cString. END. LEAVE. END. hbAufko = BUFFER BAufko:HANDLE. htTabTexte = TEMP-TABLE tTabTexte:DEFAULT-BUFFER-HANDLE. RUN CREATE_TABTEXTE ( INPUT hbAufko, INPUT-OUTPUT htTabTexte ). IF BAufko.AlsOfferte THEN DO: ASSIGN F_DokArt = 'EXCEL_OFFERTE' fBatch = FALSE. END. F_Aufnr = BAufko.Aufnr. F_Faknr = BAufko.Faknr. F_Datum = BAufko.Fak_Datum. IF F_Datum = ? THEN F_Datum = TODAY. IF BAufko.Auf_Sta = 0 THEN VDokArt = 'RUESTSCHEIN'. IF BAufko.AlsOfferte THEN VDokArt = 'EXCEL_OFFERTE'. FDatum = F_Datum. VSort = BListen.Sort. IF NOT bAufko.AlsOfferte THEN DO: F_Drucker = BLiDruck.ListDru. F_Schrift = BLiDruck.ListBild. F_TZZ = BLiDruck.Listtzz. F_KZZ = BLiDruck.Listkzz. F_FZZ = BLiDruck.Listfzz. F_KOPIE = BLiDruck.ListCopy. DISPLAY {&List-1}. END. /* ------------------------------------------------------ */ /* Test auf Windows-Printers */ /* ------------------------------------------------------ */ EMPTY TEMP-TABLE tDrucker. cDruckers = SESSION:GET-PRINTERS(). DO ix = 1 TO NUM-ENTRIES(cDruckers, ','): CREATE tDrucker. ASSIGN tDrucker.cDrucker = ENTRY(ix, cDruckers, ','). END. FIND FIRST tDrucker WHERE tDrucker.cDrucker = F_Drucker NO-ERROR. IF NOT AVAILABLE tDrucker AND NOT bAufko.AlsOfferte THEN DO: IF fBatch THEN DO: REPEAT TRANSACTION: FIND Tabel WHERE RECID(Tabel) = tRecid. ASSIGN Tabel.Bez1 = ''. RELEASE Tabel. LEAVE. END. RETURN 'KeinDrucker'. END. ja = TRUE. MESSAGE 'Der gewünschte Drucker "' F_Drucker '" ist nicht verfügbar ' SKIP 'Bitte wählen Sie einen Drucker aus oder brechen Sie den Druck ab ' VIEW-AS ALERT-BOX INFORMATION BUTTONS YES-NO UPDATE ja. IF NOT Ja THEN RETURN 'KeinDrucker'. SYSTEM-DIALOG PRINTER-SETUP NUM-COPIES F_Kopie PORTRAIT UPDATE ja. IF NOT Ja THEN RETURN 'KeinDrucker'. xDrucker = SESSION:PRINTER-NAME. FIND FIRST Schrift NO-LOCK WHERE Schrift.Schname = xDrucker AND Schrift.SchBild = 'VIPER' NO-ERROR. IF NOT AVAILABLE Schrift THEN DO: REPEAT TRANSACTION: CREATE Schrift. ASSIGN Schrift.Schname = xDrucker Schrift.Schbild = 'VIPER' Schrift.Schdru = 'VIPER'. RELEASE Schrift. LEAVE. END. END. FIND FIRST Drucker NO-LOCK WHERE Drucker.Drucker = 'VIPER' NO-ERROR. IF NOT AVAILABLE Drucker THEN DO: REPEAT TRANSACTION: CREATE Drucker. ASSIGN Drucker.Drucker = 'VIPER' Drucker.Emul = 'POSTSCRIPT'. RELEASE Drucker. LEAVE. END. END. FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1 WHERE HilfsTab.Firma = GVFirma AND HilfsTab.Sort_1 = cBenutzer AND HilfsTab.Sort_2 = F_DokArt NO-ERROR. IF NOT AVAILABLE HilfsTab THEN DO: REPEAT TRANSACTION: CREATE HilfsTab. ASSIGN HilfsTab.Firma = GVFirma HilfsTab.Sort_1 = cBenutzer HilfsTab.Sort_2 = F_DokArt HilfsTab.Zeichen_1 = xDrucker HilfsTab.Zeichen_2 = 'VIPER' HilfsTab.Zahl[01] = 0 HilfsTab.Zahl[02] = 0 HilfsTab.Zahl[03] = 0 HilfsTab.Zahl[04] = 1 HilfsTab.Zahl[05] = 0 HilfsTab.Zahl[06] = 0 HilfsTab.Zahl[07] = 0 HilfsTab.Zahl[08] = 0. LEAVE. END. END. ELSE DO: IF HilfsTab.Zeichen_1 <> xDrucker THEN DO: REPEAT TRANSACTION: FIND CURRENT HilfsTab. ASSIGN HilfsTab.Zeichen_1 = xDrucker. RELEASE HilfsTab. LEAVE. END. END. END. ASSIGN F_Drucker = xDrucker F_Schrift = 'VIPER' F_TZZ = 0 F_KZZ = 0 F_FZZ = 0 F_KOPIE = 1. DISPLAY {&List-1}. END. ELSE IF NOT bAufko.AlsOfferte THEN SESSION:PRINTER-NAME = F_Drucker. F_Drucker = SESSION:PRINTER-NAME. DISPLAY F_Drucker. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAKART' NO-ERROR. /* IF AVAILABLE tTabTexte THEN F_Dokart = tTabTexte.cFeld1. */ FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'AUFSTATUS' NO-ERROR. IF AVAILABLE tTabTexte THEN F_Papier = tTabTexte.cFeld1. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. E_Adresse = ''. IF BAufko.Adresse[05] <> '' THEN DO: E_Adresse = CHR(10) + CHR(10) + BAufko.Adresse[01] + CHR(10) + BAufko.Adresse[02] + CHR(10) + BAufko.Adresse[03] + CHR(10) + BAufko.Adresse[04] + CHR(10) + BAufko.Adresse[05]. END. ELSE DO: E_Adresse = Adresse.Anschrift[03] + CHR(10) + Adresse.Anschrift[04] + CHR(10) + Adresse.Anschrift[05] + CHR(10) + Adresse.Anschrift[06] + CHR(10) + Adresse.Anschrift[07] + CHR(10) + Adresse.Anschrift[08] + CHR(10) + Adresse.Anschrift[09] + CHR(10) + Adresse.Anschrift[10]. END. DISPLAY {&List-1}. F_DokArt:BGCOLOR = 14. F_Papier:BGCOLOR = 14. FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAKART' NO-ERROR. IF NOT fBatch AND NOT BAufko.AlsOfferte THEN DO: IF tTabTexte.iFeld3 <> 4 OR VDokArt BEGINS 'Ruest' THEN DO: APPLY 'ENTRY' TO Btn_Drucken. WAIT-FOR CHOOSE OF Btn_Drucken OR CHOOSE OF Btn_Abbrechen. END. END. IF NOT DruckFlag THEN DO: REPEAT TRANSACTION: FIND BListen WHERE RECID(BListen) = ARecid. BListen.Listfl = ''. RELEASE BListen. LEAVE. END. RETURN ''. END. ASSIGN {&List-1}. RUN LIBILD. EMPTY TEMP-TABLE SAMMFAK. IF BAufko.Samm_Nr <> 0 AND NOT VDokArt BEGINS 'Ruest' THEN DO: RUN SAMMELSUCHEN. END. ELSE DO: CREATE SAMMFAK. ASSIGN SAMMFAK.Knr = BAufko.Fak_Knr SAMMFAK.Aufnr = BAufko.Aufnr SAMMFAK.Samm_Nr = BAufko.Aufnr SAMMFAK.RID = RECID(BAufko). END. VTemp = ''. VTempVESR = ''. IF NOT bAufko.AlsOfferte THEN RUN WORKFILE. IF DOpen = TRUE THEN OUTPUT STREAM Out_Stream TO VALUE(VTemp). IF VDokArt BEGINS 'Samm' THEN iLauf = F_Kopie. ELSE iLauf = 1. DO iZaehler = 1 TO iLauf: FOR EACH SAMMFAK BREAK BY SAMMFAK.Knr BY SAMMFAK.Samm_Nr BY SAMMFAK.Aufnr : FIND BAufko WHERE RECID(BAufko) = SAMMFAK.RID NO-LOCK NO-ERROR. F_Aufnr = BAufko.Aufnr. DISPLAY F_Aufnr WITH FRAME {&FRAME-NAME}. VWg_Grp = 0. VProd_Grp = 0. VArt_Grp = 0. VFak_Betr = 0. VPreis_Grp = BAufko.Preis_Grp. FErste = FALSE. EMPTY TEMP-TABLE tAufze. EMPTY TEMP-TABLE tRueckst. EMPTY TEMP-TABLE TGebKto. EMPTY TEMP-TABLE TRabSumm. EMPTY TEMP-TABLE TSpeRab. EMPTY TEMP-TABLE TGebuehr. EMPTY TEMP-TABLE tTexte . IF FIRST-OF ( SAMMFAK.Samm_Nr ) THEN DO: EMPTY TEMP-TABLE TUmsGrp. EMPTY TEMP-TABLE TFiliale. EMPTY TEMP-TABLE TMonat. EMPTY TEMP-TABLE TMonGeb. ASSIGN GTWpfl = 0 GTWust = 0 DTWpfl = 0 GTFak_Betr = 0 GTSk_Ber = 0 SFaknr = 0 FLetzt = FALSE FErste = TRUE TiDruck = TRUE VSeite = 0 VDetail = 0 iSortZeile = 9999 cLagOrt = '' cGeschoss = ''. END. RUN FUELLEN_tAufze ( BAufko.Aufnr ). xLagOrt = ''. FOR EACH tAufze USE-INDEX tAufze-k1 WHERE tAufze.Artnr > 0: FIND Artst NO-LOCK WHERE Artst.Firma = GVFirma AND Artst.Artnr = tAufze.Artnr AND Artst.Inhalt = tAufze.Inhalt AND Artst.Jahr = tAufze.Jahr . FIND bAufze NO-LOCK WHERE RECID(bAufze) = tAufze.Zeile. ASSIGN VWg_Grp = Artst.Wg_Grp VProd_Grp = Artst.Prod_Grp VArt_Grp = Artst.Art_Grp AArtnr = Artst.Artnr AInhalt = Artst.Inhalt. /* Spezial-Auftrags-Rabatt -------------------------------------------- */ IF bAufze.Auf_Sp_Grp > 0 THEN DO: FIND FIRST TSpeRab WHERE TSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp NO-ERROR. IF NOT AVAILABLE TSpeRab THEN DO: CREATE TSpeRab. ASSIGN TSpeRab.Rab_Grp = bAufze.Auf_Sp_Grp. END. TSpeRab.Auf_Betr = TSpeRab.Auf_Betr + bAufze.Auf_Sp_Rab. END. /* Summengruppen-Totale ------------------------------------------------ */ DO WHILE bAufze.Rab_Su_Grp > 0: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = bAufze.Rab_Su_Grp NO-ERROR. IF NOT AVAILABLE TRabSumm THEN DO: FIND FIRST RabSumm USE-INDEX RabSumm-k1 WHERE RabSumm.Firma = GVFirma AND RabSumm.Rab_Summ = bAufze.Rab_Su_Grp NO-LOCK NO-ERROR. IF NOT AVAILABLE RabSumm THEN LEAVE. CREATE TRabSumm. ASSIGN TRabSumm.Rab_Summ = bAufze.Rab_Su_Grp TRabSumm.Bez = RabSumm.Bez TRabSumm.Auf_Rab = 0 TRabSumm.Abh_Rab = 0. END. LEAVE. END. END. IF FIRST-OF( SAMMFAK.Samm_Nr ) THEN VSeite = 0. IF LAST-OF ( SAMMFAK.Samm_Nr ) THEN FLetzt = TRUE. RUN VALUE(VDokArt). IF RETURN-VALUE = 'ERROR' THEN RETURN ''. IF NOT FLetzt THEN NEXT. END. /* FOR EACH SAMMFAK */ END. /* ENDE iZaehler/iLauf */ IF DOpen THEN OUTPUT STREAM Out_Stream CLOSE. DOpen = FALSE. IF VDokArt <> 'Lieferschein' AND VDokArt <> 'Lieferpreis' AND VDokArt <> 'Faktura' AND VDokArt <> 'LieferFak' AND VDokArt <> 'FestFaktura' AND VDokArt <> 'SammFak' THEN RUN DRUCKAUSGABE. IF VTemp <> '' THEN OS-DELETE VALUE(VTemp). IF VTempVESR <> '' THEN DO: RUN DRUCKAUSGABE_VESR. OS-DELETE VALUE(VTempVESR) NO-ERROR. END. REPEAT TRANSACTION: FIND BListen WHERE RECID(BListen) = ARecid. BListen.Listfl = ''. RELEASE BListen. LEAVE. END. END. /* DO WITH FRAME */ RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI C-Win _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ DISPLAY F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier WITH FRAME DEFAULT-FRAME IN WINDOW C-Win. ENABLE RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite F_Papier Btn_Drucken Btn_Abbrechen WITH FRAME DEFAULT-FRAME IN WINDOW C-Win. {&OPEN-BROWSERS-IN-QUERY-DEFAULT-FRAME} VIEW C-Win. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_ARTIKELZEILE C-Win PROCEDURE EXCEL_ARTIKELZEILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. DEF INPUT-OUTPUT PARAMETER ioExZeile AS INT NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. DO WHILE Aufze.Artnr = 0: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ioExZeile, INPUT Aufze.Bez1 ). IF Aufze.Bez2 = '' THEN RETURN. ioExZeile = ioExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ioExZeile, INPUT Aufze.Bez2 ). RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'A', INPUT ioExZeile, INPUT KGebinde.KBez ). IF Aufze.VGeb_Me <> 0 THEN DO: cString = STRING(Aufze.VGeb_Me,'->>>') + 'x ' + STRING(VGebinde.KBez,'x(10)'). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B', INPUT ioExZeile, INPUT cString ). END. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ioExZeile, INPUT STRING(Aufze.MGeli,'->>>>>9') ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ioExZeile, INPUT Aufze.Bez1 ). IF Aufze.Jahr > 9 THEN RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ioExZeile, INPUT STRING(Aufze.Jahr,'9999') ). IF Aufze.Alk_Gehalt <> 0 THEN RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'F', INPUT ioExZeile, INPUT STRING(Aufze.Alk_Gehalt,'zz9.9%') ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'G', INPUT ioExZeile, INPUT STRING(Aufze.Artnr,'999999') ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ioExZeile, INPUT STRING(Aufze.Preis,'>>>>9.99') ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ioExZeile, INPUT STRING(Aufze.Bru_Betr,'->>>>>9.99') ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J', INPUT ioExZeile, INPUT STRING(Aufze.WuCd,'z9') ). IF Aufze.Bez2 <> '' THEN DO: ioExZeile = ioExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ioExZeile, INPUT Aufze.Bez2 ). END. IF Aufze.Aktion THEN DO: ioExZeile = ioExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ioExZeile, INPUT Aufze.Aktion_Text ). END. DO WHILE FPreis: IF Aufze.Rab_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Rab_Wert). IF Aufze.Rab_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Rab_Betr < 0 THEN RabText = VZusText. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText. END. ioExZeile = ioExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ioExZeile, INPUT TRIM(RabText) ). IF Aufze.Rab_Art = 1 THEN RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ioExZeile, INPUT TRIM(STRING(RabWert,"->9.9 %")) ). IF Aufze.Rab_Art = 2 OR Aufze.Rab_Art = 3 THEN RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ioExZeile, INPUT TRIM(STRING(RabWert,"->9.99 CHF")) ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ioExZeile, INPUT TRIM(STRING(- Aufze.Rab_Betr ,"->>>9.99")) ). LEAVE. END. DO WHILE FPreis: IF Aufze.Zus_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Zus_Wert). IF Aufze.Zus_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Zus_Betr < 0 THEN RabText = VRabText. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText. END. ioExZeile = ioExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ioExZeile, INPUT TRIM(RabText) ). IF Aufze.Zus_Art = 1 THEN RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ioExZeile, INPUT TRIM(STRING(RabWert,"->9.9 %")) ). IF Aufze.Zus_Art = 2 OR Aufze.Zus_Art = 3 THEN RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ioExZeile, INPUT TRIM(STRING(RabWert,"->9.99 CHF")) ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ioExZeile, INPUT TRIM(STRING(- Aufze.Zus_Betr ,"->>>9.99")) ). LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_GEBINDE_ABRECHNUNG C-Win PROCEDURE EXCEL_GEBINDE_ABRECHNUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR lTotal AS LOG NO-UNDO. DEF VAR dBetrag AS DEC NO-UNDO. lTotal = FALSE. i5 = 0. VZTot = 0. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 NO-LOCK: IF AufGKon.Eingang = 0 AND AufGKon.Ausgang = 0 THEN NEXT. IF i5 = 0 THEN ExZeile = ExZeile + 2. ELSE ExZeile = ExZeile + 1. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK. i1 = AufGKon.Ausgang. IF AufGKon.Depot = 0 AND AufGKon.Gebuehr = 0 THEN dBetrag = GebKonto.Depot + GebKonto.Gebuehr. ELSE dBetrag = AufGKon.Depot + AufGKon.Gebuehr. Rundbetr = i1 * dBetrag. VWC = AufGKon.MWSt_Cd. VZTot = VZTot + Rundbetr. cDaten = GebKonto.Bez. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>9")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(dBetrag,"->>>>9.999")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(Rundbetr,"->>>>9.999")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(VWC,"z9")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J', INPUT ExZeile, INPUT cDaten ). i5 = i5 + 1. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = VWC AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9990 AND TUmsGrp.Mwst = VWC NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = 9990 TUmsGrp.Mwst = VWC TUmsGrp.Bez = 'Gebinde-Kosten'. END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Rundbetr. END. IF i5 > 0 THEN lTotal = TRUE. IF lTotal THEN DO: ExZeile = ExZeile + 2. cDaten = TRIM(SUBSTRING(FormText[11],21,20)). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT cDaten ). cdaten = TRIM(STRING(VZTot,"->>>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). VFak_Betr = VFak_Betr + VZTot. END. IF NOT FSamm THEN DO: ExZeile = ExZeile + 2. cDaten = TRIM(SUBSTRING(FormText[15],21,20)). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(VFak_Betr,"->>>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_MEHRWERTSTEUER C-Win PROCEDURE EXCEL_MEHRWERTSTEUER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cDaten AS CHAR NO-UNDO. VWpfl = 0. VWust = 0. Zuszz = 0. DO ix = 1 TO 11: IF BAufko.WPfl[ix] = 0 THEN NEXT. VWpfl[ix] = BAufko.Wpfl[ix]. VWust[ix] = BAufko.Wust[ix]. END. ExZeile = ExZeile + 1. DO ix = 1 TO 11: IF VWpfl[ix] = 0 THEN NEXT. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = ix AND MWSTAns.Datum <= BAUfko.Kond_Datum NO-LOCK. ExZeile = ExZeile + 1. cDaten = MWSTAns.Bez. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(VWpfl[ix],"->>,>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(VWust[ix],"->>,>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(ix,"z9")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J', INPUT ExZeile, INPUT cDaten ). VFak_Betr = VFak_Betr + VWust[ix]. END. Rundbetr = VFak_Betr. Rundcode = 1. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ). VFak_Betr = Rundbetr. ExZeile = ExZeile + 2. cDaten = TRIM(FormText[16]). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(VFak_Betr,"->>,>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_OFFERTE C-Win PROCEDURE EXCEL_OFFERTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR io AS LOG NO-UNDO. DEF VAR ODatei AS CHAR NO-UNDO. DEF VAR cDaten AS CHAR NO-UNDO. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN RETURN NO-APPLY. oDatei = "Offerte_Huber.xls" + CHR(01) + "Offerte_Huber.xls". RUN CREATEDATEI ( INPUT oDatei ). oDatei = SESSION:TEMP-DIR + "Offerte_Huber.xls". RUN OPENEXCEL ( INPUT excelAppl, INPUT oDatei, INPUT '', OUTPUT io ). IF NOT io THEN DO: RUN RELEASEEXCEL ( INPUT excelAppl ). RETURN NO-APPLY. END. VFak_Betr = 0. LiKopf = FALSE. FPreis = TRUE. FBetrag = FALSE. FRabatt = FALSE. FSamm = FALSE. ExZeile = 5. VKopfArt = 'EXCEL_KOPF'. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. XTelnr = ''. IF DebInkl THEN DO: IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2. ELSE XTelnr = Adresse.Tel-1. END. ELSE DO: IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1. ELSE XTelnr = Adresse.Tel-2. END. F_Seite = VSeite. F_Faknr = BAufko.Aufnr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. VZeile = ''. IF BAufko.Adresse[05] <> '' THEN DO: DO ix = 1 TO 5: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT BAufko.Adresse[ix] ). ExZeile = ExZeile + 1. END. END. ELSE DO: DO ix = 7 TO 11: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT Adresse.Anschrift[ix] ). ExZeile = ExZeile + 1. END. END. cDaten = STRING(TODAY,'99.99.9999'). ExZeile = ExZeile + 2. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cDaten ). ExZeile = ExZeile + 3. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT STRING(F_Faknr,'>999999') ). ExZeile = ExZeile + 2. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT BAufko.U_Ref ). ExZeile = 21. ZEILEN: FOR EACH tAufze NO-LOCK BY tAufze.Aufnr BY tAufze.Sort1 BY tAufze.Sort2 BY tAufze.Sort3 BY tAufze.Artnr BY tAufze.Inhalt BY tAufze.Jahr BY tAufze.Pos : FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. RUN EXCEL_ARTIKELZEILE ( RECID(tAufze), INPUT-OUTPUT ExZeile ). ExZeile = ExZeile + 1. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. ExZeile = ExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT FormText[13] ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, TRIM(STRING(VFak_Betr,"->>>>9.99")) ). RUN EXCEL_SUMMENRABATTE. RUN GEBINDE_SALDO. RUN EXCEL_GEBINDE_ABRECHNUNG. RUN EXCEL_MEHRWERTSTEUER. ExZeile = ExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, TRIM(SUBSTRING(FormText[15],21,20)) ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, TRIM(STRING(VFak_Betr,'->>>>>9.99')) ). ExZeile = ExZeile + 2. FIND Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BAufko.Kond AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF AVAILABLE Kondi THEN DO: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, Kondi.Kotext ). END. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_SUMMENRABATTE C-Win PROCEDURE EXCEL_SUMMENRABATTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR RText AS CHAR FORMAT "x(20)" NO-UNDO. DEF VAR WText AS CHAR NO-UNDO. DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR lTotal AS LOG NO-UNDO. /* Auftragsrabatt ---------------------------------------------------- */ lTotal = FALSE. i5 = 0. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Auf_Rab. VFak_Betr = VFak_Betr - Rundbetr. IF NOT FRabatt THEN NEXT. IF i5 = 0 THEN ExZeile = ExZeile + 2. ELSE ExZeile = ExZeile + 1. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ. IF AufRabSu.F_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufRabSu.F_Wert). cDaten = RText + " " + TRabSumm.Bez + " " + STRING(RabWert,"z9.99- ") + WText. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT cDaten ). cDaten = STRING(- Rundbetr,"->>>>9.99"). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). i5 = i5 + 1. END. IF i5 > 0 THEN lTotal = TRUE. /* Abholrabatt ------------------------------------------------------- */ i5 = 0. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Abh_Rab. VFak_Betr = VFak_Betr - Rundbetr. IF NOT FRabatt THEN NEXT. IF i5 = 0 THEN ExZeile = ExZeile + 2. ELSE ExZeile = ExZeile + 1. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ. IF AufRabSu.A_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufRabSu.A_Wert). cDaten = RText + " " + TRabSumm.Bez + " " + STRING(RabWert,"z9.99- ") + WText. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT cDaten ). cDaten = STRING(- Rundbetr,"->>>>9.99"). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). i5 = i5 + 1. END. IF i5 > 0 THEN lTotal = TRUE. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */ i5 = 0. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0 BY TSpeRab.Rab_Grp: Rundbetr = TSpeRab.Auf_Betr. VFak_Betr = VFak_Betr - Rundbetr. IF NOT FRabatt THEN NEXT. IF i5 = 0 THEN ExZeile = ExZeile + 2. ELSE ExZeile = ExZeile + 1. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'ARABGRP' AND Tabel.CodeC = '' AND Tabel.CodeI = TSpeRab.Rab_Grp AND Tabel.Sprcd = 1 NO-LOCK. FIND FIRST AufSpRab USE-INDEX AufSpRab-k1 WHERE AufSpRab.Firma = BAufko.Firma AND AufSpRab.Aufnr = BAufko.Aufnr AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK. IF AufSpRab.Auf_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufSpRab.Auf_Wert). cDaten = RText + " " + TRabSumm.Bez + " " + STRING(RabWert,"z9.99- ") + WText. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT cDaten ). cDaten = STRING(- Rundbetr,"->>>>9.99"). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). i5 = i5 + 1. END. IF i5 > 0 THEN lTotal = TRUE. IF lTotal THEN DO: ExZeile = ExZeile + 1. cDaten = TRIM(SUBSTRING(FormText[14],21,20)). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(VFak_Betr,"->>>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). END. /* Recycling-Gebühren ------------------------------------------------ */ lTotal = FALSE. i5 = 0. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Gebuehr <> 0 AND AufGKon.Betrag <> 0 NO-LOCK: VFak_Betr = VFak_Betr + AufGKon.Betrag. IF NOT FRabatt THEN NEXT. IF i5 = 0 THEN ExZeile = ExZeile + 2. ELSE ExZeile = ExZeile + 1. VWC = AufGKon.MWSt_Cd. FIND GebKonto OF AufGKon NO-LOCK NO-ERROR. IF NOT AVAILABLE GebKonto THEN cDaten = TRIM(SUBSTRING(FormText[11],41,20)). ELSE cDaten = GebKonto.Bez. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>>9")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(AufGKon.Betrag,"->>>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(AufGKon.MWSt_Cd ,"z9")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J', INPUT ExZeile, INPUT cDaten ). FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = VWC AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9991 AND TUmsGrp.Mwst = VWC NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = 9991 TUmsGrp.Mwst = VWC TUmsGrp.Bez = 'Recycling-Gebühren'. END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag. i5 = i5 + 1. END. IF i5 > 0 THEN lTotal = TRUE. IF lTotal THEN DO: ExZeile = ExZeile + 1. cDaten = TRIM(SUBSTRING(FormText[14],21,20)). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(VFak_Betr,"->>>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA C-Win PROCEDURE FAKTURA : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cPDFName AS CHAR INIT '' NO-UNDO. DEF VAR xString AS CHAR NO-UNDO. DEF VAR lFirst AS LOG NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. VSeite = 0. VFak_Betr = 0. FPreis = TRUE. RUN AUFTRAGSTOTAL ( BAufko.Aufnr, OUTPUT cString ). RUN VIPER_INIT ( 'Faktura' ). IF RETURN-VALUE = 'ERROR' THEN RETURN 'ERROR'. RUN vpr_SetPrinterAttrib('copies=2'). RUN FAKTURA_KOPF. iArtZeile = 0. iVPagePos = vpr_getPageVPos() + 20. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ). FOR EACH tAufze NO-LOCK BY tAufze.Aufnr BY tAufze.Sort1 BY tAufze.LagOrt BY tAufze.Sort2 BY tAufze.Pos : FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ). VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ). iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(SUBSTRING(FormText[15],21,20)) ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ). iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', ' ' ). RUN VIPER_AUSGABE_ARTIKELZEILE. /* Auftragsrabatt ---------------------------------------------------- */ iArtZeile = 0. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Auf_Rab. VFak_Betr = VFak_Betr - Rundbetr. iArtZeile = iArtZeile + 1. xString = TRIM(SUBSTRING(FormText[11],01,20)) + " " + TRabSumm.Bez. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ). END. /* Abholrabatt ------------------------------------------------------- */ FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Abh_Rab. VFak_Betr = VFak_Betr - Rundbetr. iArtZeile = iArtZeile + 1. xString = TRIM(SUBSTRING(FormText[15],01,20)) + " " + TRabSumm.Bez. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ). END. IF iArtZeile > 0 THEN DO: iArtZeile = iArtZeile + 1. xString = TRIM(SUBSTRING(FormText[14],21,20)). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ). iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ). END. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1'). /* Recycling-Gebuehren ----------------------------------------------- */ iArtZeile = 0. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Gebuehr <> 0 AND AufGKon.Betrag <> 0 NO-LOCK: FIND GebKonto OF AufGKon NO-LOCK NO-ERROR. IF NOT AVAILABLE GebKonto THEN xString = TRIM(SUBSTRING(FormText[11],41,20)). ELSE xString = GebKonto.Bez. VWC = AufGKon.MWST_Cd. VFak_Betr = VFak_Betr + AufGKon.Betrag. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(AufGKon.Betrag,'->>>,>>9.99')) ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(AufGKon.MWSt_Cd,'z9') ). END. IF iArtZeile > 0 THEN DO: iArtZeile = iArtZeile + 1. xString = TRIM(SUBSTRING(FormText[14],41,20)). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ). iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ). END. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1'). /* Gebinde Aus- und Eingänge ---------------------------------------- */ FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 AND (AufGKon.Eingang <> 0 OR AufGKon.Ausgang <> 0) NO-LOCK: FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR. IF NOT AVAILABLE TGebKto THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = AufGKon.Firma AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK. CREATE TGebKto. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd TGebKto.Geb_Cd = GebKonto.Geb_Cd TGebKto.Bez = GebKonto.Bez TGebKto.Preis = AufGKon.Depot TGebKto.MWST_Cd = AufGKon.MWSt_Cd. END. TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis. TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis. END. /* Gebindelieferungen ------------------------------------------------ */ VZTot = 0. iArtZeile = 0. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 AND (AufGKon.Eingang <> 0 OR AufGKon.Ausgang <> 0) NO-LOCK BREAK BY AufgKon.Firma BY AufGKon.Aufnr: FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = AufGKon.Geb_Cd. i1 = AufGKon.Ausgang - AufGKon.Eingang. Rundbetr = AufGKon.Betrag. VWC = AufGKon.MWSt_Cd. VZTot = VZTot + Rundbetr. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ). RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ). RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ). RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ). IF FPreis THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.99")) ). END. IF iArtZeile > 0 AND FPreis THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot ,"->>>,>>9.99")) ). VFak_Betr = VFak_Betr + VZTot. IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung'). /* Auftragstext ------------------------------------------------------ */ XAuf_Text = BAufko.Auf_Text. IF XAuf_Text <> '' THEN DO: iVPagePos = vpr_getPageVPos() + 20. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ). DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)): RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ). RUN vpr_flushGroup ('Zusatztext'). END. END. /* Mehrwertsteuer ---------------------------------------------------- */ VWpfl = 0. VWust = 0. i1 = 2. DO ix = 1 TO 11: IF BAufko.WPfl[ix] = 0 THEN NEXT. VWpfl[ix] = BAufko.Wpfl[ix]. VWust[ix] = BAufko.Wust[ix]. VFak_Betr = VFak_Betr + VWust[ix]. i1 = i1 + 1. END. iVPagePos = vpr_getPageVPos(). IF (iVPagePos + (i1 * 40)) > iVMaxPos THEN DO: RUN VIPER_NEUE_SEITE. RUN VIPER_ADRESSE (''). END. iArtZeile = 1. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , ' ' ). DO ix = 1 TO 11: IF VWpfl[ix] = 0 THEN NEXT. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = ix AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , MWStAns.Bez ). RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstPfl' , TRIM(STRING(VWpfl[ix],"->>,>>9.99")) ). RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBetr', TRIM(STRING(VWust[ix],"->>>,>>9.99")) ). RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstCd' , TRIM(STRING(ix ,"->>,>>9")) ). END. RUN VIPER_AUSGABE_GRUPPE ( 'Mehrwertsteuer' ). /* Rechnungsbetrag --------------------------------------------------- */ Rundbetr = VFak_Betr. Rundcode = 1. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ). VFak_Betr = Rundbetr. iArtZeile = 1. RUN VIPER_CREATE_DOKUMENT ( 'RechnungsTotal', iArtZeile, 'EndBetrag', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ). RUN VIPER_AUSGABE_GRUPPE ( 'RechnungsTotal' ). /* Zahlungskondition ------------------------------------------------- */ FIND Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BAufko.Kond AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF AVAILABLE Kondi THEN DO: iArtZeile = 1. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', Kondi.KoText ). RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Faellig', STRING((FDatum + Kondi.Faellig),"99.99.9999") ). IF Kondi.Skonto[01] <> 0 THEN DO: Rundbetr = BAufko.Sk_Ber * Kondi.Skonto[01] / 100. Rundcode = 1. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ). RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Skonto', TRIM(STRING(Rundbetr,"->>>,>>9.99")) ). END. END. ELSE DO: iArtZeile = 1. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', FILL('?', 29) ). END. VFak_Betr = VFak_Betr - BAufko.Bar_Betr - BAufko.Bar_Skonto. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Netto', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ). RUN VIPER_AUSGABE_GRUPPE ( 'Kondition' ). VesrKnr = BAufko.Fak_Knr. VesrFnr = BAufko.Faknr. IF VFak_Betr = 0 THEN Rundbetr = -1. ELSE Rundbetr = VFak_Betr. IF AVAILABLE Kondi AND Kondi.Skonto[01] <> 0 THEN Rundbetr = 0. /* ------------------------------------------------------ */ /* Druckausgabe */ /* ------------------------------------------------------ */ RUN vpr_EndDoc. IF SESSION:PRINTER-NAME <> F_Drucker THEN DO: RUN vpr_printerDialog ( OUTPUT ja ). IF NOT ja THEN RETURN. END. ELSE DO: RUN vpr_selectPrinter(SESSION:PRINTER-NAME). END. RUN vpr_SetPrinterAttrib ('duplex=1'). RUN vpr_printDoc (0, 0). cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_&3', STRING(BAufko.Knr,'999999'), BAufko.Faknr, cvpr_Dokument). cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf'). RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ). RUN vpr_SaveDoc ( cvpr_Dokument ). /* RUN vpr_ShowDoc. RUN vpr_showPreview. DEF VAR o-i AS i NO-UNDO. RUN shellExecuteA (0, "open", cPDFName, "", "", 0, OUTPUT o-i). */ VesrKnr = BAufko.Fak_Knr. VesrFnr = BAufko.Faknr. VBesr = 4. IF VDokArt = 'FESTFAKTURA' THEN VBesr = 0. IF BAufko.Auf_Tot > 0 THEN DO: CASE VBesr: WHEN 1 THEN RUN VESR_DRUCK01. WHEN 2 THEN RUN VESR_DRUCK02. WHEN 3 THEN RUN VESR_DRUCK03. WHEN 4 THEN RUN VESR_DRUCK04. END CASE. END. RUN KOPF_MUTATION. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA_KOPF C-Win PROCEDURE FAKTURA_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR kk AS INT NO-UNDO. DEF VAR xString AS CHAR NO-UNDO. RUN VIPER_NEUE_SEITE. IF VSeite = 1 THEN DO: REPEAT WHILE BAufko.Faknr = 0 TRANSACTION: RUN "v8/steunr.p" ( INPUT 2, OUTPUT VFaknr ). IF RETURN-VALUE <> '' THEN NEXT. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko). Aufko.Faknr = VFaknr. RELEASE Aufko. END. SFaknr = BAufko.Faknr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. VBesrKopf = ''. IF BAufko.Adresse[05] <> '' THEN DO: i1 = 6. DO ix = 1 TO 5: CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99') tDokument.cInhalt = BAufko.Adresse[ix]. i1 = i1 + 1. VBesrKopf[i1] = BAufko.Adresse[ix]. END. END. ELSE DO: DO ix = 5 TO 11: CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Adresse_' + STRING(ix,'99') tDokument.cInhalt = Adresse.Anschrift[ix]. VBesrKopf[ix] = Adresse.Anschrift[ix]. END. END. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Ort_Datum' tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'T_Dokument' tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0 THEN TRIM(SUBSTRING(FormText[02],01,20)) ELSE TRIM(SUBSTRING(FormText[02],21,20))). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Aufnr' tDokument.cInhalt = STRING(SFaknr,'z999999'). FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Ablade' tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' '). FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'WISO' NO-ERROR. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'WirteSo' tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' '). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Auf_Datum' tDokument.cInhalt = STRING(BAufko.Auf_Datum,'99.99.9999'). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Lief_Datum' tDokument.cInhalt = STRING(BAufko.Lief_Datum,'99.99.9999'). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'U_Ref' tDokument.cInhalt = BAufko.U_Ref. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Knr' tDokument.cInhalt = STRING(BAufko.Knr,'999999'). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Telefon' tDokument.cInhalt = (IF Adresse.Tel-1 <> '' THEN Adresse.Tel-1 ELSE Adresse.Tel-2). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Gewicht' tDokument.cInhalt = TRIM(STRING(BAufko.Gewicht,'->>>,>>9.999')). END. RUN VIPER_ADRESSE ( xString ). IF VSeite = 1 AND BAufko.Abh_Text <> '' THEN DO: XAuf_Text = BAufko.Abh_Text. iVPagePos = vpr_getPageVPos() + 20. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ). DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)): RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ). RUN vpr_flushGroup ('Zusatztext'). END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FESTFAKTURA C-Win PROCEDURE FESTFAKTURA : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FPreis = TRUE. RUN FAKTURA. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_tAufze C-Win PROCEDURE FUELLEN_tAufze : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO. DEF VAR minPos AS INT NO-UNDO. DEF VAR maxPos AS INT NO-UNDO. DEF VAR jPlatz AS INT NO-UNDO. DEF VAR cLagOrt AS CHAR NO-UNDO. DEF VAR iRuestArt AS INT NO-UNDO. DEF VAR iPlusMinus AS INT NO-UNDO. DEF VAR lArtikel AS LOG NO-UNDO. EMPTY TEMP-TABLE tAufze. EMPTY TEMP-TABLE tRueckst. FIND Steuer NO-LOCK WHERE Steuer.Firma = GVFirma NO-ERROR. IF AVAILABLE Steuer THEN iRuestArt = Steuer.RuestArt. ASSIGN minPos = 0 maxPos = 9999. /* Kommentar zu Beginn eines Auftrages */ lArtikel = FALSE. FOR EACH Aufze NO-LOCK WHERE Aufze.Firma = GVFirma AND Aufze.Aufnr = ipAufnr AND Aufze.Pos > minPos: IF Aufze.Artnr > 0 THEN DO: lArtikel = TRUE. LEAVE. END. iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0). minPos = Aufze.Pos. CREATE tAufze. ASSIGN tAufze.Aufnr = Aufze.Aufnr tAufze.Artnr = Aufze.Artnr tAufze.Inhalt = Aufze.Inhalt tAufze.Jahr = Aufze.Jahr tAufze.Pos = Aufze.Pos tAufze.Zeile = RECID(Aufze) tAufze.Aktion = Aufze.Aktion tAufze.Preis = Aufze.Preis tAufze.MGeli = Aufze.MGeli tAufze.MRuek = Aufze.MRuek. ASSIGN tAufze.Sort1 = STRING(0,'99') tAufze.Sort2 = '' tAufze.Sort3 = STRING(tAufze.Artnr ,'999999') + STRING(tAufze.Inhalt,'9999') + STRING(tAufze.Jahr ,'9999') + STRING(iPlusMinus ,'9') + STRING(tAufze.Pos ,'99999'). tAufze.LagOrt = ''. END. /* Kommentar am Ende eines Auftrages */ IF lArtikel THEN DO: FOR EACH Aufze NO-LOCK WHERE Aufze.Firma = GVFirma AND Aufze.Aufnr = ipAufnr BY Aufze.Pos DESCENDING: IF Aufze.Artnr > 0 THEN LEAVE. iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0). maxPos = Aufze.Pos. CREATE tAufze. ASSIGN tAufze.Aufnr = Aufze.Aufnr tAufze.Artnr = Aufze.Artnr tAufze.Inhalt = Aufze.Inhalt tAufze.Jahr = Aufze.Jahr tAufze.Pos = Aufze.Pos tAufze.Zeile = RECID(Aufze) tAufze.Aktion = Aufze.Aktion tAufze.Preis = Aufze.Preis tAufze.MGeli = Aufze.MGeli tAufze.MRuek = Aufze.MRuek. ASSIGN tAufze.Sort1 = STRING(0,'99') tAufze.Sort2 = '' tAufze.Sort3 = STRING(tAufze.Artnr ,'999999') + STRING(tAufze.Inhalt,'9999') + STRING(tAufze.Jahr ,'9999') + STRING(iPlusMinus ,'9') + STRING(tAufze.Pos ,'99999'). tAufze.LagOrt = ''. END. END. /* Artikelzeilen nach Ruestplatz und Ort */ cLagOrt = ''. FOR EACH Aufze NO-LOCK WHERE Aufze.Firma = GVFirma AND Aufze.Aufnr = ipAufnr AND Aufze.Pos > minPos AND Aufze.Pos < MaxPos BY Aufze.Pos DESCENDING: IF Aufze.Artnr > 0 THEN DO: FIND ArtLager NO-LOCK WHERE ArtLager.Firma = Aufze.Firma AND ArtLager.Artnr = Aufze.Artnr AND ArtLager.Inhalt = Aufze.Inhalt AND ArtLager.Jahr = Aufze.Jahr AND ArtLager.Lager = Aufze.Lager. cLagOrt = ArtLager.Ort. END. iPlusMinus = (IF Aufze.MGeli < 0 THEN 1 ELSE 0). FIND LAST RuestPlatz USE-INDEX RuestPlatz-k2 WHERE RuestPlatz.Firma = Aufze.Firma AND RuestPlatz.RuestArt = iRuestArt AND RuestPlatz.abLagOrt <= cLagOrt NO-ERROR. IF NOT AVAILABLE RuestPlatz THEN jPlatz = 90. ELSE jPlatz = RuestPlatz.Platz. CREATE tAufze. ASSIGN tAufze.Aufnr = Aufze.Aufnr tAufze.Artnr = Aufze.Artnr tAufze.Inhalt = Aufze.Inhalt tAufze.Jahr = Aufze.Jahr tAufze.Pos = Aufze.Pos tAufze.Zeile = RECID(Aufze) tAufze.Aktion = Aufze.Aktion tAufze.Preis = Aufze.Preis tAufze.MGeli = Aufze.MGeli tAufze.MRuek = Aufze.MRuek. ASSIGN tAufze.Sort1 = STRING(jPlatz,'99') tAufze.Sort2 = cLagOrt tAufze.Sort3 = STRING(tAufze.Artnr ,'999999') + STRING(tAufze.Inhalt,'9999') + STRING(tAufze.Jahr ,'9999') + STRING(iPlusMinus ,'9') + STRING(tAufze.Pos ,'99999'). tAufze.LagOrt = cLagort. IF tAufze.MRuek > 0 THEN DO: CREATE tRueckst. BUFFER-COPY tAufze TO tRueckst. END. IF tAufze.Artnr > 0 AND tAufze.MGeli = 0 THEN DELETE tAufze. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_SALDO C-Win PROCEDURE GEBINDE_SALDO : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 AND AufGKon.Betrag <> 0 NO-LOCK: FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR. IF NOT AVAILABLE TGebKto THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = AufGKon.Firma AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK. CREATE TGebKto. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd TGebKto.Geb_Cd = GebKonto.Geb_Cd TGebKto.Bez = GebKonto.Bez TGebKto.Preis = AufGKon.Depot TGebKto.MWST_Cd = AufGKon.MWSt_Cd. END. TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis. TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF_MUTATION C-Win PROCEDURE KOPF_MUTATION : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO TRANSACTION WHILE TRUE: FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeC = '' AND Tabel.CodeI = BAufko.Fak_Art AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF Tabel.Int_3 > 2 THEN DO: FIND Aufko WHERE RECID(Aufko) = RECID(BAufko). Aufko.Fak_Datum = FDatum. Aufko.Faknr = SFaknr. RELEASE Aufko. END. RUN AUFTRAG_GEDRUCKT ( INPUT BAufko.Aufnr ). RELEASE Aufko. LEAVE. END. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko) NO-LOCK. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD C-Win PROCEDURE LIBILD : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR VProgName AS CHAR NO-UNDO. DEF VAR cDocArt AS CHAR NO-UNDO. CASE VDokArt: WHEN 'FESTFAKTURA' THEN cDocArt = 'FAKTURA'. OTHERWISE cDocArt = VDokArt. END CASE. VProgName = BSteuer.Fwc10 + ":" + cDocArt. FormText = "". FOR EACH LiBild NO-LOCK USE-INDEX LiBild-k1 WHERE LiBild.Sprcd = GVSprcd AND LiBild.Prog = VProgname AND LiBild.Tenr > 0 ix = 1 TO 40: FormText[ix] = LiBild.Litext. END. Fuell = SUBSTRING(FormText[01],01,01). Breite = INTEGER(SUBSTRING(FormText[01],02,03)). VRand = INTEGER(SUBSTRING(FormText[01],68,03)). Dattxt = SUBSTRING(FormText[01],05,10). Seitxt = SUBSTRING(FormText[01],15,10). Zeitxt = SUBSTRING(FormText[01],25,10). Firtxt = SUBSTRING(FormText[01],35,10). Jahtxt = SUBSTRING(FormText[01],45,10). Ueber1 = "". Ueber2 = "". Ueber3 = "". ap = 1. XDruDat = ?. VRabText = TRIM(SUBSTRING(FormText[21],01,20)). VZusText = TRIM(SUBSTRING(FormText[21],21,20)). VEpzText = TRIM(SUBSTRING(FormText[21],41,20)). SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. StBreite = LENGTH(VZeile). /* RZeile = FILL('|', Breite). SUBSTRING(RZeile,001) = STRING(' ',"x(06)"). SUBSTRING(RZeile,008) = STRING(' ',"x(03)"). SUBSTRING(RZeile,012) = STRING(' ',"x(08)"). SUBSTRING(RZeile,021) = STRING(' ',"x(05)"). SUBSTRING(RZeile,027) = STRING(' ',"x(08)"). SUBSTRING(RZeile,036) = STRING(' ',"x(35)"). SUBSTRING(RZeile,072) = STRING(' ',"x(02)"). SUBSTRING(RZeile,075) = STRING(' ',"x(07)"). SUBSTRING(RZeile,083) = STRING(' ',"x(10)"). SUBSTRING(RZeile,094) = STRING(' ',"x(02)"). RZeile = SUBSTRING(RZeile,01,StBreite). */ VZeile = ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK C-Win PROCEDURE LIEFERFAK : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cPDFName AS CHAR INIT '' NO-UNDO. DEF VAR xString AS CHAR NO-UNDO. DEF VAR lFirst AS LOG NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. VSeite = 0. VFak_Betr = 0. FPreis = TRUE. RUN AUFTRAGSTOTAL ( BAufko.Aufnr, OUTPUT cString ). RUN VIPER_INIT ( 'LieferFak' ). IF RETURN-VALUE = 'ERROR' THEN RETURN 'ERROR'. RUN vpr_SetPrinterAttrib('copies=2'). RUN LIEFERFAK_KOPF. iArtZeile = 0. iVPagePos = vpr_getPageVPos() + 50. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ). FOR EACH tAufze NO-LOCK BY tAufze.Aufnr BY tAufze.Sort1 BY tAufze.LagOrt BY tAufze.Sort2 BY tAufze.Pos : FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ). VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. IF FPreis = TRUE THEN DO: iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ). iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(SUBSTRING(FormText[15],21,20)) ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ). END. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', ' ' ). RUN VIPER_AUSGABE_ARTIKELZEILE. /* Auftragsrabatt ---------------------------------------------------- */ iArtZeile = 0. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Auf_Rab. VFak_Betr = VFak_Betr - Rundbetr. iArtZeile = iArtZeile + 1. xString = TRIM(SUBSTRING(FormText[11],01,20)) + " " + TRabSumm.Bez. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ). END. /* Abholrabatt ------------------------------------------------------- */ FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Abh_Rab. VFak_Betr = VFak_Betr - Rundbetr. iArtZeile = iArtZeile + 1. xString = TRIM(SUBSTRING(FormText[15],01,20)) + " " + TRabSumm.Bez. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ). END. IF iArtZeile > 0 THEN DO: iArtZeile = iArtZeile + 1. xString = TRIM(SUBSTRING(FormText[14],21,20)). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ). iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ). END. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1'). /* Recycling-Gebuehren ----------------------------------------------- */ iArtZeile = 0. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Gebuehr <> 0 AND AufGKon.Betrag <> 0 NO-LOCK: FIND GebKonto OF AufGKon NO-LOCK NO-ERROR. IF NOT AVAILABLE GebKonto THEN xString = TRIM(SUBSTRING(FormText[11],41,20)). ELSE xString = GebKonto.Bez. VWC = AufGKon.MWST_Cd. VFak_Betr = VFak_Betr + AufGKon.Betrag. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(AufGKon.Betrag,'->>>,>>9.999')) ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(AufGKon.MWSt_Cd,'z9') ). END. IF iArtZeile > 0 THEN DO: iArtZeile = iArtZeile + 1. xString = TRIM(SUBSTRING(FormText[14],41,20)). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.999')) ). iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ). END. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1'). /* Gebinde Aus- und Eingänge ---------------------------------------- */ FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 AND AufGKon.Betrag <> 0 NO-LOCK: FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR. IF NOT AVAILABLE TGebKto THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = AufGKon.Firma AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK. CREATE TGebKto. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd TGebKto.Geb_Cd = GebKonto.Geb_Cd TGebKto.Bez = GebKonto.Bez TGebKto.Preis = AufGKon.Depot TGebKto.MWST_Cd = AufGKon.MWSt_Cd. END. TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis. TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis. END. /* Gebindelieferungen ------------------------------------------------ */ VZTot = 0. iArtZeile = 0. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 AND (AufGKon.Eingang <> 0 OR AufGKon.Ausgang <> 0) NO-LOCK BREAK BY AufgKon.Firma BY AufGKon.Aufnr: FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = AufGKon.Geb_Cd. i1 = AufGKon.Ausgang - AufGKon.Eingang. Rundbetr = AufGKon.Betrag. VWC = AufGKon.MWSt_Cd. VZTot = VZTot + Rundbetr. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ). RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ). RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ). RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ). IF FPreis THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.999")) ). END. IF FPreis AND iArtZeile > 0 THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot,"->>,>>9.999")) ). VFak_Betr = VFak_Betr + VZTot. IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung'). /* Auftragstext ------------------------------------------------------ */ XAuf_Text = BAufko.Auf_Text. IF XAuf_Text <> '' THEN DO: iVPagePos = vpr_getPageVPos() + 20. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ). DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)): RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ). RUN vpr_flushGroup ('Zusatztext'). END. END. /* Mehrwertsteuer ---------------------------------------------------- */ VWpfl = 0. VWust = 0. i1 = 2. DO ix = 1 TO 11: IF BAufko.WPfl[ix] = 0 THEN NEXT. VWpfl[ix] = BAufko.Wpfl[ix]. VWust[ix] = BAufko.Wust[ix]. VFak_Betr = VFak_Betr + VWust[ix]. i1 = i1 + 1. END. iVPagePos = vpr_getPageVPos(). iVGroupPos = vpr_getGroupVPos('Gebindetabelle'). IF iVPagePos > (iVGroupPos - (i1 * 40)) THEN DO: RUN VIPER_NEUE_SEITE. RUN VIPER_ADRESSE (''). END. iArtZeile = 0. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', 1, 'MwstBez' , ' ' ). DO ix = 1 TO 11: IF VWpfl[ix] = 0 THEN NEXT. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = ix AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , MWStAns.Bez ). RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstPfl' , TRIM(STRING(VWpfl[ix],"->>,>>9.99")) ). RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBetr', TRIM(STRING(VWust[ix],"->>>,>>9.99")) ). RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstCd' , TRIM(STRING(ix ,"->>,>>9")) ). END. RUN VIPER_AUSGABE_GRUPPE ( 'Mehrwertsteuer' ). /* Rechnungsbetrag --------------------------------------------------- */ Rundbetr = VFak_Betr. Rundcode = 1. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ). VFak_Betr = Rundbetr. iArtZeile = 1. RUN VIPER_CREATE_DOKUMENT ( 'RechnungsTotal', iArtZeile, 'EndBetrag', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ). RUN VIPER_AUSGABE_GRUPPE ( 'RechnungsTotal' ). /* ------ RUECKSTAENDE ---------------------------------------------------- */ DO WHILE TRUE: FIND FIRST tRueckst NO-ERROR. IF NOT AVAILABLE tRueckst THEN LEAVE. iVPagePos = vpr_getPageVPos() + 150. IF iVPagePos > iVMaxPos THEN DO: RUN VIPER_NEUE_SEITE. RUN VIPER_ADRESSE (''). END. cString = 'Rückstände bitte neu bestellen'. iVPagePos = vpr_getPageVPos() + 50. RUN vpr_setGroupVPos ('Rueckstand', iVPagePos ). RUN vpr_setCellText ('RueckTitel', 'Rueckstand', cString ). RUN vpr_flushGroup ('Rueckstand'). iArtZeile = 1. FOR EACH tRueckst: RUN VIPER_RUECKSTAND ( RECID(tRueckst) ). END. RUN VIPER_AUSGABE_ARTIKELZEILE. LEAVE. END. /* Gebinderücknahmetabelle ------------------------------------------- */ iVPagePos = vpr_getPageVPos(). iVGroupPos = vpr_getGroupVPos('Gebindetabelle'). IF iVPagePos < iVGroupPos THEN RUN vpr_flushGroup('Gebindetabelle'). ELSE DO: RUN VIPER_NEUE_SEITE. RUN VIPER_ADRESSE (''). RUN vpr_flushGroup('Gebindetabelle'). END. /* ------------------------------------------------------ */ /* Druckausgabe */ /* ------------------------------------------------------ */ RUN vpr_EndDoc. IF SESSION:PRINTER-NAME <> F_Drucker THEN DO: RUN vpr_printerDialog ( OUTPUT ja ). IF NOT ja THEN RETURN. END. ELSE DO: RUN vpr_selectPrinter(SESSION:PRINTER-NAME). END. RUN vpr_printDoc (0, 0). cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_&3', STRING(BAufko.Knr ,'999999'), STRING(BAufko.Aufnr,'999999'), cvpr_Dokument). cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf'). RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ). RUN vpr_SaveDoc ( cvpr_Dokument ). /* RUN vpr_ShowDoc. RUN vpr_showPreview. DEF VAR o-i AS i NO-UNDO. RUN shellExecuteA (0, "open", cPDFName, "", "", 0, OUTPUT o-i). */ VesrKnr = BAufko.Fak_Knr. VesrFnr = BAufko.Faknr. VBesr = 4. Rundbetr = 0. CASE VBesr: WHEN 1 THEN RUN VESR_DRUCK01. WHEN 2 THEN RUN VESR_DRUCK02. WHEN 3 THEN RUN VESR_DRUCK03. WHEN 4 THEN RUN VESR_DRUCK04. END CASE. RUN KOPF_MUTATION. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK_KOPF C-Win PROCEDURE LIEFERFAK_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR kk AS INT NO-UNDO. DEF VAR xString AS CHAR NO-UNDO. DEF VAR cText AS CHAR NO-UNDO. RUN VIPER_NEUE_SEITE. IF VSeite = 1 THEN DO: REPEAT WHILE BAufko.Faknr = 0 TRANSACTION: RUN "v8/steunr.p" ( INPUT 2, OUTPUT VFaknr ). IF RETURN-VALUE <> '' THEN NEXT. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko). Aufko.Faknr = VFaknr. RELEASE Aufko. END. SFaknr = BAufko.Faknr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. VBesrKopf = ''. IF BAufko.Adresse[05] <> '' THEN DO: i1 = 6. DO ix = 1 TO 5: CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99') tDokument.cInhalt = BAufko.Adresse[ix]. i1 = i1 + 1. VBesrKopf[i1] = BAufko.Adresse[ix]. END. END. ELSE DO: DO ix = 5 TO 11: CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Adresse_' + STRING(ix,'99') tDokument.cInhalt = Adresse.Anschrift[ix]. VBesrKopf[ix] = Adresse.Anschrift[ix]. END. END. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Ort_Datum' tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'T_Dokument' tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0 THEN TRIM(SUBSTRING(FormText[02],01,20)) ELSE TRIM(SUBSTRING(FormText[02],21,20))). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Aufnr' tDokument.cInhalt = STRING(SFaknr,'z999999'). FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Ablade' tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' '). FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAHRER' NO-ERROR. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Chauffeur' tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld1 ELSE ' '). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Auf_Datum' tDokument.cInhalt = STRING(BAufko.Auf_Datum,'99.99.9999'). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Lief_Datum' tDokument.cInhalt = STRING(BAufko.Lief_Datum,'99.99.9999'). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'U_Ref' tDokument.cInhalt = BAufko.U_Ref. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Knr' tDokument.cInhalt = STRING(BAufko.Knr,'999999'). cText = ''. cText = (IF Adresse.Tel-1 <> '' THEN Adresse.Tel-1 ELSE Adresse.Tel-2). IF Adresse.Natel <> '' THEN cText = cText + (IF cText = '' THEN '' ELSE ' / ') + Adresse.Natel. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Telefon' tDokument.cInhalt = cText. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Gewicht' tDokument.cInhalt = TRIM(STRING(BAufko.Gewicht,'->>>,>>9.999')). END. RUN VIPER_ADRESSE ( xString ). IF VSeite = 1 AND BAufko.Abh_Text <> '' THEN DO: XAuf_Text = BAufko.Abh_Text. iVPagePos = vpr_getPageVPos() + 20. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ). DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)): RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ). RUN vpr_flushGroup ('Zusatztext'). END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERPREIS C-Win PROCEDURE LIEFERPREIS : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FPreis = TRUE. RUN LIEFERSCHEIN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN C-Win PROCEDURE LIEFERSCHEIN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cPDFName AS CHAR INIT '' NO-UNDO. DEF VAR xString AS CHAR NO-UNDO. DEF VAR lFirst AS LOG NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. VSeite = 0. VFak_Betr = 0. RUN VIPER_INIT ( 'Lieferschein' ). IF RETURN-VALUE = 'ERROR' THEN RETURN 'ERROR'. RUN vpr_SetPrinterAttrib('copies=2'). RUN LIEFERSCHEIN_KOPF. iArtZeile = 0. iVPagePos = vpr_getPageVPos() + 20. RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ). FOR EACH tAufze NO-LOCK BY tAufze.Aufnr BY tAufze.Sort1 BY tAufze.LagOrt BY tAufze.Sort2 BY tAufze.Pos : FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ). VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. IF FPreis = TRUE THEN DO: iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', '' ). iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(SUBSTRING(FormText[15],21,20)) ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ). END. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', ' ' ). RUN VIPER_AUSGABE_ARTIKELZEILE. /* Auftragsrabatt ---------------------------------------------------- */ FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Auf_Rab. VFak_Betr = VFak_Betr - Rundbetr. END. /* Abholrabatt ------------------------------------------------------- */ FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Abh_Rab. VFak_Betr = VFak_Betr - Rundbetr. END. /* Recycling-Gebuehren ----------------------------------------------- */ FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Gebuehr <> 0 AND AufGKon.Betrag <> 0 NO-LOCK: VWC = AufGKon.MWST_Cd. VFak_Betr = VFak_Betr + AufGKon.Betrag. WW[VWC] = WW[VWC] + AufGKon.Betrag. END. /* Gebinde Aus- und Eingänge ---------------------------------------- */ FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 AND AufGKon.Betrag <> 0 NO-LOCK: FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR. IF NOT AVAILABLE TGebKto THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = AufGKon.Firma AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK. CREATE TGebKto. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd TGebKto.Geb_Cd = GebKonto.Geb_Cd TGebKto.Bez = GebKonto.Bez TGebKto.Preis = AufGKon.Depot TGebKto.MWST_Cd = AufGKon.MWSt_Cd. END. TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis. TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis. END. /* Gebindelieferungen ------------------------------------------------ */ VZTot = 0. iArtZeile = 0. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 AND (AufGKon.Eingang <> 0 OR AufGKon.Ausgang <> 0) NO-LOCK BREAK BY AufgKon.Firma BY AufGKon.Aufnr: FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = AufGKon.Geb_Cd. i1 = AufGKon.Ausgang - AufGKon.Eingang. Rundbetr = AufGKon.Betrag. VWC = AufGKon.MWSt_Cd. VZTot = VZTot + Rundbetr. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ). RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ). RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ). RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ). IF FPreis THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.999")) ). END. IF FPreis AND iArtZeile > 0 THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot ,"->>>,>>9.999")) ). VFak_Betr = VFak_Betr + VZTot. IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung'). /* Auftragstext ------------------------------------------------------ */ XAuf_Text = BAufko.Auf_Text. IF XAuf_Text <> '' THEN DO: iVPagePos = vpr_getPageVPos() + 20. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ). DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)): RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ). RUN vpr_flushGroup ('Zusatztext'). END. END. /* ------ RUECKSTAENDE ---------------------------------------------------- */ DO WHILE TRUE: FIND FIRST tRueckst NO-ERROR. IF NOT AVAILABLE tRueckst THEN LEAVE. iVPagePos = vpr_getPageVPos() + 150. IF iVPagePos > iVMaxPos THEN DO: RUN VIPER_NEUE_SEITE. RUN VIPER_ADRESSE (''). END. cString = 'Rückstände bitte neu bestellen'. iVPagePos = vpr_getPageVPos() + 50. RUN vpr_setGroupVPos ('Rueckstand', iVPagePos ). RUN vpr_setCellText ('RueckTitel', 'Rueckstand', cString ). RUN vpr_flushGroup ('Rueckstand'). iArtZeile = 1. FOR EACH tRueckst: RUN VIPER_RUECKSTAND ( RECID(tRueckst) ). END. RUN VIPER_AUSGABE_ARTIKELZEILE. LEAVE. END. /* Gebinderücknahmetabelle ------------------------------------------- */ iVPagePos = vpr_getPageVPos(). iVGroupPos = vpr_getGroupVPos('Gebindetabelle'). IF iVPagePos < iVGroupPos THEN RUN vpr_flushGroup('Gebindetabelle'). ELSE DO: RUN VIPER_NEUE_SEITE. RUN VIPER_ADRESSE (''). RUN vpr_flushGroup('Gebindetabelle'). END. RUN KOPF_MUTATION. /* ------------------------------------------------------ */ /* Druckausgabe */ /* ------------------------------------------------------ */ RUN vpr_EndDoc. IF SESSION:PRINTER-NAME <> F_Drucker THEN DO: RUN vpr_printerDialog ( OUTPUT ja ). IF NOT ja THEN RETURN. END. ELSE DO: RUN vpr_selectPrinter(SESSION:PRINTER-NAME). END. DO ix = 1 TO F_Kopie: RUN vpr_printDoc (0, 0). END. cvpr_Dokument = SUBSTITUTE('Lieferscheine\&1-&2_&3', STRING(BAufko.Knr ,'999999'), STRING(BAufko.Aufnr,'999999'), cvpr_Dokument). cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf'). RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ). RUN vpr_SaveDoc ( cvpr_Dokument ). /* RUN vpr_ShowDoc. RUN vpr_showPreview. DEF VAR o-i AS i NO-UNDO. RUN shellExecuteA (0, "open", cPDFName, "", "", 0, OUTPUT o-i). */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN_KOPF C-Win PROCEDURE LIEFERSCHEIN_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR kk AS INT NO-UNDO. DEF VAR xString AS CHAR NO-UNDO. DEF VAR cText AS CHAR NO-UNDO. RUN VIPER_NEUE_SEITE. IF VSeite = 1 THEN DO: SFaknr = BAufko.Aufnr. EMPTY TEMP-TABLE tAdresse. CREATE tAdresse. FIND Adresse NO-LOCK USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Knr NO-ERROR. BUFFER-COPY Adresse TO tAdresse. FIND FIRST Ansprech NO-LOCK WHERE Ansprech.Firma = AdFirma AND Ansprech.Knr = BAufko.Knr AND Ansprech.Lieferschein = TRUE NO-ERROR. IF AVAILABLE Ansprech THEN DO: BUFFER-COPY Ansprech TO tAdresse. END. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = tAdresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. IF BAufko.Adresse[05] <> '' THEN DO: DO ix = 1 TO 5: CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99') tDokument.cInhalt = BAufko.Adresse[ix]. END. END. ELSE DO: DO ix = 5 TO 11: CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Adresse_' + STRING(ix,'99') tDokument.cInhalt = tAdresse.Anschrift[ix]. END. END. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Ort_Datum' tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'T_Dokument' tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0 THEN TRIM(SUBSTRING(FormText[02],01,20)) ELSE TRIM(SUBSTRING(FormText[02],21,20))). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Aufnr' tDokument.cInhalt = STRING(SFaknr,'z999999'). FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'ABLAD' NO-ERROR. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Ablade' tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld3 ELSE ' '). FIND FIRST tTabTexte WHERE tTabTexte.cRecArt = 'FAHRER' NO-ERROR. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Chauffeur' tDokument.cInhalt = (IF AVAILABLE tTabTexte THEN tTabTexte.cFeld1 ELSE ' '). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Auf_Datum' tDokument.cInhalt = STRING(BAufko.Auf_Datum,'99.99.9999'). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Lief_Datum' tDokument.cInhalt = STRING(BAufko.Lief_Datum,'99.99.9999'). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'U_Ref' tDokument.cInhalt = BAufko.U_Ref. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Knr' tDokument.cInhalt = STRING(BAufko.Knr,'999999'). cText = ''. cText = (IF tAdresse.Tel-1 <> '' THEN tAdresse.Tel-1 ELSE tAdresse.Tel-2). IF tAdresse.Natel <> '' THEN cText = cText + (IF cText = '' THEN '' ELSE ' / ') + tAdresse.Natel. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Telefon' tDokument.cInhalt = cText. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPFDETAIL' tDokument.iZeile = 1 tDokument.cFeld = 'Gewicht' tDokument.cInhalt = TRIM(STRING(BAufko.Gewicht,'->>>,>>9.999')). END. RUN VIPER_ADRESSE ( xString ). IF VSeite = 1 AND BAufko.Abh_Text <> '' THEN DO: XAuf_Text = BAufko.Abh_Text. iVPagePos = vpr_getPageVPos() + 20. RUN vpr_setGroupVPos ( 'Zusatztext', iVPagePos ). DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)): RUN vpr_setCellText ( 'Bemerkung_1', 'Zusatztext', ENTRY(i1, XAuf_Text, CHR(10)) ). RUN vpr_flushGroup ('Zusatztext'). END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_SEITE C-Win PROCEDURE NEUE_SEITE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR A AS INT NO-UNDO. DEF VAR B AS INT NO-UNDO. IF VSeite = 0 THEN DO: EMPTY TEMP-TABLE tDokument. END. DO WHILE VSeite > 0: IF DOpen THEN DO: PUT STREAM Out_Stream CONTROL CHR(12). LEAVE. END. A = BLiDruck.Listtzz. DO B = VLine TO A: VZNr = VZNr + 1. CREATE XTermOut. ASSIGN XTermOut.ZNr = VZNr XTermOut.Zeile = ''. END. LEAVE. END. VLine = 0. VSeite = VSeite + 1. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PRUEFZIFFER C-Win PROCEDURE PRUEFZIFFER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ /* ------------------------------------------------------------------------- */ /* Prufziffer MODULO 10, Rekursiv (27 Stellig Ref.-Nr.) */ /* ------------------------------------------------------------------------- */ /* */ /* Uebergabe Variable: 1. String Betrag (12-stellig) */ /* 2. String Referenz (27-stellig) */ /* 3. String Teilnehmernummer ( 9-stellig) */ /* */ /* Erstellung der VESR-Codierzeile */ /* */ /*---------------------------------------------------------------------------*/ DEF INPUT-OUTPUT PARAMETER PZBetrag AS CHAR FORMAT "x(13)". DEF INPUT-OUTPUT PARAMETER PZReferenz AS CHAR FORMAT "x(27)". DEF INPUT-OUTPUT PARAMETER PZTNummer AS CHAR FORMAT "x(09)". DEF OUTPUT PARAMETER VSZeile AS CHAR FORMAT "x(58)". DEF VAR l1 AS INT. DEF VAR l2 AS INT. DEF VAR l3 AS INT. DEF VAR PZ AS INT. DEF VAR x1 AS INT. DEF VAR x2 AS INT. DEF VAR x3 AS INT. DEF VAR VMOD10 AS CHAR FORMAT "x(11)" EXTENT 11. VMOD10[01] = "09468271350". VMOD10[02] = "94682713509". VMOD10[03] = "46827135098". VMOD10[04] = "68271350947". VMOD10[05] = "82713509466". VMOD10[06] = "27135094685". VMOD10[07] = "71350946824". VMOD10[08] = "13509468273". VMOD10[09] = "35094682712". VMOD10[10] = "50946827131". l1 = 12. l2 = 26. l3 = 08. DO WHILE SUBSTRING(PZBetrag,01,01) <> " ": /* Mit Betrag */ x2 = 1. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)). x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)). DO x3 = 2 TO 12: x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)). x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)). END. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)). SUBSTRING(PZBetrag,13) = STRING(PZ,"9"). LEAVE. END. DO WHILE SUBSTRING(PZBetrag,01,01) = " ": /* Ohne Betrag */ x2 = 11. x1 = INT(SUBSTRING(PZBetrag ,01 ,01)). x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)). DO x3 = 12 TO 12: x1 = INT(SUBSTRING(PZBetrag ,x3 ,01)). x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)). END. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)). SUBSTRING(PZBetrag,13) = STRING(PZ,"9"). LEAVE. END. DO WHILE l2 = 26: x2 = 1. x1 = INT(SUBSTRING(PZReferenz,01 ,01)). x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)). DO x3 = 2 TO 26: x1 = INT(SUBSTRING(PZReferenz ,x3 ,01)). x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)). END. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)). SUBSTRING(PZReferenz,27) = STRING(PZ,"9"). LEAVE. END. DO WHILE l3 = 08: x2 = 1. x1 = INT(SUBSTRING(PZTNummer ,01 ,01)). x2 = INT(SUBSTRING(VMOD10[x2],x1 + 1,01)). DO x3 = 2 TO 08: x1 = INT(SUBSTRING(PZTNummer ,x3 ,01)). x2 = INT(SUBSTRING(VMOD10[x2 + 1],x1 + 1,01)). END. PZ = INT(SUBSTRING(VMOD10[x2 + 1],11,1)). SUBSTRING(PZTNummer,09) = STRING(PZ,"9"). LEAVE. END. VSZeile = "". SUBSTRING(VSZeile,01) = PZBetrag. SUBSTRING(VSZeile,14) = ">". SUBSTRING(VSZeile,15) = PZReferenz. SUBSTRING(VSZeile,42) = "+ ". SUBSTRING(VSZeile,44) = PZTNummer. SUBSTRING(VSZeile,53) = ">". /* SUBSTRING(VSZeile,58) = "H". */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUEST C-Win PROCEDURE RUEST : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VSeite = 0. VFak_Betr = 0. FPreis = FALSE. lRuestText = FALSE. FOR EACH tAufze NO-LOCK BREAK BY tAufze.Aufnr BY tAufze.Sort1 BY tAufze.Sort2 BY tAufze.Sort3 BY tAufze.Pos : IF FIRST-OF ( tAufze.Sort1 ) THEN DO: /* TiDruck = TRUE. */ END. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz OR TiDruck THEN DO: RUN RUEST_KOPF ( tAufze.Aufnr, tAufze.Sort1 ). END. IF FIRST-OF ( tAufze.Sort1 ) AND NOT tAufze.Sort1 BEGINS 'aa' THEN DO: VZeile = ''. { v8/putstream.i "1" } VZeile = FILL('=', 95). CASE tAufze.Sort1: WHEN 'za' THEN SUBSTRING(VZeile,30) = ' OBERGESCHOSS '. WHEN 'zb' THEN SUBSTRING(VZeile,30) = ' ERDGESCHOSS '. WHEN 'zc' THEN SUBSTRING(VZeile,30) = ' UNTERGESCHOSS '. WHEN 'zz' THEN SUBSTRING(VZeile,30) = ' SPIRITUOSEN '. END. { v8/putstream.i "2" } END. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. RUN ARTIKELZEILE_RUEST ( RECID(tAufze) ). VFak_Betr = VFak_Betr + Aufze.Net_Betr. /* IF LAST-OF ( tAufze.Sort1) THEN DO: IF tAufze.Sort1 BEGINS 'aa' THEN lRuesttext = TRUE. IF NOT LAST-OF ( tAufze.Aufnr ) AND NOT lRuesttext THEN DO: VZeile = ''. { v8/putstream.i "1" } VZeile = FILL('=', 95). { v8/putstream.i "2" } END. END. */ END. { v8/putstream.i "1" } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUESTSCHEIN C-Win PROCEDURE RUESTSCHEIN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN AUFTRAGSSCHEIN. DEF VAR cStockwerk AS CHAR INIT ';;;;;;;;;'. DEF VAR lPrintOpen AS LOG INIT FALSE NO-UNDO. VSeite = 0. VFak_Betr = 0. FPreis = FALSE. lRuestText = FALSE. FOR EACH tAufze NO-LOCK BREAK BY tAufze.Aufnr BY tAufze.Sort1 BY tAufze.Sort2 BY tAufze.Sort3 BY tAufze.Pos : IF FIRST-OF ( tAufze.Sort1 ) AND NOT tAufze.Sort1 BEGINS 'aa' AND NOT lRuestText THEN DO: TiDruck = TRUE. lRuestText = FALSE. END. IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz OR TiDruck THEN DO: RUN RUESTSCHEIN_KOPF ( tAufze.Aufnr, tAufze.Sort1 ). END. IF FIRST-OF ( tAufze.Sort1 ) AND NOT tAufze.Sort1 BEGINS 'aa' THEN DO: VZeile = ''. { v8/putstream.i "1" } VZeile = FILL('=', 95). CASE tAufze.Sort1: WHEN 'za' THEN SUBSTRING(VZeile,30) = ' OBERGESCHOSS '. WHEN 'zb' THEN SUBSTRING(VZeile,30) = ' ERDGESCHOSS '. WHEN 'zc' THEN SUBSTRING(VZeile,30) = ' UNTERGESCHOSS '. WHEN 'zz' THEN SUBSTRING(VZeile,30) = ' SPIRITUOSEN '. END. CASE tAufze.Sort1: WHEN 'za' THEN ENTRY(1, cStockwerk, ';') = 'X'. WHEN 'zb' THEN ENTRY(2, cStockwerk, ';') = 'X'. WHEN 'zc' THEN ENTRY(3, cStockwerk, ';') = 'X'. WHEN 'zz' THEN ENTRY(4, cStockwerk, ';') = 'X'. END. { v8/putstream.i "2" } END. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. RUN ARTIKELZEILE_RUESTSCHEIN( RECID(tAufze) ). VFak_Betr = VFak_Betr + Aufze.Net_Betr. IF LAST-OF ( tAufze.Sort1) THEN DO: IF tAufze.Sort1 BEGINS 'aa' THEN lRuesttext = TRUE. ELSE lRuesttext = FALSE. IF NOT LAST-OF ( tAufze.Aufnr ) AND NOT lRuesttext THEN DO: VZeile = ''. { v8/putstream.i "1" } VZeile = FILL('=', 95). { v8/putstream.i "2" } END. END. END. { v8/putstream.i "1" } REPEAT TRANSACTION: FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'GERUEST' AND Tabel.CodeI = BAufko.Aufnr AND Tabel.CodeC = '' AND Tabel.Sprcd = 1 NO-ERROR. IF NOT AVAILABLE Tabel THEN DO: CREATE Tabel. ASSIGN Tabel.Firma = GVFirma Tabel.RecArt = 'GERUEST' Tabel.CodeI = BAufko.Aufnr Tabel.CodeC = '' Tabel.Sprcd = 1 NO-ERROR. END. ASSIGN Tabel.Bez1 = cStockwerk. IF Tabel.Bez2 = '' THEN Tabel.Bez2 = ';;;;;;;;;'. RELEASE Tabel. LEAVE. END. /* RUN KOPF_MUTATION. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUESTSCHEIN_KOPF C-Win PROCEDURE RUESTSCHEIN_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO. DEF INPUT PARAMETER ipStock AS CHAR NO-UNDO. DEF VAR cAufnr AS CHAR NO-UNDO. DEF VAR oBarCode AS CHAR NO-UNDO. DEF BUFFER btAufze FOR tAufze. /* DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO. */ /* P = Portrait */ /* L = Landscape */ DEF VAR cCodeArt AS CHAR INIT 'P0210200' NO-UNDO. RUN NEUE_SEITE. TiDruck = FALSE. IF ipStock BEGINS 'aa' THEN DO: FIND FIRST btAufze NO-LOCK WHERE btAufze.Aufnr = ipAufnr AND btAufze.Sort1 BEGINS 'z' NO-ERROR. IF AVAILABLE btAufze THEN ipStock = btAufze.Sort1. END. PUT STREAM Out_Stream CONTROL BDrucker.Dru15cpi. PUT STREAM Out_Stream CONTROL CHR(27) '&k2G'. CASE ipStock: WHEN 'za' THEN cAufnr = STRING(BAufko.Aufnr,'9999999') + '/' + '1'. WHEN 'zb' THEN cAufnr = STRING(BAufko.Aufnr,'9999999') + '/' + '2'. WHEN 'zc' THEN cAufnr = STRING(BAufko.Aufnr,'9999999') + '/' + '3'. WHEN 'zz' THEN cAufnr = STRING(BAufko.Aufnr,'9999999') + '/' + '4'. END CASE. RUN BAR-CODE-39 ( INPUT cAufnr , INPUT cCodeArt, OUTPUT oBarCode ). oBarCode = CHR(027) + "*p" + "100y" + "100X" + oBarCode + CHR(027) + "*p" + "405y" + "260X" + BDrucker.Drufettb + BDrucker.Dru10cpi + BDrucker.Drufettb + cAufnr + BDrucker.Drufette + BDrucker.Dru15cpi + BDrucker.Drufette + CHR(027) + "*p" + "0y" + "0X". PUT STREAM Out_Stream CONTROL oBarCode. IF VSeite = 1 THEN DO: FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. END. VZeile = ''. { v8/putstream.i BLiDruck.Listkzz }. IF BAufko.Adresse[05] <> '' THEN DO: DO ix = 1 TO 5: SUBSTRING(VZeile,050) = BAufko.Adresse[ix]. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. { v8/putstream.i "2" } END. ELSE DO: DO ix = 6 TO 12: SUBSTRING(VZeile,050) = Adresse.Anschrift[ix]. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. END. IF BAufko.Auf_Tot >= 0 THEN SUBSTRING(VZeile,001) = SUBSTRING(FormText[02],01,20). ELSE SUBSTRING(VZeile,001) = SUBSTRING(FormText[02],21,20). SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). { v8/putstream.i "2" } IF VSeite = 1 THEN DO: RUN ABLADEVORSCHRIFT. SUBSTRING(VZeile,008) = XAblade. SUBSTRING(VZeile,066) = TRIM(SUBSTRING(FormText[08],21,20)) + STRING(BAufko.Gewicht,"zz,zz9.999-"). VZeile = TRIM(BDrucker.Drufettb) + SUBSTRING(VZeile,001,65) + TRIM(BDrucker.Drufette) + SUBSTRING(VZeile,066). { v8/putstream.i "1" } SUBSTRING(VZeile,008) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + STRING(BAufko.Auf_Datum,"99.99.9999"). SUBSTRING(VZeile,038) = TRIM(SUBSTRING(FormText[08],01,20)) + STRING(BAufko.Knr,"z999999"). SUBSTRING(VZeile,066) = TRIM(SUBSTRING(FormText[08],41,20)) + " " + Adresse.Tel-1. { v8/putstream.i "1" } SUBSTRING(VZeile,008) = TRIM(SUBSTRING(FormText[09],21,20)) + " " + STRING(BAufko.Lief_Datum,"99.99.9999"). SUBSTRING(VZeile,038) = TRIM(SUBSTRING(FormText[09],01,20)) + " ". /* Lieferart */ { v8/putstream.i "1" } SUBSTRING(VZeile,008) = TRIM(SUBSTRING(FormText[07],21,20)) + " " + STRING(BAufko.U_Ref,'x(20)'). { v8/putstream.i "2" } END. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[03],01,70)). SUBSTRING(VZeile,071) = TRIM(SUBSTRING(FormText[04],01,70)). { v8/putstreamf.i "2" } IF VSeite = 1 AND BAufko.Abh_Text <> '' THEN DO: XAuf_Text = BAufko.Abh_Text. i2 = 0. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)): SUBSTRING(VZeile,008) = ENTRY(i1, XAuf_Text, CHR(10)). { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. END. DO WHILE VSeite > 1: { v8/putstream.i "1" } LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUEST_KOPF C-Win PROCEDURE RUEST_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipAufnr AS INT NO-UNDO. DEF INPUT PARAMETER ipStock AS CHAR NO-UNDO. DEF VAR cAufnr AS CHAR NO-UNDO. DEF VAR oBarCode AS CHAR NO-UNDO. DEF BUFFER btAufze FOR tAufze. /* DEF VAR cCodeArt AS CHAR INIT 'P0205075' NO-UNDO. */ /* P = Portrait */ /* L = Landscape */ DEF VAR cCodeArt AS CHAR INIT 'P0210150' NO-UNDO. RUN NEUE_SEITE. TiDruck = FALSE. IF ipStock BEGINS 'aa' THEN DO: FIND FIRST btAufze NO-LOCK WHERE btAufze.Aufnr = ipAufnr AND btAufze.Sort1 BEGINS 'z' NO-ERROR. IF AVAILABLE btAufze THEN ipStock = btAufze.Sort1. END. PUT STREAM Out_Stream CONTROL BDrucker.Dru15cpi. PUT STREAM Out_Stream CONTROL CHR(27) '&k2G'. CASE ipStock: WHEN 'za' THEN cAufnr = STRING(BAufko.Aufnr,'9999999') + '/' + '1'. WHEN 'zb' THEN cAufnr = STRING(BAufko.Aufnr,'9999999') + '/' + '2'. WHEN 'zc' THEN cAufnr = STRING(BAufko.Aufnr,'9999999') + '/' + '3'. WHEN 'zz' THEN cAufnr = STRING(BAufko.Aufnr,'9999999') + '/' + '4'. END CASE. cAufnr = (IF NUM-ENTRIES(cAufnr, '/') > 1 THEN ENTRY(1, cAufnr, '/') ELSE cAufnr). RUN BAR-CODE-39 ( INPUT cAufnr , INPUT cCodeArt, OUTPUT oBarCode ). oBarCode = CHR(027) + "*p" + "100y" + "100X" + oBarCode + CHR(027) + "*p" + "405y" + "260X" + BDrucker.Drufettb + BDrucker.Dru10cpi + BDrucker.Drufettb + cAufnr + BDrucker.Drufette + BDrucker.Dru15cpi + BDrucker.Drufette + CHR(027) + "*p" + "0y" + "0X". PUT STREAM Out_Stream CONTROL oBarCode. IF VSeite = 1 THEN DO: FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. END. VZeile = ''. { v8/putstream.i BLiDruck.Listkzz }. IF BAufko.Adresse[05] <> '' THEN DO: DO ix = 1 TO 5: SUBSTRING(VZeile,050) = BAufko.Adresse[ix]. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. { v8/putstream.i "2" } END. ELSE DO: DO ix = 6 TO 12: SUBSTRING(VZeile,050) = Adresse.Anschrift[ix]. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. END. IF BAufko.Auf_Tot >= 0 THEN SUBSTRING(VZeile,001) = SUBSTRING(FormText[02],01,20). ELSE SUBSTRING(VZeile,001) = SUBSTRING(FormText[02],21,20). SUBSTRING(VZeile,030) = STRING(BAufko.Aufnr,"999999") + " " + STRING(VSeite,"zz9"). SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). VZeile = TRIM(BDrucker.Drufettb) + SUBSTRING(VZeile,01,49) + TRIM(BDrucker.Drufette) + SUBSTRING(VZeile,50). { v8/putstream.i "2" } IF VSeite = 1 THEN DO: RUN ABLADEVORSCHRIFT. SUBSTRING(VZeile,008) = XAblade. SUBSTRING(VZeile,066) = TRIM(SUBSTRING(FormText[08],21,20)) + STRING(BAufko.Gewicht,"zz,zz9.999-"). VZeile = TRIM(BDrucker.Drufettb) + SUBSTRING(VZeile,001,65) + TRIM(BDrucker.Drufette) + SUBSTRING(VZeile,066). { v8/putstream.i "1" } SUBSTRING(VZeile,008) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + STRING(BAufko.Auf_Datum,"99.99.9999"). SUBSTRING(VZeile,038) = TRIM(SUBSTRING(FormText[08],01,20)) + STRING(BAufko.Knr,"z999999"). SUBSTRING(VZeile,066) = TRIM(SUBSTRING(FormText[08],41,20)) + " " + Adresse.Tel-1. { v8/putstream.i "1" } SUBSTRING(VZeile,008) = TRIM(SUBSTRING(FormText[09],21,20)) + " " + STRING(BAufko.Lief_Datum,"99.99.9999"). SUBSTRING(VZeile,038) = TRIM(SUBSTRING(FormText[09],01,20)) + " ". /* Lieferart */ { v8/putstream.i "1" } SUBSTRING(VZeile,008) = TRIM(SUBSTRING(FormText[07],21,20)) + " " + STRING(BAufko.U_Ref,'x(20)'). { v8/putstream.i "2" } END. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[03],01,70)). SUBSTRING(VZeile,071) = TRIM(SUBSTRING(FormText[04],01,70)). { v8/putstreamf.i "2" } IF VSeite = 1 AND BAufko.Abh_Text <> '' THEN DO: XAuf_Text = BAufko.Abh_Text. i2 = 0. DO i1 = 1 TO NUM-ENTRIES(XAuf_Text, CHR(10)): SUBSTRING(VZeile,008) = ENTRY(i1, XAuf_Text, CHR(10)). { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. END. DO WHILE VSeite > 1: { v8/putstream.i "5" } LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMELSUCHEN C-Win PROCEDURE SAMMELSUCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. DEF BUFFER sAufko FOR Aufko. FIND FIRST SAMMFAK WHERE SAMMFAK.Knr = BAufko.Fak_Knr AND SAMMFAK.Samm_Nr = BAufko.Samm_Nr NO-ERROR. IF AVAILABLE SAMMFAK THEN RETURN. REPEAT TRANSACTION: FOR EACH Aufko NO-LOCK USE-INDEX Aufko-k5 WHERE Aufko.Firma = BAufko.Firma AND Aufko.Fak_Art = BAufko.Fak_Art AND Aufko.Samm_Nr = BAufko.Samm_Nr : IF Aufko.Auf_Sta < 4 THEN DO: FIND xAufko WHERE RECID(xAufko) = RECID(Aufko). xAufko.Faknr = 0. RELEASE xAufko. NEXT. END. CREATE SAMMFAK. ASSIGN SAMMFAK.Knr = Aufko.Fak_Knr SAMMFAK.Aufnr = Aufko.Aufnr SAMMFAK.Samm_Nr = Aufko.Samm_Nr SAMMFAK.RID = RECID(Aufko). END. LEAVE. END. FOR EACH SammFak: RUN AUFTRAGSTOTAL ( SammFak.Aufnr, OUTPUT cString ) NO-ERROR. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK C-Win PROCEDURE SAMMFAK : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR xString AS CHAR NO-UNDO. DEF VAR lFirst AS LOG NO-UNDO. DEF VAR cLAdresse AS CHAR NO-UNDO. DEF VAR RText AS CHAR NO-UNDO. DEF VAR WText AS CHAR NO-UNDO. VFak_Betr = 0. FPreis = TRUE. IF VSeite = 0 THEN RUN VIPER_INIT ( 'SammFak' ). RUN SAMMFAK_KOPF. iVPagePos = vpr_getPageVPos() + 20. RUN vpr_setGroupVPos ( 'FetteZeile', iVPagePos ). iArtZeile = 1. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', TRIM(SUBSTRING(FormText[18],01,20)) ). RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_2_Fett', TRIM(STRING(BAufko.Aufnr,"zzzzzzzzz9")) ). iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', TRIM(SUBSTRING(FormText[17],21,20)) ). RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_2_Fett', TRIM(STRING(BAufko.Auf_Datum,"99.99.9999")) ). iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', ' ' ). DO WHILE TRUE: lFirst = TRUE. cLAdresse = ''. IF BAufko.Knr = BAufko.Fak_Knr AND NOT FDebst.Passant THEN LEAVE. DO ix = 1 TO 5: IF BAufko.Adresse[ix] = '' THEN NEXT. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', BAufko.Adresse[ix] ). lFirst = FALSE. END. IF NOT lFirst THEN LEAVE. IF BAufko.Knr = BAufko.Fak_Knr THEN LEAVE. FIND LAdresse NO-LOCK WHERE LAdresse.Firma = AdFirma AND LAdresse.Knr = BAufko.Knr NO-ERROR. IF NOT AVAILABLE LAdresse THEN LEAVE. DO ix = 1 TO 12: IF LAdresse.Anschrift[ix] = '' THEN NEXT. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', LAdresse.Anschrift[ix] ). lFirst = FALSE. END. LEAVE. END. IF NOT lFirst THEN DO: iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett', ' ' ). END. RUN VIPER_AUSGABE_GRUPPE ( 'FetteZeile' ). iArtZeile = 0. iVPagePos = vpr_getPageVPos(). RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ). FOR EACH tAufze NO-LOCK BY tAufze.Aufnr BY tAufze.Sort1 BY tAufze.LagOrt BY tAufze.Sort2 BY tAufze.Pos : FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. RUN VIPER_ARTIKELZEILE ( RECID(tAufze) ). VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , TRIM(SUBSTRING(FormText[10],41,20)) ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ). iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , ' ' ). RUN VIPER_AUSGABE_ARTIKELZEILE. /* Auftragsrabatt ---------------------------------------------------- */ iArtZeile = 0. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Auf_Rab. VFak_Betr = VFak_Betr - Rundbetr. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. xString = RText + " " + TRabSumm.Bez. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ. RabWert = ABSOLUT(AufRabSu.F_Wert). IF AufRabSu.F_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". xString = STRING(RabWert,"z9.99-") + WText. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ). END. /* Abholrabatt ------------------------------------------------------- */ FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Abh_Rab. VFak_Betr = VFak_Betr - Rundbetr. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. xString = RText + " " + TRabSumm.Bez. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ. RabWert = ABSOLUT(AufRabSu.A_Wert). IF AufRabSu.A_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". xString = STRING(RabWert,"z9.99-") + WText. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ). END. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */ FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0 BY TSpeRab.Rab_Grp: FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'ARABGRP' AND Tabel.CodeC = '' AND Tabel.CodeI = TSpeRab.Rab_Grp AND Tabel.Sprcd = 1 NO-LOCK. Rundbetr = TSpeRab.Auf_Betr. VFak_Betr = VFak_Betr - Rundbetr. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. xString = RText + " " + Tabel.Bez1. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). FIND FIRST AufSpRab USE-INDEX AufSpRab-k1 WHERE AufSpRab.Firma = BAufko.Firma AND AufSpRab.Aufnr = BAufko.Aufnr AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK. RabWert = ABSOLUT(AufSpRab.Auf_Wert). IF AufSpRab.Auf_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". xString = STRING(RabWert,"z9.99-") + WText. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Rundbetr,'->>>,>>9.99')) ). END. IF iArtZeile > 0 THEN DO: iArtZeile = iArtZeile + 1. xString = TRIM(SUBSTRING(FormText[14],21,20)). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.99')) ). END. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1'). /* Recycling-Gebuehren ----------------------------------------------- */ iArtZeile = 0. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Gebuehr <> 0 AND AufGKon.Betrag <> 0 NO-LOCK: FIND GebKonto OF AufGKon NO-LOCK NO-ERROR. IF NOT AVAILABLE GebKonto THEN xString = TRIM(SUBSTRING(FormText[11],41,20)). ELSE xString = GebKonto.Bez. VWC = AufGKon.MWST_Cd. VFak_Betr = VFak_Betr + AufGKon.Betrag. FIND LAST MwstAns NO-LOCK WHERE MwstAns.Mwst_Cd = VWC AND MwstAns.Datum <= BAufko.Fak_Datum NO-ERROR. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(AufGKon.Betrag,'->>>,>>9.999')) ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(AufGKon.MWSt_Cd,'z9') ). FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 1000 AND TUmsGrp.Mwst = VWC AND TUmsGrp.Ansatz = MwstAns.Ansatz NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = 1000 NO-LOCK NO-ERROR. CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = 1000 TUmsGrp.Mwst = VWC TUmsGrp.Ansatz = MwstAns.Ansatz TUmsGrp.Bez = (IF AVAILABLE WarenGrp THEN WarenGrp.Bez1 ELSE 'Recyclinggebühren'). END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag. END. IF iArtZeile > 0 THEN DO: iArtZeile = iArtZeile + 1. xString = TRIM(SUBSTRING(FormText[14],41,20)). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', xString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(VFak_Betr,'->>>,>>9.999')) ). END. RUN VIPER_AUSGABE_GRUPPE ('ArtikelZeile1'). /* Gebindelieferungen ------------------------------------------------ */ VZTot = 0. iArtZeile = 0. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 AND (AufGKon.Eingang <> 0 OR AufGKon.Ausgang <> 0) NO-LOCK: VWC = AufGKon.MWSt_Cd. FIND LAST MwstAns NO-LOCK WHERE MwstAns.Mwst_Cd = VWC AND MwstAns.Datum <= BAufko.Fak_Datum NO-ERROR. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 1001 AND TUmsGrp.Mwst = VWC AND TUmsGrp.Ansatz = MwstAns.Ansatz NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: FIND WarenGrp NO-LOCK USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = 1001 NO-ERROR. CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = 1001 TUmsGrp.Mwst = VWC TUmsGrp.Ansatz = MwstAns.Ansatz TUmsGrp.Bez = (IF AVAILABLE WarenGrp THEN WarenGrp.Bez1 ELSE 'Gebindesaldo'). END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag. FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = AufGKon.Geb_Cd. i1 = AufGKon.Ausgang - AufGKon.Eingang. Rundbetr = AufGKon.Betrag. VZTot = VZTot + Rundbetr. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'Gebindetext' , GebKonto.Bez ). RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeGel' , TRIM(STRING(AufGKon.Ausgang,"->>,>>9")) ). RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeRet' , TRIM(STRING(AufGKon.Eingang,"->>,>>9")) ). RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeSaldo', TRIM(STRING(i1 ,"->>,>>9")) ). RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeBetr' , TRIM(STRING(Rundbetr ,"->>,>>9.999")) ). END. IF iArtZeile > 0 THEN RUN VIPER_CREATE_DOKUMENT ( 'Gebindeabrechnung', iArtZeile, 'GebindeTot' , TRIM(STRING(VZTot,"->>,>>9.999")) ). VFak_Betr = VFak_Betr + VZTot. IF iArtZeile > 0 THEN RUN VIPER_AUSGABE_GRUPPE ('Gebindeabrechnung'). DO ix = 1 TO 12: GTWpfl[ix] = GTWpfl[ix] + BAufko.Wpfl[ix]. GTWust[ix] = GTWust[ix] + BAufko.Wust[ix]. END. GTFak_Betr = GTFak_Betr + VFak_Betr. GTSk_Ber = GTSk_Ber + BAufko.Sk_Ber. iArtZeile = 1. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , TRIM(SUBSTRING(FormText[15],21,20)) ). RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Betrag_Fett', TRIM(STRING(VFak_Betr,"->>>,>>9.99")) ). IF FLetzt THEN DO: iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , ' ' ). iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , TRIM(SUBSTRING(FormText[14],01,20)) ). RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Betrag_Fett', TRIM(STRING(GTFak_Betr,"->>>,>>9.999")) ). END. iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'FetteZeile', iArtZeile, 'Bez_1_Fett' , ' ' ). RUN VIPER_AUSGABE_GRUPPE ( 'FetteZeile' ). /* Kopfmutation -------------------------------------------------- */ DO TRANSACTION WHILE TRUE: IF izaehler < iLauf THEN LEAVE. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko). Aufko.Fak_Datum = FDatum. Aufko.Faknr = SFaknr. Aufko.Gedruckt = TRUE. XVAufnr = Aufko.Aufnr. IF tTabTexte.iFeld1 > Aufko.Fak_Art THEN Aufko.Fak_Art = tTabTexte.iFeld1. IF tTabTexte.iFeld2 > Aufko.Auf_Sta THEN Aufko.Auf_Sta = tTabTexte.iFeld2. RELEASE Aufko. LEAVE. END. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko) NO-LOCK. TiDruck = FALSE. IF FLetzt THEN RUN SAMMFAK_ENDE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_ENDE C-Win PROCEDURE SAMMFAK_ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cPDFName AS CHAR INIT '' NO-UNDO. DEF VAR iSpace AS INT INIT 0 NO-UNDO. DEF VAR iPos AS INT NO-UNDO. DEF VAR iKopie AS INT NO-UNDO. iPos = vpr_getPageVPos(). iArtZeile = 1. iSpace = iSpace + 40. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , ' ' ). DO ix = 1 TO 11: IF GTWpfl[ix] = 0 THEN NEXT. GTFak_Betr = GTFak_Betr + GTWust[ix]. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = ix AND MWSTAns.Datum <= BAufko.Kond_Datum NO-LOCK. iArtZeile = iArtZeile + 1. iSpace = iSpace + 40. RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBez' , MWStAns.Bez ). RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstPfl' , TRIM(STRING(GTWpfl[ix],"->>,>>9.99")) ). RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstBetr', TRIM(STRING(GTWust[ix],"->>>,>>9.99")) ). RUN VIPER_CREATE_DOKUMENT ( 'Mehrwertsteuer', iArtZeile, 'MwstCd' , TRIM(STRING(ix ,">>9")) ). END. IF (iSpace + iPos + 80) >= iVMaxPos THEN DO: RUN vpr_NewPage. RUN vpr_InitGroups(''). IF iZaehler = iLauf THEN RUN vpr_initGraphObj. VSeite = VSeite + 1. RUN VIPER_ADRESSE (VDokArt). END. RUN VIPER_AUSGABE_GRUPPE ( 'Mehrwertsteuer' ). Rundbetr = GTFak_Betr. Rundcode = 1. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ). GTFak_Betr = Rundbetr. iArtZeile = 1. RUN VIPER_CREATE_DOKUMENT ( 'RechnungsTotal', iArtZeile, 'EndBetrag' , TRIM(STRING(GTFak_Betr,"->,>>>,>>9.99")) ). RUN VIPER_AUSGABE_GRUPPE ( 'RechnungsTotal' ). iArtZeile = 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , TRIM(SUBSTRING(Helptext[15],41,20)) ). FOR EACH TUmsGrp NO-LOCK BY TUmsGrp.Ums_Grp BY TUmsGrp.Mwst : iArtZeile = iArtZeile + 1. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1' , TUmsGrp.Bez ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%' , BSteuer.Fwc03 ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis' , TRIM(STRING(TUmsGrp.Ums_Betr,"->>>,>>9.99")) ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(TUmsGrp.Ansatz ,">9.99%")) ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC' , TRIM(STRING(TUmsGrp.Mwst ,"z9")) ). END. RUN VIPER_AUSGABE_GRUPPE ( 'ArtikelZeile1' ). /* Zahlungskondition ------------------------------------------------- */ FIND Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BAufko.Kond AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF AVAILABLE Kondi THEN DO: iArtZeile = 1. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', Kondi.KoText ). RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Faellig', STRING((FDatum + Kondi.Faellig),"99.99.9999") ). IF Kondi.Skonto[01] <> 0 THEN DO: Rundbetr = GTSk_Ber * Kondi.Skonto[01] / 100. Rundcode = 1. RUN RUNDEN ( Rundcode, INPUT-OUTPUT Rundbetr ). RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Skonto', TRIM(STRING(Rundbetr,"->>>,>>9.99")) ). END. END. ELSE DO: iArtZeile = 1. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Zahkond', FILL('?', 29) ). END. VFak_Betr = VFak_Betr - BAufko.Bar_Betr - BAufko.Bar_Skonto. RUN VIPER_CREATE_DOKUMENT ( 'Kondition', iArtZeile, 'Netto', TRIM(STRING(GTFak_Betr,"->>>,>>9.99")) ). RUN VIPER_AUSGABE_GRUPPE ( 'Kondition' ). IF GTFak_Betr = 0 THEN Rundbetr = -1. ELSE Rundbetr = GTFak_Betr. VesrKnr = BAufko.Fak_Knr. VesrFnr = BAufko.Faknr. IF AVAILABLE Kondi AND Kondi.Skonto[01] <> 0 THEN Rundbetr = 0. /* Abschluss und Druck ----------------------------------------------- */ IF iZaehler < iLauf THEN RETURN. IF VBesr > 0 THEN RUN VIPER_BESR ( 'BESR' ). /* ------------------------------------------------------ */ /* Druckausgabe */ /* ------------------------------------------------------ */ RUN vpr_EndDoc. IF SESSION:PRINTER-NAME <> F_Drucker THEN DO: RUN vpr_printerDialog ( OUTPUT ja ). IF NOT ja THEN RETURN. END. ELSE DO: RUN vpr_selectPrinter(SESSION:PRINTER-NAME). END. RUN vpr_SetPrinterAttrib('copies=1'). RUN vpr_printDoc (0, 0). cvpr_Dokument = SUBSTITUTE('Rechnungen\&1-&2_&3', STRING(BAufko.Knr ,'999999'), STRING(BAufko.Faknr,'999999'), cvpr_Dokument). cPDFName = REPLACE(cvpr_Dokument, '.vpr', '.pdf'). IF iZaehler = iLauf THEN DO: RUN vpr_printPDF (0, 0, INPUT-OUTPUT cPDFName ). RUN vpr_SaveDoc ( cvpr_Dokument ). END. /* IF GTFak_Betr > 0 THEN DO: CASE VBesr: WHEN 1 THEN RUN VESR_DRUCK01. WHEN 2 THEN RUN VESR_DRUCK02. WHEN 3 THEN RUN VESR_DRUCK03. WHEN 4 THEN RUN VESR_DRUCK04. END CASE. END. */ /* DEF VAR o-i AS i NO-UNDO. RUN shellExecuteA (0, "open", cPDFName, "", "", 0, OUTPUT o-i). */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_KOPF C-Win PROCEDURE SAMMFAK_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR kk AS INT NO-UNDO. DEF VAR xString AS CHAR NO-UNDO. DEF VAR iSeite AS INT NO-UNDO. iSeite = VSeite. RUN VIPER_NEUE_SEITE. IF VSeite = 1 AND VSeite > iSeite THEN DO: REPEAT WHILE BAufko.Faknr = 0 TRANSACTION: RUN "v8/steunr.p" ( INPUT 2, OUTPUT VFaknr ). IF RETURN-VALUE <> '' THEN NEXT. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko). Aufko.Faknr = VFaknr. RELEASE Aufko. END. SFaknr = BAufko.Faknr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. VBesrKopf = ''. IF BAufko.Adresse[05] <> '' THEN DO: i1 = 6. DO ix = 1 TO 5: CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99') tDokument.cInhalt = BAufko.Adresse[ix]. i1 = i1 + 1. VBesrKopf[i1] = BAufko.Adresse[ix]. END. END. ELSE DO: DO ix = 5 TO 11: CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Adresse_' + STRING(ix,'99') tDokument.cInhalt = Adresse.Anschrift[ix]. VBesrKopf[ix] = Adresse.Anschrift[ix]. END. END. CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Ort_Datum' tDokument.cInhalt = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'T_Dokument' tDokument.cInhalt = (IF BAufko.Auf_Tot >= 0 THEN TRIM(SUBSTRING(FormText[02],01,20)) ELSE TRIM(SUBSTRING(FormText[02],21,20))). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Aufnr' tDokument.cInhalt = STRING(SFaknr,'z999999'). CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Knr' tDokument.cInhalt = STRING(BAufko.Fak_Knr,'999999'). END. IF VSeite > iSeite THEN RUN VIPER_ADRESSE ( VDokArt ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUMMENRABATTE C-Win PROCEDURE SUMMENRABATTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR RText AS CHAR FORMAT "x(20)" NO-UNDO. DEF VAR WText AS CHAR NO-UNDO. /* Auftragsrabatte --------------------------------------------------- */ i5 = 0. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Auf_Rab. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ. IF AufRabSu.F_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufRabSu.F_Wert). SUBSTRING(VZeile,042) = RText + " " + TRabSumm.Bez. SUBSTRING(VZeile,096) = STRING(RabWert,"z9.99-") + WText. SUBSTRING(VZeile,102) = STRING(- Rundbetr,"->>>,>>9.99"). { v8/putstream.i "1" } VFak_Betr = VFak_Betr - Rundbetr. i5 = i5 + 1. END. /* Abholrabatt ------------------------------------------------------- */ FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Abh_Rab. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ. IF AufRabSu.A_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufRabSu.A_Wert). SUBSTRING(VZeile,042) = RText + " " + TRabSumm.Bez. SUBSTRING(VZeile,096) = STRING(RabWert,"z9.99-") + WText. SUBSTRING(VZeile,102) = STRING(- Rundbetr,"->>>,>>9.99"). { v8/putstream.i "1" } VFak_Betr = VFak_Betr - Rundbetr. i5 = i5 + 1. END. /* ---------------------------------------------------------------------- */ /* Spezialpreis-Auftragsrabatte ---------------------------------------- */ FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0 BY TSpeRab.Rab_Grp: FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'ARABGRP' AND Tabel.CodeC = '' AND Tabel.CodeI = TSpeRab.Rab_Grp AND Tabel.Sprcd = 1 NO-LOCK. Rundbetr = TSpeRab.Auf_Betr. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST AufSpRab USE-INDEX AufSpRab-k1 WHERE AufSpRab.Firma = BAufko.Firma AND AufSpRab.Aufnr = BAufko.Aufnr AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK. IF AufSpRab.Auf_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufSpRab.Auf_Wert). SUBSTRING(VZeile,042) = RText + " " + TRIM(Tabel.Bez1). SUBSTRING(VZeile,096) = STRING(RabWert,"z9.99-") + WText. SUBSTRING(VZeile,102) = STRING(- Rundbetr,"->>>,>>9.99"). { v8/putstream.i "1" } VFak_Betr = VFak_Betr - Rundbetr. i5 = i5 + 1. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,042) = TRIM(SUBSTRING(FormText[14],21,20)). SUBSTRING(VZeile,102) = STRING(VFak_Betr,"->>>,>>9.99"). { v8/putstreamf.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERSANDART C-Win PROCEDURE VERSANDART : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ XVersand = ''. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'LIEFART' AND Tabel.CodeC = '' AND Tabel.CodeI = BAufko.Lief_Bed AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF AVAILABLE Tabel THEN XVersand = Tabel.Bez1. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK C-Win PROCEDURE VESR_DRUCK : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF VBesr = 0 THEN RETURN. DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25. DEF VAR PZBetrag AS CHAR FORMAT "x(13)". DEF VAR PZReferenz AS CHAR FORMAT "x(27)". DEF VAR PZTNummer AS CHAR FORMAT "x(09)". DEF VAR VSZeile AS CHAR FORMAT "x(58)". DEF VAR VZeile AS CHAR FORMAT "x(58)". DEF VAR XArt AS INT. DEF VAR XAnz AS INT. DEF VAR XBetr AS CHAR FORMAT "x(20)". DEF VAR VESR_P AS CHAR FORMAT "x(02)". DEF VAR VESR AS CHAR FORMAT "x(02)". DEF VAR XBetrag AS CHAR FORMAT "x(12)". DO WHILE TRUE: { v8/putstream.i "15" } PZBetrag = ''. IF Rundbetr < 0 THEN DO: PZBetrag = FILL('*', 13). PZReferenz = FILL('*', 27). PZTNummer = FILL('*', 09). XBetrag = FILL('*', 12). END. ELSE DO: IF Rundbetr > 0 THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 "). IF Rundbetr = 0 THEN PZBetrag = " 04 ". PZReferenz = "92876000000" + STRING(VesrKnr,"999999") + "0" + STRING(VesrFnr,"999999") + "00". PZTNummer = "01004578". XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999"). RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). { v8/putstream.i "2" } FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR. VVesr = "". IF Rundbetr <> 0 THEN DO: SUBSTRING(VVesr[01],02) = STRING(XBetrag,"XXXXXXXXXX XX"). SUBSTRING(VVesr[01],31) = STRING(XBetrag,"XXXXXXXXXX XX"). END. SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07]. SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08]. SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09]. SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10]. SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11]. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). SUBSTRING(VVesr[03],04) = SUBSTRING(VZeile,01,14). SUBSTRING(VVesr[04],01) = SUBSTRING(VZeile,16,17). SUBSTRING(VVesr[05],01) = Adresse.Anschrift[08]. SUBSTRING(VVesr[06],01) = Adresse.Anschrift[09]. SUBSTRING(VVesr[07],01) = Adresse.Anschrift[10]. SUBSTRING(VVesr[08],01) = Adresse.Anschrift[11]. SUBSTRING(VVesr[09],25) = STRING(VSZeile,"x(53)"). SUBSTRING(VVesr[09],82) = "H". VVesr[09] = BDrucker.Dru10cpi + BDrucker.DruLQb + CHR(27) + "k" + CHR(05) + VVesr[09] + CHR(27) + "k" + CHR(00) + BDrucker.DruLQe + BDrucker.Dru12cpi. DO ix = 1 TO 10: VZeile = VVesr[ix]. { v8/putstream.i "1" } END. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK01 C-Win PROCEDURE VESR_DRUCK01 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25. DEF VAR PZBetrag AS CHAR FORMAT "x(13)". DEF VAR PZReferenz AS CHAR FORMAT "x(27)". DEF VAR PZTNummer AS CHAR FORMAT "x(09)". DEF VAR VSZeile AS CHAR FORMAT "x(58)". DEF VAR VZeile AS CHAR FORMAT "x(58)". DEF VAR XArt AS INT. DEF VAR XAnz AS INT. DEF VAR XBetr AS CHAR FORMAT "x(20)". DEF VAR VESR_P AS CHAR FORMAT "x(02)". DEF VAR VESR AS CHAR FORMAT "x(02)". DEF VAR XBetrag AS CHAR FORMAT "x(12)". DO WHILE TRUE: { v8/putstream.i "15" } PZBetrag = ''. IF Rundbetr < 0 THEN DO: PZBetrag = FILL('*', 13). PZReferenz = FILL('*', 27). PZTNummer = FILL('*', 09). XBetrag = FILL('*', 12). END. ELSE DO: IF Rundbetr > 0 THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 "). IF Rundbetr = 0 THEN PZBetrag = " 04 ". PZReferenz = "92876000000" + STRING(VesrKnr,"999999") + "0" + STRING(VesrFnr,"999999") + "00". PZTNummer = "01004578". XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999"). RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). { v8/putstream.i "2" } FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR. VVesr = "". IF Rundbetr <> 0 THEN DO: SUBSTRING(VVesr[01],02) = STRING(XBetrag,"XXXXXXXXXX XX"). SUBSTRING(VVesr[01],31) = STRING(XBetrag,"XXXXXXXXXX XX"). END. SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07]. SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08]. SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09]. SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10]. SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11]. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). SUBSTRING(VVesr[03],04) = SUBSTRING(VZeile,01,14). SUBSTRING(VVesr[04],01) = SUBSTRING(VZeile,16,17). SUBSTRING(VVesr[05],01) = Adresse.Anschrift[08]. SUBSTRING(VVesr[06],01) = Adresse.Anschrift[09]. SUBSTRING(VVesr[07],01) = Adresse.Anschrift[10]. SUBSTRING(VVesr[08],01) = Adresse.Anschrift[11]. SUBSTRING(VVesr[09],25) = STRING(VSZeile,"x(53)"). SUBSTRING(VVesr[09],82) = "H". VVesr[09] = BDrucker.Dru10cpi + BDrucker.DruLQb + CHR(27) + "k" + CHR(05) + VVesr[09] + CHR(27) + "k" + CHR(00) + BDrucker.DruLQe + BDrucker.Dru12cpi. DO ix = 1 TO 10: VZeile = VVesr[ix]. { v8/putstream.i "1" } END. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK02 C-Win PROCEDURE VESR_DRUCK02 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25. DEF VAR PZBetrag AS CHAR FORMAT "x(13)". DEF VAR PZReferenz AS CHAR FORMAT "x(27)". DEF VAR PZTNummer AS CHAR FORMAT "x(09)". DEF VAR VSZeile AS CHAR FORMAT "x(58)". DEF VAR VZeile AS CHAR FORMAT "x(58)". DEF VAR XArt AS INT. DEF VAR XAnz AS INT. DEF VAR XBetr AS CHAR FORMAT "x(20)". DEF VAR VESR_P AS CHAR FORMAT "x(02)". DEF VAR VESR AS CHAR FORMAT "x(02)". DEF VAR XBetrag AS CHAR FORMAT "x(12)". FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'FAKDRU' AND Tabel.CodeC = 'BESR02' AND Tabel.CodeI = 0 AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF NOT AVAILABLE Tabel THEN RETURN. FIND XSchrift USE-INDEX Schrift-k1 WHERE XSchrift.Schname = Tabel.Bez1 AND XSchrift.Schbild = Tabel.Bez2 NO-LOCK NO-ERROR. IF NOT AVAILABLE XSchrift THEN RETURN. FIND XDrucker USE-INDEX Drucker-k1 WHERE XDrucker.Drucker = XSchrift.Schdru NO-LOCK NO-ERROR. IF NOT AVAILABLE XDrucker THEN RETURN. VTempVESR = VTemp + "VESR". XSchacht = Tabel.Dec_3. OUTPUT STREAM VOut_Stream TO VALUE(VTempVESR). DO WHILE TRUE: VVesr = ''. SUBSTRING(VVesr[03],001) = 'Bank Zimmerberg AG'. SUBSTRING(VVesr[03],028) = 'Bank Zimmerberg AG'. SUBSTRING(VVesr[04],001) = '8810 Horgen '. SUBSTRING(VVesr[04],028) = '8810 Horgen '. VVesr[03] = XDrucker.dru12cpi + VVesr[03]. SUBSTRING(VVesr[07],001) = 'Huber Getränkehandlung AG'. SUBSTRING(VVesr[07],028) = 'Huber Getränkehandlung AG'. SUBSTRING(VVesr[07],094) = ''. SUBSTRING(VVesr[08],001) = 'Allmendstrasse 91'. SUBSTRING(VVesr[08],028) = 'Allmendstrasse 91'. SUBSTRING(VVesr[09],001) = '8041 Zürich'. SUBSTRING(VVesr[09],028) = '8041 Zürich'. VVesr[07] = XDrucker.dru12cpi + VVesr[07]. PZBetrag = ''. XBetrag = ''. IF Rundbetr < 0 THEN DO: PZBetrag = FILL('*', 13). PZReferenz = FILL('*', 27). PZTNummer = FILL('*', 09). XBetrag = FILL('*', 12). END. ELSE DO: IF Rundbetr > 0 THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 "). IF Rundbetr = 0 THEN PZBetrag = " 04 ". PZReferenz = "80401100000" + STRING(VesrKnr,"999999") + "0" + STRING(VesrFnr,"999999") + "00". PZTNummer = "01007648". IF Rundbetr > 0 THEN XBetrag = STRING((Rundbetr * 100),"zzzzzz999"). RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. SUBSTRING(VVesr[11],013) = ' 01-7648-2'. SUBSTRING(VVesr[11],042) = ' 01-7648-2'. SUBSTRING(VVesr[09],059) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). SUBSTRING(VVesr[13],02) = STRING(XBetrag,"X X X X X X X X X"). SUBSTRING(VVesr[13],26) = STRING(XBetrag,"X X X X X X X X X"). VVesr[13] = XDrucker.dru10cpi + VVesr[13] + XDrucker.dru12cpi. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR. SUBSTRING(VVesr[14],59) = Adresse.Anschrift[07]. SUBSTRING(VVesr[15],59) = Adresse.Anschrift[08]. SUBSTRING(VVesr[16],59) = Adresse.Anschrift[09]. SUBSTRING(VVesr[17],59) = Adresse.Anschrift[10]. SUBSTRING(VVesr[18],59) = Adresse.Anschrift[11]. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). SUBSTRING(VVesr[15],04) = SUBSTRING(VZeile,01,14). SUBSTRING(VVesr[16],01) = SUBSTRING(VZeile,16,17). SUBSTRING(VVesr[17],01) = SUBSTRING(Adresse.Anschrift[08],01,25). SUBSTRING(VVesr[18],01) = SUBSTRING(Adresse.Anschrift[09],01,25). SUBSTRING(VVesr[19],01) = SUBSTRING(Adresse.Anschrift[10],01,25). SUBSTRING(VVesr[20],01) = SUBSTRING(Adresse.Anschrift[11],01,25). SUBSTRING(VVesr[21],01) = 'H'. SUBSTRING(VVesr[21],26) = STRING(VSZeile,"x(53)"). VVesr[21] = XDrucker.DruInvB + VVesr[21] + XDrucker.DruInvE. VZeile = FILL(CHR(10), Tabel.Int_2). PUT STREAM VOut_Stream CONTROL VZeile. PUT STREAM VOut_Stream CONTROL CHR(27) '='. DO ix = 1 TO 15: VZeile = ''. VZeile = VBesrKopf[ix] + CHR(10). PUT STREAM VOut_Stream CONTROL VZeile. END. VZeile = FILL(CHR(10), 20). PUT STREAM VOut_Stream CONTROL VZeile. DO ix = 1 TO 21: VZeile = VVesr[ix] + CHR(10). PUT STREAM VOut_Stream CONTROL VZeile. END. LEAVE. END. OUTPUT STREAM VOut_Stream CLOSE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK03 C-Win PROCEDURE VESR_DRUCK03 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR VVESR AS CHAR FORMAT "x(99)" EXTENT 25. DEF VAR PZBetrag AS CHAR FORMAT "x(13)". DEF VAR PZReferenz AS CHAR FORMAT "x(27)". DEF VAR PZTNummer AS CHAR FORMAT "x(09)". DEF VAR VSZeile AS CHAR FORMAT "x(58)". DEF VAR VZeile AS CHAR FORMAT "x(58)". DEF VAR XArt AS INT. DEF VAR XAnz AS INT. DEF VAR XBetr AS CHAR FORMAT "x(20)". DEF VAR VESR_P AS CHAR FORMAT "x(02)". DEF VAR VESR AS CHAR FORMAT "x(02)". DEF VAR XBetrag AS CHAR FORMAT "x(12)". DEF VAR ii AS INT NO-UNDO. DO WHILE TRUE: { v8/putstream.i "07" } VZeile = ''. SUBSTRING(VZeile,01) = 'Bank Zimmerberg AG'. SUBSTRING(VZeile,29) = 'Bank Zimmerberg AG'. { v8/putstream.i "01" } SUBSTRING(VZeile,01) = '8810 Horgen '. SUBSTRING(VZeile,29) = '8810 Horgen '. { v8/putstream.i "02" } SUBSTRING(VZeile,01) = 'Huber Getränkehandlung AG'. SUBSTRING(VZeile,29) = 'Huber Getränkehandlung AG'. { v8/putstream.i "01" } SUBSTRING(VZeile,01) = 'Allmendstrasse 91'. SUBSTRING(VZeile,29) = 'Allmendstrasse 91'. { v8/putstream.i "01" } SUBSTRING(VZeile,01) = '8041 Zürich'. SUBSTRING(VZeile,29) = '8041 Zürich'. { v8/putstream.i "1" } PZBetrag = ''. IF Rundbetr < 0 THEN DO: PZBetrag = FILL('*', 13). PZReferenz = FILL('*', 27). PZTNummer = FILL('*', 09). XBetrag = FILL('*', 12). END. ELSE DO: IF Rundbetr > 0 THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 "). IF Rundbetr = 0 THEN PZBetrag = " 04 ". PZReferenz = "80401100000" + STRING(VesrKnr,"999999") + "0" + STRING(VesrFnr,"999999") + "00". PZTNummer = "01007648". XBetrag = STRING((Rundbetr * 100),"zzzzzz999"). RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). { v8/putstream.i "2" } SUBSTRING(VZeile,12) = '01-7648-2'. SUBSTRING(VZeile,43) = '01-7648-2'. { v8/putstream.i "2" } IF Rundbetr <> 0 THEN DO: DO ii = 9 TO 1 BY -1: IF SUBSTRING(XBetrag,ii,01) <> '' THEN NEXT. SUBSTRING(XBetrag,ii) = '-'. LEAVE. END. SUBSTRING(VZeile,01) = STRING(XBetrag," X X X X X X X X X"). SUBSTRING(VZeile,25) = STRING(XBetrag," X X X X X X X X X"). END. VZeile = BDrucker.Dru10cpi + VZeile + BDrucker.Dru12cpi. { v8/putstream.i "1" } FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR. VVesr = "". SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07]. SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08]. SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09]. SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10]. SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11]. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). SUBSTRING(VVesr[02],10) = SUBSTRING(VZeile,01,14). SUBSTRING(VVesr[03],07) = SUBSTRING(VZeile,16,17). SUBSTRING(VVesr[04],01) = Adresse.Anschrift[08]. SUBSTRING(VVesr[05],01) = Adresse.Anschrift[09]. SUBSTRING(VVesr[06],01) = Adresse.Anschrift[10]. SUBSTRING(VVesr[07],01) = Adresse.Anschrift[11]. SUBSTRING(VVesr[08],25) = STRING(VSZeile,"x(53)"). /* SUBSTRING(VVesr[08],82) = "H". */ VVesr[08] = BDrucker.Dru10cpi + BDrucker.DruLQb + CHR(27) + "k" + CHR(05) + VVesr[08] + CHR(27) + "k" + '0' + BDrucker.DruLQe + BDrucker.Dru12cpi. DO ix = 1 TO 10: VZeile = VVesr[ix]. { v8/putstream.i "1" } END. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK04 C-Win PROCEDURE VESR_DRUCK04 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25. DEF VAR PZBetrag AS CHAR FORMAT "x(13)". DEF VAR PZReferenz AS CHAR FORMAT "x(27)". DEF VAR PZTNummer AS CHAR FORMAT "x(09)". DEF VAR VSZeile AS CHAR FORMAT "x(58)". DEF VAR VZeile AS CHAR FORMAT "x(58)". DEF VAR XArt AS INT. DEF VAR XAnz AS INT. DEF VAR XBetr AS CHAR FORMAT "x(20)". DEF VAR VESR_P AS CHAR FORMAT "x(02)". DEF VAR VESR AS CHAR FORMAT "x(02)". DEF VAR XBetrag AS CHAR FORMAT "x(12)". FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'FAKDRU' AND Tabel.CodeC = 'BESR02' AND Tabel.CodeI = 0 AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF NOT AVAILABLE Tabel THEN RETURN. FIND XSchrift USE-INDEX Schrift-k1 WHERE XSchrift.Schname = Tabel.Bez1 AND XSchrift.Schbild = Tabel.Bez2 NO-LOCK NO-ERROR. IF NOT AVAILABLE XSchrift THEN RETURN. FIND XDrucker USE-INDEX Drucker-k1 WHERE XDrucker.Drucker = XSchrift.Schdru NO-LOCK NO-ERROR. IF NOT AVAILABLE XDrucker THEN RETURN. VTempVESR = VTemp + "VESR". XSchacht = Tabel.Dec_3. OUTPUT STREAM VOut_Stream TO VALUE(VTempVESR). DO WHILE TRUE: VVesr = ''. SUBSTRING(VVesr[03],001) = 'Bank Zimmerberg AG'. SUBSTRING(VVesr[03],028) = 'Bank Zimmerberg AG'. SUBSTRING(VVesr[04],001) = '8810 Horgen '. SUBSTRING(VVesr[04],028) = '8810 Horgen '. VVesr[03] = XDrucker.dru12cpi + VVesr[03]. SUBSTRING(VVesr[07],001) = 'Huber Getränkehandlung AG'. SUBSTRING(VVesr[07],028) = 'Huber Getränkehandlung AG'. SUBSTRING(VVesr[07],094) = ''. SUBSTRING(VVesr[08],001) = 'Allmendstrasse 91'. SUBSTRING(VVesr[08],028) = 'Allmendstrasse 91'. SUBSTRING(VVesr[09],001) = '8041 Zürich'. SUBSTRING(VVesr[09],028) = '8041 Zürich'. VVesr[07] = XDrucker.dru12cpi + VVesr[07]. PZBetrag = ''. XBetrag = ''. IF Rundbetr < 0 THEN DO: PZBetrag = FILL('*', 13). PZReferenz = FILL('*', 27). PZTNummer = FILL('*', 09). XBetrag = FILL('*', 12). END. ELSE DO: IF Rundbetr > 0 THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 "). IF Rundbetr = 0 THEN PZBetrag = " 04 ". PZReferenz = "80401100000" + STRING(VesrKnr,"999999") + "0" + STRING(VesrFnr,"999999") + "00". PZTNummer = "01007648". IF Rundbetr > 0 THEN XBetrag = STRING((Rundbetr * 100),"zzzzzz999"). RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. SUBSTRING(VVesr[11],013) = ' 01-7648-2'. SUBSTRING(VVesr[11],042) = ' 01-7648-2'. SUBSTRING(VVesr[09],059) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). SUBSTRING(VVesr[13],02) = STRING(XBetrag,"X X X X X X X X X"). SUBSTRING(VVesr[13],26) = STRING(XBetrag,"X X X X X X X X X"). VVesr[13] = XDrucker.dru10cpi + VVesr[13] + XDrucker.dru12cpi. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR. SUBSTRING(VVesr[14],59) = Adresse.Anschrift[07]. SUBSTRING(VVesr[15],59) = Adresse.Anschrift[08]. SUBSTRING(VVesr[16],59) = Adresse.Anschrift[09]. SUBSTRING(VVesr[17],59) = Adresse.Anschrift[10]. SUBSTRING(VVesr[18],59) = Adresse.Anschrift[11]. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). SUBSTRING(VVesr[15],04) = SUBSTRING(VZeile,01,14). SUBSTRING(VVesr[16],01) = SUBSTRING(VZeile,16,17). SUBSTRING(VVesr[17],01) = SUBSTRING(Adresse.Anschrift[08],01,25). SUBSTRING(VVesr[18],01) = SUBSTRING(Adresse.Anschrift[09],01,25). SUBSTRING(VVesr[19],01) = SUBSTRING(Adresse.Anschrift[10],01,25). SUBSTRING(VVesr[20],01) = SUBSTRING(Adresse.Anschrift[11],01,25). SUBSTRING(VVesr[21],01) = 'H'. SUBSTRING(VVesr[21],26) = STRING(VSZeile,"x(53)"). VVesr[21] = XDrucker.DruInvB + VVesr[21] + XDrucker.DruInvE. VZeile = FILL(CHR(10), Tabel.Int_2). PUT STREAM VOut_Stream CONTROL VZeile. /* Halbe Zeilenschaltung ------------------------- PUT STREAM VOut_Stream CONTROL CHR(27) '='. */ DO ix = 1 TO 15: VZeile = ''. VZeile = ' ' + VBesrKopf[ix] + CHR(10). PUT STREAM VOut_Stream CONTROL VZeile. END. VZeile = FILL(CHR(10), 20). PUT STREAM VOut_Stream CONTROL VZeile. DO ix = 1 TO 21: VZeile = VVesr[ix] + (IF ix < 21 THEN CHR(10) ELSE ''). PUT STREAM VOut_Stream CONTROL VZeile. END. LEAVE. END. OUTPUT STREAM VOut_Stream CLOSE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK05 C-Win PROCEDURE VESR_DRUCK05 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25. DEF VAR PZBetrag AS CHAR FORMAT "x(13)". DEF VAR PZReferenz AS CHAR FORMAT "x(27)". DEF VAR PZTNummer AS CHAR FORMAT "x(09)". DEF VAR VSZeile AS CHAR FORMAT "x(58)". DEF VAR VZeile AS CHAR FORMAT "x(58)". DEF VAR XArt AS INT. DEF VAR XAnz AS INT. DEF VAR XBetr AS CHAR FORMAT "x(20)". DEF VAR VESR_P AS CHAR FORMAT "x(02)". DEF VAR VESR AS CHAR FORMAT "x(02)". DEF VAR XBetrag AS CHAR FORMAT "x(12)". DEF VAR ii AS INT NO-UNDO. DO WHILE TRUE: { v8/putstream.i "07" } VZeile = ''. SUBSTRING(VZeile,01) = 'Bank Zimmerberg AG'. SUBSTRING(VZeile,29) = 'Bank Zimmerberg AG'. { v8/putstream.i "01" } SUBSTRING(VZeile,01) = '8810 Horgen '. SUBSTRING(VZeile,29) = '8810 Horgen '. { v8/putstream.i "02" } SUBSTRING(VZeile,01) = 'Huber Getränkehandlung AG'. SUBSTRING(VZeile,29) = 'Huber Getränkehandlung AG'. { v8/putstream.i "01" } SUBSTRING(VZeile,01) = 'Allmendstrasse 91'. SUBSTRING(VZeile,29) = 'Allmendstrasse 91'. { v8/putstream.i "01" } SUBSTRING(VZeile,01) = '8041 Zürich'. SUBSTRING(VZeile,29) = '8041 Zürich'. { v8/putstream.i "1" } PZBetrag = ''. IF Rundbetr < 0 THEN DO: PZBetrag = FILL('*', 13). PZReferenz = FILL('*', 27). PZTNummer = FILL('*', 09). XBetrag = FILL('*', 12). END. ELSE DO: IF Rundbetr > 0 THEN PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 "). IF Rundbetr = 0 THEN PZBetrag = " 04 ". PZReferenz = "80401100000" + STRING(VesrKnr,"999999") + "0" + STRING(VesrFnr,"999999") + "00". PZTNummer = "01007648". XBetrag = STRING((Rundbetr * 100),"zzzzzz999"). RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. SUBSTRING(VZeile,061) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). { v8/putstream.i "2" } SUBSTRING(VZeile,12) = '01-7648-2'. SUBSTRING(VZeile,43) = '01-7648-2'. { v8/putstream.i "2" } IF Rundbetr <> 0 THEN DO: DO ii = 9 TO 1 BY -1: IF SUBSTRING(XBetrag,ii,01) <> '' THEN NEXT. SUBSTRING(XBetrag,ii) = '-'. LEAVE. END. SUBSTRING(VZeile,01) = STRING(XBetrag," X X X X X X X X X"). SUBSTRING(VZeile,25) = STRING(XBetrag," X X X X X X X X X"). END. VZeile = BDrucker.Dru10cpi + VZeile + BDrucker.Dru12cpi. { v8/putstream.i "1" } FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR. VVesr = "". SUBSTRING(VVesr[01],61) = Adresse.Anschrift[07]. SUBSTRING(VVesr[02],61) = Adresse.Anschrift[08]. SUBSTRING(VVesr[03],61) = Adresse.Anschrift[09]. SUBSTRING(VVesr[04],61) = Adresse.Anschrift[10]. SUBSTRING(VVesr[05],61) = Adresse.Anschrift[11]. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). SUBSTRING(VVesr[02],10) = SUBSTRING(VZeile,01,14). SUBSTRING(VVesr[03],07) = SUBSTRING(VZeile,16,17). SUBSTRING(VVesr[04],01) = Adresse.Anschrift[08]. SUBSTRING(VVesr[05],01) = Adresse.Anschrift[09]. SUBSTRING(VVesr[06],01) = Adresse.Anschrift[10]. SUBSTRING(VVesr[07],01) = Adresse.Anschrift[11]. SUBSTRING(VVesr[08],25) = STRING(VSZeile,"x(53)"). SUBSTRING(VVesr[08],82) = "H". VVesr[08] = BDrucker.DruLQb + BDrucker.DruLQe + BDrucker.Dru12cpi. DO ix = 1 TO 10: VZeile = VVesr[ix]. { v8/putstream.i "1" } END. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_ADRESSE C-Win PROCEDURE VIPER_ADRESSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipString AS CHAR NO-UNDO. DEF VAR cZellen AS CHAR NO-UNDO. DEF VAR cWerte AS CHAR NO-UNDO. FIND FIRST tDokument WHERE tDokument.cGruppe = 'KOPF' AND tDokument.iZeile = 1 AND tDokument.cFeld = 'Seite' NO-ERROR. IF NOT AVAILABLE tDokument THEN DO: CREATE tDokument. ASSIGN tDokument.cGruppe = 'KOPF' tDokument.iZeile = 1 tDokument.cFeld = 'Seite'. END. tDokument.cInhalt = STRING(VSeite,'z9'). cZellen = ''. cWerte = ''. FOR EACH tDokument WHERE tDokument.cGruppe = 'Kopf' BREAK BY tDokument.cGruppe BY tDokument.cFeld: cWerte = cWerte + tDokument.cInhalt. cZellen = cZellen + tDokument.cFeld. IF NOT LAST-OF ( tDokument.cGruppe ) THEN ASSIGN cWerte = cWerte + CHR(01) cZellen = cZellen + ','. END. RUN vpr_SetDelimiter (CHR(01)). RUN vpr_setGroupText ('Kopf', cZellen, cWerte). RUN vpr_FlushGroup ('Kopf'). IF VSeite = 1 AND ipString <> 'SammFak' THEN DO: cZellen = ''. cWerte = ''. FOR EACH tDokument WHERE tDokument.cGruppe = 'KopfDetail' BREAK BY tDokument.cGruppe BY tDokument.cFeld: cWerte = cWerte + tDokument.cInhalt. cZellen = cZellen + tDokument.cFeld. IF NOT LAST-OF ( tDokument.cGruppe ) THEN ASSIGN cWerte = cWerte + CHR(01) cZellen = cZellen + ','. END. RUN vpr_SetDelimiter (CHR(01)). RUN vpr_setGroupText ('KopfDetail', cZellen, cWerte). RUN vpr_FlushGroup ('KopfDetail'). END. RUN vpr_FlushGroup ('Fusstext'). RUN vpr_FlushGroup ('Ueberschrift'). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_ARTIKELZEILE C-Win PROCEDURE VIPER_ARTIKELZEILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. iArtZeile = iArtZeile + 1. DO WHILE Aufze.Artnr = 0: cString = Aufze.Bez1. IF Aufze.Bez1 <> '' THEN DO: cString = cString + (IF cString = '' THEN '' ELSE CHR(10)) + Aufze.Bez2. END. CREATE tDokument. ASSIGN tDokument.cGruppe = 'ArtikelZeile1' tDokument.iZeile = iArtZeile tDokument.cFeld = 'Bez1' tDokument.cInhalt = cString. RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'KGebinde', KGebinde.Kbez ). IF Aufze.VGeb_Me <> 0 THEN DO: cString = STRING(Aufze.VGeb_Me,'->>>>') + 'x ' + VGebinde.KBez. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'VGebinde', cString ). END. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Menge', STRING(Aufze.MGeli,'->>,>>9') ). cString = Aufze.Bez1. IF Aufze.Bez2 <> '' THEN DO: cString = cString + (IF cString = '' THEN '' ELSE CHR(10)) + Aufze.Bez2. END. IF Aufze.Aktion THEN DO: cString = cString + (IF cString = '' THEN '' ELSE CHR(10)) + Aufze.Aktion_Text. END. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', cString ). IF Aufze.Jahr > 9 THEN DO: cString = STRING(Aufze.Jahr,"9999"). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'JG', cString ). END. IF Aufze.Alk_Gehalt <> 0 THEN DO: cString = STRING(Aufze.Alk_Gehalt,"zz9.9%"). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%', cString ). END. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', STRING(Aufze.Artnr,"999999") ). IF FPreis THEN DO: RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis' , STRING(Aufze.Preis ,'>,>>9.99') ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', STRING(Aufze.Bru_Betr,'->>>,>>9.99') ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC' , STRING(Aufze.WuCd ,'z9') ). END. DO WHILE FPreis: IF Aufze.Rab_Betr = 0 THEN LEAVE. iArtZeile = iArtZeile + 1. RabWert = ABSOLUTE(Aufze.Rab_Wert). IF Aufze.Rab_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Rab_Betr < 0 THEN RabText = VZusText. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText. END. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(RabText) ). IF Aufze.Rab_Art = 1 THEN cString = STRING(RabWert,"->9.9%"). IF Aufze.Rab_Art = 2 OR Aufze.Rab_Art = 3 THEN cString = STRING(RabWert,"-9.99"). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', cString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(- Aufze.Rab_Betr,"->>>,>>9.99")) ). LEAVE. END. DO WHILE FPreis: IF Aufze.Zus_Betr = 0 THEN LEAVE. iArtZeile = iArtZeile + 1. RabWert = ABSOLUTE(Aufze.Zus_Wert). IF Aufze.Zus_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Zus_Betr < 0 THEN RabText = VRabText. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText. END. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', TRIM(RabText) ). IF Aufze.Zus_Art = 1 THEN cString = STRING(RabWert,"->9.9%"). IF Aufze.Zus_Art = 2 OR Aufze.Zus_Art = 3 THEN cString = STRING(RabWert,"-9.99"). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', cString ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', TRIM(STRING(+ Aufze.Zus_Betr,"->>>,>>9.99")) ). LEAVE. END. /* ---- Summengruppen-Total -------------------------------------------- */ IF Aufze.Rab_Su_Grp <> 0 THEN DO: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR. IF AVAILABLE TRabSumm THEN DO: TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab. END. END. /* ---- Warengruppen-Totale -------------------------------------------- */ FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp AND TUmsGrp.MWst = Aufze.WuCd AND TUmsGrp.Ansatz = Aufze.Mwst% NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: FIND WarenGrp NO-LOCK USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = Artst.Wg_Grp NO-ERROR. CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp TUmsGrp.Mwst = Aufze.WuCd TUmsGrp.Ansatz = Aufze.MWST%. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1. ELSE TUmsGrp.Bez = "??????????". END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Aufze.Net_Betr - Aufze.Auf_Rab - Aufze.Abh_Rab. /* RUN VIPER_AUSGABE_GRUPPE ( 'ArtikelZeile1' ). */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_AUSGABE_ARTIKELZEILE C-Win PROCEDURE VIPER_AUSGABE_ARTIKELZEILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cZellen AS CHAR NO-UNDO. DEF VAR cWerte AS CHAR NO-UNDO. DEF VAR iPos AS INT NO-UNDO. FOR EACH tDokument WHERE tDokument.cGruppe = 'ArtikelZeile1' BREAK BY tDokument.cGruppe BY tDokument.iZeile: IF FIRST-OF ( tDokument.cGruppe ) THEN DO: iVPagePos = vpr_getPageVPos() + 20. RUN vpr_setPageVPos ( iVPagePos ). RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ). END. IF FIRST-OF ( tDokument.iZeile ) THEN DO: cZellen = ''. cWerte = ''. END. cWerte = cWerte + tDokument.cInhalt. cZellen = cZellen + tDokument.cFeld. IF NOT LAST-OF ( tDokument.iZeile ) THEN DO: ASSIGN cWerte = cWerte + CHR(01) cZellen = cZellen + ','. NEXT. END. RUN vpr_SetDelimiter (CHR(01)). RUN vpr_setGroupText ('ArtikelZeile1', cZellen, cWerte). iVPagePos = vpr_getPageVPos(). iPos = iVPagePos + vpr_getGroupHeight('ArtikelZeile1'). IF iPos > iVMaxPos THEN DO: RUN VIPER_NEUE_SEITE. RUN VIPER_ADRESSE (''). iVPagePos = vpr_getPageVPos() + 20. RUN vpr_setPageVPos ( iVPagePos ). RUN vpr_setGroupText ('ArtikelZeile1', cZellen, cWerte). END. RUN vpr_FlushGroup ('ArtikelZeile1'). iVPagePos = vpr_getPageVPos(). IF LAST-OF ( tDokument.cGruppe ) THEN LEAVE. iVPagePos = vpr_getPageVPos(). RUN vpr_setGroupVPos ( 'ArtikelZeile1', iVPagePos ). END. FOR EACH tDokument WHERE tDokument.cGruppe = 'ArtikelZeile1': DELETE tDokument. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_AUSGABE_GRUPPE C-Win PROCEDURE VIPER_AUSGABE_GRUPPE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipGruppe AS CHAR NO-UNDO. DEF VAR cZellen AS CHAR NO-UNDO. DEF VAR cWerte AS CHAR NO-UNDO. DEF VAR iSpace AS INT NO-UNDO. iSpace = vpr_getPageVPos(). FOR EACH tDokument NO-LOCK WHERE tDokument.cGruppe = ipGruppe BREAK BY tDokument.cGruppe BY tDokument.iZeile: IF FIRST-OF ( tDokument.iZeile ) THEN iSpace = iSpace + 40. END. IF iSpace > iVMaxPos THEN DO: RUN vpr_NewPage. RUN vpr_InitGroups(''). IF iZaehler = iLauf THEN RUN vpr_initGraphObj. VSeite = VSeite + 1. RUN VIPER_ADRESSE (VDokArt). END. iVPagePos = vpr_getPageVPos(). CASE ipGruppe: WHEN 'Gebindeabrechnung' THEN DO: iVPagePos = iVPagePos + 20. RUN vpr_setGroupVPos ( 'GebindeabrechnungTitel', iVPagePos ). RUN vpr_FlushGroup ( 'GebindeabrechnungTitel'). iVPagePos = vpr_getPageVPos(). END. OTHERWISE DO: END. END CASE. FOR EACH tDokument WHERE tDokument.cGruppe = ipGruppe BREAK BY tDokument.cGruppe BY tDokument.iZeile: IF FIRST-OF ( tDokument.cGruppe ) THEN DO: IF ipGruppe <> 'Kondition' AND ipGruppe <> 'BESR' AND ipGruppe <> 'ADRESSE' THEN DO: iVPagePos = vpr_getPageVPos(). RUN vpr_setGroupVPos ( ipGruppe, iVPagePos ). END. END. IF FIRST-OF ( tDokument.iZeile ) THEN DO: cZellen = ''. cWerte = ''. END. cWerte = cWerte + tDokument.cInhalt. cZellen = cZellen + tDokument.cFeld. IF NOT LAST-OF ( tDokument.iZeile ) THEN DO: ASSIGN cWerte = cWerte + CHR(01) cZellen = cZellen + ','. NEXT. END. RUN vpr_SetDelimiter (CHR(01)). RUN vpr_setGroupText (ipGruppe, cZellen, cWerte). RUN vpr_FlushGroup (ipGruppe). END. FOR EACH tDokument WHERE tDokument.cGruppe = ipGruppe: DELETE tDokument. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_BESR C-Win PROCEDURE VIPER_BESR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipDokument AS CHAR NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR cFeld AS CHAR NO-UNDO. DEF VAR cInhalt AS CHAR NO-UNDO. DEF VAR cVorlage AS CHAR NO-UNDO. DEF VAR iKopfZeile AS INT NO-UNDO. DEF VAR PZBetrag AS CHAR NO-UNDO. DEF VAR PZReferenz AS CHAR NO-UNDO. DEF VAR PZTNNummer AS CHAR NO-UNDO. DEF VAR cReferenz AS CHAR NO-UNDO. DEF VAR cInstall AS CHAR NO-UNDO. IF Rundbetr < 0 THEN RETURN. RUN vpr_NewPage. cInstall = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR. cVorlage = cInstall + '/' + ipDokument + '.vfr'. RUN vpr_LoadVFR (cVorlage). RUN vpr_ActivateReport (ipDokument). RUN vpr_SetDocAttrib ( "PAPERSIZE=A4"). RUN vpr_InitGroups (""). RUN vpr_initGraphObj. IF VSchachtBesr > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtBesr ). RUN vpr_SetGroupAttrib ("ADRESSE", "Fixed=true"). RUN vpr_SetGroupAttrib ("BESR" , "Fixed=true"). FIND Adresse NO-LOCK USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Fak_Knr NO-ERROR. iKopfZeile = 1. VBesrKopf = ''. IF BAufko.Adresse[05] <> '' THEN DO: i1 = 6. DO ix = 1 TO 5: CREATE tDokument. ASSIGN tDokument.cGruppe = 'ADRESSE' tDokument.iZeile = 1 tDokument.cFeld = 'Adresse_' + STRING((6 + ix),'99') tDokument.cInhalt = BAufko.Adresse[ix]. i1 = i1 + 1. VBesrKopf[i1] = BAufko.Adresse[ix]. END. END. ELSE DO: DO ix = 6 TO 11: CREATE tDokument. ASSIGN tDokument.cGruppe = 'ADRESSE' tDokument.iZeile = 1 tDokument.cFeld = 'Adresse_' + STRING(ix,'99') tDokument.cInhalt = Adresse.Anschrift[ix]. VBesrKopf[ix] = Adresse.Anschrift[ix]. END. END. DO ix = 6 TO 11: CREATE tDokument. ASSIGN tDokument.cGruppe = 'BESR' tDokument.iZeile = 1 tDokument.cFeld = 'Adresse_R_' + STRING(ix,'99') tDokument.cInhalt = VBesrKopf[ix]. IF ix < 7 THEN NEXT. CREATE tDokument. ASSIGN tDokument.cGruppe = 'BESR' tDokument.iZeile = 1 tDokument.cFeld = 'Adresse_L_' + STRING(ix,'99') tDokument.cInhalt = VBesrKopf[ix]. END. IF Rundbetr > 0.00 THEN DO: cFeld = STRING(Rundbetr,'zzzzzz9.99'). cFeld = REPLACE(cFeld, '.', ' '). cFeld = STRING(cFeld,'X X X X X X X X X X'). END. ELSE cFeld = ''. RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Betrag_L', cFeld ). RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Betrag_R', cFeld ). IF Rundbetr > 0 THEN PZBetrag = '01' + STRING(Rundbetr * 100,'9999999999 '). ELSE PZBetrag = ' 04 '. PZReferenz = '80401100000' + STRING(bAufko.Fak_Knr,'999999') + '0' + STRING(bAufko.Faknr ,'999999') + '00'. PZTNNummer = '01007648'. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag, INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNNummer, OUTPUT cReferenz ). RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Referenz_OCRB', cReferenz ). RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Referenz_R', STRING(PZReferenz,'XX XXXXX XXXXX XXXXX XXXXX XXXXX') ). RUN VIPER_CREATE_DOKUMENT ( 'BESR', iKopfZeile, 'Referenz_L', STRING(PZReferenz,'XX XXXXX XXXXX XXXXX XXXXX XXXXX') ). RUN VIPER_AUSGABE_GRUPPE ( 'ADRESSE' ). RUN VIPER_AUSGABE_GRUPPE ( 'BESR' ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_CREATE_DOKUMENT C-Win PROCEDURE VIPER_CREATE_DOKUMENT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipGruppe AS CHAR NO-UNDO. DEF INPUT PARAMETER ipZeile AS INT NO-UNDO. DEF INPUT PARAMETER ipFeld AS CHAR NO-UNDO. DEF INPUT PARAMETER ipInhalt AS CHAR NO-UNDO. CREATE tDokument. ASSIGN tDokument.cGruppe = ipGruppe tDokument.iZeile = ipZeile tDokument.cFeld = ipFeld tDokument.cInhalt = ipInhalt. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_INIT C-Win PROCEDURE VIPER_INIT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipDokument AS CHAR NO-UNDO. DEF VAR cVorlage AS CHAR NO-UNDO. DEF VAR cZellen AS CHAR NO-UNDO. DEF VAR cZelle AS CHAR NO-UNDO. DEF VAR cGruppe AS CHAR NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR cInstall AS CHAR NO-UNDO. cInstall = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR. IF NOT ipDokument BEGINS 'Samm' THEN DO: cVorlage = cInstall + '/' + ipDokument + '.vfr'. cvpr_Dokument = ipDokument + '.vpr'. RUN vpr_LoadVFR (cVorlage). RUN vpr_ActivateReport (ipDokument). RUN vpr_SelectPrinter (F_Drucker). RUN vpr_setPrinterAttrib("duplex=1"). RUN vpr_ResetDoc. RUN vpr_SetDocAttrib ( "PAPERSIZE=A4"). RUN vpr_SetPreviewMode ('Direct'). RUN vpr_setDocTitle ( ipDokument ). RUN vpr_InitGroups (""). RUN vpr_initGraphObj. END. ELSE DO: IF iZaehler = 1 THEN DO: cVorlage = cInstall + '/' + ipDokument + '.vfr'. cvpr_Dokument = ipDokument + '.vpr'. RUN vpr_LoadVFR (cVorlage). RUN vpr_ActivateReport (ipDokument). RUN vpr_SelectPrinter (F_Drucker). RUN vpr_setPrinterAttrib("duplex=1"). RUN vpr_ResetDoc. RUN vpr_SetDocAttrib ( "PAPERSIZE=A4"). RUN vpr_SetPreviewMode ('Direct'). RUN vpr_setDocTitle ( ipDokument ). IF VSchachtOrig > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtOrig ). END. ELSE DO: RUN vpr_NewPage. IF VSchachtKopi > 0 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtKopi ). END. RUN vpr_InitGroups(""). IF iZaehler = iLauf THEN RUN vpr_InitGraphObj. END. RUN vpr_SetGroupAttrib ("Kopf" , "Fixed=true"). RUN vpr_SetGroupAttrib ("Fusstext" , "Fixed=true"). RUN vpr_SetGroupAttrib ("Kondition", "Fixed=true"). CASE ipDokument: WHEN 'Faktura' OR WHEN 'SammFak' THEN iVMaxPos = 2600. OTHERWISE iVMaxPos = 2650. END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_NEUE_SEITE C-Win PROCEDURE VIPER_NEUE_SEITE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR iPos AS INT NO-UNDO. DO WHILE TRUE: IF VSeite = 0 THEN DO: RUN vpr_InitGroups(''). IF iZaehler = iLauf THEN RUN vpr_initGraphObj. VSeite = VSeite + 1. LEAVE. END. IF VDokArt = 'SammFak' THEN DO: iPos = vpr_getPageVPos(). IF (iPos + 160) < iVMaxPos THEN DO: iPos = iPos + 20. RUN vpr_setPageVPos ( iPos ). LEAVE. END. END. RUN vpr_NewPage. RUN vpr_InitGroups(''). IF iZaehler = 1 THEN RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtOrig ). ELSE RUN vpr_SetCurrentPageProperties ( "Papertray", VSchachtKopi ). IF iZaehler = iLauf THEN RUN vpr_initGraphObj. VSeite = VSeite + 1. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VIPER_RUECKSTAND C-Win PROCEDURE VIPER_RUECKSTAND : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. FIND tRueckst WHERE RECID(tRueckst) = ipRecid NO-LOCK. FIND Aufze WHERE RECID(Aufze) = tRueckst.Zeile NO-LOCK. iArtZeile = iArtZeile + 1. DO WHILE Aufze.Artnr = 0: CREATE tDokument. ASSIGN tDokument.cGruppe = 'ArtikelZeile1' tDokument.iZeile = iArtZeile tDokument.cFeld = 'Bez1' tDokument.cInhalt = Aufze.Bez1. IF Aufze.Bez2 <> '' THEN DO: iArtZeile = iArtZeile + 1. CREATE tDokument. ASSIGN tDokument.cGruppe = 'ArtikelZeile1' tDokument.iZeile = iArtZeile tDokument.cFeld = 'Bez1' tDokument.cInhalt = Aufze.Bez2. END. RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'KGebinde', KGebinde.Kbez ). IF Aufze.VGeb_Ru <> 0 THEN DO: cString = STRING(Aufze.VGeb_Ru,'->>>>') + 'x ' + VGebinde.KBez. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'VGebinde', cString ). END. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Menge', STRING(Aufze.MRuek,'->>,>>9') ). cString = Aufze.Bez1. IF Aufze.Bez2 <> '' THEN cString = cString + (IF cString = '' THEN '' ELSE CHR(10)) + Aufze.Bez2. IF Aufze.Aktion THEN cString = cString + (IF cString = '' THEN '' ELSE CHR(10)) + Aufze.Aktion_Text. RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Bez1', cString ). IF Aufze.Jahr > 9 THEN DO: cString = STRING(Aufze.Jahr,"9999"). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'JG', cString ). END. IF Aufze.Alk_Gehalt <> 0 THEN DO: cString = STRING(Aufze.Alk_Gehalt,"zz9.9%"). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Alk%', cString ). END. /* RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Artnr', STRING(Aufze.Artnr,"999999") ). IF FPreis THEN DO: RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Preis', STRING(Aufze.Preis,'>,>>9.999') ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'Betrag', STRING(Aufze.Bru_Betr ,'->>>,>>9.99') ). RUN VIPER_CREATE_DOKUMENT ( 'ArtikelZeile1', iArtZeile, 'MC', STRING(Aufze.WuCd,'z9') ). END. */ RUN VIPER_AUSGABE_GRUPPE ( 'ArtikelZeile1' ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WIRTESONNTAG C-Win PROCEDURE WIRTESONNTAG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ XWirtesonntag = ''. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'WISO' AND Tabel.CodeC = '' AND Tabel.CodeI = BAufko.Wirt_So AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF NOT AVAILABLE Tabel THEN DO: XWirtesonntag = BAufko.Wirt_So_Text. RETURN. END. IF LENGTH(Tabel.Bez1) > 4 THEN XWirtesonntag = Tabel.Bez1. IF BAufko.Wirt_So_Text <> '' THEN DO: IF XWirtesonntag <> '' THEN XWirtesonntag = XWirtesonntag + " / ". XWirtesonntag = XWirtesonntag + BAufko.Wirt_So_Text. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE C-Win PROCEDURE WORKFILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FIND BSchrift NO-LOCK USE-INDEX Schrift-k1 WHERE BSchrift.Schname = BLiDruck.ListDru AND BSchrift.Schbild = BLiDruck.ListBild NO-ERROR. FIND BDrucker NO-LOCK USE-INDEX Drucker-k1 WHERE BDrucker.Drucker = BSchrift.Schdru NO-ERROR. DOpen = FALSE. VTemp = ''. IF AVAILABLE bDrucker THEN DO: IF BDrucker.Emul = 'TERMINAL' THEN DO: FOR EACH XTermOut: DELETE XTermOut. END. VZNr = 0. RETURN. END. END. lViper = TRUE. CASE VDokArt: WHEN 'RUESTSCHEIN' THEN lViper = FALSE. WHEN 'BESR' THEN lViper = FALSE. WHEN 'PALETTEN' OR WHEN 'LADEPAPIER' THEN lViper = FALSE. WHEN 'BESR02' OR WHEN 'BESR04' THEN lViper = FALSE. END. IF lViper THEN RETURN. DO WHILE TRUE TRANSACTION: FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'TEMPFILE' AND Tabel.CodeI = 0 AND Tabel.CodeC = 'AUFTRAG' AND Tabel.Sprcd = 1 NO-ERROR. IF NOT AVAILABLE Tabel THEN DO: CREATE Tabel. ASSIGN Tabel.Firma = GVFirma Tabel.RecArt = 'TEMPFILE' Tabel.CodeI = 0 Tabel.CodeC = 'AUFTRAG' Tabel.Sprcd = 1. END. ASSIGN Tabel.Bez1 = SESSION:TEMP-DIR Tabel.Int_1 = Tabel.Int_1 + 1. VTemp = Tabel.Bez1 + 'Faktura' + STRING(Tabel.Int_1) + '.tmp'. RELEASE Tabel. LEAVE. END. DOpen = TRUE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME