&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 --- */ DEFINE VARIABLE FDrucken AS LOG NO-UNDO. DEFINE VARIABLE DruckFlag AS LOG NO-UNDO. DEFINE VARIABLE TRecid AS RECID NO-UNDO. DEFINE VARIABLE RabText AS CHARACTER NO-UNDO. DEFINE VARIABLE RabWert AS DECIMAL NO-UNDO. DEFINE VARIABLE VFak_Betr AS DECIMAL DECIMALS 4 NO-UNDO. DEFINE VARIABLE GTWpfl AS DECIMAL EXTENT 12 NO-UNDO. DEFINE VARIABLE GTWust AS DECIMAL EXTENT 12 NO-UNDO. DEFINE VARIABLE GTFak_Betr AS DECIMAL NO-UNDO. DEFINE VARIABLE GTSk_Ber AS DECIMAL NO-UNDO. DEFINE VARIABLE SFaknr AS INTEGER NO-UNDO. DEFINE VARIABLE FakArt AS INTEGER NO-UNDO. DEFINE VARIABLE FLetzt AS LOG NO-UNDO. DEFINE VARIABLE FErste AS LOG NO-UNDO. DEFINE VARIABLE VZeile AS CHARACTER FORMAT "x(180)" NO-UNDO. DEFINE VARIABLE RZeile AS CHARACTER FORMAT "x(180)" NO-UNDO. DEFINE VARIABLE LiKopf AS LOG NO-UNDO. DEFINE VARIABLE StBreite AS INTEGER NO-UNDO. DEFINE VARIABLE VWC AS INTEGER NO-UNDO. DEFINE VARIABLE VZTot AS DECIMAL DECIMALS 4 NO-UNDO. DEFINE VARIABLE FDatum AS DATE FORMAT "99.99.9999" NO-UNDO. DEFINE VARIABLE VFaknr AS INTEGER NO-UNDO. DEFINE VARIABLE VesrKnr AS INTEGER NO-UNDO. DEFINE VARIABLE VesrFnr AS INTEGER NO-UNDO. DEFINE VARIABLE VBesr AS INTEGER NO-UNDO. DEFINE VARIABLE VRabText AS CHARACTER FORMAT "x(20)" NO-UNDO. DEFINE VARIABLE VZusText AS CHARACTER FORMAT "x(20)" NO-UNDO. DEFINE VARIABLE VEpzText AS CHARACTER FORMAT "x(20)" NO-UNDO. DEFINE VARIABLE XVersand AS CHARACTER NO-UNDO. DEFINE VARIABLE XAblade AS CHARACTER NO-UNDO. DEFINE VARIABLE XAuf_Text LIKE Aufko.Auf_Text NO-UNDO. DEFINE VARIABLE XTelnr LIKE Aufko.Auf_Text NO-UNDO. DEFINE VARIABLE VTemp AS CHARACTER FORMAT "x(100)" NO-UNDO. DEFINE VARIABLE FPreis AS LOG NO-UNDO. DEFINE VARIABLE FBetrag AS LOG NO-UNDO. DEFINE VARIABLE FRabatt AS LOG NO-UNDO. DEFINE VARIABLE FUeber AS LOG NO-UNDO. DEFINE VARIABLE FSamm AS LOG NO-UNDO. DEFINE VARIABLE FLagOrt AS LOG NO-UNDO. DEFINE VARIABLE VTabTexte LIKE TabTexte.Inhalt NO-UNDO. DEFINE VARIABLE VDokArt AS CHARACTER NO-UNDO. DEFINE VARIABLE VKopfArt AS CHARACTER NO-UNDO. DEFINE VARIABLE VBesrArt AS CHARACTER NO-UNDO. DEFINE VARIABLE FwFRW AS CHARACTER NO-UNDO. DEFINE VARIABLE LiefAdr AS CHARACTER NO-UNDO. DEFINE VARIABLE XLieferbed AS CHARACTER NO-UNDO. DEFINE VARIABLE XWirtesonntag AS CHARACTER NO-UNDO. DEFINE VARIABLE XTour AS CHARACTER NO-UNDO. DEFINE VARIABLE iFirma AS INTEGER NO-UNDO. DEFINE VARIABLE cFrw AS CHARACTER NO-UNDO. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO. DEFINE VARIABLE FormText AS CHARACTER FORMAT "x(80)" EXTENT 40. DEFINE VARIABLE Schacht1 AS CHARACTER NO-UNDO. DEFINE VARIABLE Schacht2 AS CHARACTER NO-UNDO. DEFINE VARIABLE Schacht3 AS CHARACTER NO-UNDO. DEFINE VARIABLE OCRB AS CHARACTER NO-UNDO. DEFINE VARIABLE InitCPI AS CHARACTER NO-UNDO. DEFINE VARIABLE cFormular AS CHARACTER NO-UNDO. DEFINE VARIABLE LiPos AS INTEGER NO-UNDO. DEFINE VARIABLE FoBreite AS INTEGER NO-UNDO. DEFINE VARIABLE TiHoehe AS INTEGER NO-UNDO. DEFINE VARIABLE SchO AS INTEGER NO-UNDO. DEFINE VARIABLE SchK AS INTEGER NO-UNDO. DEFINE VARIABLE SchB AS INTEGER NO-UNDO. DEFINE VARIABLE cBESRZe AS CHARACTER EXTENT 20 NO-UNDO. DEFINE VARIABLE cBESRKo AS CHARACTER EXTENT 02 NO-UNDO. DEFINE VARIABLE cBESRTn AS CHARACTER NO-UNDO. DEFINE VARIABLE cBESRBn AS CHARACTER NO-UNDO. DEFINE VARIABLE iBesr AS INTEGER NO-UNDO. DEFINE VARIABLE fBesr AS LOG INIT FALSE NO-UNDO. DEFINE VARIABLE fZeiDruck AS LOG INIT FALSE NO-UNDO. DEFINE BUFFER BESRTabel FOR Tabel. DEFINE BUFFER BAufko FOR Aufko. DEFINE BUFFER XAufko FOR Aufko. DEFINE BUFFER BAufze FOR Aufze. DEFINE BUFFER BAufGebKo FOR AufGebKo. DEFINE BUFFER FDebst FOR Debst. DEFINE BUFFER LDebst FOR Debst. DEFINE BUFFER BTabel FOR Tabel. DEFINE BUFFER TFakart FOR Tabel. DEFINE BUFFER TAufsta FOR Tabel. DEFINE BUFFER BAdresse FOR Adresse. DEFINE BUFFER LAdresse FOR Adresse. DEFINE VARIABLE DebInkl AS LOG NO-UNDO. DEFINE VARIABLE VWg_Grp AS INTEGER INIT 0 NO-UNDO. DEFINE VARIABLE VProd_Grp AS INTEGER INIT 0 NO-UNDO. DEFINE VARIABLE VArt_Grp AS INTEGER INIT 0 NO-UNDO. DEFINE VARIABLE AArtnr AS INTEGER INIT 0 NO-UNDO. DEFINE VARIABLE AInhalt AS INTEGER INIT 0 NO-UNDO. DEFINE VARIABLE AJahr AS INTEGER INIT 0 NO-UNDO. DEFINE WORKFILE WDrucker LIKE Drucker. DEFINE WORKFILE WSchrift LIKE Schrift. DEFINE TEMP-TABLE TAufze FIELD Aufnr AS INTEGER FIELD Sort1 AS CHARACTER FIELD Sort2 AS CHARACTER FIELD Sort3 AS CHARACTER FIELD Artnr AS INTEGER FIELD Inhalt AS INTEGER FIELD Jahr AS INTEGER FIELD Pos AS INTEGER FIELD Zeile AS RECID FIELD Preis AS DECIMAL DECIMALS 4 FIELD Aktion AS LOG FIELD LagOrt AS CHARACTER. DEFINE TEMP-TABLE TGebKto FIELD Sort_Cd AS CHARACTER FIELD Geb_Cd AS CHARACTER FIELD Bez AS CHARACTER FIELD Preis AS DECIMAL FIELD A_Anz AS DECIMAL FIELD A_Betrag AS DECIMAL FIELD E_Anz AS DECIMAL FIELD E_Betrag AS DECIMAL FIELD MWST_Art AS INTEGER FIELD MWST_Cd AS INTEGER. DEFINE TEMP-TABLE TRabSumm FIELD Rab_Summ AS INTEGER FIELD Bez AS CHARACTER FIELD F_Rab_Art AS INTEGER FIELD F_Wert AS DECIMAL DECIMALS 4 FIELD A_Rab_Art AS INTEGER FIELD A_Wert AS DECIMAL DECIMALS 4 FIELD Auf_Rab AS DECIMAL DECIMALS 4 FIELD Abh_Rab AS DECIMAL DECIMALS 4. DEFINE TEMP-TABLE TUmsGrp FIELD Ums_Grp AS INTEGER FIELD Bez AS CHARACTER FIELD Ums_Betr AS DECIMAL DECIMALS 4 FIELD Ums_Recy AS DECIMAL DECIMALS 4. DEFINE TEMP-TABLE TGebuehr FIELD MWST_Cd AS INTEGER FIELD Anz AS DECIMAL FIELD Betrag AS DECIMAL. DEFINE TEMP-TABLE SammFak NO-UNDO FIELD Knr AS INTEGER FIELD Samm_Nr AS INTEGER FIELD LS_Knr AS INTEGER FIELD Aufnr AS INTEGER FIELD Faknr AS INTEGER FIELD RID AS RECID. DEFINE TEMP-TABLE TSpeRab FIELD Rab_Grp AS INTEGER FIELD Auf_Betr AS DECIMAL DECIMALS 4. DEFINE BUFFER XSchrift FOR Schrift. DEFINE BUFFER XDrucker FOR Drucker. DEFINE VARIABLE VTempVESR AS CHARACTER FORMAT "x(100)" NO-UNDO. DEFINE VARIABLE XSchacht AS INTEGER NO-UNDO. DEFINE STREAM In_Stream. DEFINE STREAM Out_Stream. /* ---------- Globale Variablen ---------------------------------- */ { globvar.i " " " " "SHARED" } { debivar.i " " " " "SHARED" } { artivar.i " " " " "SHARED" } { contvar.i " " " " "SHARED" } { listtitv.i "NEW" "SHARED" } { aufkototv.i "NEW" "SHARED" } { properties.i } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE Window &Scoped-define DB-AWARE no /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME DEFAULT-FRAME /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS Btn_Drucken Btn_Abbrechen F_Drucker ~ F_Schrift E_Adresse F_Tzz F_Kzz F_Fzz F_KOPIE F_Aufnr F_Faknr F_Datum ~ F_Dokart F_Seite F_Papier RECT-1 &Scoped-Define DISPLAYED-OBJECTS F_Drucker F_Schrift E_Adresse F_Tzz F_Kzz ~ F_Fzz F_KOPIE F_Aufnr F_Faknr F_Datum F_Dokart F_Seite F_Papier /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-1 F_Drucker F_Schrift E_Adresse F_Tzz F_Kzz F_Fzz ~ F_KOPIE F_Aufnr F_Faknr F_Datum F_Dokart F_Seite F_Papier /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD schreibenFirmaInKopf C-Win FUNCTION schreibenFirmaInKopf RETURNS LOGICAL ( ipLinks AS INTEGER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD schreibenFusszeile C-Win FUNCTION schreibenFusszeile RETURNS LOGICAL ( ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD schreibenLinie C-Win FUNCTION schreibenLinie RETURNS LOGICAL ( ipLinks AS INTEGER, ipBreite AS INTEGER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD schreibenUeberschrift C-Win FUNCTION schreibenUeberschrift RETURNS LOGICAL ( ipLinks AS INTEGER, ipBreite AS INTEGER, ipHoehe AS INTEGER ) FORWARD. /* _UIB-CODE-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 12 BY 1. DEFINE BUTTON Btn_Drucken LABEL "&Drucken" SIZE 12 BY 1. DEFINE VARIABLE E_Adresse AS CHARACTER VIEW-AS EDITOR MAX-CHARS 1000 SIZE 47.6 BY 6 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Aufnr AS INTEGER FORMAT "zzzzzz9":U INITIAL 0 LABEL "Auftragsnummer" VIEW-AS FILL-IN NATIVE SIZE 14 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.6 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(50)":U LABEL "Drucker" VIEW-AS FILL-IN NATIVE SIZE 44.6 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 14 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(50)":U LABEL "Schriftbild" VIEW-AS FILL-IN NATIVE SIZE 44.6 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 124 BY 12.38. /* ************************ Frame Definitions *********************** */ DEFINE FRAME DEFAULT-FRAME Btn_Drucken AT ROW 12 COL 76.6 Btn_Abbrechen AT ROW 12 COL 101 F_Drucker AT ROW 2 COL 25 COLON-ALIGNED F_Schrift AT ROW 3 COL 25 COLON-ALIGNED E_Adresse AT ROW 2 COL 76.6 NO-LABEL NO-TAB-STOP F_Tzz AT ROW 4 COL 25 COLON-ALIGNED F_Kzz AT ROW 5 COL 25 COLON-ALIGNED F_Fzz AT ROW 6 COL 25 COLON-ALIGNED F_KOPIE AT ROW 6 COL 62 COLON-ALIGNED F_Aufnr AT ROW 7 COL 25 COLON-ALIGNED F_Faknr AT ROW 8 COL 25 COLON-ALIGNED F_Datum AT ROW 9 COL 25 COLON-ALIGNED F_Dokart AT ROW 9 COL 74.6 COLON-ALIGNED F_Seite AT ROW 9 COL 115 COLON-ALIGNED NO-TAB-STOP F_Papier AT ROW 10 COL 74.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 126 BY 13.1 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.1 WIDTH = 126 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:RETURN-INSERTED IN FRAME DEFAULT-FRAME = TRUE E_Adresse:READ-ONLY IN FRAME DEFAULT-FRAME = TRUE. /* SETTINGS FOR FILL-IN F_Aufnr IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Datum IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Dokart IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Drucker IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Faknr IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Fzz IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_KOPIE IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Kzz IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Papier IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Schrift IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Seite IN FRAME DEFAULT-FRAME 1 */ ASSIGN F_Seite:READ-ONLY IN FRAME DEFAULT-FRAME = TRUE. /* 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. PROCEDURE ShellExecuteA EXTERNAL "shell32.dll": DEFINE INPUT PARAMETER hwnd AS LONG. /* Handle to parent window */ DEFINE INPUT PARAMETER lpOperation AS CHARACTER. /* Operation to perform: open, print */ DEFINE INPUT PARAMETER lpFile AS CHARACTER. /* Document or executable name */ DEFINE INPUT PARAMETER lpParameters AS CHARACTER. /* Command line parameters to executable in lpFile */ DEFINE INPUT PARAMETER lpDirectory AS CHARACTER. /* Default directory */ DEFINE INPUT PARAMETER nShowCmd AS LONG. /* whether shown when opened: 0 hidden, 1 normal, minimized 2, maximized 3, 0 if lpFile is a document */ DEFINE RETURN PARAMETER hInstance AS LONG. /* Less than or equal to 32 */ END PROCEDURE. 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. GET-KEY-VALUE SECTION 'FwSteuer' KEY 'FwFRW' VALUE FwFRW. IF FwFRW = ? THEN FwFRW = 'CHF'. FDrucken = TRUE. DruckFlag = TRUE. VERARBEITEN: DO WHILE FDrucken: FIND FIRST Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'AUFDRUCK' AND Tabel.CodeC = USERID("AnaDat") 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 = BAufko.Ablad_Vor AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF NOT AVAILABLE tabel THEN DO: XAblade = BAufko.Ablad_Vor_Text. RETURN. END. IF LENGTH(Tabel.Bez1) > 4 THEN XAblade = Tabel.Bez1. IF BAufko.Ablad_Vor_Text <> '' THEN DO: IF XAblade <> '' THEN XAblade = XAblade + " / ". XAblade = BAufko.Ablad_Vor_Text. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_LIEFERFAK C-Win PROCEDURE ARTIKELZEILE_LIEFERFAK : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cJG AS CHARACTER NO-UNDO. DEFINE VARIABLE cGebinde AS CHARACTER NO-UNDO. VZeile = ''. IF Aufze.Artnr = 0 THEN DO: SUBSTRING(VZeile,009) = TRIM(Aufze.Bez1 + ' ' + Aufze.Bez2). { putstream.i "1" } RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. cJG = ''. cGebinde = ''. IF Aufze.Jahr > 9 THEN cJG = STRING(Aufze.Jahr,'9999'). IF Aufze.Alk_Gehalt > 0 THEN DO: IF cJG <> '' THEN cJG = cJG + ' / '. cJG = cJG + TRIM(STRING(Aufze.Alk_Gehalt,'>>.9%')). END. IF Aufze.VGeb_Me <> 0 THEN cGebinde = STRING(Aufze.VGeb_Me,"->>>9") + 'x ' + VGebinde.KBez. SUBSTRING(VZeile,001) = STRING(Aufze.Artnr ,"999999"). SUBSTRING(VZeile,009) = Aufze.Bez1. IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,041) = STRING(Aufze.Jahr,"9999"). IF Aufze.Alk_Gehalt > 0 THEN SUBSTRING(VZeile,046) = STRING(Aufze.Alk_Gehalt,'>>.9%'). SUBSTRING(VZeile,051) = cGebinde. SUBSTRING(VZeile,066) = IF Aufze.MGel > 0 THEN STRING(Aufze.MGel,">>>>9") ELSE STRING(Aufze.MGel,"->>>9"). SUBSTRING(VZeile,072) = STRING(KGebinde.Inhalt,">>>9cl"). SUBSTRING(VZeile,078) = STRING(Aufze.Preis ,">>>>9.99"). SUBSTRING(VZeile,086) = STRING(Aufze.Bru_Betr ,"->>,>>9.99"). SUBSTRING(VZeile,097) = STRING(Aufze.WuCd ,"z9"). { putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: SUBSTRING(VZeile,009) = Aufze.Bez2. { putstream.i "1" } END. IF Aufze.Aktion THEN DO: SUBSTRING(VZeile,009) = Aufze.Aktion_Text. { putstream.i "1" } END. DO WHILE TRUE: IF Aufze.Rab_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Rab_Wert). IF Aufze.Rab_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Rab_Betr < 0 THEN RabText = VZusText. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText. END. SUBSTRING(VZeile,009) = TRIM(RabText). IF Aufze.Rab_Art = 1 THEN SUBSTRING(VZeile,030) = STRING(RabWert,"->9.9 %"). IF Aufze.Rab_Art = 2 OR Aufze.Rab_Art = 3 THEN SUBSTRING(VZeile,030) = STRING(RabWert,"-9.99 Fr."). SUBSTRING(VZeile,086) = STRING(- Aufze.Rab_Betr ,"->>,>>9.99"). { putstream.i "1" } LEAVE. END. DO WHILE TRUE: IF Aufze.Zus_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Zus_Wert). IF Aufze.Zus_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Zus_Betr > 0 THEN RabText = VZusText. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText. END. SUBSTRING(VZeile,009) = TRIM(RabText). IF Aufze.Zus_Art = 1 THEN SUBSTRING(VZeile,030) = STRING(RabWert,"->9.9 %"). IF Aufze.Zus_Art = 2 OR Aufze.Zus_Art = 3 THEN SUBSTRING(VZeile,030) = STRING(RabWert,"-9.99 Fr."). SUBSTRING(VZeile,086) = STRING(+ Aufze.Zus_Betr ,"->>,>>9.99"). { putstream.i "1" } LEAVE. END. /* ---- Summengruppen-Total -------------------------------------------- */ IF Aufze.Rab_Su_Grp <> 0 THEN DO: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR. IF AVAILABLE TRabSumm THEN DO: TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab. END. END. /* ---- Warengruppen-Totale -------------------------------------------- */ FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp 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 + Aufze.Net_Betr - Aufze.Auf_Rab - Aufze.Abh_Rab. TUmsGrp.Ums_Recy = TUmsGrp.Ums_Recy + ( Aufze.MGeli * KGebinde.Gebuehr ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_LIEFERSCHEIN C-Win PROCEDURE ARTIKELZEILE_LIEFERSCHEIN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cJG AS CHARACTER NO-UNDO. DEFINE VARIABLE cGebinde AS CHARACTER NO-UNDO. VZeile = ''. IF Aufze.Artnr = 0 THEN DO: SUBSTRING(VZeile,009) = TRIM(Aufze.Bez1 + ' ' + Aufze.Bez2). { putstream.i "1" } RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. cJG = ''. cGebinde = ''. IF Aufze.Jahr > 9 THEN cJG = STRING(Aufze.Jahr,'9999'). IF Aufze.Alk_Gehalt > 0 THEN DO: IF cJG <> '' THEN cJG = cJG + ' / '. cJG = cJG + TRIM(STRING(Aufze.Alk_Gehalt,'>>.9%')). END. IF Aufze.VGeb_Me <> 0 THEN cGebinde = STRING(Aufze.VGeb_Me,"->>>9") + 'x ' + VGebinde.KBez. SUBSTRING(VZeile,001) = STRING(Aufze.Artnr ,"999999"). SUBSTRING(VZeile,009) = Aufze.Bez1. IF Aufze.Jahr > 9 THEN SUBSTRING(VZeile,042) = STRING(Aufze.Jahr,"9999"). IF Aufze.Alk_Gehalt > 0 THEN SUBSTRING(VZeile,048) = STRING(Aufze.Alk_Gehalt,'>>.9%'). SUBSTRING(VZeile,055) = cGebinde. SUBSTRING(VZeile,071) = STRING(Aufze.MGel ,"->>>>9"). SUBSTRING(VZeile,078) = STRING(KGebinde.Inhalt,">>>9 cl"). SUBSTRING(VZeile,087) = STRING(Aufze.Gewicht ,"->>>9.99"). { putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: SUBSTRING(VZeile,009) = Aufze.Bez2. { putstream.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_LIEFERSCHEIN_EXCEL C-Win PROCEDURE ARTIKELZEILE_LIEFERSCHEIN_EXCEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cJG AS CHARACTER NO-UNDO. DEFINE VARIABLE cGebinde AS CHARACTER NO-UNDO. IF Aufze.Artnr = 0 THEN DO: PUT CONTROL '£' TRIM(Aufze.Bez1 + ' ' + Aufze.Bez2) CHR(10). RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. cJG = ''. cGebinde = ''. IF Aufze.Jahr > 9 THEN cJG = STRING(Aufze.Jahr,'9999'). IF Aufze.Alk_Gehalt > 0 THEN DO: IF cJG <> '' THEN cJG = cJG + ' / '. cJG = cJG + TRIM(STRING(Aufze.Alk_Gehalt,'>>.9%')). END. IF Aufze.VGeb_Me <> 0 THEN cGebinde = STRING(Aufze.VGeb_Me,"->>>9") + 'x ' + VGebinde.KBez. PUT CONTROL STRING(Aufze.Artnr ,"999999") '£' Aufze.Bez1 '££££'. IF Aufze.Jahr > 9 THEN PUT CONTROL STRING(Aufze.Jahr,"9999"). PUT CONTROL '£'. IF Aufze.Alk_Gehalt > 0 THEN PUT CONTROL STRING(Aufze.Alk_Gehalt,'>>.9%'). PUT CONTROL '£' cGebinde '£' (IF Aufze.MGel > 0 THEN STRING(Aufze.MGel,">>>>9") ELSE STRING(Aufze.MGel,"->>>9")) '£' STRING(KGebinde.Inhalt,">>>9cl") '£' STRING(Aufze.Gewicht ,">>>9.99-Kg") CHR(10). IF Aufze.Bez2 <> '' THEN PUT CONTROL '£' Aufze.Bez2 CHR(10). IF Aufze.Aktion THEN PUT CONTROL '£' Aufze.Aktion_Text CHR(10). DO WHILE TRUE: IF Aufze.Rab_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Rab_Wert). IF Aufze.Rab_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Rab_Betr < 0 THEN RabText = VZusText. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText. END. PUT CONTROL '£' TRIM(RabText) '££££££'. IF Aufze.Rab_Art = 1 THEN PUT CONTROL STRING(RabWert,"->9.9 %"). IF Aufze.Rab_Art = 2 OR Aufze.Rab_Art = 3 THEN PUT CONTROL STRING(RabWert,"-9.99 Fr."). PUT CONTROL '££' STRING(- Aufze.Rab_Betr ,"->>,>>9.99") CHR(10). LEAVE. END. DO WHILE TRUE: IF Aufze.Zus_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Zus_Wert). IF Aufze.Zus_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Zus_Betr > 0 THEN RabText = VZusText. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText. END. PUT CONTROL '£' TRIM(RabText) '£££££'. IF Aufze.Zus_Art = 1 THEN PUT CONTROL STRING(RabWert,"->9.9 %"). IF Aufze.Zus_Art = 2 OR Aufze.Zus_Art = 3 THEN PUT CONTROL STRING(RabWert,"-9.99 Fr."). PUT CONTROL '££' STRING(+ Aufze.Zus_Betr ,"->>,>>9.99") CHR(10). LEAVE. END. /* ---- Summengruppen-Total -------------------------------------------- */ IF Aufze.Rab_Su_Grp <> 0 THEN DO: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR. IF AVAILABLE TRabSumm THEN DO: TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab. END. END. /* ---- Warengruppen-Totale -------------------------------------------- */ FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp 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 + Aufze.Net_Betr - Aufze.Auf_Rab - Aufze.Abh_Rab. TUmsGrp.Ums_Recy = TUmsGrp.Ums_Recy + ( Aufze.MGeli * KGebinde.Gebuehr ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_PROFORMA_EXCEL C-Win PROCEDURE ARTIKELZEILE_PROFORMA_EXCEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cJG AS CHARACTER NO-UNDO. DEFINE VARIABLE cGebinde AS CHARACTER NO-UNDO. IF Aufze.Artnr = 0 THEN DO: PUT CONTROL '££' TRIM(Aufze.Bez1 + ' ' + Aufze.Bez2) CHR(10). RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. cJG = ''. cGebinde = ''. IF Aufze.Jahr > 9 THEN cJG = STRING(Aufze.Jahr,'9999'). IF Aufze.Alk_Gehalt > 0 THEN DO: IF cJG <> '' THEN cJG = cJG + ' / '. cJG = cJG + TRIM(STRING(Aufze.Alk_Gehalt,'>>.9%')). END. IF Aufze.VGeb_Me <> 0 THEN cGebinde = STRING(Aufze.VGeb_Me,"->>>9") + 'x ' + VGebinde.KBez. PUT CONTROL '£' STRING(Aufze.Artnr ,"999999") '£' Aufze.Bez1 '££££'. IF Aufze.Jahr > 9 THEN PUT CONTROL STRING(Aufze.Jahr,"9999"). PUT CONTROL '£'. IF Aufze.Alk_Gehalt > 0 THEN PUT CONTROL STRING(Aufze.Alk_Gehalt,'>>.9%'). PUT CONTROL '£' cGebinde '£' (IF Aufze.MGel > 0 THEN TRIM(STRING(Aufze.MGel,">>>>>>9")) ELSE TRIM(STRING(Aufze.MGel,"->>>9"))) '£' TRIM(STRING(KGebinde.Inhalt,">>>>9cl")) '£' TRIM(STRING(Aufze.Preis,">>>>>>>9.99")) '£' TRIM(STRING(Aufze.Bru_Betr,"->>>>>>>9.99")) '£' STRING(Aufze.WuCd,">9") CHR(10). IF Aufze.Bez2 <> '' THEN PUT CONTROL '££' Aufze.Bez2 CHR(10). IF Aufze.Aktion THEN PUT CONTROL '££' Aufze.Aktion_Text CHR(10). DO WHILE TRUE: IF Aufze.Rab_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Rab_Wert). IF Aufze.Rab_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Rab_Betr < 0 THEN RabText = VZusText. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText. END. PUT CONTROL '££' TRIM(RabText) '££££££'. IF Aufze.Rab_Art = 1 THEN PUT CONTROL STRING(RabWert,"->>9.9 %"). IF Aufze.Rab_Art = 2 OR Aufze.Rab_Art = 3 THEN PUT CONTROL STRING(RabWert,"->>9.99 Fr."). PUT CONTROL '££' STRING(- Aufze.Rab_Betr ,"->>,>>9.99") CHR(10). LEAVE. END. DO WHILE TRUE: IF Aufze.Zus_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Zus_Wert). IF Aufze.Zus_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Zus_Betr > 0 THEN RabText = VZusText. IF Aufze.Zus_Betr < 0 THEN RabText = VRabText. END. PUT CONTROL '££' TRIM(RabText) '£££££'. IF Aufze.Zus_Art = 1 THEN PUT CONTROL STRING(RabWert,"->>9.9 %"). IF Aufze.Zus_Art = 2 OR Aufze.Zus_Art = 3 THEN PUT CONTROL STRING(RabWert,"->>9.99 Fr."). PUT CONTROL '££' STRING(+ Aufze.Zus_Betr ,"->>,>>9.99") CHR(10). LEAVE. END. /* ---- Summengruppen-Total -------------------------------------------- */ IF Aufze.Rab_Su_Grp <> 0 THEN DO: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR. IF AVAILABLE TRabSumm THEN DO: TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab. END. END. /* ---- Warengruppen-Totale -------------------------------------------- */ FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp 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 + Aufze.Net_Betr - Aufze.Auf_Rab - Aufze.Abh_Rab. TUmsGrp.Ums_Recy = TUmsGrp.Ums_Recy + ( Aufze.MGeli * KGebinde.Gebuehr ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELZEILE_RETOUREN C-Win PROCEDURE ARTIKELZEILE_RETOUREN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cJG AS CHARACTER NO-UNDO. DEFINE VARIABLE cGebinde AS CHARACTER NO-UNDO. VZeile = ''. IF Aufze.Artnr = 0 THEN DO: SUBSTRING(VZeile,009) = TRIM(Aufze.Bez1 + ' ' + Aufze.Bez2). { putstream.i "1" } RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. cGebinde = ''. IF Aufze.VGeb_Me <> 0 THEN cGebinde = STRING(Aufze.VGeb_Me,"->>>9") + 'x ' + VGebinde.KBez. SUBSTRING(VZeile,001) = STRING(Aufze.Artnr ,"999999"). SUBSTRING(VZeile,009) = Aufze.Bez1. /* SUBSTRING(VZeile,041) = cGebinde. */ SUBSTRING(VZeile,041) = KGebinde.KBez. SUBSTRING(VZeile,055) = STRING(Aufze.MGel ,"->>>>9"). SUBSTRING(VZeile,066) = '________ ________ ________'. { putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: SUBSTRING(VZeile,009) = Aufze.Bez2. { putstream.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BESR_DATEN C-Win PROCEDURE BESR_DATEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipArt AS INTEGER NO-UNDO. cBESRZe = ''. cBESRKo = ''. cBESRTn = ''. cBESRBn = ''. FOR EACH BESRTabel USE-INDEX Tabel-k1 WHERE BESRTabel.Firma = GVFirma AND BESRTabel.RecArt = 'EZ' AND BESRTabel.CodeC = STRING(ipArt,'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. 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: ------------------------------------------------------------------------------*/ DEFINE VARIABLE AnzKopien AS INTEGER NO-UNDO. DEFINE VARIABLE XSchname AS CHARACTER NO-UNDO. DEFINE VARIABLE XSchbild AS CHARACTER NO-UNDO. DEFINE VARIABLE iSchacht AS INTEGER NO-UNDO. DEFINE VARIABLE cFirma1 AS CHARACTER NO-UNDO. DEFINE VARIABLE cFirma2 AS CHARACTER NO-UNDO. DEFINE VARIABLE cSchrift AS CHARACTER NO-UNDO. DEFINE VARIABLE cPrPort AS CHARACTER NO-UNDO. XSchname = TRIM(SUBSTRING(FormText[30],01,30)). XSchbild = TRIM(SUBSTRING(FormText[30],31,30)). AnzKopien = F_Kopie. cFirma1 = (IF iFirma = 1 THEN '3001' ELSE '2001'). cFirma2 = (IF iFirma = 1 THEN '3002' ELSE '2002'). IF AnzKopien = 0 THEN AnzKopien = 1. IF BDrucker.Emul = 'TERMINAL' THEN AnzKopien = 1. FOR EACH WDrucker: DELETE WDrucker. END. FOR EACH WSchrift: DELETE WSchrift. END. CREATE WDrucker. CREATE WSchrift. BUFFER-COPY BDrucker TO WDrucker. BUFFER-COPY BSchrift TO WSchrift. DO VCopy = 1 TO AnzKopien: DO WHILE WDrucker.Emul <> "TERMINAL": 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. iSchacht = IF VCopy = 1 THEN SchO ELSE SchK. IF iSchacht > 3 THEN iSchacht = 0. cSchrift = WSchrift.Schname. IF INDEX(cSchrift, 'pdf') > 0 THEN DO: cSchrift = SESSION:TEMP-DIR + 'PDF_' + STRING(TODAY,'99999999') + STRING(TIME,'999999') + '.pcl'. OUTPUT STREAM Out_Stream TO VALUE(cSchrift) CONVERT TARGET "ibm850". END. ELSE DO: GET-KEY-VALUE SECTION 'Grundeinstellungen' KEY cSchrift VALUE cPrPort. IF cPrPort = '' OR cPrPort = ? THEN DO: SYSTEM-DIALOG PRINTER-SETUP UPDATE ja. IF ja THEN cPrPort = SESSION:PRINTER-NAME. ELSE cPrPort = cSchrift. PUT-KEY-VALUE SECTION 'Grundeinstellungen' KEY cSchrift VALUE cPrPort NO-ERROR. END. OUTPUT STREAM Out_Stream TO PRINTER VALUE(cPrPort) CONVERT TARGET "ibm850" PAGED PAGE-SIZE 80. END. PUT STREAM Out_Stream CONTROL WSchrift.Schseqbeg. CASE iSchacht: WHEN 1 THEN PUT STREAM Out_Stream CONTROL Schacht1. WHEN 2 THEN PUT STREAM Out_Stream CONTROL Schacht2. WHEN 3 THEN PUT STREAM Out_Stream CONTROL Schacht3. END CASE. cFormular = IF BDrucker.Drucker BEGINS 'Konica' THEN BDrucker.DruLqb ELSE ''. CASE VDokArt: WHEN 'KASSE' THEN cFormular = ''. WHEN 'RUESTSCHEIN' THEN cFormular = ''. OTHERWISE DO: IF VCopy = 1 THEN cFormular = REPLACE(cFormular, '%%', cFirma1). ELSE cFormular = REPLACE(cFormular, '%%', cFirma2). END. END CASE. IF cFormular <> '' THEN PUT STREAM Out_Stream CONTROL cFormular. INPUT STREAM In_Stream FROM VALUE(VTemp) NO-ECHO NO-MAP. REPEAT ON STOP UNDO, LEAVE WITH FRAME f_Print: IMPORT STREAM In_Stream UNFORMATTED VZeile. DISPLAY STREAM Out_Stream VZeile WITH FRAME f_Print NO-LABELS STREAM-IO NO-BOX USE-TEXT WIDTH 255. END. IF VDokArt BEGINS "KASS" THEN PUT STREAM Out_Stream CONTROL CHR(29) 'V1'. ELSE PUT STREAM Out_Stream CONTROL CHR(13). OUTPUT STREAM Out_Stream CLOSE. INPUT STREAM In_Stream CLOSE. DO WHILE TRUE: IF INDEX(cSchrift, 'PDF') = 0 THEN LEAVE. DEFINE VARIABLE cDir AS CHARACTER NO-UNDO. DEFINE VARIABLE cFont AS CHARACTER NO-UNDO. DEFINE VARIABLE cOut AS CHARACTER NO-UNDO. DEFINE VARIABLE cInp AS CHARACTER NO-UNDO. DEFINE VARIABLE cMail AS CHARACTER NO-UNDO. cDir = SEARCH('pcl6.exe') NO-ERROR. IF cDir = ? THEN LEAVE. FILE-INFO:FILE-NAME = cDir. IF FILE-INFO:FULL-PATHNAME = ? THEN DO: MESSAGE 'PDF kann nicht erstellt werden' VIEW-AS ALERT-BOX. LEAVE. END. cDir = REPLACE(FILE-INFO:FULL-PATHNAME, 'pcl6.exe', ''). cDir = REPLACE(cDir, '\', '/'). cFont = cDir + 'fonts/'. cInp = cSchrift. cOut = REPLACE(cInp, '.pcl', '.pdf'). OS-COMMAND SILENT 'makepdf.cmd' VALUE(cDir) VALUE(cFont) VALUE(cInp) VALUE(cOut). IF SEARCH(cOut) <> ? THEN OS-DELETE VALUE(cInp). DEFINE VARIABLE Inst AS INTEGER NO-UNDO. RUN ShellExecuteA(INPUT 0 , INPUT 'open' , INPUT cOut , INPUT '' , INPUT '' , INPUT 0 , OUTPUT Inst ). GET-KEY-VALUE SECTION 'Grundeinstellungen' KEY 'LieferscheinMail' VALUE cMail. IF cMail = '' THEN LEAVE. RUN SEND_MAIL ( cMail, 0, 'Lieferung', 'Bitte liefern Sie gemäss Lieferschein', cOut ). LEAVE. END. IF VCopy = 1 AND VTempVESR <> '' THEN DO: RUN DRUCKAUSGABE_VESR. OS-DELETE VALUE(VTempVESR). END. LEAVE. END. DO WHILE WDrucker.Emul = "TERMINAL": RUN d-liste.w ( INPUT FormText[02] ). LEAVE. 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: ------------------------------------------------------------------------------*/ FIND FIRST WDrucker. FIND FIRST WSchrift. OUTPUT STREAM Out_Stream TO VALUE(WSchrift.Schname) CONVERT TARGET "ibm850". PUT STREAM Out_Stream CONTROL WSchrift.Schseqbeg. CASE SchB: WHEN 1 THEN PUT STREAM Out_Stream CONTROL Schacht1. WHEN 2 THEN PUT STREAM Out_Stream CONTROL Schacht2. WHEN 3 THEN PUT STREAM Out_Stream CONTROL Schacht3. END CASE. INPUT STREAM In_Stream FROM VALUE(VTempVESR) NO-ECHO NO-MAP. REPEAT ON STOP UNDO, LEAVE WITH FRAME f_Print: IMPORT STREAM In_Stream UNFORMATTED VZeile. DISPLAY STREAM Out_Stream VZeile WITH FRAME f_Print NO-LABELS STREAM-IO NO-BOX USE-TEXT WIDTH 255. END. OUTPUT STREAM Out_Stream CLOSE. INPUT STREAM In_Stream CLOSE. 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}: DEFINE VARIABLE XFakArt AS INTEGER NO-UNDO. DEFINE VARIABLE XAufSta AS INTEGER NO-UNDO. DEFINE VARIABLE ARecid AS RECID NO-UNDO. DEFINE VARIABLE BRecid AS RECID NO-UNDO. DEFINE VARIABLE CRecid AS RECID NO-UNDO. DEFINE VARIABLE DRecid AS RECID NO-UNDO. FIND Tabel WHERE RECID(Tabel) = TRecid NO-LOCK. ASSIGN ARecid = Tabel.Int_1 BRecid = Tabel.Int_2 CRecid = Tabel.Int_3 DRecid = INTEGER(Tabel.Dec_2). FIND BSteuer WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR. FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR. FIND BLiDruck WHERE RECID(BLiDruck) = BRecid NO-LOCK NO-ERROR. FIND BAufko WHERE RECID(BAufko) = CRecid NO-LOCK NO-ERROR. FIND HilfsTab WHERE RECID(HilfsTab) = DRecid NO-LOCK NO-ERROR. IF NOT AVAILABLE BAufko THEN RETURN. F_Aufnr = BAufko.Aufnr. F_Faknr = BAufko.Faknr. F_Datum = BAufko.Fak_Datum. IF F_Datum = ? THEN F_Datum = TODAY. FDatum = F_Datum. VSort = BListen.Sort. ASSIGN F_Drucker = HilfsTab.Zeichen_1 F_Schrift = HilfsTab.Zeichen_2 F_TZZ = HilfsTab.Zahl[01] F_KZZ = HilfsTab.Zahl[02] F_FZZ = HilfsTab.Zahl[03] F_KOPIE = HilfsTab.Zahl[04] SchO = HilfsTab.Zahl[05] SchK = HilfsTab.Zahl[06] VBesr = HilfsTab.Zahl[07] SchB = HilfsTab.Zahl[08] VDokArt = HilfsTab.Sort_2 F_DokArt = HilfsTab.Sort_2. FIND TFakart USE-INDEX Tabel-k1 WHERE TFakart.Firma = GVFirma AND TFakart.RecArt = 'FAKART' AND TFakart.CodeC = '' AND TFakart.CodeI = BAufko.Fak_Art AND TFakart.Sprcd = 1 NO-LOCK NO-ERROR. F_Papier = TFakart.Bez1. FakArt = BAufko.Fak_Art. FIND TAufsta USE-INDEX Tabel-k1 WHERE TAufsta.Firma = GVFirma AND TAufsta.RecArt = 'AUFSTATUS' AND TAufsta.CodeC = '' AND TAufsta.CodeI = BAufko.Auf_Sta AND TAufsta.Sprcd = 1 NO-LOCK NO-ERROR. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. E_Adresse = ''. IF BAufko.Adresse[05] <> '' THEN DO: E_Adresse = CHR(10) + CHR(10) + BAufko.Adresse[01] + CHR(10) + BAufko.Adresse[02] + CHR(10) + BAufko.Adresse[03] + CHR(10) + BAufko.Adresse[04] + CHR(10) + BAufko.Adresse[05]. END. ELSE DO: E_Adresse = Adresse.Anschrift[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] + CHR(10) + Adresse.Anschrift[11] + CHR(10) + Adresse.Anschrift[12]. END. DISPLAY {&List-1}. F_DokArt:BGCOLOR = 14. F_Papier:BGCOLOR = 14. IF TFakart.Int_3 = 3 OR TFakart.Int_3 = 4 OR TFakart.Int_3 = 9 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. EMPTY TEMP-TABLE SammFak. IF BAufko.Samm_Nr <> 0 AND NOT VDokArt BEGINS 'Ruest' THEN DO: RUN SAMMELSUCHEN. END. ELSE DO: CREATE SammFak. ASSIGN SammFak.Knr = BAufko.Fak_Knr SammFak.LS_Knr = BAufko.Knr SammFak.Aufnr = BAufko.Aufnr SammFak.Samm_Nr = BAufko.Aufnr SammFak.Faknr = BAufko.Faknr SammFak.RID = RECID(BAufko). END. VTemp = ''. VTempVESR = ''. RUN WORKFILE. IF DOpen = TRUE THEN OUTPUT STREAM Out_Stream TO VALUE(VTemp). FOR EACH SammFak BREAK BY SammFak.Knr BY SammFak.Samm_Nr BY SammFak.LS_Knr BY SammFak.Aufnr : FIND BAufko WHERE RECID(BAufko) = SammFak.RID NO-LOCK NO-ERROR. F_Aufnr = BAufko.Aufnr. DISPLAY F_Aufnr WITH FRAME {&FRAME-NAME}. VWg_Grp = 0. VProd_Grp = 0. VArt_Grp = 0. VFak_Betr = 0. FErste = FALSE. FOR EACH TAufze: DELETE TAufze. 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. LiefAdr = ''. IF FIRST-OF ( SammFak.LS_Knr ) AND SammFak.LS_Knr <> SammFak.Knr AND SammFak.LS_Knr <> 0 THEN DO: FIND BAdresse USE-INDEX Adresse-k1 WHERE BAdresse.Firma = AdFirma AND BAdresse.Knr = SammFak.LS_Knr NO-LOCK NO-ERROR. LiefAdr = 'Lieferadresse : ' + BAdresse.Anzeig_Br. END. FOR EACH BAufze USE-INDEX Aufze-k1 WHERE BAufze.Firma = BAufko.Firma AND BAufze.Aufnr = BAufko.Aufnr NO-LOCK: IF BAufze.Artnr <> 0 THEN DO: FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = BAufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = BAufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = BAufze.KGeb_Cd NO-LOCK NO-ERROR. END. CREATE TAufze. ASSIGN TAufze.Aufnr = BAufze.Aufnr TAufze.Artnr = BAufze.Artnr TAufze.Inhalt = BAufze.Inhalt TAufze.Jahr = BAufze.Jahr TAufze.Pos = BAufze.Pos TAufze.Zeile = RECID(BAufze) TAufze.Aktion = BAufze.Aktion TAufze.Preis = BAufze.Preis. IF BAufze.Artnr <> 0 THEN DO: FIND Artst OF BAufze 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. TAufze.LagOrt = DYNAMIC-FUNCTION('GETLAGERORT':U, INPUT BAufze.Lager, INPUT BAufze.Artnr, INPUT BAufze.Inhalt, INPUT BAufze.Jahr ) NO-ERROR. END. IF VSort = 1 THEN DO: ASSIGN TAufze.Sort1 = STRING(BAufze.Pos,"99999") TAufze.Sort2 = '' TAufze.Sort3 = ''. END. IF BAufze.Artnr = 0 THEN DO: ASSIGN TAufze.Artnr = AArtnr TAufze.Inhalt = AInhalt TAufze.Jahr = AJahr. END. IF BAufze.Artnr = 0 THEN NEXT. /* Spezial-Auftrags-Rabatt -------------------------------------------- */ IF BAufze.Auf_Sp_Grp > 0 THEN DO: FIND FIRST TSpeRab WHERE TSpeRab.Rab_Grp = BAufze.Auf_Sp_Grp NO-ERROR. IF NOT AVAILABLE TSpeRab THEN DO: CREATE TSpeRab. ASSIGN TSpeRab.Rab_Grp = BAufze.Auf_Sp_Grp. END. TSpeRab.Auf_Betr = TSpeRab.Auf_Betr + BAufze.Auf_Sp_Rab. END. /* Summengruppen-Totale ------------------------------------------------ */ DO WHILE BAufze.Rab_Su_Grp > 0: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = BAufze.Rab_Su_Grp NO-ERROR. IF NOT AVAILABLE TRabSumm THEN DO: FIND FIRST RabSumm USE-INDEX RabSumm-k1 WHERE RabSumm.Firma = GVFirma AND RabSumm.Rab_Summ = BAufze.Rab_Su_Grp NO-LOCK NO-ERROR. IF NOT AVAILABLE RabSumm THEN LEAVE. CREATE TRabSumm. ASSIGN TRabSumm.Rab_Summ = BAufze.Rab_Su_Grp TRabSumm.Bez = RabSumm.Bez TRabSumm.Auf_Rab = 0 TRabSumm.Abh_Rab = 0. END. LEAVE. END. END. IF LAST-OF ( SammFak.Samm_Nr ) THEN FLetzt = TRUE. RUN VALUE(VDokArt). END. /* FOR EACH SammFak */ IF DOpen THEN OUTPUT STREAM Out_Stream CLOSE. DOpen = FALSE. IF NOT VDokArt BEGINS 'EXCEL' THEN RUN DRUCKAUSGABE. IF VTemp <> '' THEN OS-DELETE VALUE(VTemp). 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: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER X AS INTEGER. DEFINE INPUT PARAMETER Y AS INTEGER. DEFINE VARIABLE SX AS INTEGER INIT 0. DEFINE VARIABLE SY AS INTEGER INIT 0. X = X + SX. Y = Y + SY. PUT STREAM Out_Stream CONTROL CHR(027) '9'. PUT STREAM Out_Stream CONTROL CHR(027) '*t300R'. PUT STREAM Out_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_Drucker F_Schrift E_Adresse F_Tzz F_Kzz F_Fzz F_KOPIE F_Aufnr F_Faknr F_Datum F_Dokart F_Seite F_Papier WITH FRAME DEFAULT-FRAME IN WINDOW C-Win. ENABLE Btn_Drucken Btn_Abbrechen F_Drucker F_Schrift E_Adresse F_Tzz F_Kzz F_Fzz F_KOPIE F_Aufnr F_Faknr F_Datum F_Dokart F_Seite 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 EXCEL C-Win PROCEDURE EXCEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE io AS LOG NO-UNDO. DEFINE VARIABLE ExZeile AS INTEGER NO-UNDO. DEFINE VARIABLE ODatei AS CHARACTER NO-UNDO. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN RETURN NO-APPLY. oDatei = "Auftragsbestätigung.xls" + CHR(01) + "Auftragsbestätigung.xls". RUN CREATEDATEI ( INPUT oDatei ). oDatei = SESSION:TEMP-DIR + "Auftragsbestätigung.xls". RUN OPENEXCEL ( INPUT excelAppl, INPUT oDatei, INPUT '', OUTPUT io ). IF NOT io THEN DO: RUN RELEASEEXCEL ( INPUT excelAppl ). RETURN NO-APPLY. END. VFak_Betr = 0. LiKopf = FALSE. FPreis = TRUE. FBetrag = FALSE. FRabatt = FALSE. FSamm = FALSE. ExZeile = 5. VKopfArt = 'EXCEL_KOPF'. /* RUN VALUE(VKopfArt). */ FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. XTelnr = ''. IF DebInkl THEN DO: IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2. ELSE XTelnr = Adresse.Tel-1. END. ELSE DO: IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1. ELSE XTelnr = Adresse.Tel-2. END. F_Seite = VSeite. F_Faknr = BAufko.Aufnr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. VZeile = ''. IF BAufko.Adresse[05] <> '' THEN DO: DO ix = 1 TO 5: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT BAufko.Adresse[ix] ). ExZeile = ExZeile + 1. END. END. ELSE DO: DO ix = 7 TO 11: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT Adresse.Anschrift[ix] ). ExZeile = ExZeile + 1. END. END. cDaten = STRING(TODAY,'99.99.9999'). ExZeile = ExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT cDaten ). ExZeile = 29. ZEILEN: FOR EACH TAufze NO-LOCK BY TAufze.Aufnr BY TAufze.Sort1 BY TAufze.Sort2 BY TAufze.Sort3 BY TAufze.Artnr BY TAufze.Inhalt BY TAufze.Jahr BY TAufze.Pos : FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK. DO WHILE Aufze.Artnr = 0: ExZeile = ExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B', INPUT ExZeile, INPUT Aufze.Bez1 ). IF Aufze.Bez2 <> '' THEN DO: ExZeile = ExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B', INPUT ExZeile, INPUT Aufze.Bez2 ). END. NEXT ZEILEN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. ExZeile = ExZeile + 1. cDaten = STRING(Aufze.Artnr,'999999 ') + Aufze.Bez1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'A', INPUT ExZeile, INPUT cDaten ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT KGebinde.KBez ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT STRING(Aufze.MGeli,'->>>>>9')). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'F', INPUT ExZeile, INPUT STRING(Aufze.Preis,">>>>>>9.999")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'G', INPUT ExZeile, INPUT STRING(Aufze.Net_Betr,"->>>>>>9.999")). VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCELOFFERTE C-Win PROCEDURE EXCELOFFERTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO. DEFINE VARIABLE io AS LOG NO-UNDO. DEFINE VARIABLE ExZeile AS INTEGER NO-UNDO. DEFINE VARIABLE ODatei AS CHARACTER NO-UNDO. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN RETURN NO-APPLY. oDatei = "Offerte_Rauch.xls" + CHR(01) + "Offerte_Rauch.xls". RUN CREATEDATEI ( INPUT oDatei ). oDatei = SESSION:TEMP-DIR + "Offerte_Rauch.xls". RUN OPENEXCEL ( INPUT excelAppl, INPUT oDatei, INPUT '', OUTPUT io ). IF NOT io THEN DO: RUN RELEASEEXCEL ( INPUT excelAppl ). RETURN NO-APPLY. END. VFak_Betr = 0. LiKopf = FALSE. FPreis = TRUE. FBetrag = FALSE. FRabatt = FALSE. FSamm = FALSE. ExZeile = 5. VKopfArt = 'EXCEL_KOPF'. /* RUN VALUE(VKopfArt). */ FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. XTelnr = ''. IF DebInkl THEN DO: IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2. ELSE XTelnr = Adresse.Tel-1. END. ELSE DO: IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1. ELSE XTelnr = Adresse.Tel-2. END. F_Seite = VSeite. F_Faknr = BAufko.Aufnr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. VZeile = ''. IF BAufko.Adresse[05] <> '' THEN DO: DO ix = 1 TO 5: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT BAufko.Adresse[ix] ). ExZeile = ExZeile + 1. END. END. ELSE DO: DO ix = 7 TO 11: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT Adresse.Anschrift[ix] ). ExZeile = ExZeile + 1. END. END. cDaten = STRING(TODAY,'99.99.9999'). ExZeile = ExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT cDaten ). ExZeile = 15. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'A', INPUT ExZeile, INPUT Adresse.BriefAnr ). ExZeile = 21. ZEILEN: FOR EACH TAufze NO-LOCK BY TAufze.Aufnr BY TAufze.Sort1 BY TAufze.Sort2 BY TAufze.Sort3 BY TAufze.Artnr BY TAufze.Inhalt BY TAufze.Jahr BY TAufze.Pos : FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK. DO WHILE Aufze.Artnr = 0: ExZeile = ExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B', INPUT ExZeile, INPUT Aufze.Bez1 ). IF Aufze.Bez2 <> '' THEN DO: ExZeile = ExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B', INPUT ExZeile, INPUT Aufze.Bez2 ). END. NEXT ZEILEN. END. FIND Artst OF Aufze NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. ExZeile = ExZeile + 1. cDaten = STRING(Aufze.Artnr ,'999999'). IF Aufze.Jahr > 100 THEN cDaten = cDaten + ' / ' + STRING(Aufze.Jahr,'9999'). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'A', INPUT ExZeile, INPUT cDaten ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B', INPUT ExZeile, INPUT Aufze.Bez1 ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT STRING(KGebinde.Inhalt,'>>>9')). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'F', INPUT ExZeile, INPUT STRING(Aufze.Bru_Betr,'->>>>>9.999')). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'G', INPUT ExZeile, INPUT STRING(Aufze.Rab_Wert,"->>>>>9.999")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ExZeile, INPUT STRING(Aufze.Net_Betr,"->>>>>9.999")). VFak_Betr = VFak_Betr + Aufze.Net_Betr. IF Aufze.Bez2 <> '' THEN DO: ExZeile = ExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B', INPUT ExZeile, INPUT Aufze.Bez2 ). END. END. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_FAKTURA C-Win PROCEDURE EXCEL_FAKTURA : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cVorlage AS CHARACTER NO-UNDO. DEFINE VARIABLE cDokument AS CHARACTER NO-UNDO. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. DEFINE VARIABLE cPfad AS CHARACTER NO-UNDO. DEFINE VARIABLE fSprcd AS INTEGER NO-UNDO. FIND BAdresse USE-INDEX Adresse-k1 WHERE BAdresse.Firma = AdFirma AND BAdresse.Knr = (IF BAufko.Fak_Knr > 0 THEN BAufko.Fak_Knr ELSE BAufko.Knr) NO-LOCK NO-ERROR. FIND LAdresse USE-INDEX Adresse-k1 WHERE LAdresse.Firma = AdFirma AND LAdresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = (IF BAufko.Fak_Knr > 0 THEN BAufko.Fak_Knr ELSE BAufko.Knr) NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. iFirma = FDebst.Ku_Grp. cFrw = FDebst.Frw. LVSprcd = BAdresse.Sprcd. fSprcd = (IF BAdresse.Sprcd = 1 THEN 1 ELSE 2). iBesr = FDebst.BESR_Art. VFak_Betr = 0. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. IF SFaknr = 0 THEN DO: SFaknr = BAufko.Faknr. REPEAT WHILE SFaknr = 0 TRANSACTION: RUN steunr.p ( INPUT 2, OUTPUT VFaknr ). IF RETURN-VALUE <> '' THEN NEXT. SFaknr = VFaknr. END. END. cPfad = SEARCH('NichtLoeschen.pdf'). IF cPfad = ? THEN cPfad = ''. IF cPfad = '' THEN cPfad = SESSION:TEMP-DIR. ELSE DO: FILE-INFO:FILE-NAME = cPfad. cPfad = FILE-INFO:FULL-PATHNAME. cPfad = REPLACE(cPfad, '\', '/'). cPfad = SUBSTRING(cPfad, 01, R-INDEX(cPfad, '/') - 1). END. cVorlage = 'Rechnung_' + STRING(SFaknr,'999999') + '_' + STRING(BAdresse.Knr,'999999') + '.xls' + CHR(01) + 'Rechnung_' + STRING(BAufko.Ku_Grp,'99') + '_' + STRING(fSprcd,'99') + '_' + BAufko.Frw + '.xls' + CHR(01) + cPfad. RUN CREATEDATEI ( cVorlage ). cDokument = RETURN-VALUE. IF cDokument BEGINS 'ERROR' THEN RETURN 'ERROR'. cDaten = SESSION:TEMP-DIR + 'Faktura_' + STRING(TIME,'999999') + '.txt'. OUTPUT TO VALUE(cDaten). IF BAufko.Fak_Knr <> BAufko.Knr THEN DO: PUT CONTROL LAdresse.Anzeig_br CHR(10) '£' CHR(10). END. FOR EACH TAufze NO-LOCK BY TAufze.Aufnr BY TAufze.Sort1 BY TAufze.Sort2 BY TAufze.Sort3 BY TAufze.Artnr BY TAufze.Inhalt BY TAufze.Jahr BY TAufze.Pos : FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK. RUN ARTIKELZEILE_PROFORMA_EXCEL. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. PUT CONTROL '£' CHR(10). CASE LVSprcd: WHEN 1 THEN PUT CONTROL '££Total££££££££££'. OTHERWISE PUT CONTROL '££Total££££££££££'. END CASE. PUT CONTROL STRING(VFak_Betr,"->>>>>>9.99") CHR(10) '£' CHR(10). /* RUN SUMMENRABATTE. { putstream.i "1" } RUN GEBINDE_SALDO. RUN GEBINDE_ABRECHNUNG. */ RUN MEHRWERTSTEUER_EXCEL. RUN ZAHLUNGSKONDITION_EXCEL ( BAufko.Sk_Ber ). RUN SCHLUSS_TEXT_EXCEL. OUTPUT CLOSE. RUN EXCEL_PROFORMA_KOPF ( cDokument, cDaten ). excelAppl:ActiveWorkbook:Close( TRUE ). DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. OS-DELETE VALUE(cDaten) NO-ERROR. RUN KOPF_MUTATION. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_LIEFERSCHEIN C-Win PROCEDURE EXCEL_LIEFERSCHEIN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cVorlage AS CHARACTER NO-UNDO. DEFINE VARIABLE cDokument AS CHARACTER NO-UNDO. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. DEFINE VARIABLE cPfad AS CHARACTER NO-UNDO. DEFINE VARIABLE fSprcd AS INTEGER NO-UNDO. FIND BAdresse USE-INDEX Adresse-k1 WHERE BAdresse.Firma = AdFirma AND BAdresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = (IF BAufko.Fak_Knr > 0 THEN BAufko.Fak_Knr ELSE BAufko.Knr) NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. iFirma = FDebst.Ku_Grp. cFrw = FDebst.Frw. LVSprcd = BAdresse.Sprcd. fSprcd = (IF BAdresse.Sprcd = 1 THEN 1 ELSE 2). iBesr = FDebst.BESR_Art. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. XTelnr = ''. IF DebInkl THEN DO: IF BAdresse.Tel-2 <> '' THEN XTelnr = BAdresse.Tel-2. ELSE XTelnr = BAdresse.Tel-1. END. ELSE DO: IF BAdresse.Tel-1 <> '' THEN XTelnr = BAdresse.Tel-1. ELSE XTelnr = BAdresse.Tel-2. END. cPfad = SEARCH('NichtLoeschen.pdf'). IF cPfad = ? THEN cPfad = ''. IF cPfad = '' THEN cPfad = SESSION:TEMP-DIR. ELSE DO: FILE-INFO:FILE-NAME = cPfad. cPfad = FILE-INFO:FULL-PATHNAME. cPfad = REPLACE(cPfad, '\', '/'). cPfad = SUBSTRING(cPfad, 01, R-INDEX(cPfad, '/') - 1). END. cVorlage = 'Lieferschein_' + STRING(BAufko.Aufnr,'999999') + '_' + STRING(BAdresse.Knr,'999999') + '.xls' + CHR(01) + 'viper\realwines\Lieferschein_' + STRING(BAufko.Ku_Grp,'99') + '_' + STRING(fSprcd,'99') + '.xls' + CHR(01) + cPfad. RUN CREATEDATEI ( cVorlage ). cDokument = RETURN-VALUE. IF cDokument BEGINS 'ERROR' THEN RETURN 'ERROR'. cDaten = SESSION:TEMP-DIR + 'Lieferschein_' + STRING(TIME,'999999') + '.txt'. OUTPUT TO VALUE(cDaten). FOR EACH TAufze NO-LOCK BY TAufze.Aufnr BY TAufze.Sort1 BY TAufze.Sort2 BY TAufze.Sort3 BY TAufze.Artnr BY TAufze.Inhalt BY TAufze.Jahr BY TAufze.Pos : FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK. RUN ARTIKELZEILE_LIEFERSCHEIN_EXCEL. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. RUN SCHLUSS_TEXT_EXCEL. OUTPUT CLOSE. RUN EXCEL_LIEFERSCHEIN_KOPF ( cDokument, cDaten ). excelAppl:ActiveWorkbook:Close( TRUE ). DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. OS-DELETE VALUE(cDaten) NO-ERROR. RUN KOPF_MUTATION. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_LIEFERSCHEIN_KOPF C-Win PROCEDURE EXCEL_LIEFERSCHEIN_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER cDokument AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER cDaten AS CHARACTER NO-UNDO. DEFINE VARIABLE io AS LOG NO-UNDO. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DEFINE VARIABLE ExZeile AS INTEGER NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE cSection AS CHARACTER NO-UNDO. XTelnr = ''. IF DebInkl THEN DO: IF BAdresse.Tel-2 <> '' THEN XTelnr = BAdresse.Tel-2. ELSE XTelnr = BAdresse.Tel-1. END. ELSE DO: IF BAdresse.Tel-1 <> '' THEN XTelnr = BAdresse.Tel-1. ELSE XTelnr = BAdresse.Tel-2. END. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN RETURN NO-APPLY. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT io ). IF NOT io THEN DO: RUN RELEASEEXCEL ( INPUT excelAppl ). RETURN NO-APPLY. END. excelAppl:VISIBLE = FALSE. Zelle = 'A25'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten. excelAppl:APPLICATION:RUN ( 'DateiEinfuegen' ). ExZeile = 10. IF BAufko.Adresse[05] <> '' THEN DO: ExZeile = ExZeile + 1. DO ix = 1 TO 5: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ExZeile, INPUT BAufko.Adresse[ix] ). ExZeile = ExZeile + 1. END. END. ELSE DO: DO ix = 7 TO 12: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ExZeile, INPUT BAdresse.Anschrift[ix] ). ExZeile = ExZeile + 1. END. END. ExZeile = ExZeile + 2. cString = STRING(BAufko.Aufnr,'999999'). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cString ). ExZeile = ExZeile + 2. cString = STRING(BAdresse.Knr,'999999') + '/' + XTelNr. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cString ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J', INPUT ExZeile, INPUT BAufko.I_Best ). ExZeile = ExZeile + 1. cString = STRING(BAufko.Gewicht,'zzz9.99-Kg'). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cString ). RUN VERSANDART. ExZeile = ExZeile + 1. cString = STRING(BAufko.Lief_Dat,'99.99.9999') + ' /' + XVersand. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cString ). cString = STRING(TODAY,'99.99.9999'). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'K', INPUT ExZeile, INPUT cString ). ExZeile = 29. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. cString = REPLACE(cDokument, 'xls', 'pdf'). cString = SEARCH(cString). IF cString <> ? THEN DO: DO WHILE SEARCH(cString) <> ?: ix = ETIME(TRUE). OS-DELETE VALUE(cString) NO-ERROR. DO WHILE ETIME(FALSE) < 100: END. END. END. cString = SESSION:GET-PRINTERS(). MESSAGE cString VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. /* DO ix = 1 TO NUM-ENTRIES(cString, ','): IF INDEX(ENTRY(ix, cString, ','), 'PDF') = 0 THEN NEXT. SESSION:PRINTER-NAME = ENTRY(ix, cString, ','). LEAVE. END. cString = SESSION:PRINTER-NAME + ' auf ' + SESSION:PRINTER-PORT. excelAppl:APPLICATION:ActivePrinter = cString NO-ERROR. IF ERROR-STATUS:ERROR THEN DO: cString = SESSION:PRINTER-NAME + ' on ' + SESSION:PRINTER-PORT. excelAppl:APPLICATION:ActivePrinter = cString NO-ERROR. END. IF ERROR-STATUS:ERROR THEN DO: excelAppl:VISIBLE = TRUE. MESSAGE 'Kann ' SESSION:PRINTER-NAME ' auf ' SESSION:PRINTER-PORT ' nicht dem Excel zuweisen ' VIEW-AS ALERT-BOX. END. ELSE DO: excelAppl:ActiveWindow:SelectedSheets:PrintOut (1, TRUE). END. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_PROFORMA C-Win PROCEDURE EXCEL_PROFORMA : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cVorlage AS CHARACTER NO-UNDO. DEFINE VARIABLE cDokument AS CHARACTER NO-UNDO. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. DEFINE VARIABLE cPfad AS CHARACTER NO-UNDO. DEFINE VARIABLE fSprcd AS INTEGER NO-UNDO. FIND BAdresse USE-INDEX Adresse-k1 WHERE BAdresse.Firma = AdFirma AND BAdresse.Knr = (IF BAufko.Fak_Knr > 0 THEN BAufko.Fak_Knr ELSE BAufko.Knr) NO-LOCK NO-ERROR. FIND LAdresse USE-INDEX Adresse-k1 WHERE LAdresse.Firma = AdFirma AND LAdresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = (IF BAufko.Fak_Knr > 0 THEN BAufko.Fak_Knr ELSE BAufko.Knr) NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. iFirma = FDebst.Ku_Grp. cFrw = FDebst.Frw. LVSprcd = BAdresse.Sprcd. fSprcd = (IF BAdresse.Sprcd = 1 THEN 1 ELSE 2). iBesr = FDebst.BESR_Art. VFak_Betr = 0. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. IF SFaknr = 0 THEN DO: SFaknr = BAufko.Faknr. REPEAT WHILE SFaknr = 0 TRANSACTION: RUN steunr.p ( INPUT 2, OUTPUT VFaknr ). IF RETURN-VALUE <> '' THEN NEXT. SFaknr = VFaknr. END. END. cPfad = SEARCH('NichtLoeschen.pdf'). IF cPfad = ? THEN cPfad = ''. IF cPfad = '' THEN cPfad = SESSION:TEMP-DIR. ELSE DO: FILE-INFO:FILE-NAME = cPfad. cPfad = FILE-INFO:FULL-PATHNAME. cPfad = REPLACE(cPfad, '\', '/'). cPfad = SUBSTRING(cPfad, 01, R-INDEX(cPfad, '/') - 1). END. cVorlage = 'Proforma_' + STRING(SFaknr,'999999') + '_' + STRING(BAdresse.Knr,'999999') + '.xls' + CHR(01) + 'Proforma_' + STRING(BAufko.Ku_Grp,'99') + '_' + STRING(fSprcd,'99') + '_' + BAufko.Frw + '.xls' + CHR(01) + cPfad. RUN CREATEDATEI ( cVorlage ). cDokument = RETURN-VALUE. IF cDokument BEGINS 'ERROR' THEN RETURN 'ERROR'. cDaten = SESSION:TEMP-DIR + 'Proforma_' + STRING(TIME,'999999') + '.txt'. OUTPUT TO VALUE(cDaten). IF BAufko.Fak_Knr <> BAufko.Knr THEN DO: PUT CONTROL LAdresse.Anzeig_br CHR(10) '£' CHR(10). END. FOR EACH TAufze NO-LOCK BY TAufze.Aufnr BY TAufze.Sort1 BY TAufze.Sort2 BY TAufze.Sort3 BY TAufze.Artnr BY TAufze.Inhalt BY TAufze.Jahr BY TAufze.Pos : FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK. RUN ARTIKELZEILE_PROFORMA_EXCEL. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. PUT CONTROL '£' CHR(10). CASE LVSprcd: WHEN 1 THEN PUT CONTROL '££Total££££££££££'. OTHERWISE PUT CONTROL '££Total££££££££££'. END CASE. PUT CONTROL STRING(VFak_Betr,"->>>>>>9.99") CHR(10) '£' CHR(10). /* RUN SUMMENRABATTE. { putstream.i "1" } RUN GEBINDE_SALDO. RUN GEBINDE_ABRECHNUNG. */ RUN MEHRWERTSTEUER_EXCEL. RUN ZAHLUNGSKONDITION_EXCEL ( BAufko.Sk_Ber ). RUN SCHLUSS_TEXT_EXCEL. OUTPUT CLOSE. RUN EXCEL_PROFORMA_KOPF ( cDokument, cDaten ). excelAppl:ActiveWorkbook:Close( TRUE ). DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. OS-DELETE VALUE(cDaten) NO-ERROR. RUN KOPF_MUTATION. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_PROFORMA_KOPF C-Win PROCEDURE EXCEL_PROFORMA_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER cDokument AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER cDaten AS CHARACTER NO-UNDO. DEFINE VARIABLE io AS LOG NO-UNDO. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DEFINE VARIABLE ExZeile AS INTEGER NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE cSection AS CHARACTER NO-UNDO. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN RETURN NO-APPLY. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT io ). IF NOT io THEN DO: RUN RELEASEEXCEL ( INPUT excelAppl ). RETURN NO-APPLY. END. excelAppl:VISIBLE = FALSE. Zelle = 'A25'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten. excelAppl:APPLICATION:RUN ( 'DateiEinfuegen' ). ExZeile = 10. IF BAufko.Adresse[05] <> '' THEN DO: ExZeile = ExZeile + 1. DO ix = 1 TO 5: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT BAufko.Adresse[ix] ). ExZeile = ExZeile + 1. END. END. ELSE DO: DO ix = 7 TO 12: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT BAdresse.Anschrift[ix] ). ExZeile = ExZeile + 1. END. END. ExZeile = ExZeile + 2. cString = STRING(SFaknr,'999999'). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT cString ). ExZeile = ExZeile + 2. cString = STRING(BAufko.Aufnr,'999999'). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT cString ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J', INPUT ExZeile, INPUT BAufko.I_Best ). ExZeile = ExZeile + 1. cString = STRING(BAufko.Knr,'999999'). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT cString ). ExZeile = ExZeile + 1. cString = STRING(FDatum,'99.99.9999'). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ExZeile, INPUT cString ). cString = STRING(TODAY,'99.99.9999'). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'N', INPUT ExZeile, INPUT cString ). ExZeile = 29. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. cString = REPLACE(cDokument, 'xls', 'pdf'). cString = SEARCH(cString). IF cString <> ? THEN DO: DO WHILE SEARCH(cString) <> ?: ix = ETIME(TRUE). OS-DELETE VALUE(cString) NO-ERROR. DO WHILE ETIME(FALSE) < 100: END. END. END. cString = SESSION:GET-PRINTERS(). DO ix = 1 TO NUM-ENTRIES(cString, ','): IF INDEX(ENTRY(ix, cString, ','), 'ADPRPR001') = 0 THEN NEXT. /* IF INDEX(ENTRY(ix, cString, ','), 'PDF') = 0 THEN NEXT. */ SESSION:PRINTER-NAME = ENTRY(ix, cString, ','). LEAVE. END. cString = SESSION:PRINTER-NAME + ' auf ' + SESSION:PRINTER-PORT. excelAppl:APPLICATION:ActivePrinter = cString NO-ERROR. IF ERROR-STATUS:ERROR THEN DO: cString = SESSION:PRINTER-NAME + ' on ' + SESSION:PRINTER-PORT. excelAppl:APPLICATION:ActivePrinter = cString NO-ERROR. END. IF ERROR-STATUS:ERROR THEN DO: excelAppl:VISIBLE = TRUE. MESSAGE 'Kann ' SESSION:PRINTER-NAME ' auf ' SESSION:PRINTER-PORT ' nicht dem Excel zuweisen ' VIEW-AS ALERT-BOX. END. ELSE DO: excelAppl:ActiveWindow:SelectedSheets:PrintOut (1, TRUE). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA C-Win PROCEDURE FAKTURA : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN PROFORMA. RETURN. /* VSeite = 0. */ /* VFak_Betr = 0. */ /* LiKopf = TRUE. */ /* FPreis = TRUE. */ /* FBetrag = TRUE. */ /* FRabatt = TRUE. */ /* FUeber = TRUE. */ /* FSamm = FALSE. */ /* FLagOrt = FALSE. */ /* LiPos = 200. */ /* FoBreite = 2080. */ /* TiHoehe = 120. */ /* OCRB = BDrucker.DruFont [03]. */ /* Schacht3 = BDrucker.DruSchacht[03]. */ /* VKopfArt = 'PROFORMA_KOPF'. */ /* */ /* RUN VALUE(VKopfArt). */ /* */ /* LiefAdr = ''. */ /* IF BAufko.Knr <> BAufko.Fak_Knr THEN */ /* DO: */ /* FIND BAdresse USE-INDEX Adresse-k1 */ /* WHERE BAdresse.Firma = AdFirma */ /* AND BAdresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. */ /* LiefAdr = BAdresse.Anzeig_Br. */ /* END. */ /* IF LiefAdr <> '' THEN */ /* DO: */ /* VZeile = LiefAdr. */ /* { putstreamf.i "2" } */ /* END. */ /* */ /* FOR EACH TAufze NO-LOCK */ /* BY TAufze.Aufnr */ /* BY TAufze.Sort1 */ /* BY TAufze.Sort2 */ /* BY TAufze.Sort3 */ /* BY TAufze.Artnr */ /* BY TAufze.Inhalt */ /* BY TAufze.Jahr */ /* BY TAufze.Pos : */ /* */ /* IF (BLiDruck.Listtzz - VLine - 6) < BLiDruck.Listfzz THEN */ /* DO: */ /* RUN VALUE(VKopfArt). */ /* END. */ /* */ /* FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK. */ /* */ /* RUN ARTIKELZEILE_LIEFERFAK. */ /* */ /* VFak_Betr = VFak_Betr + Aufze.Net_Betr. */ /* END. */ /* */ /* DYNAMIC-FUNCTION('schreibenLinie':U, LiPos, FoBreite) NO-ERROR.*/ /* { putstream.i "1" } */ /* */ /* SUBSTRING(VZeile,009) = TRIM(SUBSTRING(FormText[10],41,20)). */ /* SUBSTRING(VZeile,086) = STRING(VFak_Betr,"->>,>>9.99"). */ /* { putstreamf.i "1" } */ /* */ /* LiKopf = FALSE. */ /* */ /* RUN SUMMENRABATTE. */ /* */ /* { putstream.i "1" } */ /* */ /* RUN GEBINDE_SALDO. */ /* RUN GEBINDE_ABRECHNUNG. */ /* RUN MEHRWERTSTEUER. */ /* */ /* SUBSTRING(VZeile,086) = '=========='. */ /* { putstream.i "2" } */ /* FUeber = FALSE. */ /* */ /* RUN ZAHLUNGSKONDITION ( BAufko.Sk_Ber ). */ /* RUN GEBINDE_RUECKNAHME_TABELLE. */ /* IF VBesr = 0 THEN */ /* DO: */ /* RUN UMSATZVERTEILUNG. */ /* RUN SCHLUSS_TEXT. */ /* END. */ /* RUN KOPF_MUTATION. */ /* */ /* Rundbetr = VFak_Betr. */ /* VesrKnr = BAufko.Fak_Knr. */ /* VesrFnr = BAufko.Faknr. */ /* VBesrArt = 'VESR_DRUCK' + STRING(VBesr,"99"). */ /* IF Kondi.Skonto[01] <> 0 THEN Rundbetr = 0. */ /* IF VBesr > 0 THEN RUN VALUE(VBesrArt). */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA_KOPF C-Win PROCEDURE FAKTURA_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cWochentag AS CHARACTER NO-UNDO INIT 'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag'. RUN NEUE_SEITE. IF VSeite = 1 THEN DO: IF SFaknr = 0 THEN DO: SFaknr = BAufko.Faknr. REPEAT WHILE SFaknr = 0 TRANSACTION: RUN steunr.p ( INPUT 2, OUTPUT VFaknr ). IF RETURN-VALUE <> '' THEN NEXT. SFaknr = VFaknr. END. END. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = (IF BAufko.Fak_Knr > 0 THEN BAufko.Fak_Knr ELSE BAufko.Knr) NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = (IF BAufko.Fak_Knr > 0 THEN BAufko.Fak_Knr ELSE BAufko.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. iBesr = FDebst.BESR_Art. 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. END. F_Seite = VSeite. F_Faknr = SFaknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. FIND Femeld NO-LOCK USE-INDEX Femeld-k1 WHERE Femeld.Sprcd = LVSprcd AND Femeld.FeNr = 1100 NO-ERROR. IF NOT AVAILABLE Femeld THEN DO: FIND Femeld NO-LOCK USE-INDEX Femeld-k1 WHERE Femeld.Sprcd = 1 AND Femeld.FeNr = 1100 NO-ERROR. END. IF AVAILABLE Femeld AND Femeld.FeText <> '' THEN cWochentag = Femeld.FeText. VZeile = ''. { putstream.i BLiDruck.Listkzz }. IF BAufko.Adresse[05] <> '' THEN DO: { putstream.i 1 } DO ix = 1 TO 5: SUBSTRING(VZeile,060) = BAufko.Adresse[ix]. IF ix = 5 THEN DO: { putstreamf.i "1" }. END. ELSE DO: { putstream.i "1" }. END. END. END. ELSE DO: DO ix = 6 TO 11: SUBSTRING(VZeile,060) = Adresse.Anschrift[ix]. IF ix = 11 THEN DO: { putstreamf.i "1" }. END. ELSE DO: { putstream.i "1" }. END. END. END. { putstream.i "2" } SUBSTRING(VZeile,001) = BDrucker.Dru12cpi + BDrucker.DruFettb + TRIM(SUBSTRING(FormText[02],01,20)) + STRING(SFaknr,"z999999") + " /" + STRING(VSeite,"zz9") + BDrucker.DruFont[06]. IF VSeite = 1 THEN DO: { putstreamf.i "1" } END. ELSE DO: { putstreamf.i "2" } END. DO WHILE VSeite = 1: SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20)) + " " + BSteuer.MWST_Nr. { putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20)) + " " + STRING(BAufko.Aufnr,'999999'). { putstream.i "2" } RUN VERSANDART. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[08],01,20)) + ' ' + STRING(BAufko.Knr,"999999") + ' / ' + XTelnr. SUBSTRING(VZeile,060) = TRIM (SUBSTRING(FormText[07],01,20)) + ' ' + STRING(FDatum,"99.99.9999"). { putstream.i "2" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[22],01,20)) + " " + BAufko.U_Ref. { putstream.i "1" } IF BAufko.I_Best <> '' THEN DO: SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20)) + " " + BAufko.I_Best. { putstream.i "1" } END. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + ENTRY(WEEKDAY(BAufko.Auf_Datum), cWochentag, ',') + ", " + STRING(BAufko.Auf_Datum,"99.99.9999"). { putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[09],21,20)) + " " + ENTRY(WEEKDAY(BAufko.Lief_Datum), cWochentag, ',') + ", " + STRING(BAufko.Lief_Datum,"99.99.9999"). SUBSTRING(VZeile,060) = TRIM(SUBSTRING(FormText[09],01,20)) + " " + XVersand. { putstream.i "1" } LEAVE. END. IF LiKopf THEN DO: DYNAMIC-FUNCTION('schreibenUeberschrift':U, LiPos, FoBreite, TiHoehe) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { putstreamf.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. { putstreamf.i "2" } END. ELSE DO: { putstream.i "1" } END. IF VSeite > 1 AND FUeber = TRUE THEN DO: SUBSTRING(VZeile,009) = TRIM(SUBSTRING(FormText[09],41,20)). SUBSTRING(VZeile,086) = STRING(VFak_Betr,"->>,>>9.99"). { 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. fZeiDruck = FALSE. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 NO-LOCK: IF AufGKon.Eingang = 0 AND AufGKon.Ausgang = 0 THEN NEXT. Zuszz = Zuszz + 1. END. Ja = FALSE. IF Zuszz > 0 THEN DO: Zuszz = Zuszz + 6. 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,009) = FormText[12]. SUBSTRING(VZeile,079) = FormText[13]. { putstreamf.i "1" } fZeiDruck = TRUE. END. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 NO-LOCK: IF AufGKon.Eingang = 0 AND AufGKon.Ausgang = 0 THEN NEXT. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK. i1 = AufGKon.Ausgang - AufGKon.Eingang. Rundbetr = AufGKon.Betrag. VWC = AufGKon.MWSt_Cd. VZTot = VZTot + Rundbetr. SUBSTRING(VZeile,009) = GebKonto.Bez. SUBSTRING(VZeile,042) = STRING(AufGKon.Ausgang,"->>,>>9"). SUBSTRING(VZeile,053) = STRING(AufGKon.Eingang,"->>,>>9"). SUBSTRING(VZeile,063) = STRING(i1 ,"->>,>>9"). SUBSTRING(VZeile,073) = STRING(Rundbetr ,"->>,>>9.99"). SUBSTRING(VZeile,097) = STRING(VWC ,"z9"). { putstream.i "1" } i5 = i5 + 1. fZeiDruck = TRUE. 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 + AufGKon.Betrag. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,040) = TRIM(SUBSTRING(FormText[11],21,20)). SUBSTRING(VZeile,086) = STRING(VZTot,"->>,>>9.99"). { putstream.i "1" } VFak_Betr = VFak_Betr + VZTot. END. IF NOT FSamm AND fZeiDruck THEN DO: DYNAMIC-FUNCTION('schreibenLinie':U, 200, 2080) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,009) = TRIM(SUBSTRING(FormText[15],21,20)). SUBSTRING(VZeile,086) = STRING(VFak_Betr,"->>,>>9.99"). { putstreamf.i "1" } DYNAMIC-FUNCTION('schreibenLinie':U, 200, 2080) NO-ERROR. { 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]. { putstreamf.i "1" } FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 NO-LOCK: IF AufGKon.Eingang = 0 AND AufGKon.Ausgang = 0 THEN NEXT. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK. i1 = AufGKon.Ausgang - AufGKon.Eingang. Rundbetr = AufGKon.Betrag. VWC = AufGKon.MWSt_Cd. VZTot = VZTot + Rundbetr. SUBSTRING(VZeile,001) = STRING(GebKonto.Bez,"x(10)"). SUBSTRING(VZeile,011) = STRING(AufGKon.Ausgang,"->>>9"). SUBSTRING(VZeile,017) = STRING(AufGKon.Eingang,"->>>9"). SUBSTRING(VZeile,023) = STRING(i1 ,"->>>9"). SUBSTRING(VZeile,029) = STRING(Rundbetr ,"->>>9.99"). SUBSTRING(VZeile,039) = STRING(VWC ,"z9"). { 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 + AufGKon.Betrag. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[11],21,20)). SUBSTRING(VZeile,029) = STRING(VZTot,"->>>9.99"). { 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. { 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: { putstream.i "1" } i5 = i5 + 1. END. END. IF VZeile <> '' THEN DO: { putstream.i "1" } i5 = i5 + 1. END. DYNAMIC-FUNCTION('schreibenLinie':U, LiPos, FoBreite) NO-ERROR. IF i5 > 0 THEN DO: { 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: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cTextArt AS CHARACTER NO-UNDO. cTextArt = 'GEBINDERETOUR' + STRING(FakArt,'99'). FIND TabTexte USE-INDEX TabTexte-k1 WHERE TabTexte.Firma = GVFirma AND TabTexte.TextArt = cTextArt AND TabTexte.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF NOT AVAILABLE TabTexte THEN RETURN. VTabTexte = TabTexte.Inhalt. 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 ix = 1 TO NUM-ENTRIES(VTabTexte, CHR(10)): VZeile = ENTRY(ix, VTabTexte, CHR(10)). IF ix = 1 THEN DO: VZeile = TRIM(BDrucker.DruUnterB) + VZeile + TRIM(BDrucker.DruUnterE). END. ELSE DO: VZeile = TRIM(BDrucker.DruUnterE) + VZeile. END. { 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 AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 AND AufGKon.Betrag <> 0 NO-LOCK: FIND FIRST TGebKto WHERE TGebKto.Geb_Cd = AufGKon.Geb_Cd NO-ERROR. IF NOT AVAILABLE TGebKto THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = AufGKon.Firma AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK. CREATE TGebKto. ASSIGN TGebKto.Sort_Cd = GebKonto.Sort_Cd TGebKto.Geb_Cd = GebKonto.Geb_Cd TGebKto.Bez = GebKonto.Bez TGebKto.Preis = AufGKon.Depot TGebKto.MWST_Cd = AufGKon.MWSt_Cd. END. TGebKto.A_Anz = TGebKto.A_Anz + AufGKon.Ausgang. TGebKto.A_Betrag = TGebKto.A_Anz * TGebKto.Preis. TGebKto.E_Anz = TGebKto.E_Anz + AufGKon.Eingang. TGebKto.E_Betrag = TGebKto.E_Anz * TGebKto.Preis. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF_MUTATION C-Win PROCEDURE KOPF_MUTATION : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO TRANSACTION WHILE TRUE: FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeC = '' AND Tabel.CodeI = BAufko.Fak_Art AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF Tabel.Int_3 > 2 THEN DO: FIND Aufko WHERE RECID(Aufko) = RECID(BAufko). Aufko.Fak_Datum = FDatum. Aufko.Faknr = SFaknr. RELEASE Aufko. END. RUN AUFTRAG_GEDRUCKT ( INPUT BAufko.Aufnr ). RELEASE Aufko. LEAVE. END. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko) NO-LOCK. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD C-Win PROCEDURE LIBILD : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE VProgName AS CHARACTER 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 LIEFERBEDINGUNG C-Win PROCEDURE LIEFERBEDINGUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ XLieferbed = ''. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'LIEFBED' AND Tabel.CodeC = '' AND Tabel.CodeI = BAufko.Lief_Bed AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF AVAILABLE Tabel THEN XLieferbed = Tabel.Bez1. 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. FLagOrt = FALSE. LiPos = 200. FoBreite = 2080. TiHoehe = 120. VKopfArt = 'LIEFERFAK_KOPF'. OCRB = BDrucker.DruFont [03]. Schacht3 = BDrucker.DruSchacht[03]. RUN VALUE(VKopfArt). FOR EACH TAufze NO-LOCK BY TAufze.Aufnr BY TAufze.Sort1 BY TAufze.Sort2 BY TAufze.Sort3 BY TAufze.Artnr BY TAufze.Inhalt BY TAufze.Jahr BY TAufze.Pos : IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK. RUN ARTIKELZEILE_LIEFERFAK. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. DYNAMIC-FUNCTION('schreibenLinie':U, LiPos, FoBreite) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,009) = TRIM(SUBSTRING(FormText[10],41,20)). SUBSTRING(VZeile,086) = STRING(VFak_Betr,"->>,>>9.99"). { putstreamf.i "1" } LiKopf = FALSE. RUN SUMMENRABATTE. { putstream.i "1" } RUN GEBINDE_SALDO. RUN GEBINDE_ABRECHNUNG. RUN MEHRWERTSTEUER. { putstream.i "1" } SUBSTRING(VZeile,040) = TRIM(SUBSTRING(FormText[18],21,20)). SUBSTRING(VZeile,086) = "__________". { putstreamf.i "2" } SUBSTRING(VZeile,040) = TRIM(SUBSTRING(FormText[18],41,20)). SUBSTRING(VZeile,086) = "__________". { putstreamf.i "1" } RUN ZAHLUNGSKONDITION ( BAufko.Sk_Ber ). RUN GEBINDE_RUECKNAHME_TABELLE. RUN SCHLUSS_TEXT. RUN KOPF_MUTATION. VesrKnr = BAufko.Fak_Knr. VesrFnr = BAufko.Faknr. Rundbetr = 0. VBesrArt = 'VESR_DRUCK' + STRING(VBesr,"99"). IF VBesr > 0 THEN RUN VALUE(VBesrArt). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK_KOPF C-Win PROCEDURE LIEFERFAK_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cWochentag AS CHARACTER NO-UNDO INIT 'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag'. RUN NEUE_SEITE. IF VSeite = 1 THEN DO: IF SFaknr = 0 THEN DO: SFaknr = BAufko.Faknr. REPEAT WHILE SFaknr = 0 TRANSACTION: RUN steunr.p ( INPUT 2, OUTPUT VFaknr ). IF RETURN-VALUE <> '' THEN NEXT. SFaknr = VFaknr. END. END. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = (IF BAufko.Fak_Knr > 0 THEN BAufko.Fak_Knr ELSE BAufko.Knr) NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = (IF BAufko.Fak_Knr > 0 THEN BAufko.Fak_Knr ELSE BAufko.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. iBesr = FDebst.BESR_Art. 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. END. F_Seite = VSeite. F_Faknr = SFaknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. FIND Femeld NO-LOCK USE-INDEX Femeld-k1 WHERE Femeld.Sprcd = LVSprcd AND Femeld.FeNr = 1100 NO-ERROR. IF NOT AVAILABLE Femeld THEN DO: FIND Femeld NO-LOCK USE-INDEX Femeld-k1 WHERE Femeld.Sprcd = 1 AND Femeld.FeNr = 1100 NO-ERROR. END. IF AVAILABLE Femeld AND Femeld.FeText <> '' THEN cWochentag = Femeld.FeText. VZeile = ''. { putstream.i BLiDruck.Listkzz }. IF BAufko.Adresse[05] <> '' THEN DO: { putstream.i 1 } DO ix = 1 TO 5: SUBSTRING(VZeile,060) = BAufko.Adresse[ix]. IF ix = 5 THEN DO: { putstreamf.i "1" }. END. ELSE DO: { putstream.i "1" }. END. END. END. ELSE DO: DO ix = 6 TO 11: SUBSTRING(VZeile,060) = Adresse.Anschrift[ix]. IF ix = 11 THEN DO: { putstreamf.i "1" }. END. ELSE DO: { putstream.i "1" }. END. END. END. { putstream.i "2" } SUBSTRING(VZeile,001) = BDrucker.Dru12cpi + BDrucker.DruFettb + TRIM(SUBSTRING(FormText[02],01,20)) + STRING(SFaknr,"z999999") + " /" + STRING(VSeite,"zz9") + BDrucker.DruFont[06]. IF VSeite = 1 THEN DO: { putstreamf.i "1" } END. ELSE DO: { putstreamf.i "2" } END. DO WHILE VSeite = 1. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20)) + " " + BSteuer.MWST_Nr. { putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20)) + " " + STRING(BAufko.Aufnr,'999999'). { putstream.i "2" } RUN ABLADEVORSCHRIFT. RUN VERSANDART. RUN TOURENPLAN. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[08],01,20)) + ' ' + STRING(BAufko.Knr,"999999") + ' / ' + XTelnr. SUBSTRING(VZeile,060) = TRIM (SUBSTRING(FormText[07],01,20)) + ' ' + STRING(FDatum,"99.99.9999"). { putstream.i "2" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[22],01,20)) + " " + BAufko.U_Ref. SUBSTRING(VZeile,060) = TRIM(SUBSTRING(FormText[08],21,20)) + STRING(BAufko.Gewicht,"zzz,zz9.999 Kg"). { putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20)) + " " + BAufko.I_Best. SUBSTRING(VZeile,060) = TRIM(SUBSTRING(FormText[17],41,20)) + " " + XTour + ' ' + BAufko.Tour_Nr2. { putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + ENTRY(WEEKDAY(BAufko.Auf_Datum), cWochentag, ',') + ", " + STRING(BAufko.Auf_Datum,"99.99.9999"). SUBSTRING(VZeile,060) = TRIM(BDrucker.DruFettb) + XAblade + TRIM(BDrucker.DruFette). { putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[09],21,20)) + " " + ENTRY(WEEKDAY(BAufko.Lief_Datum), cWochentag, ',') + ", " + STRING(BAufko.Lief_Datum,"99.99.9999"). SUBSTRING(VZeile,060) = TRIM(SUBSTRING(FormText[09],01,20)) + " " + XVersand. { putstream.i "1" } LEAVE. END. IF LiKopf THEN DO: DYNAMIC-FUNCTION('schreibenUeberschrift':U, LiPos, FoBreite, TiHoehe) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { putstreamf.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. { putstreamf.i "2" } END. ELSE DO: { putstream.i "1" } END. IF VSeite > 1 AND FUeber = TRUE THEN DO: SUBSTRING(VZeile,009) = TRIM(SUBSTRING(FormText[09],41,20)). SUBSTRING(VZeile,086) = STRING(VFak_Betr,"->>,>>9.99"). { putstreamf.i "2" } END. 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. FLagOrt = FALSE. LiPos = 200. FoBreite = 1985. TiHoehe = 120. VKopfArt = 'LIEFERSCHEIN_KOPF'. RUN VALUE(VKopfArt). FOR EACH TAufze NO-LOCK BY TAufze.Aufnr BY TAufze.Sort1 BY TAufze.Sort2 BY TAufze.Sort3 BY TAufze.Artnr BY TAufze.Inhalt BY TAufze.Jahr BY TAufze.Pos : IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK. RUN ARTIKELZEILE_LIEFERSCHEIN. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. DYNAMIC-FUNCTION('schreibenLinie':U, LiPos, FoBreite) NO-ERROR. { putstream.i "1" } LiKopf = FALSE. RUN SCHLUSS_TEXT. RUN KOPF_MUTATION. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEINWO C-Win PROCEDURE LIEFERSCHEINWO : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN LIEFERSCHEIN. /* VSeite = 0. */ /* VFak_Betr = 0. */ /* LiKopf = TRUE. */ /* FPreis = FALSE. */ /* FBetrag = FALSE. */ /* FRabatt = FALSE. */ /* FSamm = FALSE. */ /* FLagOrt = FALSE. */ /* VKopfArt = 'LIEFERSCHEIN_KOPF'. */ /* */ /* RUN VALUE(VKopfArt). */ /* */ /* FOR EACH TAufze NO-LOCK */ /* BY TAufze.Aufnr */ /* BY TAufze.Sort1 */ /* BY TAufze.Sort2 */ /* BY TAufze.Sort3 */ /* BY TAufze.Artnr */ /* BY TAufze.Inhalt */ /* BY TAufze.Jahr */ /* BY TAufze.Pos : */ /* */ /* IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO: */ /* RUN VALUE(VKopfArt). */ /* END. */ /* */ /* FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK. */ /* */ /* RUN ARTIKELZEILE_LIEFERSCHEIN. */ /* */ /* VFak_Betr = VFak_Betr + Aufze.Net_Betr. */ /* END. */ /* */ /* DYNAMIC-FUNCTION('schreibenLinie':U, 200, 1985) NO-ERROR. */ /* { putstream.i "1" } */ /* */ /* LiKopf = FALSE. */ /* */ /* RUN GEBINDE_SALDO. */ /* RUN GEBINDE_LIEFERUNG. */ /* RUN GEBINDE_RUECKNAHME_TABELLE. */ /* RUN SCHLUSS_TEXT. */ /* RUN KOPF_MUTATION. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN_KOPF C-Win PROCEDURE LIEFERSCHEIN_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cWochentag AS CHARACTER NO-UNDO INIT 'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag'. RUN NEUE_SEITE. IF VSeite = 1 THEN DO: FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. 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. END. F_Seite = VSeite. F_Faknr = BAufko.Faknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. FIND Femeld NO-LOCK USE-INDEX Femeld-k1 WHERE Femeld.Sprcd = LVSprcd AND Femeld.FeNr = 1100 NO-ERROR. IF NOT AVAILABLE Femeld THEN DO: FIND Femeld NO-LOCK USE-INDEX Femeld-k1 WHERE Femeld.Sprcd = 1 AND Femeld.FeNr = 1100 NO-ERROR. END. IF AVAILABLE Femeld AND Femeld.FeText <> '' THEN cWochentag = Femeld.FeText. VZeile = ''. { putstream.i BLiDruck.Listkzz }. IF BAufko.Adresse[05] <> '' THEN DO: { putstream.i "1" } DO ix = 1 TO 5: SUBSTRING(VZeile,060) = BAufko.Adresse[ix]. IF ix = 5 THEN DO: { putstreamf.i "1" }. END. ELSE DO: { putstream.i "1" }. END. END. END. ELSE DO: DO ix = 6 TO 11: SUBSTRING(VZeile,060) = Adresse.Anschrift[ix]. IF ix = 11 THEN DO: { putstreamf.i "1" }. END. ELSE DO: { putstream.i "1" }. END. END. END. { putstream.i "2" } SUBSTRING(VZeile,001) = CHR(27) + '(s11H' + BDrucker.DruFettb + TRIM(SUBSTRING(FormText[02],01,20)) + STRING(BAufko.Aufnr,"z999999") + " /" + STRING(VSeite,"zz9") + InitCPI. { putstreamf.i "1" } SUBSTRING(VZeile,001) = CHR(27) + '(s16H' + TRIM(SUBSTRING(FormText[18],01,20)) + " " + BSteuer.MWST_Nr + InitCPI. { putstream.i "2" } DO WHILE VSeite = 1. RUN ABLADEVORSCHRIFT. RUN VERSANDART. RUN TOURENPLAN. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[08],01,20)) + ' ' + STRING(BAufko.Knr,"999999") + ' / ' + XTelnr. SUBSTRING(VZeile,060) = TRIM (SUBSTRING(FormText[07],01,20)) + ' ' + STRING(FDatum,"99.99.9999"). { putstream.i "2" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[22],01,20)) + " " + BAufko.U_Ref. SUBSTRING(VZeile,060) = TRIM(SUBSTRING(FormText[08],21,20)) + STRING(BAufko.Gewicht,"zzz,zz9.999 Kg"). { putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[09],21,20)) + " " + ENTRY(WEEKDAY(BAufko.Lief_Datum), cWochentag, ',') + ", " + STRING(BAufko.Lief_Datum,"99.99.9999"). SUBSTRING(VZeile,060) = TRIM(SUBSTRING(FormText[09],01,20)) + " " + XVersand. { putstream.i "1" } LEAVE. END. IF LiKopf THEN DO: DYNAMIC-FUNCTION('schreibenUeberschrift':U, LiPos, FoBreite, TiHoehe) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { putstreamf.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. StBreite = LENGTH(VZeile). { putstreamf.i "2" } END. ELSE DO: { putstream.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LSFA C-Win PROCEDURE LSFA : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN LIEFERSCHEIN. 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 BAufko.WPfl[ix] = 0 THEN NEXT. VWpfl[ix] = BAufko.Wpfl[ix]. VWust[ix] = BAufko.Wust[ix]. Zuszz = Zuszz + 1. END. IF Zuszz > 0 THEN Zuszz = 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 <= BAufko.Kond_Datum NO-LOCK. SUBSTRING(VZeile,040) = MWSTAns.Bez. SUBSTRING(VZeile,075) = STRING(VWpfl[ix],"->>,>>9.99"). SUBSTRING(VZeile,086) = STRING(VWust[ix],"->>,>>9.99"). SUBSTRING(VZeile,097) = STRING(ix ,"z9"). { putstream.i "1" } VFak_Betr = VFak_Betr + VWust[ix]. END. Rundbetr = VFak_Betr. Rundcode = 1. RUN runden.p. VFak_Betr = Rundbetr. DYNAMIC-FUNCTION('schreibenLinie':U, 200, 2080) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,009) = TRIM(FormText[16]). SUBSTRING(VZeile,086) = STRING(VFak_Betr,"->>,>>9.99") + ' ' + FDebst.Frw. { putstreamf.i "1" } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER_EXCEL C-Win PROCEDURE MEHRWERTSTEUER_EXCEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VWpfl = 0. VWust = 0. DO ix = 1 TO 11: IF BAufko.WPfl[ix] = 0 THEN NEXT. VWpfl[ix] = BAufko.Wpfl[ix]. VWust[ix] = BAufko.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 <= BAufko.Kond_Datum NO-LOCK. PUT CONTROL '££££' '£' MWSTAns.Bez '££££££' STRING(VWpfl[ix],"->>,>>9.99") '£' STRING(VWust[ix],"->>,>>9.99") '£' STRING(ix ,"z9") CHR(10). VFak_Betr = VFak_Betr + VWust[ix]. END. Rundbetr = VFak_Betr. Rundcode = 1. RUN runden.p. VFak_Betr = Rundbetr. PUT CONTROL CHR(10). PUT CONTROL '££'. CASE LVSprcd: WHEN 1 THEN PUT CONTROL 'Fakturatotal'. OTHERWISE PUT CONTROL 'Invoice total'. END. PUT CONTROL '££££££££££' STRING(VFak_Betr,"->>,>>9.99") + ' ' + FDebst.Frw CHR(10). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER_KASSE C-Win PROCEDURE MEHRWERTSTEUER_KASSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { putstream.i "1" } VWpfl = 0. VWust = 0. DO ix = 1 TO 11: IF BAufko.WPfl[ix] = 0 THEN NEXT. VWpfl[ix] = BAufko.Wpfl[ix]. VWust[ix] = BAufko.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 <= BAufko.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"). { putstream.i "1" } VFak_Betr = VFak_Betr + VWust[ix]. END. Rundbetr = VFak_Betr. Rundcode = 1. RUN runden.p. VFak_Betr = Rundbetr. SUBSTRING(VZeile,001) = TRIM(FormText[16]). SUBSTRING(VZeile,029) = STRING(VFak_Betr,"->>>9.99"). { 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: ------------------------------------------------------------------------------*/ DEFINE VARIABLE A AS INTEGER NO-UNDO. DEFINE VARIABLE B AS INTEGER NO-UNDO. DO WHILE VSeite > 0: IF fBesr THEN LEAVE. 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 PROFORMA C-Win PROCEDURE PROFORMA : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VSeite = 0. VFak_Betr = 0. LiKopf = TRUE. FPreis = TRUE. FBetrag = TRUE. FRabatt = TRUE. FUeber = TRUE. FSamm = FALSE. FLagOrt = FALSE. LiPos = 200. FoBreite = 2080. TiHoehe = 120. VKopfArt = 'PROFORMA_KOPF'. OCRB = BDrucker.DruFont [03]. Schacht3 = BDrucker.DruSchacht[03]. RUN VALUE(VKopfArt). FOR EACH TAufze NO-LOCK BY TAufze.Aufnr BY TAufze.Sort1 BY TAufze.Sort2 BY TAufze.Sort3 BY TAufze.Artnr BY TAufze.Inhalt BY TAufze.Jahr BY TAufze.Pos : IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK. RUN ARTIKELZEILE_LIEFERFAK. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. DYNAMIC-FUNCTION('schreibenLinie':U, LiPos, FoBreite) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,009) = TRIM(SUBSTRING(FormText[10],41,20)). SUBSTRING(VZeile,086) = STRING(VFak_Betr,"->>,>>9.99"). { putstreamf.i "1" } LiKopf = FALSE. fZeiDruck = FALSE. RUN SUMMENRABATTE. { putstream.i "1" } RUN GEBINDE_SALDO. RUN GEBINDE_ABRECHNUNG. RUN MEHRWERTSTEUER. { putstream.i "1" } RUN ZAHLUNGSKONDITION ( BAufko.Sk_Ber ). RUN SCHLUSS_TEXT. DYNAMIC-FUNCTION('schreibenFusszeile':U) NO-ERROR. RUN KOPF_MUTATION. VesrKnr = BAufko.Fak_Knr. VesrFnr = BAufko.Faknr. Rundbetr = 0. VBesrArt = 'VESR_DRUCK' + STRING(VBesr,"99"). IF VBesr > 0 THEN RUN VALUE(VBesrArt). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PROFORMA_KOPF C-Win PROCEDURE PROFORMA_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cWochentag AS CHARACTER NO-UNDO INIT 'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag'. RUN NEUE_SEITE. IF VSeite = 1 THEN DO: IF SFaknr = 0 THEN DO: SFaknr = BAufko.Faknr. REPEAT WHILE SFaknr = 0 TRANSACTION: RUN steunr.p ( INPUT 2, OUTPUT VFaknr ). IF RETURN-VALUE <> '' THEN NEXT. SFaknr = VFaknr. END. END. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = (IF BAufko.Fak_Knr > 0 THEN BAufko.Fak_Knr ELSE BAufko.Knr) NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = (IF BAufko.Fak_Knr > 0 THEN BAufko.Fak_Knr ELSE BAufko.Knr) NO-LOCK NO-ERROR. iFirma = FDebst.Ku_Grp. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. iBesr = FDebst.BESR_Art. 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. END. F_Seite = VSeite. F_Faknr = SFaknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. FIND Femeld NO-LOCK USE-INDEX Femeld-k1 WHERE Femeld.Sprcd = LVSprcd AND Femeld.FeNr = 1100 NO-ERROR. IF NOT AVAILABLE Femeld THEN DO: FIND Femeld NO-LOCK USE-INDEX Femeld-k1 WHERE Femeld.Sprcd = 1 AND Femeld.FeNr = 1100 NO-ERROR. END. IF AVAILABLE Femeld AND Femeld.FeText <> '' THEN cWochentag = Femeld.FeText. VZeile = ''. { putstream.i BLiDruck.Listkzz }. IF BAufko.Adresse[05] <> '' THEN DO: { putstream.i "1" } DO ix = 1 TO 5: SUBSTRING(VZeile,060) = BAufko.Adresse[ix]. IF ix = 5 THEN DO: { putstreamf.i "1" }. END. ELSE DO: { putstream.i "1" }. END. END. END. ELSE DO: DO ix = 6 TO 11: SUBSTRING(VZeile,060) = Adresse.Anschrift[ix]. IF ix = 11 THEN DO: { putstreamf.i "1" }. END. ELSE DO: { putstream.i "1" }. END. END. END. { putstream.i "2" } SUBSTRING(VZeile,001) = CHR(27) + '(s11H' + TRIM(SUBSTRING(FormText[02],01,20)) + STRING(SFaknr,"z999999") + " /" + STRING(VSeite,"zz9") + CHR(27) + '(s14H'. IF VSeite = 1 THEN DO: { putstreamf.i "1" } END. ELSE DO: { putstreamf.i "2" } END. DO WHILE VSeite = 1. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20)) + " " + BSteuer.MWST_Nr. VZeile = CHR(27) + '(s16H' + VZeile + CHR(27) + '(s14H'. { putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20)) + " " + STRING(BAufko.Aufnr,'999999'). VZeile = CHR(27) + '(s16H' + VZeile + CHR(27) + '(s14H'. { putstream.i "2" } SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[08],01,20)) + ' ' + STRING(BAufko.Knr,"999999") + ' / ' + XTelnr. SUBSTRING(VZeile,060) = TRIM (SUBSTRING(FormText[07],01,20)) + ' ' + STRING(FDatum,"99.99.9999"). { putstream.i "2" } LEAVE. END. IF LiKopf THEN DO: DYNAMIC-FUNCTION('schreibenUeberschrift':U, LiPos, FoBreite, TiHoehe) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. DO WHILE INDEX(VZeile, '£') > 0: SUBSTRING(VZeile,INDEX(VZeile, '£')) = FDebst.Frw. END. VZeile = CHR(27) + '(s13H' + VZeile + CHR(27) + '(s14H'. { putstreamf.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. DO WHILE INDEX(VZeile, '£') > 0: SUBSTRING(VZeile,INDEX(VZeile, '£')) = FDebst.Frw. END. VZeile = CHR(27) + '(s13H' + VZeile + CHR(27) + '(s14H'. { putstreamf.i "2" } END. ELSE DO: { putstream.i "1" } END. IF VSeite > 1 AND FUeber = TRUE THEN DO: SUBSTRING(VZeile,009) = TRIM(SUBSTRING(FormText[09],41,20)). SUBSTRING(VZeile,086) = STRING(VFak_Betr,"->>,>>9.99"). { putstreamf.i "2" } END. 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 */ /* */ /*---------------------------------------------------------------------------*/ DEFINE INPUT-OUTPUT PARAMETER PZBetrag AS CHARACTER FORMAT "x(13)". DEFINE INPUT-OUTPUT PARAMETER PZReferenz AS CHARACTER FORMAT "x(27)". DEFINE INPUT-OUTPUT PARAMETER PZTNummer AS CHARACTER FORMAT "x(09)". DEFINE OUTPUT PARAMETER VSZeile AS CHARACTER FORMAT "x(58)". DEFINE VARIABLE l1 AS INTEGER. DEFINE VARIABLE l2 AS INTEGER. DEFINE VARIABLE l3 AS INTEGER. DEFINE VARIABLE PZ AS INTEGER. DEFINE VARIABLE x1 AS INTEGER. DEFINE VARIABLE x2 AS INTEGER. DEFINE VARIABLE x3 AS INTEGER. DEFINE VARIABLE VMOD10 AS CHARACTER 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 RETOUREN C-Win PROCEDURE RETOUREN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE RFakArt AS INTEGER NO-UNDO. VSeite = 0. VFak_Betr = 0. LiKopf = TRUE. FPreis = FALSE. FBetrag = FALSE. FRabatt = FALSE. FSamm = FALSE. FLagOrt = FALSE. LiPos = 200. FoBreite = 1985. TiHoehe = 070. VKopfArt = 'RETOUREN_KOPF'. RUN VALUE(VKopfArt). FOR EACH TAufze NO-LOCK BY TAufze.Aufnr BY TAufze.Sort1 BY TAufze.Sort2 BY TAufze.Sort3 BY TAufze.Artnr BY TAufze.Inhalt BY TAufze.Jahr BY TAufze.Pos : IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK. RUN ARTIKELZEILE_RETOUREN. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. DYNAMIC-FUNCTION('schreibenLinie':U, LiPos, FoBreite) NO-ERROR. { putstream.i "1" } LiKopf = FALSE. /* RUN GEBINDE_SALDO. */ /* RUN GEBINDE_LIEFERUNG. */ RFakArt = FakArt. FakArt = 89. RUN GEBINDE_RUECKNAHME_TABELLE. FakArt = RFakArt. /* RUN SCHLUSS_TEXT. */ /* RUN KOPF_MUTATION. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETOUREN_KOPF C-Win PROCEDURE RETOUREN_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cWochentag AS CHARACTER NO-UNDO INIT 'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag'. RUN NEUE_SEITE. IF VSeite = 1 THEN DO: FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. 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. END. F_Seite = VSeite. F_Faknr = BAufko.Faknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. FIND Femeld NO-LOCK USE-INDEX Femeld-k1 WHERE Femeld.Sprcd = LVSprcd AND Femeld.FeNr = 1100 NO-ERROR. IF NOT AVAILABLE Femeld THEN DO: FIND Femeld NO-LOCK USE-INDEX Femeld-k1 WHERE Femeld.Sprcd = 1 AND Femeld.FeNr = 1100 NO-ERROR. END. IF AVAILABLE Femeld AND Femeld.FeText <> '' THEN cWochentag = Femeld.FeText. VZeile = ''. { putstream.i BLiDruck.Listkzz }. IF BAufko.Adresse[05] <> '' THEN DO: { putstream.i "1" } DO ix = 1 TO 5: SUBSTRING(VZeile,060) = BAufko.Adresse[ix]. IF ix = 5 THEN DO: { putstreamf.i "1" }. END. ELSE DO: { putstream.i "1" }. END. END. END. ELSE DO: DO ix = 6 TO 11: SUBSTRING(VZeile,060) = Adresse.Anschrift[ix]. IF ix = 11 THEN DO: { putstreamf.i "1" }. END. ELSE DO: { putstream.i "1" }. END. END. END. { putstream.i "2" } SUBSTRING(VZeile,001) = BDrucker.Dru12cpi + BDrucker.DruFettb + TRIM(SUBSTRING(FormText[02],01,30)) + STRING(BAufko.Aufnr,"z999999") + " /" + STRING(VSeite,"zz9") + BDrucker.DruFont[06]. { putstream.i "2" } DO WHILE VSeite = 1. RUN ABLADEVORSCHRIFT. RUN VERSANDART. RUN TOURENPLAN. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[08],01,20)) + ' ' + STRING(BAufko.Knr,"999999") + ' / ' + XTelnr. SUBSTRING(VZeile,060) = TRIM (SUBSTRING(FormText[07],01,20)) + ' ' + STRING(FDatum,"99.99.9999"). { putstream.i "2" } /* SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[22],01,20)) */ /* + " " */ /* + BAufko.U_Ref. */ /* SUBSTRING(VZeile,060) = TRIM(SUBSTRING(FormText[08],21,20)) */ /* + STRING(BAufko.Gewicht,"zzz,zz9.999 Kg"). */ /* { putstream.i "1" } */ /* */ /* SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20)) */ /* + " " */ /* + BAufko.I_Best. */ /* SUBSTRING(VZeile,060) = TRIM(SUBSTRING(FormText[18],21,20)) */ /* + " " */ /* + XTour + ' ' + BAufko.Tour_Nr2. */ /* { putstream.i "1" } */ /* */ /* SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20)) */ /* + " " */ /* + ENTRY(WEEKDAY(BAufko.Auf_Datum), cWochentag, ',') */ /* + ", " */ /* + STRING(BAufko.Auf_Datum,"99.99.9999"). */ /* SUBSTRING(VZeile,060) = TRIM(BDrucker.DruFettb) */ /* + XAblade */ /* + TRIM(BDrucker.DruFette). */ /* { putstream.i "1" } */ /* */ /* SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[09],21,20)) */ /* + " " */ /* + ENTRY(WEEKDAY(BAufko.Lief_Datum), cWochentag, ',') */ /* + ", " */ /* + STRING(BAufko.Lief_Datum,"99.99.9999"). */ /* SUBSTRING(VZeile,060) = TRIM(SUBSTRING(FormText[09],01,20)) */ /* + " " */ /* + XVersand. */ /* { putstream.i "1" } */ LEAVE. END. IF LiKopf THEN DO: DYNAMIC-FUNCTION('schreibenUeberschrift':U, LiPos, FoBreite, TiHoehe) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { putstreamf.i "2" } END. ELSE DO: { putstream.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUESTSCHEIN C-Win PROCEDURE RUESTSCHEIN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE Menge AS INTEGER NO-UNDO. DEFINE VARIABLE Gebinde AS INTEGER NO-UNDO. VSeite = 0. VFak_Betr = 0. Menge = 0. Gebinde = 0. LiKopf = TRUE. FPreis = FALSE. FBetrag = FALSE. FRabatt = FALSE. FSamm = FALSE. FLagOrt = TRUE . LiPos = 140. FoBreite = 2120. TiHoehe = 120. VKopfArt = 'RUESTSCHEIN_KOPF'. RUN VALUE(VKopfArt). FOR EACH TAufze NO-LOCK BY TAufze.Aufnr BY TAufze.LagOrt BY TAufze.Sort1 BY TAufze.Sort2 BY TAufze.Sort3 BY TAufze.Artnr BY TAufze.Inhalt BY TAufze.Jahr BY TAufze.Pos : IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK. RUN ARTIKELZEILE_RUESTSCHEIN. VFak_Betr = VFak_Betr + Aufze.Net_Betr. Gebinde = Gebinde + Aufze.VGeb_Me . Menge = Menge + Aufze.MGel . END. DYNAMIC-FUNCTION('schreibenLinie':U, LiPos, FoBreite) NO-ERROR. { putstream.i "2" } SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[22],21,20)). SUBSTRING(VZeile,070) = STRING(Menge ,"->>>>9"). SUBSTRING(VZeile,090) = STRING(BAufko.Gewicht,"->>>>>9.999"). { putstreamf.i "1" } SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[22],41,20)). SUBSTRING(VZeile,070) = STRING(Gebinde ,"->>>>9"). { putstreamf.i "1" } DEFINE VARIABLE aa AS INTEGER NO-UNDO. aa = FakArt. FakArt = 60. RUN SCHLUSS_TEXT. FakArt = aa. RUN KOPF_MUTATION. LiKopf = FALSE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUESTSCHEIN_KOPF C-Win PROCEDURE RUESTSCHEIN_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cWochentag AS CHARACTER NO-UNDO INIT 'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag'. RUN NEUE_SEITE. IF VSeite = 1 THEN DO: FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. 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. END. F_Seite = VSeite. F_Faknr = BAufko.Faknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. FIND Femeld NO-LOCK USE-INDEX Femeld-k1 WHERE Femeld.Sprcd = LVSprcd AND Femeld.FeNr = 1100 NO-ERROR. IF NOT AVAILABLE Femeld THEN DO: FIND Femeld NO-LOCK USE-INDEX Femeld-k1 WHERE Femeld.Sprcd = 1 AND Femeld.FeNr = 1100 NO-ERROR. END. IF AVAILABLE Femeld AND Femeld.FeText <> '' THEN cWochentag = Femeld.FeText. VZeile = ''. { putstream.i BLiDruck.Listkzz }. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR. IF BAufko.Adresse[05] <> '' THEN DO: { putstream.i 1 } DO ix = 1 TO 5: SUBSTRING(VZeile,060) = BAufko.Adresse[ix]. IF ix = 5 THEN DO: { putstreamf.i "1" }. END. ELSE DO: { putstream.i "1" }. END. END. END. ELSE DO: DO ix = 6 TO 11: SUBSTRING(VZeile,060) = Adresse.Anschrift[ix]. IF ix = 11 THEN DO: { putstreamf.i "1" }. END. ELSE DO: { putstream.i "1" }. END. END. END. { putstream.i "3" } SUBSTRING(VZeile,001) = BDrucker.Dru10cpi + BDrucker.DruFettb + TRIM(SUBSTRING(FormText[02],01,20)) + STRING(BAufko.Aufnr,"z999999") + " /" + STRING(VSeite,"zz9") + BDrucker.DruFont[06]. { putstreamf.i "2" } DO WHILE VSeite = 1. RUN ABLADEVORSCHRIFT. RUN VERSANDART. RUN LIEFERBEDINGUNG. RUN WIRTESONNTAG. RUN TOURENPLAN. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[08],01,20)) + ' ' + STRING(BAufko.Knr,"999999") + ' / ' + XTelnr. SUBSTRING(VZeile,060) = TRIM (SUBSTRING(FormText[07],01,20)) + ' ' + STRING(FDatum,"99.99.9999"). { putstream.i "2" } SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[07],21,20)) + " " + BAufko.I_Best. SUBSTRING(VZeile,060) = TRIM (SUBSTRING(FormText[22],01,20)) + " " + BAufko.U_Ref. { putstream.i "1" } SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[07],41,20)) + " " + ENTRY(WEEKDAY(BAufko.Auf_Datum), cWochentag, ',') + ", " + STRING(BAufko.Auf_Datum,"99.99.9999"). SUBSTRING(VZeile,060) = TRIM (SUBSTRING(FormText[19],21,20)) + " " + XWirtesonntag + ' ' + BAufko.Wirt_So_Text. { putstream.i "1" } SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[09],21,20)) + " " + ENTRY(WEEKDAY(BAufko.Lief_Datum), cWochentag, ',') + ", " + STRING(BAufko.Lief_Datum,"99.99.9999"). SUBSTRING(VZeile,060) = TRIM (SUBSTRING(FormText[19],01,20)) + " " + XLieferbed. { putstreamf.i "1" } SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[19],41,20)) + " " + XTour + ' ' + BAufko.Tour_Nr2. SUBSTRING(VZeile,060) = TRIM(BDrucker.DruFettb) + XAblade + TRIM(BDrucker.DruFette). { putstream.i "2" } LEAVE. END. IF LiKopf THEN DO: DYNAMIC-FUNCTION('schreibenUeberschrift':U, LiPos, FoBreite, TiHoehe) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { putstreamf.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. StBreite = LENGTH(VZeile). { putstreamf.i "2" } END. ELSE DO: { putstream.i "2" } END. 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 = BAufko.Fak_Knr AND SammFak.Samm_Nr = BAufko.Samm_Nr NO-ERROR. IF AVAILABLE SammFak THEN RETURN. SFaknr = 0. FOR EACH Aufko USE-INDEX Aufko-k5 WHERE Aufko.Firma = BAufko.Firma AND Aufko.Fak_Art = BAufko.Fak_Art AND Aufko.Samm_Nr = BAufko.Samm_Nr : /* IF Aufko.Auf_Sta < 4 THEN DO: Aufko.Faknr = 0. NEXT. END. */ IF SFaknr = 0 THEN SFaknr = Aufko.Faknr. CREATE SammFak. ASSIGN SammFak.Knr = Aufko.Fak_Knr SammFak.LS_Knr = Aufko.Knr SammFak.Aufnr = Aufko.Aufnr SammFak.Samm_Nr = Aufko.Samm_Nr SammFak.RID = RECID(Aufko). 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: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cWochentag AS CHARACTER NO-UNDO INIT 'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag'. Zuszz = 10. LiKopf = TRUE. FPreis = TRUE. FBetrag = TRUE. FRabatt = TRUE. FUeber = FALSE. FSamm = TRUE. FLagOrt = FALSE. LiPos = 200. FoBreite = 2080. TiHoehe = 70. OCRB = BDrucker.DruFont [03]. Schacht3 = BDrucker.DruSchacht[03]. VKopfArt = 'SAMMFAK_KOPF'. IF (BLiDruck.Listtzz - VLine - Zuszz ) < BLiDruck.Listfzz THEN DO: TiDruck = TRUE. END. IF TiDruck THEN DO: RUN VALUE(VKopfArt). END. ELSE DO: { putstream.i "2" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20)) + " " + STRING(BAufko.Aufnr,"999999"). { putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + STRING(BAufko.Auf_Datum,"99.99.9999"). { putstream.i "1" } DYNAMIC-FUNCTION('schreibenUeberschrift':U, LiPos, FoBreite, TiHoehe) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { putstreamf.i "2" } END. /* LiefAdr = ''. */ /* IF BAufko.Knr <> BAufko.Fak_Knr THEN DO: */ /* FIND BAdresse USE-INDEX Adresse-k1 */ /* WHERE BAdresse.Firma = AdFirma */ /* AND BAdresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. */ /* LiefAdr = BAdresse.Anzeig_Br. */ /* END. */ IF LiefAdr <> '' THEN DO: VZeile = LiefAdr. { putstreamf.i "1" } END. FOR EACH TAufze NO-LOCK BY TAufze.Aufnr BY TAufze.Sort1 BY TAufze.Sort2 BY TAufze.Sort3 BY TAufze.Artnr BY TAufze.Inhalt BY TAufze.Jahr BY TAufze.Pos : IF (BLiDruck.Listtzz - VLine - 2) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. FIND Aufze WHERE RECID(Aufze) = TAufze.Zeile NO-LOCK. RUN ARTIKELZEILE_LIEFERFAK. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. DYNAMIC-FUNCTION('schreibenLinie':U, LiPos, FoBreite) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,009) = TRIM(SUBSTRING(FormText[10],41,20)). SUBSTRING(VZeile,086) = STRING(VFak_Betr,"->>,>>9.99"). { putstreamf.i "1" } LiKopf = FALSE. RUN SUMMENRABATTE. { putstream.i "1" } RUN GEBINDE_SALDO. RUN GEBINDE_ABRECHNUNG. DO ix = 1 TO 12: GTWpfl[ix] = GTWpfl[ix] + BAufko.Wpfl[ix]. GTWust[ix] = GTWust[ix] + BAufko.Wust[ix]. END. GTFak_Betr = GTFak_Betr + VFak_Betr. GTSk_Ber = GTSk_Ber + BAufko.Sk_Ber. RUN KOPF_MUTATION. FIND Aufko WHERE RECID(Aufko) = RECID(BAufko) NO-LOCK. TiDruck = FALSE. IF FLetzt THEN RUN SAMMFAK_ENDE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_ENDE C-Win PROCEDURE SAMMFAK_ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DYNAMIC-FUNCTION('schreibenLinie':U, Lipos, FoBreite) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,009) = TRIM(SUBSTRING(FormText[14],01,20)). SUBSTRING(VZeile,086) = STRING(GTFak_Betr,"->>,>>9.99"). { putstreamf.i "2" } 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 (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz 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 <= BAufko.Kond_Datum NO-LOCK. SUBSTRING(VZeile,040) = MWSTAns.Bez. SUBSTRING(VZeile,073) = STRING(GTWpfl[ix],"->>,>>9.99"). SUBSTRING(VZeile,086) = STRING(GTWust[ix],"->>,>>9.99"). SUBSTRING(VZeile,097) = STRING(ix ,"z9"). { putstream.i "1" } END. Rundbetr = GTFak_Betr. Rundcode = 1. RUN runden.p. GTFak_Betr = Rundbetr. DYNAMIC-FUNCTION('schreibenLinie':U, 200, 2080) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,009) = TRIM(FormText[16]). SUBSTRING(VZeile,086) = STRING(GTFak_Betr,"->>,>>9.99"). { putstreamf.i "1" } SUBSTRING(VZeile,086) = '=========='. { putstreamf.i "2" } FUeber = FALSE. RUN ZAHLUNGSKONDITION ( GTSk_Ber ). IF VBesr = 0 THEN DO: RUN UMSATZVERTEILUNG. RUN SCHLUSS_TEXT. END. Rundbetr = GTFak_Betr. VesrKnr = BAufko.Fak_Knr. VesrFnr = BAufko.Faknr. VBesrArt = 'VESR_DRUCK' + STRING(VBesr,"99"). IF Kondi.Skonto[01] <> 0 THEN Rundbetr = 0. IF VBesr > 0 THEN RUN VALUE(VBesrArt). 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: REPEAT WHILE SFaknr = 0 TRANSACTION: RUN steunr.p ( INPUT 2, OUTPUT VFaknr ). IF RETURN-VALUE <> '' THEN NEXT. SFaknr = VFaknr. END. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = (IF BAufko.Fak_Knr > 0 THEN BAufko.Fak_Knr ELSE BAufko.Knr) NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = (IF BAufko.Fak_Knr > 0 THEN BAufko.Fak_Knr ELSE BAufko.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. END. F_Seite = VSeite. F_Faknr = SFaknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. VZeile = ''. { putstream.i BLiDruck.Listkzz }. DO ix = 6 TO 11: SUBSTRING(VZeile,060) = Adresse.Anschrift[ix]. IF ix = 11 THEN DO: { putstreamf.i "1" }. END. ELSE DO: { putstream.i "1" }. END. END. { putstream.i "1" } SUBSTRING(VZeile,001) = BDrucker.Dru12cpi + BDrucker.DruFettb + TRIM(SUBSTRING(FormText[02],01,20)) + STRING(SFaknr,"z999999") + " /" + STRING(VSeite,"zz9") + BDrucker.DruFont[06]. IF VSeite = 1 THEN DO: { putstreamf.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20)) + " " + BSteuer.MWST_Nr. { putstream.i "1" } SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[08],01,20)) + ' ' + STRING(BAufko.Knr,"999999") + ' / ' + XTelnr. SUBSTRING(VZeile,060) = TRIM (SUBSTRING(FormText[07],01,20)) + ' ' + STRING(FDatum,"99.99.9999"). { putstream.i "2" } END. ELSE DO: { putstreamf.i "2" } END. DO WHILE TiDruck. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20)) + " " + STRING(BAufko.Aufnr,"999999"). { putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + STRING(BAufko.Auf_Datum,"99.99.9999"). { putstream.i "1" } LEAVE. END. IF LiKopf THEN DO: DYNAMIC-FUNCTION('schreibenUeberschrift':U, LiPos, FoBreite, TiHoehe) NO-ERROR. { putstream.i "1" } SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { putstreamf.i "2" } END. ELSE DO: { putstream.i "1" } END. IF VSeite > 1 AND FUeber = TRUE THEN DO: SUBSTRING(VZeile,009) = TRIM(SUBSTRING(FormText[09],41,20)). SUBSTRING(VZeile,086) = STRING(VFak_Betr,"->>,>>9.99"). { putstreamf.i "2" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SCHLUSS_TEXT C-Win PROCEDURE SCHLUSS_TEXT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cTextArt AS CHARACTER NO-UNDO. cTextArt = 'DOK' + STRING(FakArt,'99'). FIND TabTexte USE-INDEX TabTexte-k1 WHERE TabTexte.Firma = GVFirma AND TabTexte.TextArt = cTextArt AND TabTexte.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF NOT AVAILABLE TabTexte THEN RETURN. VTabTexte = TabTexte.Inhalt. Zuszz = NUM-ENTRIES(VTabTexte, CHR(10)). IF Zuszz > 0 THEN Zuszz = Zuszz + 2. IF VBesr = 0 OR VDokArt BEGINS 'LIEFER' THEN DO: IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. END. VZeile = ''. DO ix = 1 TO NUM-ENTRIES(VTabTexte, CHR(10)): VZeile = ENTRY(ix, VTabTexte, CHR(10)). { putstream.i "1" }. END. IF VZeile <> '' THEN DO: { putstream.i "1" }. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SCHLUSS_TEXT_EXCEL C-Win PROCEDURE SCHLUSS_TEXT_EXCEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cTextArt AS CHARACTER NO-UNDO. cTextArt = 'DOK' + STRING(FakArt,'99'). FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1 WHERE TabTexte.Firma = GVFirma AND TabTexte.TextArt = cTextArt AND TabTexte.Sprcd = LVSprcd NO-ERROR. IF NOT AVAILABLE TabTexte THEN RETURN. VTabTexte = TabTexte.Inhalt. IF vTabTexte <> '' THEN PUT CONTROL '£' CHR(10) '£' CHR(10). DO ix = 1 TO NUM-ENTRIES(VTabTexte, CHR(10)): PUT CONTROL '£' ENTRY(ix, VTabTexte, CHR(10)) CHR(10). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUMMENRABATTE C-Win PROCEDURE SUMMENRABATTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE RText AS CHARACTER FORMAT "x(20)" NO-UNDO. DEFINE VARIABLE WText AS CHARACTER 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 AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Gebuehr <> 0 AND AufGKon.Betrag <> 0 NO-LOCK: Zuszz = Zuszz + 1. END. IF Zuszz > 0 THEN Zuszz = Zuszz + 09. 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 AufRabSu USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ NO-LOCK. IF AufRabSu.F_Art = 1 THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufRabSu.F_Wert). SUBSTRING(VZeile,040) = RText + " " + TRabSumm.Bez. SUBSTRING(VZeile,078) = STRING(RabWert,"->>9.99 ") + WText. SUBSTRING(VZeile,086) = STRING(- Rundbetr,"->>,>>9.99"). { putstream.i "1" } i5 = i5 + 1. fZeiDruck = TRUE. 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 AufRabSu USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ NO-LOCK. IF AufRabSu.A_Art = 1 THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufRabSu.A_Wert). SUBSTRING(VZeile,040) = RText + " " + TRabSumm.Bez. SUBSTRING(VZeile,078) = STRING(RabWert,"->>9.99 ") + WText. SUBSTRING(VZeile,086) = STRING(- Rundbetr,"->>,>>9.99"). { putstream.i "1" } i5 = i5 + 1. fZeiDruck = TRUE. 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 AufSpRab USE-INDEX AufSpRab-k1 WHERE AufSpRab.Firma = BAufko.Firma AND AufSpRab.Aufnr = BAufko.Aufnr AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK. IF AufSpRab.Auf_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufSpRab.Auf_Wert). SUBSTRING(VZeile,040) = RText + " " + TRIM(Tabel.Bez1). SUBSTRING(VZeile,078) = STRING(RabWert,"->>9.99 ") + WText. SUBSTRING(VZeile,086) = STRING(- Rundbetr,"->>,>>9.99"). { putstream.i "1" } i5 = i5 + 1. fZeiDruck = TRUE. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,040) = TRIM(SUBSTRING(FormText[14],21,20)). SUBSTRING(VZeile,086) = STRING(VFak_Betr,"->>,>>9.99"). { putstreamf.i "1" } END. /* Recycling-Gebühren ------------------------------------------------ */ i5 = 0. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Gebuehr <> 0 AND AufGKon.Betrag <> 0 NO-LOCK: VFak_Betr = VFak_Betr + AufGKon.Betrag. IF NOT FRabatt THEN NEXT. VWC = AufGKon.MWSt_Cd. SUBSTRING(VZeile,040) = TRIM(SUBSTRING(FormText[11],41,20)). SUBSTRING(VZeile,086) = STRING(AufGKon.Betrag ,"->>,>>9.99"). SUBSTRING(VZeile,097) = STRING(AufGKon.MWSt_Cd ,"z9"). { putstream.i "1" } i5 = i5 + 1. fZeiDruck = TRUE. 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 + AufGKon.Betrag. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,040) = TRIM(SUBSTRING(FormText[14],41,20)). SUBSTRING(VZeile,086) = STRING(VFak_Betr,"->>,>>9.99"). { 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: ------------------------------------------------------------------------------*/ DEFINE VARIABLE RText AS CHARACTER FORMAT "x(20)" NO-UNDO. DEFINE VARIABLE WText AS CHARACTER NO-UNDO. DEFINE VARIABLE 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 AufRabSu USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ NO-LOCK. IF AufRabSu.F_Art = 1 THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufRabSu.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"). { 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 AufRabSu USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ NO-LOCK. IF AufRabSu.A_Art = 1 THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufRabSu.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"). { 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 AufSpRab USE-INDEX AufSpRab-k1 WHERE AufSpRab.Firma = BAufko.Firma AND AufSpRab.Aufnr = BAufko.Aufnr AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK. IF AufSpRab.Auf_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufSpRab.Auf_Wert). SUBSTRING(VZeile,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"). { 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"). { putstreamf.i "1" } xLeer = TRUE. END. /* Recycling-Gebühren ------------------------------------------------ */ i5 = 0. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Gebuehr <> 0 AND AufGKon.Betrag <> 0 NO-LOCK: VFak_Betr = VFak_Betr + AufGKon.Betrag. IF NOT FRabatt THEN NEXT. VWC = AufGKon.MWSt_Cd. FIND GebKonto OF AufGKon 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(AufGKon.Betrag ,"->>>9.99"). SUBSTRING(VZeile,039) = STRING(AufGKon.MWSt_Cd ,"z9"). { 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 + AufGKon.Betrag. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[14],41,20)). SUBSTRING(VZeile,029) = STRING(VFak_Betr,"->>>9.99"). { putstreamf.i "1" } xLeer = TRUE. END. { putstream.i "1" } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOURENPLAN C-Win PROCEDURE TOURENPLAN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ XTour = ''. IF BAufko.Tour_Nr2 <> '' THEN XTour = BAufko.Tour_Nr2. ELSE DO: FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'TOUR1' AND Tabel.CodeC = '' AND Tabel.CodeI = BAufko.Tour_Nr1 AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF AVAILABLE Tabel THEN XTour = Tabel.Bez1. END. 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 VBesr = 0 THEN DO: IF (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. END. IF Ja THEN DO: SUBSTRING(VZeile,009) = TRIM(SUBSTRING(FormText[15],41,20)). { putstreamf.i "1" } END. FOR EACH TUmsGrp WHERE TUmsGrp.Ums_Betr <> 0 NO-LOCK BY TUmsGrp.Ums_Grp : SUBSTRING(VZeile,009) = TUmsGrp.Bez. SUBSTRING(VZeile,040) = FwFRW. SUBSTRING(VZeile,050) = STRING(TUmsGrp.Ums_Betr,"->>>,>>9.99"). IF TUmsGrp.Ums_Recy <> 0 THEN SUBSTRING(VZeile,065) = STRING(TUmsGrp.Ums_Recy,"->>>,>>9.99"). { putstream.i "1" } END. IF Ja THEN DO: { 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 = BAufko.Lief_Bed AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF AVAILABLE Tabel THEN XVersand = Tabel.Bez1. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK C-Win PROCEDURE VESR_DRUCK : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF VBesr = 0 THEN RETURN. /* FIND Kondi USE-INDEX Kondi-k1 * WHERE Kondi.Kond = BAufko.Kond * AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR. * IF AVAILABLE Kondi THEN DO: * IF Kondi.Skonto[01] <> 0 THEN Rundbetr = 0. * END.*/ DEFINE VARIABLE VVESR AS CHARACTER FORMAT "x(90)" EXTENT 25. DEFINE VARIABLE PZBetrag AS CHARACTER FORMAT "x(13)" NO-UNDO. DEFINE VARIABLE PZReferenz AS CHARACTER FORMAT "x(27)" NO-UNDO. DEFINE VARIABLE PZTNummer AS CHARACTER FORMAT "x(09)" NO-UNDO. DEFINE VARIABLE VSZeile AS CHARACTER FORMAT "x(58)" NO-UNDO. DEFINE VARIABLE VZeile AS CHARACTER FORMAT "x(58)" NO-UNDO. DEFINE VARIABLE XArt AS INTEGER NO-UNDO. DEFINE VARIABLE XAnz AS INTEGER NO-UNDO. DEFINE VARIABLE XBetr AS CHARACTER FORMAT "x(20)" NO-UNDO. DEFINE VARIABLE VESR_P AS CHARACTER FORMAT "x(02)" NO-UNDO. DEFINE VARIABLE VESR AS CHARACTER FORMAT "x(02)" NO-UNDO. DEFINE VARIABLE XBetrag AS CHARACTER FORMAT "x(12)" NO-UNDO. DEFINE VARIABLE XCodeC AS CHARACTER NO-UNDO. DEFINE VARIABLE XP AS INTEGER NO-UNDO. DEFINE VARIABLE YP AS INTEGER NO-UNDO. RUN BESR_DATEN ( INPUT FDebst.BESR_Art ). XCodeC = 'BESR' + STRING(VBesr,"99"). 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. 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 Out_Stream TO VALUE(VTempVESR). DO WHILE TRUE: PZBetrag = ''. IF Rundbetr <= 0 THEN DO: PZBetrag = FILL('*', 13). PZReferenz = FILL('*', 27). PZTNummer = FILL('*', 09). XBetrag = FILL('*', 12). END. ELSE DO: PZBetrag = "01". PZBetrag = PZBetrag + STRING((Rundbetr * 100),"9999999999 "). PZReferenz = cBESRBn + STRING(VesrKnr,"999999") + "00" + STRING(VesrFnr,"999999"). PZTNummer = cBESRTn. XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999"). RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. PUT STREAM Out_Stream CONTROL CHR(27) "&l4H". /* Schacht 2 */ PUT STREAM Out_Stream CONTROL CHR(27) "&l1O" /* Querformat */ CHR(27) "(10U" /* CODEPAGE 850 */ CHR(27) "(s4102t0b0p0s12h10V". /* LetterGotic 12cpi */ XP = 980. YP = 610. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = "Raiffeisenbank Flums". SUBSTRING(VZeile,030) = "Raiffeisenbank Flums". PUT STREAM Out_Stream CONTROL VZeile CHR(10). YP = YP + 50. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = "8890 Flums". SUBSTRING(VZeile,030) = "8890 Flums". PUT STREAM Out_Stream CONTROL VZeile CHR(10). YP = YP + 150. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = "Wilhaber Getränke". SUBSTRING(VZeile,030) = "Wilhaber Getränke". PUT STREAM Out_Stream CONTROL VZeile CHR(10). YP = YP + 50. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = "Lochriet". SUBSTRING(VZeile,030) = "Lochriet". PUT STREAM Out_Stream CONTROL VZeile CHR(10). YP = YP + 50. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,001) = "8890 Flums". SUBSTRING(VZeile,030) = "8890 Flums". PUT STREAM Out_Stream CONTROL VZeile CHR(10). YP = YP + 93. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,013) = "01-1046-8". SUBSTRING(VZeile,041) = "01-1046-8". SUBSTRING(VZeile,062) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). PUT STREAM Out_Stream CONTROL VZeile CHR(10). YP = YP + 110. XP = 985. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). SUBSTRING(VZeile,004) = STRING(XBetrag,"XXXXXXXXXX XX"). SUBSTRING(VZeile,033) = STRING(XBetrag,"XXXXXXXXXX XX"). PUT STREAM Out_Stream CONTROL VZeile CHR(10). YP = YP + 90. XP = 980. VZeile = ''. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). PUT STREAM Out_Stream CONTROL CHR(27) "(10U" /* CODEPAGE 850 */ CHR(27) "(s4102t0b0p0s16h8V". /* LetterGotic 16cpi */ SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). PUT STREAM Out_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 Out_Stream CONTROL CHR(27) "(10U" /* CODEPAGE 850 */ CHR(27) "(s4102t0b0p0s12h10V". /* LetterGotic 12cpi */ RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). DO ix = 12 TO 7 BY -1: VZeile = ''. SUBSTRING(VZeile,059) = Adresse.Anschrift[ix]. IF ix = 12 THEN VZeile = XDrucker.Drufettb + VZeile + XDrucker.Drufette. PUT STREAM Out_Stream CONTROL VZeile CHR(10). YP = YP - 48. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). END. YP = 1430. PUT STREAM Out_Stream CONTROL CHR(27) "(10U" /* CODEPAGE 850 */ CHR(27) "(s4102t0b0p0s13h09V". /* LetterGotic 14cpi */ RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). DO ix = 12 TO 8 BY -1: VZeile = ''. SUBSTRING(VZeile,001) = STRING(Adresse.Anschrift[ix],"x(30)"). PUT STREAM Out_Stream CONTROL VZeile CHR(10). YP = YP - 43. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). END. YP = 1505. VZeile = ''. PUT STREAM Out_Stream CONTROL CHR(27) "(1O" /* CODEPAGE OCR-B */ CHR(27) "(s110t0b0p0s10h12V" /* OCR-B 10 cpi */ /*CHR(13)*/. XP = XP + 15. RUN DRUCKPOSITION ( INPUT 300, INPUT XP, INPUT YP ). XP = XP - 15. SUBSTRING(VZeile,022) = "H". SUBSTRING(VZeile,027) = STRING(VSZeile,"x(53)"). PUT STREAM Out_Stream CONTROL VZeile CHR(10). PUT STREAM Out_Stream CONTROL XDrucker.Dru10cpi. PUT STREAM Out_Stream CONTROL '£' CHR(12) CHR(13). LEAVE. END. OUTPUT STREAM Out_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: ------------------------------------------------------------------------------*/ /* ENDLOSGARNITUREN */ DEFINE VARIABLE VVESR AS CHARACTER FORMAT "x(90)" EXTENT 25. DEFINE VARIABLE PZBetrag AS CHARACTER FORMAT "x(13)" NO-UNDO. DEFINE VARIABLE PZReferenz AS CHARACTER FORMAT "x(27)" NO-UNDO. DEFINE VARIABLE PZTNummer AS CHARACTER FORMAT "x(09)" NO-UNDO. DEFINE VARIABLE VSZeile AS CHARACTER FORMAT "x(58)" NO-UNDO. DEFINE VARIABLE VZeile AS CHARACTER FORMAT "x(58)" NO-UNDO. DEFINE VARIABLE XArt AS INTEGER NO-UNDO. DEFINE VARIABLE XAnz AS INTEGER NO-UNDO. DEFINE VARIABLE XBetr AS CHARACTER FORMAT "x(20)" NO-UNDO. DEFINE VARIABLE VESR_P AS CHARACTER FORMAT "x(02)" NO-UNDO. DEFINE VARIABLE VESR AS CHARACTER FORMAT "x(02)" NO-UNDO. DEFINE VARIABLE XBetrag AS CHARACTER FORMAT "x(12)" NO-UNDO. DEFINE VARIABLE XCodeC AS CHARACTER NO-UNDO. DEFINE VARIABLE YP AS INTEGER NO-UNDO. DEFINE VARIABLE AdrGedruckt AS LOG NO-UNDO. RUN BESR_DATEN ( INPUT FDebst.BESR_Art ). DO WHILE TRUE: IF BAufko.Auf_Sta < 3 THEN Rundbetr = 0. 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 DO: PZBetrag = "01". PZBetrag = PZBetrag + STRING((Rundbetr * 100),"9999999999 "). PZReferenz = cBESRBn + STRING(VesrKnr,"999999") + STRING(VesrFnr,"999999"). PZTNummer = cBESRTn. XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999"). RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. ELSE DO: PZBetrag = " 04". PZReferenz = cBESRBn + STRING(VesrKnr,"999999") + STRING(VesrFnr,"999999"). PZTNummer = cBESRTn. XBetrag = "". RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. END. ix = BLiDruck.Listtzz - BLiDruck.Listfzz - VLine. VZeile = ''. { putstream.i ix } FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR. VVesr = ''. YP = 1. SUBSTRING(VVesr[YP],001) = cBESRZe[01]. SUBSTRING(VVesr[YP],030) = cBESRZe[09]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[02]. SUBSTRING(VVesr[YP],030) = cBESRZe[10]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[03]. SUBSTRING(VVesr[YP],030) = cBESRZe[11]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[04]. SUBSTRING(VVesr[YP],030) = cBESRZe[12]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[05]. SUBSTRING(VVesr[YP],030) = cBESRZe[13]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[06]. SUBSTRING(VVesr[YP],030) = cBESRZe[14]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[07]. SUBSTRING(VVesr[YP],030) = cBESRZe[15]. SUBSTRING(VVesr[YP],062) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[08]. SUBSTRING(VVesr[YP],030) = cBESRZe[16]. YP = YP + 1. SUBSTRING(VVesr[YP],015) = cBESRKo[01]. SUBSTRING(VVesr[YP],043) = cBESRKo[02]. YP = YP + 2. SUBSTRING(VVesr[YP],010) = STRING(XBetrag,"XXXXXXXXXX XX"). SUBSTRING(VVesr[YP],038) = STRING(XBetrag,"XXXXXXXXXX XX"). YP = YP + 2. SUBSTRING(VVesr[YP + 0],019) = STRING(PZReferenz,"XX XXXXX"). SUBSTRING(VVesr[YP + 1],004) = STRING(PZReferenz,"XXXXX XXXXX XXXXX XXXXX"). AdrGedruckt = FALSE. DO WHILE TRUE: IF NOT BAufko.Passant THEN LEAVE. IF BAufko.Adresse[01] = '' AND BAufko.Adresse[02] = '' AND BAufko.Adresse[03] = '' AND BAufko.Adresse[04] = '' AND BAufko.Adresse[05] = '' THEN LEAVE. YP = YP + 5. DO ix = 05 TO 1 BY -1: IF ix > 1 THEN SUBSTRING(VVesr[YP],001) = SUBSTRING(BAufko.Adresse[ix],01,25). SUBSTRING(VVesr[YP - 2],065) = SUBSTRING(BAufko.Adresse[ix],01,40). YP = YP - 1. END. AdrGedruckt = TRUE. LEAVE. END. DO WHILE TRUE: IF AdrGedruckt THEN LEAVE. YP = YP + 5. DO ix = 11 TO 6 BY -1: IF ix > 7 THEN SUBSTRING(VVesr[YP],001) = SUBSTRING(Adresse.Anschrift[ix],01,25). SUBSTRING(VVesr[YP - 2],065) = SUBSTRING(Adresse.Anschrift[ix],01,40). YP = YP - 1. END. LEAVE. END. DO ix = 1 TO 18: VZeile = VVesr[ix]. { putstream.i "1" } END. SUBSTRING(VZeile,027) = STRING(VSZeile,"x(53)"). SUBSTRING(VZeile,083) = "H". VZeile = Druinvb + VZeile + Druinve. { putstream.i "1" } LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK02 C-Win PROCEDURE VESR_DRUCK02 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE VVESR AS CHARACTER FORMAT "x(90)" EXTENT 25. DEFINE VARIABLE PZBetrag AS CHARACTER FORMAT "x(13)" NO-UNDO. DEFINE VARIABLE PZReferenz AS CHARACTER FORMAT "x(27)" NO-UNDO. DEFINE VARIABLE PZTNummer AS CHARACTER FORMAT "x(09)" NO-UNDO. DEFINE VARIABLE VSZeile AS CHARACTER FORMAT "x(58)" NO-UNDO. DEFINE VARIABLE VZeile AS CHARACTER FORMAT "x(58)" NO-UNDO. DEFINE VARIABLE XArt AS INTEGER NO-UNDO. DEFINE VARIABLE XAnz AS INTEGER NO-UNDO. DEFINE VARIABLE XBetr AS CHARACTER FORMAT "x(20)" NO-UNDO. DEFINE VARIABLE VESR_P AS CHARACTER FORMAT "x(02)" NO-UNDO. DEFINE VARIABLE VESR AS CHARACTER FORMAT "x(02)" NO-UNDO. DEFINE VARIABLE XBetrag AS CHARACTER FORMAT "x(12)" NO-UNDO. DEFINE VARIABLE XCodeC AS CHARACTER NO-UNDO. DEFINE VARIABLE YP AS INTEGER NO-UNDO. DEFINE VARIABLE AdrGedruckt AS LOG NO-UNDO. RUN BESR_DATEN ( INPUT FDebst.BESR_Art ). DO WHILE TRUE: IF BAufko.Auf_Sta < 3 THEN Rundbetr = 0. 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 DO: PZBetrag = "01". PZBetrag = PZBetrag + STRING((Rundbetr * 100),"9999999999 "). PZReferenz = cBESRBn + STRING(VesrKnr,"999999") + STRING(VesrFnr,"999999"). PZTNummer = cBESRTn. XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999"). RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. ELSE DO: PZBetrag = " 04". PZReferenz = cBESRBn + STRING(VesrKnr,"999999") + STRING(VesrFnr,"999999"). PZTNummer = cBESRTn. XBetrag = ''. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. END. ix = BLiDruck.Listtzz - BLiDruck.Listfzz - VLine. VZeile = ''. { putstream.i ix } FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR. VVesr = ''. YP = 1. SUBSTRING(VVesr[YP],001) = cBESRZe[01]. SUBSTRING(VVesr[YP],030) = cBESRZe[09]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[02]. SUBSTRING(VVesr[YP],030) = cBESRZe[10]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[03]. SUBSTRING(VVesr[YP],030) = cBESRZe[11]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[04]. SUBSTRING(VVesr[YP],030) = cBESRZe[12]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[05]. SUBSTRING(VVesr[YP],030) = cBESRZe[13]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[06]. SUBSTRING(VVesr[YP],030) = cBESRZe[14]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[07]. SUBSTRING(VVesr[YP],030) = cBESRZe[15]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[08]. SUBSTRING(VVesr[YP],030) = cBESRZe[16]. YP = YP + 1. SUBSTRING(VVesr[YP],015) = cBESRKo[01]. SUBSTRING(VVesr[YP],043) = cBESRKo[02]. SUBSTRING(VVesr[YP],062) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). YP = YP + 2. SUBSTRING(VVesr[YP],004) = STRING(XBetrag,"XXXXXXXXXX XX"). SUBSTRING(VVesr[YP],033) = STRING(XBetrag,"XXXXXXXXXX XX"). YP = YP + 2. SUBSTRING(VVesr[YP + 0],019) = STRING(PZReferenz,"XX XXXXX"). SUBSTRING(VVesr[YP + 1],004) = STRING(PZReferenz,"XXXXX XXXXX XXXXX XXXXX"). AdrGedruckt = FALSE. DO WHILE TRUE: IF NOT BAufko.Passant THEN LEAVE. IF BAufko.Adresse[01] = '' AND BAufko.Adresse[02] = '' AND BAufko.Adresse[03] = '' AND BAufko.Adresse[04] = '' AND BAufko.Adresse[05] = '' THEN LEAVE. YP = YP + 5. DO ix = 05 TO 1 BY -1: IF ix > 1 THEN SUBSTRING(VVesr[YP],001) = SUBSTRING(BAufko.Adresse[ix],01,25). SUBSTRING(VVesr[YP - 2],065) = SUBSTRING(BAufko.Adresse[ix],01,40). YP = YP - 1. END. AdrGedruckt = TRUE. LEAVE. END. DO WHILE TRUE: IF AdrGedruckt THEN LEAVE. YP = YP + 5. DO ix = 11 TO 6 BY -1: IF ix > 7 THEN SUBSTRING(VVesr[YP],001) = SUBSTRING(Adresse.Anschrift[ix],01,25). SUBSTRING(VVesr[YP - 2],065) = SUBSTRING(Adresse.Anschrift[ix],01,40). YP = YP - 1. END. LEAVE. END. DO ix = 1 TO 18: VZeile = VVesr[ix]. { putstream.i "1" } END. SUBSTRING(VZeile,027) = STRING(VSZeile,"x(53)"). SUBSTRING(VZeile,083) = "H". VZeile = Druinvb + VZeile + Druinve. { putstream.i "1" } LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK11 C-Win PROCEDURE VESR_DRUCK11 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ /* LASER */ DEFINE VARIABLE VVESR AS CHARACTER FORMAT "x(90)" EXTENT 25. DEFINE VARIABLE PZBetrag AS CHARACTER FORMAT "x(13)" NO-UNDO. DEFINE VARIABLE PZReferenz AS CHARACTER FORMAT "x(27)" NO-UNDO. DEFINE VARIABLE PZTNummer AS CHARACTER FORMAT "x(09)" NO-UNDO. DEFINE VARIABLE VSZeile AS CHARACTER FORMAT "x(58)" NO-UNDO. DEFINE VARIABLE VZeile AS CHARACTER FORMAT "x(58)" NO-UNDO. DEFINE VARIABLE XArt AS INTEGER NO-UNDO. DEFINE VARIABLE XAnz AS INTEGER NO-UNDO. DEFINE VARIABLE XBetr AS CHARACTER FORMAT "x(20)" NO-UNDO. DEFINE VARIABLE VESR_P AS CHARACTER FORMAT "x(02)" NO-UNDO. DEFINE VARIABLE VESR AS CHARACTER FORMAT "x(02)" NO-UNDO. DEFINE VARIABLE XBetrag AS CHARACTER FORMAT "x(12)" NO-UNDO. DEFINE VARIABLE XCodeC AS CHARACTER NO-UNDO. DEFINE VARIABLE YP AS INTEGER NO-UNDO. DEFINE VARIABLE XX AS INTEGER NO-UNDO. DEFINE VARIABLE YY AS INTEGER NO-UNDO. DEFINE VARIABLE RRand AS INTEGER NO-UNDO. DEFINE VARIABLE AdrGedruckt AS LOG NO-UNDO. RUN BESR_DATEN ( INPUT iBesr ). DO WHILE TRUE: IF BDrucker.Emul = 'TERMINAL' THEN RETURN. IF BAufko.Auf_Sta < 3 THEN Rundbetr = 0. 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 DO: PZBetrag = "01". PZBetrag = PZBetrag + STRING((Rundbetr * 100),"9999999999 "). PZReferenz = cBESRBn + STRING(VesrKnr,"999999") + STRING(VesrFnr,"999999"). PZTNummer = cBESRTn. XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999"). RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. ELSE DO: PZBetrag = " 04". PZReferenz = cBESRBn + STRING(VesrKnr,"999999") + STRING(VesrFnr,"999999"). PZTNummer = cBESRTn. XBetrag = "". RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. END. IF DOpen = TRUE THEN OUTPUT STREAM Out_Stream CLOSE. VTempVESR = VTemp. i1 = INDEX(VTemp, 'Faktura'). VTempVESR = SUBSTRING(VTemp,01,i1 - 1) + 'VESR' + SUBSTRING(VTemp,i1 + 7). OUTPUT STREAM Out_Stream TO VALUE(VTempVESR). LiKopf = FALSE. fUeber = FALSE. fBesr = TRUE. RUN VALUE(VKopfArt). RUN UMSATZVERTEILUNG. IF NOT VDokArt BEGINS 'LIEFER' THEN RUN SCHLUSS_TEXT. RRand = VRand. VRand = 0. XX = 0. YY = 2182. RUN DRUCKPOSITION ( INPUT XX, INPUT YY ). FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR. VVesr = ''. YP = 1. SUBSTRING(VVesr[YP],001) = cBESRZe[01]. SUBSTRING(VVesr[YP],035) = cBESRZe[09]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[02]. SUBSTRING(VVesr[YP],035) = cBESRZe[10]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[03]. SUBSTRING(VVesr[YP],035) = cBESRZe[11]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[04]. SUBSTRING(VVesr[YP],035) = cBESRZe[12]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[05]. SUBSTRING(VVesr[YP],035) = cBESRZe[13]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[06]. SUBSTRING(VVesr[YP],035) = cBESRZe[14]. YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[07]. SUBSTRING(VVesr[YP],035) = cBESRZe[15]. SUBSTRING(VVesr[YP],072) = STRING(PZReferenz,'XX XXXXX XXXXX XXXXX XXXXX XXXXX'). YP = YP + 1. SUBSTRING(VVesr[YP],001) = cBESRZe[08]. SUBSTRING(VVesr[YP],035) = cBESRZe[16]. YP = YP + 1. SUBSTRING(VVesr[YP],015) = cBESRKo[01]. SUBSTRING(VVesr[YP],049) = cBESRKo[02]. YP = YP + 2. SUBSTRING(VVesr[YP],011) = STRING(XBetrag,"XXXXXXXXXX XX"). SUBSTRING(VVesr[YP],045) = STRING(XBetrag,"XXXXXXXXXX XX"). YP = YP + 2. SUBSTRING(VVesr[YP],001) = PZReferenz. AdrGedruckt = FALSE. DO WHILE TRUE: IF NOT BAufko.Passant THEN LEAVE. IF BAufko.Adresse[01] = '' AND BAufko.Adresse[02] = '' AND BAufko.Adresse[03] = '' AND BAufko.Adresse[04] = '' AND BAufko.Adresse[05] = '' THEN LEAVE. YP = YP + 5. DO ix = 05 TO 1 BY -1: IF ix > 1 THEN SUBSTRING(VVesr[YP],001) = SUBSTRING(BAufko.Adresse[ix],01,25). SUBSTRING(VVesr[YP - 2],072) = SUBSTRING(BAufko.Adresse[ix],01,40). YP = YP - 1. END. AdrGedruckt = TRUE. LEAVE. END. DO WHILE TRUE: IF AdrGedruckt THEN LEAVE. YP = YP + 5. DO ix = 11 TO 6 BY -1: IF ix > 7 THEN SUBSTRING(VVesr[YP],001) = SUBSTRING(Adresse.Anschrift[ix],01,25). SUBSTRING(VVesr[YP - 2],072) = SUBSTRING(Adresse.Anschrift[ix],01,40). YP = YP - 1. END. LEAVE. END. YY = YY + 20. DO ix = 1 TO 18: YY = YY + 50. RUN DRUCKPOSITION ( INPUT XX, INPUT YY ). VZeile = VVesr[ix]. { putstream.i "1" } END. SUBSTRING(VZeile,026) = STRING(VSZeile,"x(53)"). VZeile = OCRB + VZeile + InitCPI. { putstream.i "1" } VRand = RRand. fBesr = FALSE. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK12 C-Win PROCEDURE VESR_DRUCK12 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE VVESR AS CHARACTER FORMAT "x(90)" EXTENT 25. DEFINE VARIABLE PZBetrag AS CHARACTER FORMAT "x(13)" NO-UNDO. DEFINE VARIABLE PZReferenz AS CHARACTER FORMAT "x(27)" NO-UNDO. DEFINE VARIABLE PZTNummer AS CHARACTER FORMAT "x(09)" NO-UNDO. DEFINE VARIABLE VSZeile AS CHARACTER FORMAT "x(58)" NO-UNDO. DEFINE VARIABLE VZeile AS CHARACTER FORMAT "x(58)" NO-UNDO. DEFINE VARIABLE XArt AS INTEGER NO-UNDO. DEFINE VARIABLE XAnz AS INTEGER NO-UNDO. DEFINE VARIABLE XBetr AS CHARACTER FORMAT "x(20)" NO-UNDO. DEFINE VARIABLE VESR_P AS CHARACTER FORMAT "x(02)" NO-UNDO. DEFINE VARIABLE VESR AS CHARACTER FORMAT "x(02)" NO-UNDO. DEFINE VARIABLE XBetrag AS CHARACTER FORMAT "x(12)" NO-UNDO. DEFINE VARIABLE XCodeC AS CHARACTER NO-UNDO. DEFINE VARIABLE YP AS INTEGER NO-UNDO. DEFINE VARIABLE XX AS INTEGER NO-UNDO. DEFINE VARIABLE YY AS INTEGER NO-UNDO. DEFINE VARIABLE RRand AS INTEGER NO-UNDO. DEFINE VARIABLE AdrGedruckt AS LOG NO-UNDO. DO WHILE TRUE: IF BDrucker.Emul = 'TERMINAL' THEN RETURN. IF BAufko.Auf_Sta < 3 THEN Rundbetr = 0. 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 DO: PZBetrag = "01". PZBetrag = PZBetrag + STRING((Rundbetr * 100),"9999999999 "). PZReferenz = "80106100000002" + STRING(VesrKnr,"999999") + STRING(VesrFnr,"999999"). PZTNummer = "01000591". XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999"). RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. ELSE DO: PZBetrag = " 04". PZReferenz = "80106100000002" + STRING(VesrKnr,"999999") + STRING(VesrFnr,"999999"). PZTNummer = "01000591". XBetrag = ''. RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. END. IF DOpen = TRUE THEN OUTPUT STREAM Out_Stream CLOSE. VTempVESR = VTemp. i1 = INDEX(VTemp, 'Faktura'). VTempVESR = SUBSTRING(VTemp,01,i1 - 1) + 'VESR' + SUBSTRING(VTemp,i1 + 7). OUTPUT STREAM Out_Stream TO VALUE(VTempVESR). RRand = VRand. VRand = 0. XX = 0. YY = 2325. RUN DRUCKPOSITION ( INPUT XX, INPUT YY ). FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR. VVesr = ''. YP = 1. SUBSTRING(VVesr[YP],001) = "Bank Linth". SUBSTRING(VVesr[YP],030) = "Bank Linth". YP = YP + 1. SUBSTRING(VVesr[YP],001) = "8730 Uznach". SUBSTRING(VVesr[YP],030) = "8730 Uznach". YP = YP + 2. SUBSTRING(VVesr[YP],001) = "". /* zu Gunsten von */ SUBSTRING(VVesr[YP],030) = "". YP = YP + 1. SUBSTRING(VVesr[YP],001) = "Rutishuser + Rauch AG". SUBSTRING(VVesr[YP],030) = "Rutishuser + Rauch AG". YP = YP + 1. SUBSTRING(VVesr[YP],001) = "Getränke-Center". SUBSTRING(VVesr[YP],030) = "Getränke-Center". YP = YP + 1. SUBSTRING(VVesr[YP],001) = "8645 Jona". SUBSTRING(VVesr[YP],030) = "8645 Jona". SUBSTRING(VVesr[YP],060) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). YP = YP + 2. SUBSTRING(VVesr[YP],013) = " 01-591-5". SUBSTRING(VVesr[YP],041) = " 01-591-5". YP = YP + 2. SUBSTRING(VVesr[YP],008) = STRING(XBetrag,"XXXXXXXXXX XX"). SUBSTRING(VVesr[YP],037) = STRING(XBetrag,"XXXXXXXXXX XX"). YP = YP + 1. /* SUBSTRING(VVesr[YP + 0],017) = STRING(PZReferenz,"XX XXXXX"). */ SUBSTRING(VVesr[YP + 1],002) = STRING(PZReferenz,"XXXXX XXXXX XXXXX XXXXX"). AdrGedruckt = FALSE. DO WHILE TRUE: IF NOT BAufko.Passant THEN LEAVE. IF BAufko.Adresse[01] = '' AND BAufko.Adresse[02] = '' AND BAufko.Adresse[03] = '' AND BAufko.Adresse[04] = '' AND BAufko.Adresse[05] = '' THEN LEAVE. YP = YP + 5. DO ix = 05 TO 1 BY -1: IF ix > 1 THEN SUBSTRING(VVesr[YP],001) = SUBSTRING(BAufko.Adresse[ix],01,25). SUBSTRING(VVesr[YP - 1],065) = SUBSTRING(BAufko.Adresse[ix],01,40). YP = YP - 1. END. AdrGedruckt = TRUE. LEAVE. END. DO WHILE TRUE: IF AdrGedruckt THEN LEAVE. YP = YP + 5. DO ix = 11 TO 6 BY -1: IF ix > 7 THEN SUBSTRING(VVesr[YP],001) = SUBSTRING(Adresse.Anschrift[ix],01,25). SUBSTRING(VVesr[YP - 1],065) = SUBSTRING(Adresse.Anschrift[ix],01,40). YP = YP - 1. END. LEAVE. END. DO ix = 1 TO 18: YY = YY + 50. RUN DRUCKPOSITION ( INPUT XX, INPUT YY ). VZeile = VVesr[ix]. { putstream.i "1" } END. SUBSTRING(VZeile,034) = STRING(VSZeile,"x(53)"). VZeile = OCRB + VZeile + InitCPI. { putstream.i "1" } VRand = RRand. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WIRTESONNTAG C-Win PROCEDURE WIRTESONNTAG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ XWirtesonntag = ''. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'WISO' AND Tabel.CodeC = '' AND Tabel.CodeI = BAufko.Wirt_So AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF AVAILABLE Tabel THEN XWirtesonntag = Tabel.Bez1. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE C-Win PROCEDURE WORKFILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FIND BSchrift USE-INDEX Schrift-k1 WHERE BSchrift.Schname = F_Drucker AND BSchrift.Schbild = F_Schrift NO-LOCK NO-ERROR. FIND BDrucker USE-INDEX Drucker-k1 WHERE BDrucker.Drucker = BSchrift.Schdru NO-LOCK NO-ERROR. DOpen = FALSE. VTemp = ''. IF BDrucker.Emul = 'TERMINAL' THEN DO: FOR EACH XTermOut: DELETE XTermOut. END. VZNr = 0. RETURN. END. ASSIGN Schacht1 = BDrucker.DruSchacht[01] Schacht2 = BDrucker.DruSchacht[02] Schacht3 = BDrucker.DruSchacht[03] OCRB = BDrucker.DruFont [02] InitCPI = BDrucker.DruFont [06]. 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 Tabel.Bez1 = cGemisTemp. END. 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: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipBetr AS DECIMAL NO-UNDO. DYNAMIC-FUNCTION('schreibenUeberschrift':U, 200, 2080, 70) NO-ERROR. { putstream.i "1" } FIND Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BAufko.Kond AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF NOT AVAILABLE Kondi THEN DO: FIND FIRST Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BAufko.Kond NO-LOCK NO-ERROR. END. IF AVAILABLE Kondi THEN DO: SUBSTRING(VZeile,009) = Kondi.KoText. IF Kondi.Skonto[01] <> 0 THEN DO: Rundbetr = ipBetr * Kondi.Skonto[01] / 100. IF DebInkl THEN DO: Rundcode = 1. RUN runden.p. END. SUBSTRING(VZeile,086) = STRING(Rundbetr,"->>,>>9.99"). END. END. ELSE DO: SUBSTRING(VZeile,009) = FILL(' ', 30). END. { putstreamf.i "2" } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZAHLUNGSKONDITION_EXCEL C-Win PROCEDURE ZAHLUNGSKONDITION_EXCEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipBetr AS DECIMAL NO-UNDO. PUT CONTROL '£' CHR(10) '£' CHR(10) '££'. FIND Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BAufko.Kond AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF NOT AVAILABLE Kondi THEN DO: FIND FIRST Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BAufko.Kond NO-LOCK NO-ERROR. END. IF AVAILABLE Kondi THEN DO: PUT CONTROL Kondi.KoText CHR(10). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION schreibenFirmaInKopf C-Win FUNCTION schreibenFirmaInKopf RETURNS LOGICAL ( ipLinks AS INTEGER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE YPos AS INTEGER NO-UNDO. DEFINE VARIABLE cFirma AS CHARACTER NO-UNDO. /* DO WHILE TRUE: */ /* IF VDokArt BEGINS 'RUEST' THEN LEAVE. */ /* IF VDokArt BEGINS 'LIEFER' THEN LEAVE. */ /* RETURN FALSE. */ /* END. */ CASE GVFirma: WHEN '1000' THEN cFirma = 'MR'. WHEN '2000' THEN cFirma = 'MRW'. END CASE. cFirma = CHR(027) + '(s8h0b0s0P' + cFirma + BDrucker.DruFont[06]. YPos = 500. IF VDokArt BEGINS 'RUEST' THEN YPos = 300. PUT STREAM Out_Stream CONTROL CHR(027) "&f0S". /* Sichern Cursorposition */ PUT STREAM Out_Stream CONTROL CHR(027) "*t300R". PUT STREAM Out_Stream CONTROL CHR(027) "*r1A". /* Start Rastergrafik */ PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(YPos) "y" STRING(ipLinks) "X". PUT STREAM Out_Stream CONTROL CHR(027) "*rB". /* Stop Rastergrafik */ PUT STREAM Out_Stream CONTROL cFirma. PUT STREAM Out_Stream CONTROL CHR(027) "&f1S". /* Ruecksetzen Cursorposition */ RETURN TRUE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION schreibenFusszeile C-Win FUNCTION schreibenFusszeile RETURNS LOGICAL ( ): /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cBank_1 AS CHARACTER NO-UNDO INIT 'Zuercher Kantonalbank'. DEFINE VARIABLE cBank_2 AS CHARACTER NO-UNDO INIT 'Zürcher Kantonalbank'. DEFINE VARIABLE cStrasse AS CHARACTER NO-UNDO INIT 'Gotthardstrasse 29'. DEFINE VARIABLE cOrt AS CHARACTER NO-UNDO INIT 'CH-8801 Thalwil'. DEFINE VARIABLE cClear_1 AS CHARACTER NO-UNDO INIT 'Clearing No 700 / EUR Account No 1300-7284.136'. DEFINE VARIABLE cClear_2 AS CHARACTER NO-UNDO INIT 'Clearing No 700 / CHF Account No 1100-2236.011'. DEFINE VARIABLE cClear_3 AS CHARACTER NO-UNDO INIT 'Clearing Nr 700 / CHF Konto Nr 1100-2236.011'. DEFINE VARIABLE cSwift AS CHARACTER NO-UNDO INIT 'SWIFT: ZKBKCHZZ80A'. DEFINE VARIABLE cIBAN_1 AS CHARACTER NO-UNDO INIT 'IBAN: CH76 0070 0130 0072 8413 6'. DEFINE VARIABLE cIBAN_2 AS CHARACTER NO-UNDO INIT 'IBAN: CH25 0070 0110 0022 3601 1'. DEFINE VARIABLE xx AS INTEGER NO-UNDO INIT 200. DEFINE VARIABLE yy AS INTEGER NO-UNDO INIT 3180. DEFINE VARIABLE cClear AS CHARACTER NO-UNDO. DEFINE VARIABLE cIBAN AS CHARACTER NO-UNDO. xx = LiPos. PUT STREAM Out_Stream CONTROL CHR(027) '*p' STRING(yy) 'y' STRING(xx) 'X'. PUT STREAM Out_Stream CONTROL CHR(027) "*t300R". PUT STREAM Out_Stream CONTROL CHR(027) "*r1A". /* Start Rastergrafik */ PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(LiPos) "X". PUT STREAM Out_Stream CONTROL CHR(027) "*c" STRING(FoBreite) "a" STRING(1) "B". PUT STREAM Out_Stream CONTROL CHR(027) "*c0P". PUT STREAM Out_Stream CONTROL CHR(027) "*rB". /* Stop Rastergrafik */ PUT STREAM Out_Stream CONTROL CHR(27) '(s20H' CHR(27) '&l8D' CHR(10) . IF cFrw <> 'CHF' THEN DO: cClear = cClear_1. cIBAN = cIBAN_1. END. ELSE DO: IF LVSprcd = 1 THEN ASSIGN cClear = cClear_3 cIBAN = cIBAN_2. ELSE ASSIGN cClear = cClear_2 cIBAN = cIBAN_2. END. VZeile = ''. IF iFirma = 1 THEN DO: VZeile = cBank_1. SUBSTRING(VZeile,138 - LENGTH(cClear_1)) = cClear. { putstreamf.i "1" } VZeile = cStrasse. SUBSTRING(VZeile,138 - LENGTH(cSwift)) = cSwift. { putstreamf.i "1" } VZeile = cOrt. SUBSTRING(VZeile,138 - LENGTH(cIBAN_1)) = cIBAN. { putstreamf.i "1" } END. IF iFirma = 2 THEN DO: IF LVSprcd = 1 THEN DO: VZeile = cBank_2. SUBSTRING(VZeile,138 - LENGTH(cClear_3)) = cClear. { putstreamf.i "1" } VZeile = cStrasse. SUBSTRING(VZeile,138 - LENGTH(cSwift)) = cSwift. { putstreamf.i "1" } VZeile = cOrt. SUBSTRING(VZeile,138 - LENGTH(cIBAN_2)) = cIBAN. { putstreamf.i "1" } END. ELSE DO: VZeile = cBank_1. SUBSTRING(VZeile,138 - LENGTH(cClear_2)) = cClear. { putstreamf.i "1" } VZeile = cStrasse. SUBSTRING(VZeile,138 - LENGTH(cSwift)) = cSwift. { putstreamf.i "1" } VZeile = cOrt. SUBSTRING(VZeile,138 - LENGTH(cIBAN_2)) = cIBAN. { putstreamf.i "1" } END. END. PUT STREAM Out_Stream CONTROL CHR(027) '*p' STRING(0) 'y' STRING(0) 'X'. PUT STREAM Out_Stream CONTROL initCPI CHR(27) '&l6D' CHR(13). RETURN TRUE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION schreibenLinie C-Win FUNCTION schreibenLinie RETURNS LOGICAL ( ipLinks AS INTEGER, ipBreite AS INTEGER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ PUT STREAM Out_Stream CONTROL CHR(027) "&f0S". /* Sichern Cursorposition */ PUT STREAM Out_Stream CONTROL CHR(027) "*t300R". PUT STREAM Out_Stream CONTROL CHR(027) "*r1A". /* Start Rastergrafik */ PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(ipLinks) "X". PUT STREAM Out_Stream CONTROL CHR(027) "*c" STRING(ipBreite) "a" STRING(1) "B". PUT STREAM Out_Stream CONTROL CHR(027) "*c0P". PUT STREAM Out_Stream CONTROL CHR(027) "*rB". /* Stop Rastergrafik */ PUT STREAM Out_Stream CONTROL CHR(027) "&f1S". /* Ruecksetzen Cursorposition */ RETURN TRUE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION schreibenUeberschrift C-Win FUNCTION schreibenUeberschrift RETURNS LOGICAL ( ipLinks AS INTEGER, ipBreite AS INTEGER, ipHoehe AS INTEGER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE Vorschub AS DECIMAL DECIMALS 4 NO-UNDO. Vorschub = ipHoehe * 48 / 300. PUT STREAM Out_Stream CONTROL CHR(027) "&f0S". /* Sichern Cursorposition */ PUT STREAM Out_Stream CONTROL CHR(027) "*t300R". PUT STREAM Out_Stream CONTROL CHR(027) "*r1A". /* Start Rastergrafik */ PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(ipLinks) "X". PUT STREAM Out_Stream CONTROL CHR(027) "*c" STRING(ipBreite) "a" STRING(1) "B". PUT STREAM Out_Stream CONTROL CHR(027) "*c0P". PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(ipLinks) "X". PUT STREAM Out_Stream CONTROL CHR(027) "*c" STRING(ipBreite) "a" STRING(ipHoehe) "B". PUT STREAM Out_Stream CONTROL CHR(027) "*c6G". PUT STREAM Out_Stream CONTROL CHR(027) "*c2P". PUT STREAM Out_Stream CONTROL CHR(027) "*rB". /* Stop Rastergrafik */ PUT STREAM Out_Stream CONTROL CHR(027) "&l" STRING(Vorschub,'9999') "C". PUT STREAM Out_Stream CONTROL CHR(010) CHR(027) "&l6D". PUT STREAM Out_Stream CONTROL CHR(027) "*r1A". PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(ipLinks) "X". PUT STREAM Out_Stream CONTROL CHR(027) "*c" STRING(ipBreite) "a" STRING(1) "B". PUT STREAM Out_Stream CONTROL CHR(027) "*c0P". PUT STREAM Out_Stream CONTROL CHR(027) "*rB". /* Stop Rastergrafik */ PUT STREAM Out_Stream CONTROL CHR(027) "&f1S". /* Ruecksetzen Cursorposition */ RETURN TRUE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME