&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 FDrucken AS LOG NO-UNDO. DEF VAR DruckFlag AS LOG NO-UNDO. DEF VAR TRecid AS RECID NO-UNDO. DEF VAR FormRecid AS RECID NO-UNDO. DEF VAR BesrRecid 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 GTWust 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(180)" NO-UNDO. DEF VAR RZeile AS CHAR FORMAT "x(180)" 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 XVersand AS CHAR NO-UNDO. DEF VAR XAblade AS CHAR NO-UNDO. DEF VAR XAuf_Text LIKE Savko.Auf_Text NO-UNDO. DEF VAR XTelnr LIKE Savko.Auf_Text NO-UNDO. DEF VAR VTemp AS CHAR FORMAT "x(100)" NO-UNDO. DEF VAR FPreis AS LOG 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 VTabTexte LIKE TabTexte.Inhalt NO-UNDO. DEF VAR VDokArt AS CHAR NO-UNDO. DEF VAR VKopfArt AS CHAR NO-UNDO. DEF VAR cBenutzer AS CHAR NO-UNDO. DEF VAR iTotal AS INT NO-UNDO. DEF VAR iKopf AS INT NO-UNDO. DEF VAR iFuss AS INT NO-UNDO. DEF VAR iSchacht1 AS INT NO-UNDO. DEF VAR iSchacht2 AS INT NO-UNDO. DEF VAR iSchacht3 AS INT NO-UNDO. DEF VAR cMWST_NR AS CHAR NO-UNDO. DEF VAR iBlockSize AS INT INIT 200 NO-UNDO. DEF VAR cVESR_DRUCK AS CHAR NO-UNDO. DEF VAR cUSER AS CHAR NO-UNDO. DEF VAR FormText AS CHAR FORMAT "x(80)" EXTENT 40. DEF BUFFER BSavko FOR Savko. DEF BUFFER XSavko FOR Savko. DEF BUFFER BSavze FOR Savze. DEF BUFFER BSavGebKo FOR SavGebKo. 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 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 WDrucker LIKE Drucker. DEF TEMP-TABLE WSchrift LIKE Schrift. DEF TEMP-TABLE TSavze 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. 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 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 Faknr AS INT FIELD RID AS RECID. DEF TEMP-TABLE TSpeRab FIELD Rab_Grp AS INT FIELD Auf_Betr AS DEC DECIMALS 4. DEF BUFFER XSchrift FOR Schrift. DEF BUFFER XDrucker FOR Drucker. DEF VAR VTempVESR AS CHAR FORMAT "x(100)" NO-UNDO. DEF VAR XSchacht AS INT NO-UNDO. DEF STREAM VIn_Stream. DEF STREAM Out_Stream. DEF STREAM Besr_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" } /* _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 F_KOPIE Btn_Drucken Btn_Abbrechen F_Drucker ~ E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_Faknr F_Dokart F_Seite ~ F_Datum F_Papier RECT-1 &Scoped-Define DISPLAYED-OBJECTS F_KOPIE F_Drucker E_Adresse F_Schrift ~ F_Tzz F_Kzz F_Fzz F_Aufnr F_Faknr F_Dokart F_Seite F_Datum F_Papier /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-1 F_KOPIE F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz ~ F_Fzz F_Aufnr F_Faknr F_Dokart F_Seite F_Datum 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 16.8 BY 1. DEFINE BUTTON Btn_Drucken LABEL "&Drucken" SIZE 16.8 BY 1. DEFINE VARIABLE E_Adresse AS CHARACTER VIEW-AS EDITOR MAX-CHARS 1000 SIZE 47.6 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 12 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 19 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Dokart AS CHARACTER FORMAT "x(50)":U LABEL "Dokumentart" VIEW-AS FILL-IN NATIVE SIZE 29.2 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Drucker AS CHARACTER FORMAT "x(60)":U LABEL "Drucker" VIEW-AS FILL-IN NATIVE SIZE 60 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 12 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 47.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Schrift AS CHARACTER FORMAT "x(60)":U LABEL "Schriftbild" VIEW-AS FILL-IN NATIVE SIZE 60 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 2 GRAPHIC-EDGE NO-FILL SIZE 138 BY 12.86. /* ************************ Frame Definitions *********************** */ DEFINE FRAME DEFAULT-FRAME F_KOPIE AT ROW 6 COL 61 COLON-ALIGNED Btn_Drucken AT ROW 12 COL 86.6 Btn_Abbrechen AT ROW 12 COL 111 F_Drucker AT ROW 2 COL 23 COLON-ALIGNED NO-TAB-STOP E_Adresse AT ROW 2 COL 86.6 NO-LABEL F_Schrift AT ROW 3 COL 23 COLON-ALIGNED NO-TAB-STOP F_Tzz AT ROW 4 COL 23 COLON-ALIGNED F_Kzz AT ROW 5 COL 23 COLON-ALIGNED F_Fzz AT ROW 6 COL 23 COLON-ALIGNED F_Aufnr AT ROW 7 COL 23 COLON-ALIGNED F_Faknr AT ROW 8 COL 23 COLON-ALIGNED F_Dokart AT ROW 9 COL 84.6 COLON-ALIGNED F_Seite AT ROW 9 COL 125.2 COLON-ALIGNED F_Datum AT ROW 9 COL 23 COLON-ALIGNED F_Papier AT ROW 10 COL 84.6 COLON-ALIGNED RECT-1 AT ROW 1.24 COL 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 140 BY 13.33 DEFAULT-BUTTON Btn_Drucken. /* *********************** 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 = 13.33 WIDTH = 140 MAX-HEIGHT = 33.86 MAX-WIDTH = 204.6 VIRTUAL-HEIGHT = 33.86 VIRTUAL-WIDTH = 204.6 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 Custom */ /* SETTINGS FOR EDITOR E_Adresse IN FRAME DEFAULT-FRAME 1 */ ASSIGN 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 */ ASSIGN F_Drucker:READ-ONLY IN FRAME DEFAULT-FRAME = TRUE. /* 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 */ ASSIGN F_Schrift:READ-ONLY IN FRAME DEFAULT-FRAME = TRUE. /* 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: /* This event will close the window and terminate the procedure. */ APPLY "CLOSE":U TO THIS-PROCEDURE. 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 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 &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. MAIN-BLOCK: DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK: RUN enable_UI. FDrucken = TRUE. DruckFlag = TRUE. cBenutzer = DYNAMIC-FUNCTION('getBenutzer':U) NO-ERROR. cUSER = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR. VERARBEITEN: DO WHILE FDrucken: FIND FIRST Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'AUFDRUCK' AND Tabel.CodeC = cUSER AND Tabel.Bez1 = '' NO-LOCK NO-ERROR. IF NOT AVAILABLE Tabel THEN DO: FDrucken = FALSE. NEXT. END. TRecid = RECID(Tabel). REPEAT TRANSACTION: FIND BTabel WHERE RECID(BTabel) = TRecid EXCLUSIVE-LOCK NO-WAIT NO-ERROR. IF AVAILABLE BTabel THEN DO: BTabel.Bez1 = 'A'. RELEASE BTabel. LEAVE. END. IF LOCKED BTabel THEN NEXT. TRecid = 0. LEAVE. END. IF TRecid = 0 THEN NEXT. FIND Tabel WHERE RECID(Tabel) = TRecid NO-LOCK. RUN DRUCKEN. REPEAT TRANSACTION: FIND BTabel WHERE RECID(BTabel) = TRecid. DELETE BTabel. RELEASE BTabel. LEAVE. END. END. /* IF NOT THIS-PROCEDURE:PERSISTENT THEN WAIT-FOR CLOSE OF THIS-PROCEDURE. APPLY 'CLOSE' TO THIS-PROCEDURE. */ END. /* _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 = BSavko.Ablad_Vor AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF NOT AVAILABLE Tabel THEN DO: XAblade = BSavko.Ablad_Vor_Text. RETURN. END. IF LENGTH(Tabel.Bez1) > 4 THEN XAblade = Tabel.Bez1. IF BSavko.Ablad_Vor_Text <> '' THEN DO: XAblade = XAblade + (IF BSavko.Ablad_Vor_Text <> '' THEN " / " ELSE "") + BSavko.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: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. FIND Savze NO-LOCK WHERE RECID(Savze) = ipRecid. VZeile = RZeile. DO WHILE Savze.Artnr = 0: SUBSTRING(VZeile,036) = STRING(Savze.Bez1,"x(30)"). { v8/putstream.i "1" } IF Savze.Bez2 <> '' THEN DO: VZeile = RZeile. SUBSTRING(VZeile,036) = STRING(Savze.Bez2,"x(30)"). { v8/putstream.i "1" } END. RETURN. END. FIND Artst OF Savze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Savze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Savze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Savze.KGeb_Cd NO-LOCK NO-ERROR. VZeile = RZeile. SUBSTRING(VZeile,001) = STRING(Savze.Artnr,"999999"). IF Savze.GGeb_Me <> 0 THEN DO: SUBSTRING(VZeile,008) = STRING(Savze.GGeb_Me ,"->9"). SUBSTRING(VZeile,012) = STRING(GGebinde.KBez ,"x(08)"). { v8/putstream.i "1" } VZeile = RZeile. END. IF Savze.VGeb_Me <> 0 THEN DO: SUBSTRING(VZeile,008) = STRING(Savze.VGeb_Me ,"->9"). SUBSTRING(VZeile,012) = STRING(VGebinde.KBez ,"x(08)"). END. SUBSTRING(VZeile,021) = STRING(Savze.MGeli ,"->>>9"). SUBSTRING(VZeile,027) = STRING(KGebinde.KBez ,"x(08)"). SUBSTRING(VZeile,036) = STRING(Savze.Bez1 ,"x(30)"). IF Savze.Alk_Gehalt <> 0 THEN DO: SUBSTRING(VZeile,061) = STRING(Savze.Alk_Gehalt,"z9.9%"). END. IF Savze.Jahr > 9 THEN DO: SUBSTRING(VZeile,067) = SUBSTRING(STRING(Savze.Jahr,"9999"),03). END. IF FPreis THEN DO: SUBSTRING(VZeile,070) = STRING(Savze.Preis ,"zz9.999"). END. IF FBetrag THEN DO: SUBSTRING(VZeile,078) = STRING(Savze.Bru_Betr ,"->>,>>9.99"). SUBSTRING(VZeile,089) = STRING(Savze.WuCd ,"z9"). END. { v8/putstream.i "1" } IF Savze.Bez2 <> '' THEN DO: VZeile = RZeile. SUBSTRING(VZeile,036) = STRING(Savze.Bez2,"x(30)"). { v8/putstream.i "1" } END. IF Savze.Aktion THEN DO: VZeile = RZeile. SUBSTRING(VZeile,036) = STRING(Savze.Aktion_Text,"x(30)"). { v8/putstream.i "1" } END. DO WHILE FBetrag: IF Savze.Rab_Betr = 0 THEN LEAVE. VZeile = RZeile. RabWert = ABSOLUTE(Savze.Rab_Wert). IF Savze.Rab_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Savze.Rab_Betr < 0 THEN RabText = VZusText. IF Savze.Rab_Betr > 0 THEN RabText = VRabText. END. SUBSTRING(VZeile,036) = TRIM(RabText). IF Savze.Rab_Art = 1 THEN SUBSTRING(VZeile,055) = STRING(RabWert,"->9.9 %"). IF Savze.Rab_Art = 2 OR Savze.Rab_Art = 3 THEN SUBSTRING(VZeile,055) = STRING(RabWert,"-9.99 Fr."). SUBSTRING(VZeile,078) = STRING(- Savze.Rab_Betr ,"->>,>>9.99"). { v8/putstream.i "1" } LEAVE. END. DO WHILE FBetrag: IF Savze.Zus_Betr = 0 THEN LEAVE. VZeile = RZeile. RabWert = ABSOLUTE(Savze.Zus_Wert). IF Savze.Zus_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Savze.Zus_Betr > 0 THEN RabText = VZusText. IF Savze.Zus_Betr < 0 THEN RabText = VRabText. END. SUBSTRING(VZeile,036) = TRIM(RabText). IF Savze.Zus_Art = 1 THEN SUBSTRING(VZeile,055) = STRING(RabWert,"->9.9 %"). IF Savze.Zus_Art = 2 OR Savze.Zus_Art = 3 THEN SUBSTRING(VZeile,055) = STRING(RabWert,"-9.99 Fr."). SUBSTRING(VZeile,078) = STRING(+ Savze.Zus_Betr ,"->>,>>9.99"). { v8/putstream.i "1" } LEAVE. END. /* ---- Summengruppen-Total -------------------------------------------- */ IF Savze.Rab_Su_Grp <> 0 THEN DO: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Savze.Rab_Su_Grp NO-ERROR. IF AVAILABLE TRabSumm THEN DO: TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Savze.Auf_Rab. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Savze.Abh_Rab. END. END. /* ---- Warengruppen-Totale -------------------------------------------- */ FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp 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. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1. ELSE TUmsGrp.Bez = "??????????". END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Savze.Net_Betr - Savze.Auf_Rab - Savze.Abh_Rab. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_KASSE C-Win PROCEDURE ARTIKELZEILE_KASSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RZeile = ''. DO WHILE Savze.Artnr = 0: SUBSTRING(VZeile,009) = STRING(Savze.Bez1,"x(30)"). { v8/putstream.i "1" } IF Savze.Bez2 <> '' THEN DO: VZeile = RZeile. SUBSTRING(VZeile,009) = STRING(Savze.Bez2,"x(30)"). { v8/putstream.i "1" } END. { v8/putstream.i "1" } RETURN. END. FIND Artst OF Savze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Savze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Savze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Savze.KGeb_Cd NO-LOCK NO-ERROR. SUBSTRING(VZeile,001) = STRING(Savze.Artnr,"999999"). SUBSTRING(VZeile,009) = Savze.Bez1 . { v8/putstream.i "1" } IF Savze.Bez2 <> '' THEN DO: SUBSTRING(VZeile,009) = Savze.Bez2. { v8/putstream.i "1" } END. SUBSTRING(VZeile,001) = STRING(KGebinde.KBez ,"x(08)"). SUBSTRING(VZeile,011) = STRING(Savze.MGeli ,"->>>9"). SUBSTRING(VZeile,018) = STRING(Savze.Preis ,"zz9.99"). SUBSTRING(VZeile,029) = STRING(Savze.Bru_Betr ,"->>>9.99"). SUBSTRING(VZeile,039) = STRING(Savze.WuCd ,"z9"). { v8/putstream.i "1" } IF Savze.Aktion THEN DO: SUBSTRING(VZeile,009) = Savze.Aktion_Text. { v8/putstream.i "1" } END. DO WHILE FBetrag: IF Savze.Rab_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Savze.Rab_Wert). IF Savze.Rab_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Savze.Rab_Betr < 0 THEN RabText = VZusText. IF Savze.Rab_Betr > 0 THEN RabText = VRabText. END. SUBSTRING(VZeile,001) = TRIM(RabText). IF Savze.Rab_Art = 1 THEN SUBSTRING(VZeile,016) = STRING(RabWert,"->>>9.9 %"). IF Savze.Rab_Art = 2 OR Savze.Rab_Art = 3 THEN SUBSTRING(VZeile,016) = STRING(RabWert,"->>>9.99Fr."). SUBSTRING(VZeile,029) = STRING(- Savze.Rab_Betr ,"->>>9.99"). { v8/putstream.i "1" } LEAVE. END. DO WHILE FBetrag: IF Savze.Zus_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Savze.Zus_Wert). IF Savze.Zus_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Savze.Zus_Betr > 0 THEN RabText = VZusText. IF Savze.Zus_Betr < 0 THEN RabText = VRabText. END. SUBSTRING(VZeile,001) = TRIM(RabText). IF Savze.Rab_Art = 1 THEN SUBSTRING(VZeile,016) = STRING(RabWert,"->>>9.9 %"). IF Savze.Rab_Art = 2 OR Savze.Rab_Art = 3 THEN SUBSTRING(VZeile,016) = STRING(RabWert,"->>>9.99Fr."). SUBSTRING(VZeile,029) = STRING(+ Savze.Zus_Betr ,"->>>9.99"). { v8/putstream.i "1" } LEAVE. END. { v8/putstream.i "1" } /* ---- Summengruppen-Total -------------------------------------------- */ IF Savze.Rab_Su_Grp <> 0 THEN DO: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Savze.Rab_Su_Grp NO-ERROR. IF AVAILABLE TRabSumm THEN DO: TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Savze.Auf_Rab. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Savze.Abh_Rab. END. END. /* ---- Warengruppen-Totale -------------------------------------------- */ FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp 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. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1. ELSE TUmsGrp.Bez = "??????????". END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Savze.Net_Betr - Savze.Auf_Rab - Savze.Abh_Rab. 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 XSchname AS CHAR NO-UNDO. DEF VAR XSchbild AS CHAR NO-UNDO. DEF VAR VSchacht AS INT NO-UNDO. DEF VAR AnzKopien AS INT NO-UNDO. DEF VAR sRecid AS RECID NO-UNDO. DEF VAR iSize AS INT NO-UNDO. AnzKopien = F_Kopie. IF AnzKopien = 0 THEN AnzKopien = 1. FOR EACH WSchrift: DELETE WSchrift. END. EMPTY TEMP-TABLE WSchrift. EMPTY TEMP-TABLE WDrucker. CREATE WDrucker. CREATE WSchrift. BUFFER-COPY BDrucker TO WDrucker. BUFFER-COPY BSchrift TO WSchrift. DO WHILE TRUE: IF VCopy = 1 THEN LEAVE. IF VDokArt BEGINS 'LIEF' THEN LEAVE. IF VDokArt BEGINS 'RUES' THEN LEAVE. IF XSchname = '' THEN LEAVE. FIND Schrift USE-INDEX Schrift-k1 WHERE Schrift.Schname = XSchname AND Schrift.Schbild = XSchbild NO-LOCK NO-ERROR. IF NOT AVAILABLE Schrift THEN LEAVE. FIND Drucker WHERE Drucker.Drucker = Schrift.Schdru NO-LOCK NO-ERROR. IF NOT AVAILABLE Drucker THEN LEAVE. FIND FIRST WDrucker. FIND FIRST WSchrift. BUFFER-COPY Drucker TO WDrucker. BUFFER-COPY Schrift TO WSchrift. LEAVE. END. FIND FIRST WDrucker. FIND FIRST WSchrift. FIND Schrift OF WSchrift NO-LOCK NO-ERROR. DO VCopy = 1 TO AnzKopien: sRecid = RECID(Schrift). IF iSchacht1 > 0 AND iSchacht2 > 0 THEN DO: IF VCopy = 1 THEN VSchacht = iSchacht1. ELSE VSchacht = iSchacht2. END. ELSE VSchacht = 0. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTemp , RECID(Schrift), VSchacht , iBlockSize , /* 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. 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 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. DEF VAR VSchacht AS INT NO-UNDO. sRecid = RECID(XSchrift). IF iSchacht3 > 0 THEN VSchacht = iSchacht3. ELSE VSchacht = 0. IF VDokArt BEGINS 'KASS' THEN VSchacht = 0. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTempVESR , RECID(XSchrift), VSchacht , iBlockSize , /* 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: ------------------------------------------------------------------------------*/ 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 DRecid AS RECID NO-UNDO. DEF VAR cLagort AS CHAR 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. VDokArt = Tabel.Bez2. F_DokArt = Tabel.Bez2. 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. /* IF VDokArt BEGINS 'KAS' THEN DO: FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1 WHERE HilfsTab.Firma = GVFirma AND HilfsTab.Sort_1 = cBenutzer AND HilfsTab.Sort_2 = VDokArt NO-ERROR. FIND BSchrift NO-LOCK WHERE BSchrift.SchName = HilfsTab.Zeichen_1 AND BSchrift.Schbild = HilfsTab.Zeichen_2 NO-ERROR. FIND BDrucker NO-LOCK WHERE BDrucker.Drucker = BSchrift.Schdru NO-ERROR. FormRecid = RECID(BSchrift). END. ELSE DO: FIND BDrucker NO-LOCK WHERE BDrucker.Drucker = BLiDruck.Listdru NO-ERROR. END. */ FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1 WHERE HilfsTab.Firma = GVFirma AND HilfsTab.Sort_1 = cBenutzer AND HilfsTab.Sort_2 = VDokArt NO-ERROR. FIND BSchrift NO-LOCK WHERE BSchrift.SchName = HilfsTab.Zeichen_1 AND BSchrift.Schbild = HilfsTab.Zeichen_2 NO-ERROR. FIND BDrucker NO-LOCK WHERE BDrucker.Drucker = BSchrift.Schdru NO-ERROR. FIND BSavko WHERE RECID(BSavko) = CRecid NO-LOCK NO-ERROR. IF NOT AVAILABLE BSavko THEN RETURN. FormRecid = RECID(BSchrift). F_Aufnr = BSavko.Aufnr. F_Faknr = BSavko.Faknr. F_Datum = BSavko.Fak_Datum. IF F_Datum = ? THEN F_Datum = TODAY. FDatum = F_Datum. VSort = BListen.Sort. F_Drucker = BSchrift.Schname. F_Schrift = BSchrift.Schbild. F_TZZ = BLiDruck.Listtzz. F_KZZ = BLiDruck.Listkzz. F_FZZ = BLiDruck.Listfzz. F_KOPIE = BLiDruck.ListCopy. FIND TFakart USE-INDEX Tabel-k1 WHERE TFakart.Firma = GVFirma AND TFakart.RecArt = 'FAKART' AND TFakart.CodeC = '' AND TFakart.CodeI = BSavko.Fak_Art AND TFakart.Sprcd = 1 NO-LOCK NO-ERROR. F_Papier = TFakart.Bez1. FIND TAufsta USE-INDEX Tabel-k1 WHERE TAufsta.Firma = GVFirma AND TAufsta.RecArt = 'AUFSTATUS' AND TAufsta.CodeC = '' AND TAufsta.CodeI = BSavko.Auf_Sta AND TAufsta.Sprcd = 1 NO-LOCK NO-ERROR. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR. E_Adresse = ''. IF BSavko.Adresse[05] <> '' THEN DO: E_Adresse = CHR(10) + CHR(10) + BSavko.Adresse[01] + CHR(10) + BSavko.Adresse[02] + CHR(10) + BSavko.Adresse[03] + CHR(10) + BSavko.Adresse[04] + CHR(10) + BSavko.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. IF TFakart.Int_3 = 3 OR TFakart.Int_3 = 4 THEN DO: DruckFlag = FALSE. APPLY 'ENTRY' TO F_Kopie. WAIT-FOR CHOOSE OF Btn_Drucken OR CHOOSE OF Btn_Abbrechen. END. IF NOT DruckFlag THEN DO: REPEAT TRANSACTION: FIND BListen WHERE RECID(BListen) = ARecid. BListen.Listfl = ''. RELEASE BListen. LEAVE. END. RETURN NO-APPLY. END. ASSIGN {&List-1}. RUN LIBILD. FOR EACH SammFak: DELETE SammFak. END. IF BSavko.Samm_Nr <> 0 AND NOT VDokArt BEGINS 'Ruest' THEN DO: RUN SAMMELSUCHEN. END. ELSE DO: CREATE SammFak. ASSIGN SammFak.Knr = BSavko.Fak_Knr SammFak.Aufnr = BSavko.Aufnr SammFak.Samm_Nr = BSavko.Aufnr SammFak.Faknr = BSavko.Faknr SammFak.RID = RECID(BSavko). END. VTemp = ''. VTempVESR = ''. RUN WORKFILE. IF DOpen = TRUE THEN OUTPUT STREAM Out_Stream TO VALUE(VTemp) NO-MAP NO-CONVERT. FOR EACH SammFak BREAK BY SammFak.Knr BY SammFak.Samm_Nr BY SammFak.Aufnr : FIND BSavko WHERE RECID(BSavko) = SammFak.RID NO-LOCK NO-ERROR. F_Aufnr = BSavko.Aufnr. DISPLAY F_Aufnr WITH FRAME {&FRAME-NAME}. VWg_Grp = 0. VProd_Grp = 0. VArt_Grp = 0. VFak_Betr = 0. FErste = FALSE. FOR EACH TSavze: DELETE TSavze. END. FOR EACH TGebKto: DELETE TGebKto. END. FOR EACH TRabSumm: DELETE TRabSumm. END. FOR EACH TSpeRab: DELETE TSpeRab. END. FOR EACH TGebuehr: DELETE TGebuehr. END. IF FIRST-OF ( SammFak.Samm_Nr ) THEN DO: FOR EACH TUmsGrp : DELETE TUmsGrp . END. GTWpfl = 0. GTWust = 0. GTFak_Betr = 0. GTSk_Ber = 0. SFaknr = SammFak.Faknr. FLetzt = FALSE. FErste = TRUE. TiDruck = TRUE. VSeite = 0. END. cLagOrt = ''. FOR EACH BSavze USE-INDEX Savze-k1 WHERE BSavze.Firma = BSavko.Firma AND BSavze.Aufnr = BSavko.Aufnr NO-LOCK: IF BSavze.Artnr <> 0 THEN DO: FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = BSavze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = BSavze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = BSavze.KGeb_Cd NO-LOCK NO-ERROR. FIND ArtLager NO-LOCK WHERE ArtLager.Firma = BSavze.Firma AND ArtLager.Artnr = BSavze.Artnr AND ArtLager.Inhalt = BSavze.Inhalt AND ArtLager.Jahr = BSavze.Jahr AND ArtLager.Lager = BSavze.Lager NO-ERROR. IF AVAILABLE ArtLager THEN cLagort = ArtLager.Ort. ELSE cLagort = ''. END. CREATE TSavze. ASSIGN TSavze.Aufnr = BSavze.Aufnr TSavze.Artnr = BSavze.Artnr TSavze.Inhalt = BSavze.Inhalt TSavze.Jahr = BSavze.Jahr TSavze.Pos = BSavze.Pos TSavze.Zeile = RECID(BSavze) TSavze.Aktion = BSavze.Aktion TSavze.Preis = BSavze.Preis. IF BSavze.Artnr <> 0 THEN DO: FIND Artst OF BSavze NO-LOCK. VWg_Grp = Artst.Wg_Grp. VProd_Grp = Artst.Prod_Grp. VArt_Grp = Artst.Art_Grp. AArtnr = Artst.Artnr. AInhalt = Artst.Inhalt. AJahr = Artst.Jahr. END. IF VSort = 1 THEN DO: ASSIGN TSavze.Sort1 = cLagOrt TSavze.Sort2 = STRING(VWg_Grp ,"999") + STRING(VProd_Grp ,"999") TSavze.Sort3 = STRING(VArt_Grp,"999"). END. IF BSavze.Artnr = 0 THEN DO: ASSIGN TSavze.Artnr = AArtnr TSavze.Inhalt = AInhalt TSavze.Jahr = AJahr. END. IF BSavze.Artnr = 0 THEN NEXT. /* Spezial-Auftrags-Rabatt -------------------------------------------- */ IF BSavze.Auf_Sp_Grp > 0 THEN DO: FIND FIRST TSpeRab WHERE TSpeRab.Rab_Grp = BSavze.Auf_Sp_Grp NO-ERROR. IF NOT AVAILABLE TSpeRab THEN DO: CREATE TSpeRab. ASSIGN TSpeRab.Rab_Grp = BSavze.Auf_Sp_Grp. END. TSpeRab.Auf_Betr = TSpeRab.Auf_Betr + BSavze.Auf_Sp_Rab. END. /* Summengruppen-Totale ------------------------------------------------ */ DO WHILE BSavze.Rab_Su_Grp > 0: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = BSavze.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 = BSavze.Rab_Su_Grp NO-LOCK NO-ERROR. IF NOT AVAILABLE RabSumm THEN LEAVE. CREATE TRabSumm. ASSIGN TRabSumm.Rab_Summ = BSavze.Rab_Su_Grp TRabSumm.Bez = RabSumm.Bez TRabSumm.Auf_Rab = 0 TRabSumm.Abh_Rab = 0. END. LEAVE. END. END. IF LAST-OF ( SammFak.Samm_Nr ) THEN DO: FLetzt = TRUE. END. FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1 WHERE HilfsTab.Firma = GVFirma AND HilfsTab.Sort_1 = cBenutzer AND HilfsTab.Sort_2 = VDokArt NO-ERROR. ASSIGN iTotal = HilfsTab.Zahl[01] iKopf = HilfsTab.Zahl[02] iFuss = HilfsTab.Zahl[03] iSchacht1 = HilfsTab.Zahl[05] iSchacht2 = HilfsTab.Zahl[06] iSchacht3 = HilfsTab.Zahl[08]. RUN VALUE(VDokArt). IF NOT FLetzt THEN NEXT. END. /* FOR EACH SammFak */ IF DOpen THEN OUTPUT STREAM Out_Stream CLOSE. DOpen = FALSE. RUN DRUCKAUSGABE. IF VTemp <> '' THEN OS-DELETE VALUE(VTemp). IF VTempVESR <> '' THEN DO: RUN DRUCKAUSGABE_VESR. OS-DELETE VALUE(VTempVESR). END. REPEAT TRANSACTION: FIND BListen WHERE RECID(BListen) = ARecid. BListen.Listfl = ''. RELEASE BListen. LEAVE. END. END. /* DO WITH FRAME */ RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKPOSITION C-Win PROCEDURE DRUCKPOSITION : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR SX AS INT INIT 0. DEF VAR SY AS INT INIT 12. DEF INPUT PARAMETER Aufloesung AS INT. DEF INPUT PARAMETER X AS INT. DEF INPUT PARAMETER Y AS INT. X = X + SX. Y = Y + SY. PUT STREAM Besr_Stream CONTROL CHR(027) '9'. PUT STREAM Besr_Stream CONTROL CHR(027) '*t' STRING(Aufloesung) 'R'. PUT STREAM Besr_Stream CONTROL CHR(027) '*p' STRING(Y) 'y' STRING(X) 'X'. 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_KOPIE F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_Faknr F_Dokart F_Seite F_Datum F_Papier WITH FRAME DEFAULT-FRAME IN WINDOW C-Win. ENABLE F_KOPIE Btn_Drucken Btn_Abbrechen F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_Faknr F_Dokart F_Seite F_Datum F_Papier RECT-1 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 FAKTURA C-Win PROCEDURE FAKTURA : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VSeite = 0. VFak_Betr = 0. LiKopf = TRUE. FPreis = TRUE. FBetrag = TRUE. FRabatt = TRUE. FUeber = TRUE. FSamm = FALSE. VKopfArt = 'FAKTURA_KOPF'. RUN VALUE(VKopfArt). FOR EACH TSavze NO-LOCK BY TSavze.Aufnr BY TSavze.Sort1 BY TSavze.Sort2 BY TSavze.Sort3 BY TSavze.Artnr BY TSavze.Inhalt BY TSavze.Jahr BY TSavze.Pos : IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK. RUN ARTIKELZEILE ( RECID(Savze) ). VFak_Betr = VFak_Betr + Savze.Net_Betr. END. VZeile = FILL('-', StBreite). { v8/putstream.i "1" } SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)). SUBSTRING(VZeile,078) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } LiKopf = FALSE. RUN SUMMENRABATTE. { v8/putstream.i "1" } RUN GEBINDE_SALDO. RUN GEBINDE_ABRECHNUNG. RUN MEHRWERTSTEUER. SUBSTRING(VZeile,078) = '=========='. { v8/putstream.i "2" } FUeber = FALSE. RUN ZAHLUNGSKONDITION. RUN UMSATZVERTEILUNG. RUN KOPF_MUTATION. Zuszz = BLiDruck.Listtzz - VLine. { v8/putstream.i Zuszz }. Zuszz = 0. Rundbetr = VFak_Betr. VesrKnr = BSavko.Fak_Knr. VesrFnr = BSavko.Faknr. RUN VESR_DRUCK. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA_KOPF C-Win PROCEDURE FAKTURA_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN NEUE_SEITE. IF VSeite = 1 THEN DO: IF SFaknr = 0 THEN SFaknr = BSavko.Faknr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BSavko.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. F_Seite = VSeite. F_Faknr = SFaknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. VZeile = ''. { v8/putstream.i BLiDruck.Listkzz }. IF BSavko.Adresse[05] <> '' THEN DO: DO ix = 1 TO 5: SUBSTRING(VZeile,050) = BSavko.Adresse[ix]. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. END. ELSE DO: DO ix = 7 TO 11: 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. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20)) + STRING(SFaknr,"z999999") + " /" + STRING(VSeite,"zz9"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). { v8/putstream.i "2" } DO WHILE VSeite = 1. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[08],01,20)) + STRING(BSavko.Knr,"zzzzz99"). SUBSTRING(VZeile,051) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + STRING(BSavko.Auf_Datum,"99.99.9999"). { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[08],21,20)) + STRING(BSavko.Gewicht,"zzz,zz9.999-"). SUBSTRING(VZeile,051) = TRIM(SUBSTRING(FormText[09],21,20)) + " " + STRING(BSavko.Lief_Datum,"99.99.9999"). { v8/putstream.i "2" } XAuf_Text = BSavko.Auf_Text. i1 = INDEX(XAuf_Text, CHR(10)). i2 = 0. DO WHILE i1 > 0: SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1). { v8/putstreamf.i "1" } XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1). i1 = INDEX(XAuf_Text, CHR(10)). i2 = i2 + 1. END. IF XAuf_Text <> '' THEN DO: SUBSTRING(VZeile,001) = XAuf_Text. { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. XAuf_Text = BSavko.Abh_Text. i1 = INDEX(XAuf_Text, CHR(10)). i2 = 0. DO WHILE i1 > 0: SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1). { v8/putstreamf.i "1" } XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1). i1 = INDEX(XAuf_Text, CHR(10)). i2 = i2 + 1. END. IF XAuf_Text <> '' THEN DO: SUBSTRING(VZeile,001) = XAuf_Text. { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. LEAVE. END. IF LiKopf THEN DO: SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. StBreite = LENGTH(VZeile). { v8/putstream.i "1" } END. ELSE DO: { v8/putstream.i "1" } END. IF VSeite > 1 AND FUeber = TRUE THEN DO: SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)). SUBSTRING(VZeile,078) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "2" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FESTRECHNUNG C-Win PROCEDURE FESTRECHNUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ Zuszz = 8. LiKopf = TRUE. FPreis = TRUE. FBetrag = TRUE. FRabatt = TRUE. FUeber = FALSE. FSamm = TRUE. VKopfArt = VDokArt + '_KOPF'. IF (iTotal - VLine - Zuszz ) < iFuss THEN DO: TiDruck = TRUE. END. IF TiDruck THEN DO: RUN VALUE(VKopfArt). END. ELSE DO: { v8/putstream.i "2" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],01,20)) + " " + STRING(BSavko.Aufnr,"zzzzzzzzz9"). { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20)) + " " + STRING(BSavko.Auf_Datum,"99.99.9999"). { v8/putstream.i "2" } SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. { v8/putstream.i "1" } END. FOR EACH TSavze NO-LOCK BY TSavze.Aufnr BY TSavze.Sort1 BY TSavze.Sort2 BY TSavze.Sort3 BY TSavze.Artnr BY TSavze.Inhalt BY TSavze.Jahr BY TSavze.Pos : IF (iTotal - VLine - 2) < iFuss THEN DO: RUN VALUE(VKopfArt). END. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK. RUN ARTIKELZEILE ( RECID(Savze) ). VFak_Betr = VFak_Betr + Savze.Net_Betr. END. VZeile = FILL('-', StBreite). { v8/putstream.i "1" } SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)). SUBSTRING(VZeile,078) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } LiKopf = FALSE. RUN SUMMENRABATTE. { v8/putstream.i "1" } RUN GEBINDE_SALDO. RUN GEBINDE_ABRECHNUNG. DO ix = 1 TO 12: GTWpfl[ix] = GTWpfl[ix] + BSavko.Wpfl[ix]. GTWust[ix] = GTWust[ix] + BSavko.Wust[ix]. END. GTFak_Betr = GTFak_Betr + VFak_Betr. GTSk_Ber = GTSk_Ber + BSavko.Sk_Ber. IF FLetzt THEN RUN SAMMFAK_ENDE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FESTRECHNUNG_ENDE C-Win PROCEDURE FESTRECHNUNG_ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ SUBSTRING(VZeile,027) = FILL('-', StBreite - 026). { v8/putstream.i "1" } SUBSTRING(VZeile,027) = TRIM(SUBSTRING(FormText[14],01,20)). SUBSTRING(VZeile,078) = STRING(GTFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,027) = FILL('-', StBreite - 026). { v8/putstream.i "1" } FUeber = TRUE. VFak_Betr = GTFak_Betr. DO ix = 1 TO 11: IF GTWpfl[ix] = 0 THEN NEXT. GTFak_Betr = GTFak_Betr + GTWust[ix]. Zuszz = Zuszz + 1. END. IF Zuszz > 0 THEN Zuszz = Zuszz + 6. IF (iTotal - VLine - Zuszz) < iFuss THEN DO: RUN VALUE(VKopfArt). END. DO ix = 1 TO 11: IF GTWpfl[ix] = 0 THEN NEXT. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = ix AND MWSTAns.Datum <= BSavko.Kond_Datum NO-LOCK. SUBSTRING(VZeile,027) = MWSTAns.Bez. SUBSTRING(VZeile,065) = STRING(GTWpfl[ix],"->>,>>9.99"). SUBSTRING(VZeile,078) = STRING(GTWust[ix],"->>,>>9.99"). SUBSTRING(VZeile,089) = STRING(ix ,"z9"). { v8/putstream.i "1" } END. Rundbetr = GTFak_Betr. Rundcode = 1. RUN "v8/runden.p". GTFak_Betr = Rundbetr. SUBSTRING(VZeile,027) = FILL('-', StBreite - 026). { v8/putstream.i "1" } SUBSTRING(VZeile,027) = TRIM(FormText[16]). SUBSTRING(VZeile,078) = STRING(GTFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,078) = FILL('=', StBreite - 080). { v8/putstream.i "2" } FIND Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BSavko.Kond AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF AVAILABLE Kondi THEN DO: SUBSTRING(VZeile,001) = Kondi.KoText. IF Kondi.Skonto[01] <> 0 THEN DO: Rundbetr = GTSk_Ber * Kondi.Skonto[01] / 100. Rundcode = 1. RUN "v8/runden.p". SUBSTRING(VZeile,078) = STRING(Rundbetr,"->>,>>9.99"). END. END. ELSE DO: SUBSTRING(VZeile,001) = FILL('?', 30). END. { v8/putstream.i "2" } FUeber = FALSE. RUN UMSATZVERTEILUNG. Zuszz = iTotal - VLine. { v8/putstream.i Zuszz }. Zuszz = 0. Rundbetr = GTFak_Betr. VesrKnr = BSavko.Fak_Knr. VesrFnr = BSavko.Faknr. IF VBesr > 0 THEN DO: RUN VESR_DRUCK. END. PAGE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FESTRECHNUNG_KOPF C-Win PROCEDURE FESTRECHNUNG_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN NEUE_SEITE. IF VSeite = 1 THEN DO: IF SFaknr = 0 THEN SFaknr = BSavko.Faknr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BSavko.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. F_Seite = VSeite. F_Faknr = SFaknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. VZeile = ''. { v8/putstream.i iKopf }. 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. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20)) + STRING(SFaknr,"z999999") + " /" + STRING(VSeite,"zz9"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20)). SUBSTRING(VZeile,012) = STRING(FDatum,"99.99.9999"). SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[08],01,20)) + STRING(BSavko.Fak_Knr,"zz999999"). { v8/putstream.i "2" } IF VSeite = 1 THEN DO: END. DO WHILE TiDruck. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[17],01,20)) + " " + STRING(BSavko.Aufnr,"zzzzzzzzz9"). { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[17],21,20)) + " " + STRING(BSavko.Auf_Datum,"99.99.9999"). { v8/putstream.i "2" } LEAVE. END. IF LiKopf THEN DO: SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. StBreite = LENGTH(VZeile). { v8/putstream.i "1" } END. ELSE DO: { v8/putstream.i "1" } END. IF VSeite > 1 AND FUeber = TRUE THEN DO: SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)). SUBSTRING(VZeile,078) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "2" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_ABRECHNUNG C-Win PROCEDURE GEBINDE_ABRECHNUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ Zuszz = 0. FOR EACH SavGKon USE-INDEX SavGKon-k1 WHERE SavGKon.Firma = BSavko.Firma AND SavGKon.Aufnr = BSavko.Aufnr AND SavGKon.Depot <> 0 NO-LOCK: IF SavGKon.Eingang = 0 AND SavGKon.Ausgang = 0 THEN NEXT. Zuszz = Zuszz + 1. END. Ja = FALSE. IF Zuszz > 0 THEN DO: Zuszz = Zuszz + 4. Ja = TRUE. END. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. i5 = 0. VZTot = 0. IF Ja THEN DO: SUBSTRING(VZeile,001) = FormText[12]. SUBSTRING(VZeile,071) = FormText[13]. { v8/putstreamf.i "1" } END. FOR EACH SavGKon USE-INDEX SavGKon-k1 WHERE SavGKon.Firma = BSavko.Firma AND SavGKon.Aufnr = BSavko.Aufnr AND SavGKon.Depot <> 0 NO-LOCK: IF SavGKon.Eingang = 0 AND SavGKon.Ausgang = 0 THEN NEXT. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = SavGKon.Geb_Cd NO-LOCK. i1 = SavGKon.Ausgang - SavGKon.Eingang. Rundbetr = SavGKon.Betrag. VWC = SavGKon.MWSt_Cd. VZTot = VZTot + Rundbetr. SUBSTRING(VZeile,004) = GebKonto.Bez. SUBSTRING(VZeile,035) = STRING(SavGKon.Ausgang,"->>,>>9"). SUBSTRING(VZeile,045) = STRING(SavGKon.Eingang,"->>,>>9"). SUBSTRING(VZeile,055) = STRING(i1 ,"->>,>>9"). SUBSTRING(VZeile,065) = STRING(Rundbetr ,"->>,>>9.99"). SUBSTRING(VZeile,089) = STRING(VWC ,"z9"). { v8/putstream.i "1" } i5 = i5 + 1. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 1001 NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = 1001 NO-LOCK NO-ERROR. CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = 1001 TUmsGrp.Bez = 'Gebindesaldo'. END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + SavGKon.Betrag. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[11],21,20)). SUBSTRING(VZeile,078) = STRING(VZTot,"->>,>>9.99"). { v8/putstream.i "1" } VFak_Betr = VFak_Betr + VZTot. END. IF NOT FSamm THEN DO: SUBSTRING(VZeile,027) = FILL('-', StBreite - 026). { v8/putstream.i "1" } SUBSTRING(VZeile,027) = TRIM(SUBSTRING(FormText[15],21,20)). SUBSTRING(VZeile,078) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,027) = FILL('-', StBreite - 026). { v8/putstream.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_ABRECHNUNG_KASSE C-Win PROCEDURE GEBINDE_ABRECHNUNG_KASSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ i5 = 0. VZTot = 0. SUBSTRING(VZeile,001) = FormText[12]. { v8/putstreamf.i "1" } FOR EACH SavGKon USE-INDEX SavGKon-k1 WHERE SavGKon.Firma = BSavko.Firma AND SavGKon.Aufnr = BSavko.Aufnr AND SavGKon.Depot <> 0 NO-LOCK: IF SavGKon.Eingang = 0 AND SavGKon.Ausgang = 0 THEN NEXT. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = SavGKon.Geb_Cd NO-LOCK. i1 = SavGKon.Ausgang - SavGKon.Eingang. Rundbetr = SavGKon.Betrag. VWC = SavGKon.MWSt_Cd. VZTot = VZTot + Rundbetr. SUBSTRING(VZeile,001) = STRING(GebKonto.Bez,"x(10)"). SUBSTRING(VZeile,011) = STRING(SavGKon.Ausgang,"->>>9"). SUBSTRING(VZeile,017) = STRING(SavGKon.Eingang,"->>>9"). SUBSTRING(VZeile,023) = STRING(i1 ,"->>>9"). SUBSTRING(VZeile,029) = STRING(Rundbetr ,"->>>9.99"). SUBSTRING(VZeile,039) = STRING(VWC ,"z9"). { v8/putstream.i "1" } i5 = i5 + 1. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 1001 NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = 1001 NO-LOCK NO-ERROR. CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = 1001 TUmsGrp.Bez = 'Gebindesaldo'. END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + SavGKon.Betrag. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[11],21,20)). SUBSTRING(VZeile,029) = STRING(VZTot,"->>>9.99"). { v8/putstream.i "1" } VFak_Betr = VFak_Betr + VZTot. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_LIEFERUNG C-Win PROCEDURE GEBINDE_LIEFERUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ Zuszz = 0. FOR EACH TGebKto NO-LOCK: Zuszz = Zuszz + 1. END. IF Zuszz > 0 THEN Zuszz = Zuszz + 2. Zuszz = (Zuszz + 1) / 2. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. i5 = 0. VZTot = 0. SUBSTRING(VZeile,001) = BDrucker.DruUnterB + TRIM(SUBSTRING(FormText[10],01,20)) + BDrucker.DruUnterE. { v8/putstream.i "2" } i1 = 1. i2 = 0. FOR EACH TGebKto BY TGebKto.Sort_Cd BY TGebKto.Geb_Cd : i2 = i2 + 1. IF i2 MOD 2 = 0 THEN i1 = 41. ELSE i1 = 01. SUBSTRING(VZeile,i1) = STRING(TGebKto.A_Anz,"->>>>9") + " " + STRING(TGebKto.Bez,"x(30)"). IF i1 > 30 THEN DO: { v8/putstream.i "1" } i5 = i5 + 1. END. END. IF VZeile <> '' THEN DO: { v8/putstream.i "1" } i5 = i5 + 1. END. IF i5 > 0 THEN DO: { v8/putstream.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_RUECKNAHME_TABELLE C-Win PROCEDURE GEBINDE_RUECKNAHME_TABELLE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ /* Gebinderücknahmetabelle ------------------------------------------- */ DEF VAR cTextArt AS CHAR NO-UNDO. cTextArt = 'GEBINDERETOUR' + STRING(BSavko.Fak_Art,'99'). FIND TabTexte USE-INDEX TabTexte-k1 WHERE TabTexte.Firma = GVFirma AND TabTexte.TextArt = cTextArt AND TabTexte.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF AVAILABLE TabTexte THEN VTabTexte = TabTexte.Inhalt. ELSE DO: cTextArt = 'GEBINDERETOUR'. FIND TabTexte USE-INDEX TabTexte-k1 WHERE TabTexte.Firma = GVFirma AND TabTexte.TextArt = cTextArt AND TabTexte.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF AVAILABLE TabTexte THEN VTabTexte = TabTexte.Inhalt. ELSE VTabTexte = ''. END. Zuszz = NUM-ENTRIES(VTabTexte, CHR(10)). IF Zuszz > 0 THEN Zuszz = Zuszz + 2. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. DO WHILE TRUE: ix = INDEX(VTabTexte, CHR(10)). IF ix = 0 THEN DO: VZeile = VTabTexte. LEAVE. END. VZeile = SUBSTRING(VTabTexte,01,ix - 1). VTabTexte = SUBSTRING(VTabTexte,ix + 1). { v8/putstream.i "1" }. END. IF VZeile <> '' THEN DO: { v8/putstream.i "1" }. 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 SavGKon USE-INDEX SavGKon-k1 WHERE SavGKon.Firma = BSavko.Firma AND SavGKon.Aufnr = BSavko.Aufnr AND SavGKon.Depot <> 0 AND SavGKon.Betrag <> 0 NO-LOCK: FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = SavGKon.Geb_Cd NO-ERROR. IF NOT AVAILABLE TGebKto THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = SavGKon.Firma AND GebKonto.Geb_Cd = SavGKon.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 = SavGKon.Depot TGebKto.MWST_Cd = SavGKon.MWSt_Cd. END. TGebKto.A_Anz = TGebKto.A_Anz + SavGKon.Ausgang. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis. TGebKto.E_Anz = TGebKto.E_Anz + SavGKon.Eingang. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KASSE C-Win PROCEDURE KASSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VSeite = 0. VFak_Betr = 0. LiKopf = TRUE. FPreis = TRUE. FBetrag = TRUE. FRabatt = TRUE. FUeber = TRUE. FSamm = FALSE. VKopfArt = 'KASSE_KOPF'. RUN VALUE(VKopfArt). FOR EACH TSavze NO-LOCK BY TSavze.Aufnr BY TSavze.Sort1 BY TSavze.Sort2 BY TSavze.Sort3 BY TSavze.Artnr BY TSavze.Inhalt BY TSavze.Jahr BY TSavze.Pos : FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK. RUN ARTIKELZEILE_KASSE. VFak_Betr = VFak_Betr + Savze.Net_Betr. END. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[10],41,20)). SUBSTRING(VZeile,029) = STRING(VFak_Betr,"->>>9.99"). { v8/putstreamf.i "1" } RUN SUMMENRABATTE_KASSE. RUN GEBINDE_SALDO. RUN GEBINDE_ABRECHNUNG_KASSE. RUN MEHRWERTSTEUER_KASSE. RUN KASSE_ABSCHLUSS. RUN KOPF_MUTATION. { v8/putstream.i "8" } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KASSE_ABSCHLUSS C-Win PROCEDURE KASSE_ABSCHLUSS : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { v8/putstream.i "2" } IF BSavko.Bar_Betr <> 0 THEN DO: SUBSTRING(VZeile,001) = TRIM(FormText[19]). { v8/putstream.i "2" } END. SUBSTRING(VZeile,001) = TRIM(FormText[20]). { v8/putstream.i "2" } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KASSE_KOPF C-Win PROCEDURE KASSE_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN NEUE_SEITE. IF SFaknr = 0 THEN SFaknr = BSavko.Faknr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BSavko.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 = SFaknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR. IF Steuer.Firma1 <> '' THEN DO: SUBSTRING(VZeile,001) = Steuer.Firma1. { v8/putstream.i "1" } END. IF Steuer.Firma2 <> '' THEN DO: SUBSTRING(VZeile,001) = Steuer.Firma2. { v8/putstream.i "1" } END. IF Steuer.Strasse <> '' THEN DO: SUBSTRING(VZeile,001) = Steuer.Strasse. { v8/putstream.i "1" } END. IF Steuer.Ort <> '' THEN DO: SUBSTRING(VZeile,001) = Steuer.Ort. { v8/putstream.i "1" } END. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20)) + " " + BSteuer.MWST_Nr. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). { v8/putstream.i "2" } DO WHILE TRUE: IF NOT FDebst.Passant THEN DO: DO ix = 1 TO 12: IF Adresse.Anschrift[ix] = '' THEN NEXT. SUBSTRING(VZeile,010) = Adresse.Anschrift[ix]. IF ix <> 11 THEN DO: { v8/putstream.i "1" } END. ELSE DO: { v8/putstreamf.i "1" } END. END. { v8/putstream.i "3" } LEAVE. END. { v8/putstream.i "2" } LEAVE. END. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20)) + STRING(SFaknr,"z999999") + " /" + STRING(BSavko.Aufnr,"9999999"). { v8/putstreamf.i "2" } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF_MUTATION C-Win PROCEDURE KOPF_MUTATION : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ 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. VProgName = BSteuer.Fwc10 + ":" + VDokArt. FormText = "". FOR EACH LiBild USE-INDEX LiBild-k1 WHERE LiBild.Sprcd = GVSprcd AND LiBild.Prog = VProgname AND LiBild.Tenr > 0 NO-LOCK 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(30)"). SUBSTRING(RZeile,067) = STRING(' ',"x(02)"). SUBSTRING(RZeile,070) = STRING(' ',"x(07)"). SUBSTRING(RZeile,078) = STRING(' ',"x(10)"). SUBSTRING(RZeile,089) = 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: ------------------------------------------------------------------------------*/ VSeite = 0. VFak_Betr = 0. LiKopf = TRUE. FPreis = TRUE. FBetrag = TRUE. FRabatt = TRUE. FUeber = TRUE. FSamm = FALSE. VKopfArt = 'LIEFERFAK_KOPF'. iBlockSize = 80. RUN VALUE(VKopfArt). FOR EACH TSavze NO-LOCK BY TSavze.Aufnr BY TSavze.Sort1 BY TSavze.Sort2 BY TSavze.Sort3 BY TSavze.Artnr BY TSavze.Inhalt BY TSavze.Jahr BY TSavze.Pos : IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK. RUN ARTIKELZEILE ( RECID(Savze) ). VFak_Betr = VFak_Betr + Savze.Net_Betr. END. VZeile = FILL('-', StBreite). { v8/putstream.i "1" } SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)). SUBSTRING(VZeile,078) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } LiKopf = FALSE. RUN SUMMENRABATTE. { v8/putstream.i "1" } RUN GEBINDE_SALDO. RUN GEBINDE_ABRECHNUNG. RUN MEHRWERTSTEUER. { v8/putstream.i "2 } RUN ZAHLUNGSKONDITION. RUN GEBINDE_RUECKNAHME_TABELLE. RUN KOPF_MUTATION. Zuszz = BLiDruck.Listtzz - VLine. { v8/putstream.i Zuszz }. Zuszz = 0. Rundbetr = 0. VesrKnr = BSavko.Fak_Knr. VesrFnr = BSavko.Faknr. cVESR_DRUCK = 'VESR_DRUCK' + STRING(VBesr,'99'). RUN VALUE(cVESR_DRUCK). PAGE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK_KOPF C-Win PROCEDURE LIEFERFAK_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN NEUE_SEITE. IF VSeite = 1 THEN DO: IF SFaknr = 0 THEN SFaknr = BSavko.Faknr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BSavko.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. F_Seite = VSeite. F_Faknr = SFaknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. VZeile = ''. { v8/putstream.i BLiDruck.Listkzz }. IF BSavko.Adresse[05] <> '' THEN DO: DO ix = 1 TO 5: SUBSTRING(VZeile,050) = BSavko.Adresse[ix]. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. END. ELSE DO: DO ix = 7 TO 11: 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. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20)) + STRING(SFaknr,"z999999") + " /" + STRING(VSeite,"zz9"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). { v8/putstream.i "2" } DO WHILE VSeite = 1. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[08],01,20)) + STRING(BSavko.Knr,"zzzzz99"). SUBSTRING(VZeile,051) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + STRING(BSavko.Auf_Datum,"99.99.9999"). { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[08],21,20)) + STRING(BSavko.Gewicht,"zzz,zz9.999-"). SUBSTRING(VZeile,051) = TRIM(SUBSTRING(FormText[09],21,20)) + " " + STRING(BSavko.Lief_Datum,"99.99.9999"). { v8/putstream.i "1" } RUN ABLADEVORSCHRIFT. IF xAblade <> '' THEN DO: VZeile = TRIM(xAblade). { v8/putstream.i "1" } END. { v8/putstream.i "1" } XAuf_Text = BSavko.Auf_Text. i1 = INDEX(XAuf_Text, CHR(10)). i2 = 0. DO WHILE i1 > 0: SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1). { v8/putstreamf.i "1" } XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1). i1 = INDEX(XAuf_Text, CHR(10)). i2 = i2 + 1. END. IF XAuf_Text <> '' THEN DO: SUBSTRING(VZeile,001) = XAuf_Text. { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. XAuf_Text = BSavko.Abh_Text. i1 = INDEX(XAuf_Text, CHR(10)). i2 = 0. DO WHILE i1 > 0: SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1). { v8/putstreamf.i "1" } XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1). i1 = INDEX(XAuf_Text, CHR(10)). i2 = i2 + 1. END. IF XAuf_Text <> '' THEN DO: SUBSTRING(VZeile,001) = XAuf_Text. { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. LEAVE. END. IF LiKopf THEN DO: SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. { v8/putstream.i "1" } END. ELSE DO: { v8/putstream.i "1" } END. IF VSeite > 1 AND FUeber = TRUE THEN DO: SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)). SUBSTRING(VZeile,078) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "2" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERPREIS C-Win PROCEDURE LIEFERPREIS : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VSeite = 0. VFak_Betr = 0. LiKopf = TRUE. FPreis = TRUE. FBetrag = FALSE. FRabatt = FALSE. FSamm = FALSE. VKopfArt = 'LIEFERSCHEIN_KOPF'. RUN VALUE(VKopfArt). FOR EACH TSavze NO-LOCK BY TSavze.Aufnr BY TSavze.Sort1 BY TSavze.Sort2 BY TSavze.Sort3 BY TSavze.Artnr BY TSavze.Inhalt BY TSavze.Jahr BY TSavze.Pos : IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK. RUN ARTIKELZEILE ( RECID(Savze) ). VFak_Betr = VFak_Betr + Savze.Net_Betr. END. VZeile = FILL('-', StBreite). { v8/putstream.i "2" } LiKopf = FALSE. RUN GEBINDE_SALDO. RUN GEBINDE_LIEFERUNG. RUN GEBINDE_RUECKNAHME_TABELLE. RUN KOPF_MUTATION. PAGE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN C-Win PROCEDURE LIEFERSCHEIN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VSeite = 0. VFak_Betr = 0. LiKopf = TRUE. FPreis = FALSE. FBetrag = FALSE. FRabatt = FALSE. FSamm = FALSE. VKopfArt = 'LIEFERSCHEIN_KOPF'. RUN VALUE(VKopfArt). FOR EACH TSavze NO-LOCK BY TSavze.Aufnr BY TSavze.Sort1 BY TSavze.Sort2 BY TSavze.Sort3 BY TSavze.Artnr BY TSavze.Inhalt BY TSavze.Jahr BY TSavze.Pos : IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK. RUN ARTIKELZEILE ( RECID(Savze) ). VFak_Betr = VFak_Betr + Savze.Net_Betr. END. VZeile = FILL('-', StBreite). { v8/putstream.i "2" } LiKopf = FALSE. RUN GEBINDE_SALDO. RUN GEBINDE_LIEFERUNG. RUN GEBINDE_RUECKNAHME_TABELLE. RUN KOPF_MUTATION. PAGE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN_KOPF C-Win PROCEDURE LIEFERSCHEIN_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN NEUE_SEITE. IF VSeite = 1 THEN DO: FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BSavko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BSavko.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. F_Seite = VSeite. F_Faknr = BSavko.Faknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. VZeile = ''. { v8/putstream.i BLiDruck.Listkzz }. IF BSavko.Adresse[05] <> '' THEN DO: DO ix = 1 TO 5: SUBSTRING(VZeile,050) = BSavko.Adresse[ix]. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. END. ELSE DO: DO ix = 7 TO 11: 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. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20)) + STRING(BSavko.Aufnr,"z999999") + " /" + STRING(VSeite,"zz9"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). { v8/putstream.i "2" } DO WHILE VSeite = 1. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[08],01,20)) + STRING(BSavko.Knr,"zzzzz99"). SUBSTRING(VZeile,051) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + STRING(BSavko.Auf_Datum,"99.99.9999"). { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[08],21,20)) + STRING(BSavko.Gewicht,"zzz,zz9.999-"). SUBSTRING(VZeile,051) = TRIM(SUBSTRING(FormText[09],21,20)) + " " + STRING(BSavko.Lief_Datum,"99.99.9999"). { v8/putstream.i "2" } XAuf_Text = BSavko.Auf_Text. i1 = INDEX(XAuf_Text, CHR(10)). i2 = 0. DO WHILE i1 > 0: SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1). { v8/putstreamf.i "1" } XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1). i1 = INDEX(XAuf_Text, CHR(10)). i2 = i2 + 1. END. IF XAuf_Text <> '' THEN DO: SUBSTRING(VZeile,001) = XAuf_Text. { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. RUN ABLADEVORSCHRIFT. IF xAblade <> '' THEN DO: VZeile = TRIM(xAblade). { v8/putstream.i "1" } END. { v8/putstream.i "1" } XAuf_Text = BSavko.Abh_Text. i1 = INDEX(XAuf_Text, CHR(10)). i2 = 0. DO WHILE i1 > 0: SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1). { v8/putstreamf.i "1" } XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1). i1 = INDEX(XAuf_Text, CHR(10)). i2 = i2 + 1. END. IF XAuf_Text <> '' THEN DO: SUBSTRING(VZeile,001) = XAuf_Text. { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. LEAVE. END. IF LiKopf THEN DO: SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. StBreite = LENGTH(VZeile). { v8/putstream.i "1" } END. ELSE DO: { v8/putstream.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER C-Win PROCEDURE MEHRWERTSTEUER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VWpfl = 0. VWust = 0. Zuszz = 0. DO ix = 1 TO 11: IF BSavko.WPfl[ix] = 0 THEN NEXT. VWpfl[ix] = BSavko.Wpfl[ix]. VWust[ix] = BSavko.Wust[ix]. Zuszz = Zuszz + 1. END. IF Zuszz > 0 THEN Zuszz + 8. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. 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 <= BSavko.Kond_Datum NO-LOCK. SUBSTRING(VZeile,027) = MWSTAns.Bez. SUBSTRING(VZeile,065) = STRING(VWpfl[ix],"->>,>>9.99"). SUBSTRING(VZeile,078) = STRING(VWust[ix],"->>,>>9.99"). SUBSTRING(VZeile,089) = STRING(ix ,"z9"). { v8/putstream.i "1" } VFak_Betr = VFak_Betr + VWust[ix]. END. Rundbetr = VFak_Betr. Rundcode = 1. RUN "v8/runden.p". VFak_Betr = Rundbetr. SUBSTRING(VZeile,027) = FILL('-', StBreite - 026). { v8/putstream.i "1" } SUBSTRING(VZeile,027) = TRIM(FormText[16]). SUBSTRING(VZeile,078) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER_KASSE C-Win PROCEDURE MEHRWERTSTEUER_KASSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { v8/putstream.i "1" } VWpfl = 0. VWust = 0. DO ix = 1 TO 11: IF BSavko.WPfl[ix] = 0 THEN NEXT. VWpfl[ix] = BSavko.Wpfl[ix]. VWust[ix] = BSavko.Wust[ix]. END. 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 <= BSavko.Kond_Datum NO-LOCK. SUBSTRING(VZeile,001) = SUBSTRING(MWSTAns.Bez,01,20). SUBSTRING(VZeile,020) = STRING(VWpfl[ix],"->>>9.99"). SUBSTRING(VZeile,029) = STRING(VWust[ix],"->>>9.99"). SUBSTRING(VZeile,039) = STRING(ix ,"z9"). { v8/putstream.i "1" } VFak_Betr = VFak_Betr + VWust[ix]. END. Rundbetr = VFak_Betr. Rundcode = 1. RUN "v8/runden.p". VFak_Betr = Rundbetr. SUBSTRING(VZeile,001) = TRIM(FormText[16]). SUBSTRING(VZeile,029) = STRING(VFak_Betr,"->>>9.99"). { v8/putstreamf.i "1" } 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. DO WHILE VSeite > 0: IF DOpen THEN DO: PUT STREAM Out_Stream 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 SAMMELSUCHEN C-Win PROCEDURE SAMMELSUCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FIND FIRST SammFak WHERE SammFak.Knr = BSavko.Fak_Knr AND SammFak.Samm_Nr = BSavko.Samm_Nr NO-ERROR. IF AVAILABLE SammFak THEN RETURN. SFaknr = 0. FOR EACH Savko USE-INDEX Savko-k5 WHERE Savko.Firma = BSavko.Firma AND Savko.Fak_Art = BSavko.Fak_Art AND Savko.Samm_Nr = BSavko.Samm_Nr : IF Savko.Auf_Sta < 4 THEN DO: Savko.Faknr = 0. NEXT. END. IF SFaknr = 0 THEN SFaknr = Savko.Faknr. CREATE SammFak. ASSIGN SammFak.Knr = Savko.Fak_Knr SammFak.Aufnr = Savko.Aufnr SammFak.Samm_Nr = Savko.Samm_Nr SammFak.RID = RECID(Savko). END. FOR EACH SammFak: SammFak.Faknr = SFaknr. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK C-Win PROCEDURE SAMMFAK : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ Zuszz = 8. LiKopf = TRUE. FPreis = TRUE. FBetrag = TRUE. FRabatt = TRUE. FUeber = FALSE. FSamm = TRUE. VKopfArt = 'SAMMFAK_KOPF'. IF (iTotal - VLine - Zuszz ) < iFuss THEN DO: TiDruck = TRUE. END. IF TiDruck THEN DO: RUN VALUE(VKopfArt). END. ELSE DO: { v8/putstream.i "2" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],01,20)) + " " + STRING(BSavko.Aufnr,"zzzzzzzzz9"). { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20)) + " " + STRING(BSavko.Auf_Datum,"99.99.9999"). { v8/putstream.i "2" } SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. { v8/putstream.i "1" } END. FOR EACH TSavze NO-LOCK BY TSavze.Aufnr BY TSavze.Sort1 BY TSavze.Sort2 BY TSavze.Sort3 BY TSavze.Artnr BY TSavze.Inhalt BY TSavze.Jahr BY TSavze.Pos : IF (iTotal - VLine - 2) < iFuss THEN DO: RUN VALUE(VKopfArt). END. FIND Savze WHERE RECID(Savze) = TSavze.Zeile NO-LOCK. RUN ARTIKELZEILE ( RECID(Savze) ). VFak_Betr = VFak_Betr + Savze.Net_Betr. END. VZeile = FILL('-', StBreite). { v8/putstream.i "1" } SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)). SUBSTRING(VZeile,078) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } LiKopf = FALSE. RUN SUMMENRABATTE. { v8/putstream.i "1" } RUN GEBINDE_SALDO. RUN GEBINDE_ABRECHNUNG. DO ix = 1 TO 12: GTWpfl[ix] = GTWpfl[ix] + BSavko.Wpfl[ix]. GTWust[ix] = GTWust[ix] + BSavko.Wust[ix]. END. GTFak_Betr = GTFak_Betr + VFak_Betr. GTSk_Ber = GTSk_Ber + BSavko.Sk_Ber. RUN KOPF_MUTATION. FIND Savko WHERE RECID(Savko) = RECID(BSavko) 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: ------------------------------------------------------------------------------*/ SUBSTRING(VZeile,027) = FILL('-', StBreite - 026). { v8/putstream.i "1" } SUBSTRING(VZeile,027) = TRIM(SUBSTRING(FormText[14],01,20)). SUBSTRING(VZeile,078) = STRING(GTFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,027) = FILL('-', StBreite - 026). { v8/putstream.i "1" } FUeber = TRUE. VFak_Betr = GTFak_Betr. DO ix = 1 TO 11: IF GTWpfl[ix] = 0 THEN NEXT. GTFak_Betr = GTFak_Betr + GTWust[ix]. Zuszz = Zuszz + 1. END. IF Zuszz > 0 THEN Zuszz = Zuszz + 6. IF (iTotal - VLine - Zuszz) < iFuss THEN DO: RUN VALUE(VKopfArt). END. DO ix = 1 TO 11: IF GTWpfl[ix] = 0 THEN NEXT. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = ix AND MWSTAns.Datum <= BSavko.Kond_Datum NO-LOCK. SUBSTRING(VZeile,027) = MWSTAns.Bez. SUBSTRING(VZeile,065) = STRING(GTWpfl[ix],"->>,>>9.99"). SUBSTRING(VZeile,078) = STRING(GTWust[ix],"->>,>>9.99"). SUBSTRING(VZeile,089) = STRING(ix ,"z9"). { v8/putstream.i "1" } END. Rundbetr = GTFak_Betr. Rundcode = 1. RUN "v8/runden.p". GTFak_Betr = Rundbetr. SUBSTRING(VZeile,027) = FILL('-', StBreite - 026). { v8/putstream.i "1" } SUBSTRING(VZeile,027) = TRIM(FormText[16]). SUBSTRING(VZeile,078) = STRING(GTFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,078) = FILL('=', StBreite - 080). { v8/putstream.i "2" } FIND Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BSavko.Kond AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF AVAILABLE Kondi THEN DO: SUBSTRING(VZeile,001) = Kondi.KoText. IF Kondi.Skonto[01] <> 0 THEN DO: Rundbetr = GTSk_Ber * Kondi.Skonto[01] / 100. Rundcode = 1. RUN "v8/runden.p". SUBSTRING(VZeile,078) = STRING(Rundbetr,"->>,>>9.99"). END. END. ELSE DO: SUBSTRING(VZeile,001) = FILL('?', 30). END. { v8/putstream.i "2" } FUeber = FALSE. RUN UMSATZVERTEILUNG. Rundbetr = GTFak_Betr. VesrKnr = BSavko.Fak_Knr. VesrFnr = BSavko.Faknr. RUN VESR_DRUCK. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_KOPF C-Win PROCEDURE SAMMFAK_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN NEUE_SEITE. IF VSeite = 1 THEN DO: IF SFaknr = 0 THEN SFaknr = BSavko.Faknr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BSavko.Fak_Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BSavko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BSavko.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. F_Seite = VSeite. F_Faknr = SFaknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. VZeile = ''. { v8/putstream.i iKopf }. 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. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20)) + STRING(SFaknr,"z999999") + " /" + STRING(VSeite,"zz9"). { v8/putstreamf.i "1" } cMWST_NR = ''. CASE LVSprcd: WHEN 1 THEN cMWST_NR = BSteuer.MWST_Nr. WHEN 2 THEN cMWST_NR = REPLACE (BSteuer.MWST_Nr, 'MWST', 'TVA'). WHEN 3 THEN cMWST_NR = REPLACE (BSteuer.MWST_Nr, 'MWST', 'IVA'). OTHERWISE cMWST_NR = REPLACE (BSteuer.MWST_Nr, 'MWST', 'VAT'). END CASE. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],41,20)) + " " + cMWST_NR. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20)). SUBSTRING(VZeile,012) = STRING(FDatum,"99.99.9999"). SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[08],01,20)) + STRING(BSavko.Fak_Knr,"zz999999"). { v8/putstream.i "2" } IF VSeite = 1 THEN DO: END. DO WHILE TiDruck. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[17],01,20)) + " " + STRING(BSavko.Aufnr,"zzzzzzzzz9"). { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[17],21,20)) + " " + STRING(BSavko.Auf_Datum,"99.99.9999"). { v8/putstream.i "2" } LEAVE. END. IF LiKopf THEN DO: SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. StBreite = LENGTH(VZeile). { v8/putstream.i "1" } END. ELSE DO: { v8/putstream.i "1" } END. IF VSeite > 1 AND FUeber = TRUE THEN DO: SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)). SUBSTRING(VZeile,078) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "2" } END. 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. DO WHILE FRabatt: Zuszz = 0. FOR EACH TRabSumm NO-LOCK: IF TRabSumm.Auf_Rab <> 0 THEN Zuszz = Zuszz + 1. IF TRabSumm.Abh_Rab <> 0 THEN Zuszz = Zuszz + 1. END. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0 NO-LOCK: Zuszz = Zuszz + 1. END. /* Receycling */ FOR EACH SavGKon USE-INDEX SavGKon-k1 WHERE SavGKon.Firma = BSavko.Firma AND SavGKon.Aufnr = BSavko.Aufnr AND SavGKon.Gebuehr <> 0 AND SavGKon.Betrag <> 0 NO-LOCK: Zuszz = Zuszz + 1. END. IF Zuszz > 0 THEN Zuszz = Zuszz + 3. IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. LEAVE. END. /* Auftragsrabatt ---------------------------------------------------- */ 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 Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST SavRabSu NO-LOCK USE-INDEX SavRabSu-k1 WHERE SavRabSu.Firma = BSavko.Firma AND SavRabSu.Aufnr = BSavko.Aufnr AND SavRabSu.Rab_Summ = TRabSumm.Rab_Summ. IF SavRabSu.F_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(SavRabSu.F_Wert). SUBSTRING(VZeile,036) = RText + " " + TRabSumm.Bez. SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-") + WText. SUBSTRING(VZeile,078) = STRING(- Rundbetr,"->>,>>9.99"). { v8/putstream.i "1" } i5 = i5 + 1. END. /* Abholrabatt ------------------------------------------------------- */ 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 Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST SavRabSu NO-LOCK USE-INDEX SavRabSu-k1 WHERE SavRabSu.Firma = BSavko.Firma AND SavRabSu.Aufnr = BSavko.Aufnr AND SavRabSu.Rab_Summ = TRabSumm.Rab_Summ. IF SavRabSu.A_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(SavRabSu.A_Wert). SUBSTRING(VZeile,036) = RText + " " + TRabSumm.Bez. SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-") + WText. SUBSTRING(VZeile,078) = STRING(- Rundbetr,"->>,>>9.99"). { v8/putstream.i "1" } i5 = i5 + 1. END. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */ 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. 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. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST SavSpRab USE-INDEX SavSpRab-k1 WHERE SavSpRab.Firma = BSavko.Firma AND SavSpRab.Aufnr = BSavko.Aufnr AND SavSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK. IF SavSpRab.Auf_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(SavSpRab.Auf_Wert). SUBSTRING(VZeile,036) = RText + " " + TRIM(Tabel.Bez1). SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-") + WText. SUBSTRING(VZeile,078) = STRING(- Rundbetr,"->>,>>9.99"). { v8/putstream.i "1" } i5 = i5 + 1. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[14],21,20)). SUBSTRING(VZeile,078) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } END. /* Recycling-Gebühren ------------------------------------------------ */ i5 = 0. FOR EACH SavGKon USE-INDEX SavGKon-k1 WHERE SavGKon.Firma = BSavko.Firma AND SavGKon.Aufnr = BSavko.Aufnr AND SavGKon.Gebuehr <> 0 AND SavGKon.Betrag <> 0 NO-LOCK: VFak_Betr = VFak_Betr + SavGKon.Betrag. IF NOT FRabatt THEN NEXT. VWC = SavGKon.MWSt_Cd. SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[11],41,20)). SUBSTRING(VZeile,078) = STRING(SavGKon.Betrag ,"->>,>>9.99"). SUBSTRING(VZeile,089) = STRING(SavGKon.MWSt_Cd ,"z9"). { v8/putstream.i "1" } i5 = i5 + 1. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 1000 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.Bez = 'Recyclinggebühren'. END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + SavGKon.Betrag. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[14],41,20)). SUBSTRING(VZeile,078) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUMMENRABATTE_KASSE C-Win PROCEDURE SUMMENRABATTE_KASSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR RText AS CHAR FORMAT "x(20)" NO-UNDO. DEF VAR WText AS CHAR NO-UNDO. DEF VAR xLeer AS LOG NO-UNDO. /* Auftragsrabatt ---------------------------------------------------- */ i5 = 0. xLeer = FALSE. 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 Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST SavRabSu NO-LOCK USE-INDEX SavRabSu-k1 WHERE SavRabSu.Firma = BSavko.Firma AND SavRabSu.Aufnr = BSavko.Aufnr AND SavRabSu.Rab_Summ = TRabSumm.Rab_Summ . IF SavRabSu.F_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(SavRabSu.F_Wert). SUBSTRING(VZeile,001) = RText + " " + TRabSumm.Bez. VZeile = TRIM(SUBSTRING(VZeile,01,20)). SUBSTRING(VZeile,020) = STRING( RabWert ,"->>>9.99"). SUBSTRING(VZeile,029) = STRING(- Rundbetr,"->>>9.99"). { v8/putstream.i "1" } i5 = i5 + 1. END. /* Abholrabatt ------------------------------------------------------- */ 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 Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST SavRabSu NO-LOCK USE-INDEX SavRabSu-k1 WHERE SavRabSu.Firma = BSavko.Firma AND SavRabSu.Aufnr = BSavko.Aufnr AND SavRabSu.Rab_Summ = TRabSumm.Rab_Summ . IF SavRabSu.A_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(SavRabSu.A_Wert). SUBSTRING(VZeile,001) = RText + " " + TRabSumm.Bez. VZeile = TRIM(SUBSTRING(VZeile,01,20)). SUBSTRING(VZeile,020) = STRING( RabWert ,"->>>9.99"). SUBSTRING(VZeile,029) = STRING(- Rundbetr,"->>>9.99"). { v8/putstream.i "1" } i5 = i5 + 1. END. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */ 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. 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. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST SavSpRab USE-INDEX SavSpRab-k1 WHERE SavSpRab.Firma = BSavko.Firma AND SavSpRab.Aufnr = BSavko.Aufnr AND SavSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK. IF SavSpRab.Auf_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(SavSpRab.Auf_Wert). SUBSTRING(VZeile,001) = RText + " " + TRIM(Tabel.Bez1). VZeile = TRIM(SUBSTRING(VZeile,01,20)). SUBSTRING(VZeile,020) = STRING( RabWert ,"->>>9.99"). SUBSTRING(VZeile,029) = STRING(- Rundbetr,"->>>9.99"). { v8/putstream.i "1" } i5 = i5 + 1. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[14],21,20)). SUBSTRING(VZeile,029) = STRING(VFak_Betr,"->>>9.99"). { v8/putstreamf.i "1" } xLeer = TRUE. END. /* Recycling-Gebühren ------------------------------------------------ */ i5 = 0. FOR EACH SavGKon USE-INDEX SavGKon-k1 WHERE SavGKon.Firma = BSavko.Firma AND SavGKon.Aufnr = BSavko.Aufnr AND SavGKon.Gebuehr <> 0 AND SavGKon.Betrag <> 0 NO-LOCK: VFak_Betr = VFak_Betr + SavGKon.Betrag. IF NOT FRabatt THEN NEXT. VWC = SavGKon.MWSt_Cd. FIND GebKonto OF SavGKon NO-LOCK NO-ERROR. IF AVAILABLE GebKonto THEN SUBSTRING(VZeile,001) = TRIM(SUBSTRING(GebKonto.Bez,01,28)). ELSE SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[11],41,20)). SUBSTRING(VZeile,029) = STRING(SavGKon.Betrag ,"->>>9.99"). SUBSTRING(VZeile,039) = STRING(SavGKon.MWSt_Cd ,"z9"). { v8/putstream.i "1" } i5 = i5 + 1. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 1000 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.Bez = 'Recyclinggebühren'. END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + SavGKon.Betrag. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[14],41,20)). SUBSTRING(VZeile,029) = STRING(VFak_Betr,"->>>9.99"). { v8/putstreamf.i "1" } xLeer = TRUE. END. { v8/putstream.i "1" } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE UMSATZVERTEILUNG C-Win PROCEDURE UMSATZVERTEILUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ Zuszz = 0. Ja = FALSE. FOR EACH TUmsGrp NO-LOCK: Zuszz = Zuszz + 1. END. IF Zuszz > 0 THEN DO: Zuszz = Zuszz + 2. Ja = TRUE. END. IF (iTotal - VLine - Zuszz) < iFuss THEN DO: RUN VALUE(VKopfArt). END. IF Ja THEN DO: SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[15],41,20)). { v8/putstreamf.i "1" } END. FOR EACH TUmsGrp WHERE TUmsGrp.Ums_Betr <> 0 NO-LOCK BY TUmsGrp.Ums_Grp : SUBSTRING(VZeile,001) = TUmsGrp.Bez. SUBSTRING(VZeile,040) = BSteuer.Fwc03. SUBSTRING(VZeile,050) = STRING(TUmsGrp.Ums_Betr,"->>>,>>9.99"). { v8/putstream.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 = BSavko.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. /* FIND Kondi USE-INDEX Kondi-k1 * WHERE Kondi.Kond = BSavko.Kond * AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR. * IF AVAILABLE Kondi THEN DO: * IF Kondi.Skonto[01] <> 0 THEN Rundbetr = 0. * END.*/ DEF VAR VVESR AS CHAR FORMAT "x(90)" EXTENT 25. DEF VAR PZBetrag AS CHAR FORMAT "x(13)" NO-UNDO. DEF VAR PZReferenz AS CHAR FORMAT "x(27)" NO-UNDO. DEF VAR PZTNummer AS CHAR FORMAT "x(09)" NO-UNDO. DEF VAR VSZeile AS CHAR FORMAT "x(58)" NO-UNDO. DEF VAR VZeile AS CHAR FORMAT "x(58)" NO-UNDO. DEF VAR cBESRZe AS CHAR EXTENT 20 NO-UNDO. DEF VAR cBESRKo AS CHAR EXTENT 02 NO-UNDO. DEF VAR cBESRTn AS CHAR NO-UNDO. DEF VAR cBESRBn AS CHAR NO-UNDO. DEF VAR XArt AS INT NO-UNDO. DEF VAR XAnz AS INT NO-UNDO. DEF VAR XBetr AS CHAR FORMAT "x(20)" NO-UNDO. DEF VAR VESR_P AS CHAR FORMAT "x(02)" NO-UNDO. DEF VAR VESR AS CHAR FORMAT "x(02)" NO-UNDO. DEF VAR XBetrag AS CHAR FORMAT "x(09)" NO-UNDO. DEF VAR XCodeC AS CHAR NO-UNDO. DEF VAR XP AS INT NO-UNDO. DEF VAR YP AS INT NO-UNDO. DEF BUFFER BESRTabel FOR Tabel. cBESRZe = ''. cBESRKo = ''. cBESRTn = ''. cBESRBn = ''. FOR EACH BESRTabel USE-INDEX Tabel-k1 WHERE BESRTabel.Firma = GVFirma AND BESRTabel.RecArt = 'EZ' AND BESRTabel.CodeC = STRING(FDebst.BESR_Art,'999999') AND BESRTabel.Sprcd = 1 NO-LOCK: CASE BESRTabel.CodeI: WHEN 0 THEN DO: cBESRKo[01] = BESRTabel.Bez1. cBESRKo[02] = BESRTabel.Bez2. cBESRBn = STRING(BESRTabel.Dec_1,'99999999999999'). cBESRTn = BESRTabel.BezL. END. OTHERWISE DO: cBESRZe[BESRTabel.CodeI + 00] = BESRTabel.Bez1. cBESRZe[BESRTabel.CodeI + 08] = BESRTabel.Bez2. END. END CASE. END. XCodeC = 'BESR01'. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'FAKDRU' AND Tabel.CodeC = XCodeC 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. BesrRecid = RECID(XSchrift). 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 Besr_Stream TO VALUE(VTempVESR). DO WHILE TRUE: PZBetrag = ''. IF Rundbetr <= 0 THEN DO: PZBetrag = FILL('*', 13). PZReferenz = FILL('*', 27). PZTNummer = FILL('*', 09). XBetrag = FILL('*', 09). END. ELSE DO: PZBetrag = "01". PZBetrag = PZBetrag + STRING((Rundbetr * 100),"9999999999 "). PZReferenz = SUBSTRING(cBESRBn,01,12) + STRING(VesrKnr,"999999") + "0" + STRING(VesrFnr,"9999999"). PZTNummer = cBESRTn. XBetrag = STRING((Rundbetr * 100),"zzzzzz999"). RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. PUT STREAM Besr_Stream CONTROL CHR(27) "(10U" /* CODEPAGE 850 */ CHR(27) "(s4102t0b0p0s12h10V". /* LetterGotic 12cpi */ XP = 0. YP = 2380. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = cBESRZe[01]. SUBSTRING(VZeile,030) = cBESRZe[09]. PUT STREAM Besr_Stream CONTROL VZeile CHR(10). YP = YP + 50. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = cBESRZe[02]. SUBSTRING(VZeile,030) = cBESRZe[10]. PUT STREAM Besr_Stream CONTROL VZeile CHR(10). YP = YP + 50. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = cBESRZe[03]. SUBSTRING(VZeile,030) = cBESRZe[11]. PUT STREAM Besr_Stream CONTROL VZeile CHR(10). YP = YP + 50. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = cBESRZe[04]. SUBSTRING(VZeile,030) = cBESRZe[12]. PUT STREAM Besr_Stream CONTROL VZeile CHR(10). YP = YP + 55. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = cBESRZe[05]. SUBSTRING(VZeile,030) = cBESRZe[13]. PUT STREAM Besr_Stream CONTROL VZeile CHR(10). YP = YP + 50. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = cBESRZe[06]. SUBSTRING(VZeile,030) = cBESRZe[14]. PUT STREAM Besr_Stream CONTROL VZeile CHR(10). YP = YP + 50. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = cBESRZe[07]. SUBSTRING(VZeile,030) = cBESRZe[15]. SUBSTRING(VZeile,062) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). PUT STREAM Besr_Stream CONTROL VZeile CHR(10). YP = YP + 50. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = cBESRZe[08]. SUBSTRING(VZeile,030) = cBESRZe[16]. PUT STREAM Besr_Stream CONTROL VZeile CHR(10). YP = YP + 70. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,013) = cBESRKo[01]. SUBSTRING(VZeile,041) = cBESRKo[02]. PUT STREAM Besr_Stream CONTROL VZeile CHR(10). YP = YP + 105. XP = 0. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = STRING(XBetrag," X X X X X X X X X"). SUBSTRING(VZeile,025) = STRING(XBetrag," X X X X X X X X X"). PUT STREAM Besr_Stream CONTROL CHR(27) "(s4102t0b0p0s10H". PUT STREAM Besr_Stream CONTROL VZeile CHR(10). YP = YP + 90. XP = 0. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). PUT STREAM Besr_Stream CONTROL CHR(27) "(10U" /* CODEPAGE 850 */ CHR(27) "(s4102t0b0p0s16H". /* LetterGotic 16cpi */ SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). PUT STREAM Besr_Stream CONTROL VZeile CHR(10). FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR. YP = YP + 160. PUT STREAM Besr_Stream CONTROL CHR(27) "(10U" /* CODEPAGE 850 */ CHR(27) "(s4102t0b0p0s12h10V". /* LetterGotic 12cpi */ RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). DO ix = 11 TO 6 BY -1: VZeile = ''. SUBSTRING(VZeile,059) = Adresse.Anschrift[ix]. PUT STREAM Besr_Stream CONTROL VZeile CHR(10). YP = YP - 48. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). END. YP = 3250. PUT STREAM Besr_Stream CONTROL CHR(27) "(10U" /* CODEPAGE 850 */ CHR(27) "(s4102t0b0p0s13H". /* LetterGotic 14cpi */ RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). DO ix = 11 TO 7 BY -1: VZeile = ''. SUBSTRING(VZeile,001) = STRING(Adresse.Anschrift[ix],"x(30)"). PUT STREAM Besr_Stream CONTROL VZeile CHR(10). YP = YP - 43. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). END. YP = 3300. VZeile = ''. PUT STREAM Besr_Stream CONTROL CHR(27) "(1O" /* CODEPAGE OCR-B */ CHR(27) "(s110t0b0p0s10.00h12.00V". /* OCR-B 10 cpi */ RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,025) = STRING(VSZeile,"x(53)"). PUT STREAM Besr_Stream CONTROL VZeile. /* CHR(10) */. RUN DRUCKPOSITION ( INPUT 300, INPUT 0, INPUT 0 ). /* PUT STREAM Besr_Stream CONTROL ' ' CHR(10). PUT STREAM Besr_Stream CONTROL XDrucker.Dru10cpi. */ LEAVE. END. OUTPUT STREAM Besr_Stream CLOSE. 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)". DEF VAR ii AS INT NO-UNDO. DO WHILE TRUE: { v8/putstream.i "01" } PUT CONTROL CHR(027) CHR(061). /* Halbe Zeile */ /* VZeile = ''. SUBSTRING(VZeile,01) = 'Wiederkehr Getränke AG'. SUBSTRING(VZeile,29) = 'Wiederkehr Getränke AG'. { v8/putstream.i "01" } SUBSTRING(VZeile,01) = 'Fürstenlandstrasse 115'. SUBSTRING(VZeile,29) = 'Fürstenlandstrasse 115'. { v8/putstream.i "01" } SUBSTRING(VZeile,01) = '9014 ST.Gallen'. SUBSTRING(VZeile,29) = '9014 ST.Gallen'. { v8/putstream.i "04" } */ 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 = "00000000000" + STRING(VesrKnr,"999999") + STRING(VesrFnr,"9999999") + "00". PZTNummer = "01036226". 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,13) = '01-36226-6'. SUBSTRING(VZeile,43) = '01-36226-6'. */ { 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],26) = STRING(VSZeile,"x(53)"). VVesr[08] = BDrucker.Dru10cpi + BDrucker.DruLQb + CHR(27) + "k5" /*+ CHR(05)*/ + VVesr[08] + CHR(27) + "k0" /*+ CHR(00)*/ + BDrucker.DruLQe + BDrucker.Dru12cpi. DO ix = 1 TO 9: VZeile = VVesr[ix]. { v8/putstream.i "1" } END. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE C-Win PROCEDURE WORKFILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DOpen = FALSE. VTemp = ''. IF BDrucker.Emul = 'TERMINAL' THEN DO: FOR EACH XTermOut: DELETE XTermOut. END. VZNr = 0. RETURN. END. 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 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZAHLUNGSKONDITION C-Win PROCEDURE ZAHLUNGSKONDITION : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FIND Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BSavko.Kond AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF AVAILABLE Kondi THEN DO: SUBSTRING(VZeile,001) = Kondi.KoText. IF Kondi.Skonto[01] <> 0 THEN DO: Rundbetr = BSavko.Sk_Ber * Kondi.Skonto[01] / 100. IF DebInkl THEN DO: Rundcode = 1. RUN "v8/runden.p". END. SUBSTRING(VZeile,078) = STRING(Rundbetr,"->>,>>9.99"). END. END. ELSE DO: SUBSTRING(VZeile,001) = FILL('?', 30). END. { v8/putstream.i "2" } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME