&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 --- */ DEFINE INPUT PARAMETER iphtParam AS HANDLE NO-UNDO. /* Local Variable Definitions --- */ DEFINE VARIABLE FDrucken 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 FLetzt AS LOG NO-UNDO. DEFINE VARIABLE FErste AS LOG NO-UNDO. DEFINE VARIABLE VZeile AS CHARACTER FORMAT "x(250)" 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 FakArt 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 XChauffeur 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 VTabTexte LIKE TabTexte.Inhalt NO-UNDO. DEFINE VARIABLE VDokArt AS CHARACTER NO-UNDO. DEFINE VARIABLE VKopfArt AS CHARACTER NO-UNDO. DEFINE VARIABLE LiefAdr AS CHARACTER 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 Laser AS LOG NO-UNDO. DEFINE VARIABLE Schacht AS INTEGER NO-UNDO. DEFINE VARIABLE Schacht1 AS CHARACTER NO-UNDO. DEFINE VARIABLE Schacht2 AS CHARACTER NO-UNDO. DEFINE VARIABLE Schacht3 AS CHARACTER NO-UNDO. DEFINE VARIABLE Schacht4 AS CHARACTER NO-UNDO. DEFINE VARIABLE cWag AS CHARACTER INIT '-' NO-UNDO. DEFINE VARIABLE cSenk AS CHARACTER INIT '|' NO-UNDO. DEFINE VARIABLE cPlus AS CHARACTER INIT '+' NO-UNDO. DEFINE VARIABLE DruckInit AS CHARACTER NO-UNDO. DEFINE VARIABLE SchriftInit AS CHARACTER NO-UNDO. DEFINE VARIABLE OCRBInit AS CHARACTER NO-UNDO. DEFINE VARIABLE cUSER AS CHARACTER NO-UNDO. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO. DEFINE VARIABLE ExZeile AS INTEGER NO-UNDO. DEFINE VARIABLE FormText AS CHARACTER FORMAT "x(80)" EXTENT 40. 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 DTabel FOR Tabel. DEFINE BUFFER TFakart FOR Tabel. DEFINE BUFFER TAufsta FOR Tabel. DEFINE BUFFER BAdresse 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. /*DEF WORKFILE WDrucker FIELD Drucker AS CHAR */ /* FIELD Schrift AS CHAR */ /* FIELD TotZZ AS INT */ /* FIELD BegZZ AS INT */ /* FIELD EndZZ AS INT */ /* FIELD AnzKop AS INT */ /* FIELD SchOri AS INT */ /* FIELD SchKop AS INT */ /* FIELD Besr AS INT */ /* FIELD SchBesr AS INT */ /* FIELD iRecid AS RECID.*/ 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. 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 Mwst AS DECIMAL DECIMALS 2 FIELD Bez AS CHARACTER FIELD Ums_Betr 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 FIELD Knr AS INTEGER FIELD Samm_Nr AS INTEGER FIELD Aufnr AS INTEGER FIELD RID AS RECID. DEFINE TEMP-TABLE TSpeRab FIELD Rab_Grp AS INTEGER FIELD Auf_Betr AS DECIMAL DECIMALS 4. /* ---------- Globale Variablen ---------------------------------- */ { v8/globvar.i " " " " "SHARED" } { v8/debivar.i " " " " "SHARED" } { v8/artivar.i " " " " "SHARED" } { v8/contvar.i " " " " "SHARED" } { v8/listtitv.i "NEW" "SHARED" } { v8/aufkototv.i "NEW" "SHARED" } { ttdruckparam.i } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE Window &Scoped-define DB-AWARE no /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME DEFAULT-FRAME /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz ~ F_Kzz F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite &Scoped-Define DISPLAYED-OBJECTS F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz ~ F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz ~ F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define the widget handle for the window */ DEFINE VAR C-Win AS WIDGET-HANDLE NO-UNDO. /* Definitions of the field level widgets */ DEFINE VARIABLE E_Adresse AS CHARACTER VIEW-AS EDITOR MAX-CHARS 1000 SIZE 47.6 BY 6.19 BGCOLOR 15 FONT 6 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 50 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_Schrift AS CHARACTER FORMAT "x(50)":U LABEL "Schriftbild" VIEW-AS FILL-IN NATIVE SIZE 50 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 126 BY 10.95. /* ************************ Frame Definitions *********************** */ DEFINE FRAME DEFAULT-FRAME F_Drucker AT ROW 2 COL 19 COLON-ALIGNED E_Adresse AT ROW 2 COL 76.6 NO-LABEL F_Schrift AT ROW 3 COL 19 COLON-ALIGNED F_Tzz AT ROW 4 COL 19 COLON-ALIGNED F_Kzz AT ROW 5 COL 19 COLON-ALIGNED F_Fzz AT ROW 6 COL 19 COLON-ALIGNED F_Aufnr AT ROW 7 COL 19 COLON-ALIGNED F_KOPIE AT ROW 7 COL 63.4 COLON-ALIGNED F_Faknr AT ROW 8 COL 19 COLON-ALIGNED F_Datum AT ROW 9 COL 19 COLON-ALIGNED F_Dokart AT ROW 9 COL 74.6 COLON-ALIGNED F_Seite AT ROW 9 COL 115.2 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 128.2 BY 13.86. /* *********************** 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 = 11.43 WIDTH = 128.2 MAX-HEIGHT = 26.57 MAX-WIDTH = 203 VIRTUAL-HEIGHT = 26.57 VIRTUAL-WIDTH = 203 RESIZE = YES SCROLL-BARS = NO STATUS-AREA = NO BGCOLOR = ? FGCOLOR = ? KEEP-FRAME-Z-ORDER = YES THREE-D = YES MESSAGE-AREA = NO SENSITIVE = YES. ELSE {&WINDOW-NAME} = CURRENT-WINDOW. /* END WINDOW DEFINITION */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW C-Win VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME DEFAULT-FRAME FRAME-NAME */ /* SETTINGS FOR EDITOR E_Adresse IN FRAME DEFAULT-FRAME 1 */ ASSIGN E_Adresse: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_Schrift IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Seite IN FRAME DEFAULT-FRAME 1 */ /* SETTINGS FOR FILL-IN F_Tzz IN FRAME DEFAULT-FRAME 1 */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(C-Win) THEN C-Win:HIDDEN = NO. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME C-Win &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win ON END-ERROR OF C-Win /* Drucken von Auftragsdokumenten */ OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO: /* This case occurs when the user presses the "Esc" key. In a persistently run window, just ignore this. If we did not, the application would exit. */ IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL C-Win C-Win ON WINDOW-CLOSE OF C-Win /* Drucken von Auftragsdokumenten */ DO: /* 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 &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}. Laser = FALSE. Schacht1 = CHR(27) + '&l4H'. Schacht2 = CHR(27) + '&l1H'. Schacht3 = CHR(27) + '&l5H'. Schacht4 = CHR(27) + '&l3H'. Druckinit = CHR(27) + 'E' + CHR(27) + '&l0O' + CHR(27) + '&k2G' + CHR(27) + '&l6d26a70P' + CHR(27) + '9' + CHR(27) + '&a0L' + CHR(27) + '&l0E'. SchriftInit = CHR(27) + '(s4102t13h0b0s0P' + CHR(27) + '(10U'. OCRBInit = CHR(27) + '(1O' + CHR(27) + '(s10h0b0s0p110T'. EMPTY TEMP-TABLE tParam. htParam:BUFFER-COPY(iphtParam). FIND FIRST tParam. GVFirma = tParam.cFirma. RUN INITIALISIERUNG. ON CLOSE OF THIS-PROCEDURE RUN disable_UI. PAUSE 0 BEFORE-HIDE. MAIN-BLOCK: DO ON ERROR UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK ON END-KEY UNDO MAIN-BLOCK, LEAVE MAIN-BLOCK: RUN enable_UI. FDrucken = TRUE. VERARBEITEN: DO WHILE FDrucken: FIND Tabel NO-LOCK WHERE RECID(Tabel) = TRecid NO-ERROR. IF NOT AVAILABLE Tabel THEN DO: FDrucken = FALSE. NEXT. END. 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 NO-ERROR . DELETE BTabel. RELEASE BTabel. LEAVE. END. LEAVE. END. 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 C-Win PROCEDURE ARTIKELZEILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE lInkl AS LOG NO-UNDO. VZeile = RZeile. DO WHILE Aufze.Artnr = 0: SUBSTRING(VZeile,036) = STRING(Aufze.Bez1,"x(30)"). { v8/putstream.i "1" } IF Aufze.Bez2 <> '' THEN DO: VZeile = RZeile. SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND FIRST Artbez NO-LOCK OF Artst NO-ERROR. 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. VZeile = RZeile. SUBSTRING(VZeile,001) = STRING(Aufze.Artnr,"999999"). IF Aufze.GGeb_Me <> 0 THEN DO: SUBSTRING(VZeile,008) = STRING(Aufze.GGeb_Me ,"->9"). SUBSTRING(VZeile,012) = STRING(GGebinde.KBez ,"x(08)"). { v8/putstream.i "1" } VZeile = RZeile. END. IF Aufze.VGeb_Me <> 0 THEN DO: SUBSTRING(VZeile,008) = STRING(Aufze.VGeb_Me ,"->9"). SUBSTRING(VZeile,012) = STRING(VGebinde.KBez ,"x(08)"). END. SUBSTRING(VZeile,021) = STRING(Aufze.MGeli ,"->>>9"). SUBSTRING(VZeile,027) = STRING(KGebinde.KBez ,"x(08)"). SUBSTRING(VZeile,036) = STRING(Aufze.Bez1 ,"x(30)"). IF Aufze.Alk_Gehalt <> 0 THEN DO: SUBSTRING(VZeile,066) = STRING(Aufze.Alk_Gehalt,"z9.9%"). END. IF Aufze.Jahr > 9 THEN DO: SUBSTRING(VZeile,072) = SUBSTRING(STRING(Aufze.Jahr,"9999"),03). END. IF FPreis THEN DO: IF Aufze.Preis > 999.99 THEN SUBSTRING(VZeile,075) = STRING(Aufze.Preis,"zzz9.99"). ELSE SUBSTRING(VZeile,075) = STRING(Aufze.Preis,"zz9.999"). END. IF FBetrag THEN DO: SUBSTRING(VZeile,083) = STRING(Aufze.Bru_Betr ,"->>,>>9.99"). SUBSTRING(VZeile,094) = STRING(Aufze.WuCd ,"z9"). END. { v8/putstream.i "1" } IF Artbez.Bez2_Druck THEN DO: IF Aufze.Bez2 <> '' THEN DO: VZeile = RZeile. SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. END. ELSE DO: IF Aufze.Bez2 <> '' AND Aufze.Bez2 <> Artbez.Bez2 THEN DO: VZeile = RZeile. SUBSTRING(VZeile,036) = STRING(Aufze.Bez2,"x(30)"). { v8/putstream.i "1" } END. END. IF Aufze.Aktion THEN DO: VZeile = RZeile. SUBSTRING(VZeile,036) = STRING(Aufze.Aktion_Text,"x(30)"). { v8/putstream.i "1" } END. DO WHILE FBetrag: IF Aufze.Rab_Betr = 0 THEN LEAVE. VZeile = RZeile. 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,036) = TRIM(RabText). IF Aufze.Rab_Art = 1 THEN SUBSTRING(VZeile,055) = STRING(RabWert,"->9.9 %"). IF Aufze.Rab_Art = 2 OR Aufze.Rab_Art = 3 THEN SUBSTRING(VZeile,055) = STRING(RabWert,"-9.99 Fr."). SUBSTRING(VZeile,083) = STRING(- Aufze.Rab_Betr ,"->>,>>9.99"). { v8/putstream.i "1" } LEAVE. END. DO WHILE FBetrag: IF Aufze.Zus_Betr = 0 THEN LEAVE. VZeile = RZeile. 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,036) = TRIM(RabText). IF Aufze.Zus_Art = 1 THEN SUBSTRING(VZeile,055) = STRING(RabWert,"->9.9 %"). IF Aufze.Zus_Art = 2 OR Aufze.Zus_Art = 3 THEN SUBSTRING(VZeile,055) = STRING(RabWert,"-9.99 Fr."). SUBSTRING(VZeile,083) = STRING(+ Aufze.Zus_Betr ,"->>,>>9.99"). { v8/putstream.i "1" } LEAVE. END. /* ---- Summengruppen-Total -------------------------------------------- */ IF Aufze.Rab_Su_Grp <> 0 THEN DO: FIND FIRST TRabSumm WHERE TRabSumm.Rab_Summ = Aufze.Rab_Su_Grp NO-ERROR. IF AVAILABLE TRabSumm THEN DO: TRabSumm.Auf_Rab = TRabSumm.Auf_Rab + Aufze.Auf_Rab. TRabSumm.Abh_Rab = TRabSumm.Abh_Rab + Aufze.Abh_Rab. END. END. /* ---- Warengruppen-Totale -------------------------------------------- */ FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = Artst.Wg_Grp AND TUmsGrp.MWst = Aufze.MWSt% NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR. CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = Artst.Wg_Grp TUmsGrp.Mwst = Aufze.MWSt%. IF AVAILABLE WarenGrp THEN TUmsGrp.Bez = WarenGrp.Bez1. ELSE TUmsGrp.Bez = "??????????". END. FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2 WHERE Wust.WuCd = Aufze.WuCd NO-ERROR. IF NOT AVAILABLE Wust THEN lInkl = FALSE. ELSE lInkl = Wust.Incl. IF NOT lInkl THEN DO: TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Aufze.Net_Betr - Aufze.Auf_Rab - Aufze.Abh_Rab. END. ELSE DO: TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + ((Aufze.Net_Betr - Aufze.Auf_Rab - Aufze.Abh_Rab) * 100 / (100 + Aufze.Mwst%)). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CHAUFFEUR C-Win PROCEDURE CHAUFFEUR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ XChauffeur = ''. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'FAHRER' AND Tabel.CodeC = '' AND Tabel.CodeI = BAufko.Fahrer AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF AVAILABLE Tabel THEN XChauffeur = Tabel.Bez1. 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 sRecid AS RECID NO-UNDO. DEFINE VARIABLE iSize AS INTEGER NO-UNDO. IF BAufko.AlsOfferte THEN RETURN. AnzKopien = F_Kopie. IF AnzKopien = 0 THEN AnzKopien = 1. DO VCopy = 1 TO AnzKopien: sRecid = RECID(BSchrift). Schacht = BLiDruck.Schacht. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, VTemp , RECID(BSchrift), ? , 240 , /* Blockgrösse */ 'ibm850' , 1 ). /* AnzahlKopien */ IF iSize = 0 THEN DO: MESSAGE 'Druckvorgang gescheitert !!! ' VIEW-AS ALERT-BOX ERROR. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN C-Win PROCEDURE DRUCKEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: DEFINE VARIABLE XFakArt AS INTEGER NO-UNDO. DEFINE VARIABLE XAufSta AS INTEGER NO-UNDO. FIND Tabel NO-LOCK WHERE RECID(Tabel) = TRecid. VBesr = Tabel.Dec_1. Schacht = Tabel.Dec_3. VDokArt = Tabel.Bez2. F_DokArt = Tabel.Bez2. IF Schacht > 0 THEN Laser = TRUE. ELSE Laser = FALSE. IF Laser THEN DO: cWag = CHR(142). cSenk = CHR(131). cPlus = CHR(143). END. FIND BSteuer WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR. FIND BListen WHERE RECID(BListen) = ARecid NO-LOCK NO-ERROR. FIND BLiDruck WHERE RECID(BLiDruck) = BRecid NO-LOCK NO-ERROR. FIND BAufko WHERE RECID(BAufko) = CRecid NO-LOCK NO-ERROR. IF NOT AVAILABLE BAufko THEN RETURN. F_Aufnr = BAufko.Aufnr. F_Faknr = BAufko.Faknr. F_Datum = BAufko.Fak_Datum. IF F_Datum = ? THEN F_Datum = TODAY. IF BAufko.AlsOfferte THEN VDokArt = 'EXCEL_OFFERTE'. FDatum = F_Datum. VSort = BListen.Sort. F_Drucker = BLiDruck.ListDru. F_Schrift = BLiDruck.ListBild. F_TZZ = BLiDruck.Listtzz. F_KZZ = BLiDruck.Listkzz. F_FZZ = BLiDruck.Listfzz. F_KOPIE = BLiDruck.ListCopy. FIND TFakart USE-INDEX Tabel-k1 WHERE TFakart.Firma = GVFirma AND TFakart.RecArt = 'FAKART' AND TFakart.CodeC = '' AND TFakart.CodeI = BAufko.Fak_Art AND TFakart.Sprcd = 1 NO-LOCK NO-ERROR. F_Dokart = TFakart.Bez1. 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. RUN LIBILD. EMPTY TEMP-TABLE SammFak. IF BAufko.Samm_Nr <> 0 AND NOT VDokArt BEGINS 'Ruest' THEN DO: RUN SAMMELSUCHEN. END. ELSE DO: CREATE SammFak. ASSIGN SammFak.Knr = BAufko.Fak_Knr SammFak.Aufnr = BAufko.Aufnr SammFak.Samm_Nr = BAufko.Aufnr SammFak.RID = RECID(BAufko). END. VTemp = ''. IF NOT bAufko.AlsOfferte THEN 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.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. FakArt = BAufko.Fak_Art. EMPTY TEMP-TABLE tAufze. EMPTY TEMP-TABLE tGebKto. EMPTY TEMP-TABLE tRabSumm. EMPTY TEMP-TABLE tSpeRab. EMPTY TEMP-TABLE tGebuehr. IF FIRST-OF ( SammFak.Samm_Nr ) THEN DO: EMPTY TEMP-TABLE tUmsGrp. GTWpfl = 0. GTWust = 0. GTFak_Betr = 0. GTSk_Ber = 0. SFaknr = 0. FLetzt = FALSE. FErste = TRUE. TiDruck = TRUE. VSeite = 0. 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. END. IF VSort = 1 THEN DO: ASSIGN TAufze.Sort1 = STRING(VWg_Grp ,"999") TAufze.Sort2 = STRING(VProd_Grp ,"999") TAufze.Sort3 = STRING(VArt_Grp ,"999"). 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 DO: FLetzt = TRUE. END. RUN VALUE(VDokArt). IF NOT FLetzt THEN NEXT. END. /* FOR EACH SammFak */ IF DOpen THEN OUTPUT STREAM Out_Stream CLOSE. DOpen = FALSE. RUN DRUCKAUSGABE. IF VTemp <> '' THEN OS-DELETE VALUE(VTemp). 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 enable_UI C-Win _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ DISPLAY F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite WITH FRAME DEFAULT-FRAME IN WINDOW C-Win. ENABLE RECT-1 F_Drucker E_Adresse F_Schrift F_Tzz F_Kzz F_Fzz F_Aufnr F_KOPIE F_Faknr F_Datum F_Dokart F_Seite WITH FRAME DEFAULT-FRAME IN WINDOW C-Win. {&OPEN-BROWSERS-IN-QUERY-DEFAULT-FRAME} VIEW C-Win. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_ARTIKELZEILE C-Win PROCEDURE EXCEL_ARTIKELZEILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipRecid AS RECID NO-UNDO. DEFINE INPUT-OUTPUT PARAMETER ioExZeile AS INTEGER NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. FIND tAufze WHERE RECID(tAufze) = ipRecid NO-LOCK. FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. DO WHILE Aufze.Artnr = 0: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ioExZeile, INPUT Aufze.Bez1 ). IF Aufze.Bez2 = '' THEN RETURN. ioExZeile = ioExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ioExZeile, INPUT Aufze.Bez2 ). RETURN. END. FIND Artst OF Aufze NO-LOCK. FIND FIRST Artbez OF Artst NO-LOCK. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Aufze.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-LOCK NO-ERROR. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'A', INPUT ioExZeile, INPUT STRING(Aufze.Artnr,'999999') ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B', INPUT ioExZeile, INPUT KGebinde.KBez ). IF Aufze.VGeb_Me <> 0 THEN DO: cString = STRING(Aufze.VGeb_Me,'->>>') + 'x ' + STRING(VGebinde.KBez,'x(10)'). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ioExZeile, INPUT cString ). END. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ioExZeile, INPUT STRING(Aufze.MGeli,'->>>>>9') ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ioExZeile, INPUT Aufze.Bez1 ). IF Aufze.Jahr > 9 THEN RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'F', INPUT ioExZeile, INPUT STRING(Aufze.Jahr,'9999') ). IF Aufze.Alk_Gehalt <> 0 THEN RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'G', INPUT ioExZeile, INPUT STRING(Aufze.Alk_Gehalt,'zz9.9%') ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ioExZeile, INPUT STRING(Aufze.Preis,'>>>>9.99') ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ioExZeile, INPUT STRING(Aufze.Bru_Betr,'->>>>>9.99') ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J', INPUT ioExZeile, INPUT STRING(Aufze.WuCd,'z9') ). IF Artbez.Bez2_Druck THEN DO: IF Aufze.Bez2 <> '' THEN DO: ioExZeile = ioExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ioExZeile, INPUT Aufze.Bez2 ). END. END. ELSE DO: IF Aufze.Bez2 <> '' AND Aufze.Bez2 <> Artbez.Bez2 THEN DO: ioExZeile = ioExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ioExZeile, INPUT Aufze.Bez2 ). END. END. IF Aufze.Aktion THEN DO: ioExZeile = ioExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ioExZeile, INPUT Aufze.Aktion_Text ). END. DO WHILE FPreis: IF Aufze.Rab_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Rab_Wert). IF Aufze.Rab_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Rab_Betr < 0 THEN RabText = VZusText. IF Aufze.Rab_Betr > 0 THEN RabText = VRabText. END. ioExZeile = ioExZeile + 1. IF Aufze.Rab_Art = 1 THEN DO: RabText = RabText + STRING(RabWert,"->>9.9 %"). END. IF Aufze.Rab_Art = 2 OR Aufze.Rab_Art = 3 THEN DO: RabText = RabText + STRING(RabWert,"->>9.9 CHF"). END. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ioExZeile, INPUT TRIM(STRING(- Aufze.Rab_Betr ,"->>>9.99")) ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ioExZeile, INPUT TRIM(RabText) ). LEAVE. END. DO WHILE FPreis: IF Aufze.Zus_Betr = 0 THEN LEAVE. RabWert = ABSOLUTE(Aufze.Zus_Wert). IF Aufze.Zus_Art = 3 THEN RabText = VEpzText. ELSE DO: IF Aufze.Zus_Betr < 0 THEN RabText = VRabText. IF Aufze.Zus_Betr > 0 THEN RabText = VZusText. END. ioExZeile = ioExZeile + 1. IF Aufze.Zus_Art = 1 THEN DO: RabText = RabText + STRING(RabWert,"->>9.9 %"). END. IF Aufze.Zus_Art = 2 OR Aufze.Zus_Art = 3 THEN DO: RabText = RabText + STRING(RabWert,"->>9.9 CHF"). END. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ioExZeile, INPUT TRIM(STRING(- Aufze.Rab_Betr ,"->>>9.99")) ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'E', INPUT ioExZeile, INPUT TRIM(RabText) ). 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. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_GEBINDE_ABRECHNUNG C-Win PROCEDURE EXCEL_GEBINDE_ABRECHNUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. DEFINE VARIABLE lTotal AS LOG NO-UNDO. DEFINE VARIABLE dBetrag AS DECIMAL NO-UNDO. lTotal = FALSE. i5 = 0. VZTot = 0. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Depot <> 0 NO-LOCK: IF AufGKon.Eingang = 0 AND AufGKon.Ausgang = 0 THEN NEXT. IF i5 = 0 THEN ExZeile = ExZeile + 2. ELSE ExZeile = ExZeile + 1. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = AufGKon.Geb_Cd NO-LOCK. i1 = AufGKon.Ausgang. IF AufGKon.Depot = 0 AND AufGKon.Gebuehr = 0 THEN dBetrag = GebKonto.Depot + GebKonto.Gebuehr. ELSE dBetrag = AufGKon.Depot + AufGKon.Gebuehr. Rundbetr = i1 * dBetrag. VWC = AufGKon.MWSt_Cd. VZTot = VZTot + Rundbetr. cDaten = GebKonto.Bez. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cDaten ). excelAppl:ActiveCell:HorizontalAlignment = -4131. cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>9")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(dBetrag,"->>>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(Rundbetr,"->>>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(VWC,"z9")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J', INPUT ExZeile, INPUT cDaten ). i5 = i5 + 1. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = VWC AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9990 AND TUmsGrp.Mwst = MWSTAns.Ansatz NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = 9990 TUmsGrp.Mwst = MWSTAns.Ansatz TUmsGrp.Bez = 'Gebinde-Kosten'. END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Rundbetr. END. IF i5 > 0 THEN lTotal = TRUE. IF lTotal THEN DO: ExZeile = ExZeile + 2. cDaten = TRIM(SUBSTRING(FormText[11],21,20)). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cDaten ). excelAppl:ActiveCell:HorizontalAlignment = -4131. cDaten = TRIM(STRING(VZTot,"->>>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). VFak_Betr = VFak_Betr + VZTot. END. IF NOT FSamm THEN DO: ExZeile = ExZeile + 2. cDaten = TRIM(SUBSTRING(FormText[15],21,20)). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(VFak_Betr,"->>>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_MEHRWERTSTEUER C-Win PROCEDURE EXCEL_MEHRWERTSTEUER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. VWpfl = 0. VWust = 0. Zuszz = 0. DO ix = 1 TO 11: IF BAufko.WPfl[ix] = 0 THEN NEXT. VWpfl[ix] = BAufko.Wpfl[ix]. VWust[ix] = BAufko.Wust[ix]. END. ExZeile = ExZeile + 1. DO ix = 1 TO 11: IF VWpfl[ix] = 0 THEN NEXT. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = ix AND MWSTAns.Datum <= BAUfko.Kond_Datum NO-LOCK. ExZeile = ExZeile + 1. cDaten = MWSTAns.Bez. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cDaten ). excelAppl:ActiveCell:HorizontalAlignment = -4131. cDaten = TRIM(STRING(VWpfl[ix],"->>,>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(VWust[ix],"->>,>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(ix,"z9")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J', INPUT ExZeile, INPUT cDaten ). VFak_Betr = VFak_Betr + VWust[ix]. END. Rundbetr = VFak_Betr. Rundcode = 1. RUN "v8/runden.p". VFak_Betr = Rundbetr. ExZeile = ExZeile + 2. cDaten = TRIM(FormText[16]). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cDaten ). excelAppl:ActiveCell:HorizontalAlignment = -4131. cDaten = TRIM(STRING(VFak_Betr,"->>,>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_OFFERTE C-Win PROCEDURE EXCEL_OFFERTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE io AS LOG NO-UNDO. DEFINE VARIABLE ODatei AS CHARACTER NO-UNDO. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. DEFINE VARIABLE ExZelle AS CHARACTER NO-UNDO. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN RETURN NO-APPLY. oDatei = "Offerte_OSWALD.xls" + CHR(01) + "Offerte_OSWALD.xls". RUN CREATEDATEI ( INPUT oDatei ). oDatei = SESSION:TEMP-DIR + "Offerte_OSWALD.xls". RUN OPENEXCEL ( INPUT excelAppl, INPUT oDatei, INPUT '', OUTPUT io ). IF NOT io THEN DO: RUN RELEASEEXCEL ( INPUT excelAppl ). RETURN NO-APPLY. END. FIND BAufko WHERE RECID(BAufko) = CRecid NO-LOCK NO-ERROR. VFak_Betr = 0. LiKopf = FALSE. FPreis = TRUE. FBetrag = TRUE. FRabatt = TRUE. FSamm = FALSE. ExZeile = 5. VKopfArt = 'EXCEL_KOPF'. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. XTelnr = ''. IF DebInkl THEN DO: IF Adresse.Tel-2 <> '' THEN XTelnr = Adresse.Tel-2. ELSE XTelnr = Adresse.Tel-1. END. ELSE DO: IF Adresse.Tel-1 <> '' THEN XTelnr = Adresse.Tel-1. ELSE XTelnr = Adresse.Tel-2. END. F_Seite = VSeite. F_Faknr = BAufko.Aufnr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. VZeile = ''. IF BAufko.Adresse[05] <> '' THEN DO: DO ix = 1 TO 5: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT BAufko.Adresse[ix] ). ExZeile = ExZeile + 1. END. END. ELSE DO: DO ix = 7 TO 11: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'D', INPUT ExZeile, INPUT Adresse.Anschrift[ix] ). ExZeile = ExZeile + 1. END. END. cDaten = STRING(TODAY,'99.99.9999'). ExZeile = ExZeile + 2. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'B', INPUT ExZeile, INPUT cDaten ). ExZeile = ExZeile + 3. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT STRING(bAufko.Aufnr,'>999999') ). ExZeile = ExZeile + 2. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT BAufko.U_Ref ). ExZeile = 21. ZEILEN: FOR EACH tAufze NO-LOCK BY tAufze.Aufnr BY tAufze.Sort1 BY tAufze.Sort2 BY tAufze.Sort3 BY tAufze.Artnr BY tAufze.Inhalt BY tAufze.Jahr BY tAufze.Pos : FIND Aufze WHERE RECID(Aufze) = tAufze.Zeile NO-LOCK. RUN EXCEL_ARTIKELZEILE ( RECID(tAufze), INPUT-OUTPUT ExZeile ). ExZeile = ExZeile + 1. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. ExZeile = ExZeile + 1. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT FormText[13] ). excelAppl:ActiveCell:HorizontalAlignment = -4131. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, TRIM(STRING(VFak_Betr,"->>>>9.99")) ). RUN EXCEL_SUMMENRABATTE. RUN GEBINDE_SALDO. RUN EXCEL_GEBINDE_ABRECHNUNG. RUN EXCEL_MEHRWERTSTEUER. ExZeile = ExZeile + 2. FIND Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BAufko.Kond AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF AVAILABLE Kondi THEN DO: RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, Kondi.Kotext ). excelAppl:ActiveCell:HorizontalAlignment = -4131. END. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_SUMMENRABATTE C-Win PROCEDURE EXCEL_SUMMENRABATTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE RText AS CHARACTER FORMAT "x(20)" NO-UNDO. DEFINE VARIABLE WText AS CHARACTER NO-UNDO. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. DEFINE VARIABLE lTotal AS LOG NO-UNDO. /* Auftragsrabatt ---------------------------------------------------- */ lTotal = FALSE. i5 = 0. FOR EACH TRabSumm WHERE TRabSumm.Auf_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Auf_Rab. VFak_Betr = VFak_Betr - Rundbetr. IF NOT FRabatt THEN NEXT. IF i5 = 0 THEN ExZeile = ExZeile + 2. ELSE ExZeile = ExZeile + 1. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ. IF AufRabSu.F_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufRabSu.F_Wert). cDaten = RText + " " + TRabSumm.Bez + " " + STRING(RabWert,"z9.99- ") + WText. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cDaten ). excelAppl:ActiveCell:HorizontalAlignment = -4131. cDaten = STRING(- Rundbetr,"->>>>9.99"). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). i5 = i5 + 1. END. IF i5 > 0 THEN lTotal = TRUE. /* Abholrabatt ------------------------------------------------------- */ i5 = 0. FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Abh_Rab. VFak_Betr = VFak_Betr - Rundbetr. IF NOT FRabatt THEN NEXT. IF i5 = 0 THEN ExZeile = ExZeile + 2. ELSE ExZeile = ExZeile + 1. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ. IF AufRabSu.A_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufRabSu.A_Wert). cDaten = RText + " " + TRabSumm.Bez + " " + STRING(RabWert,"z9.99- ") + WText. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cDaten ). excelAppl:ActiveCell:HorizontalAlignment = -4131. cDaten = STRING(- Rundbetr,"->>>>9.99"). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). i5 = i5 + 1. END. IF i5 > 0 THEN lTotal = TRUE. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */ i5 = 0. FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0 BY TSpeRab.Rab_Grp: Rundbetr = TSpeRab.Auf_Betr. VFak_Betr = VFak_Betr - Rundbetr. IF NOT FRabatt THEN NEXT. IF i5 = 0 THEN ExZeile = ExZeile + 2. ELSE ExZeile = ExZeile + 1. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'ARABGRP' AND Tabel.CodeC = '' AND Tabel.CodeI = TSpeRab.Rab_Grp AND Tabel.Sprcd = 1 NO-LOCK. FIND FIRST AufSpRab USE-INDEX AufSpRab-k1 WHERE AufSpRab.Firma = BAufko.Firma AND AufSpRab.Aufnr = BAufko.Aufnr AND AufSpRab.Rab_Grp = TSpeRab.Rab_Grp NO-LOCK. IF AufSpRab.Auf_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufSpRab.Auf_Wert). cDaten = RText + " " + TRabSumm.Bez + " " + STRING(RabWert,"z9.99- ") + WText. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cDaten ). excelAppl:ActiveCell:HorizontalAlignment = -4131. cDaten = STRING(- Rundbetr,"->>>>9.99"). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). i5 = i5 + 1. END. IF i5 > 0 THEN lTotal = TRUE. IF lTotal THEN DO: ExZeile = ExZeile + 1. cDaten = TRIM(SUBSTRING(FormText[14],21,20)). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cDaten ). excelAppl:ActiveCell:HorizontalAlignment = -4131. cDaten = TRIM(STRING(VFak_Betr,"->>>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). END. /* Recycling-Gebühren ------------------------------------------------ */ lTotal = FALSE. i5 = 0. FOR EACH AufGKon USE-INDEX AufGKon-k1 WHERE AufGKon.Firma = BAufko.Firma AND AufGKon.Aufnr = BAufko.Aufnr AND AufGKon.Gebuehr <> 0 AND AufGKon.Betrag <> 0 NO-LOCK: VFak_Betr = VFak_Betr + AufGKon.Betrag. IF NOT FRabatt THEN NEXT. IF i5 = 0 THEN ExZeile = ExZeile + 2. ELSE ExZeile = ExZeile + 1. VWC = AufGKon.MWSt_Cd. FIND GebKonto OF AufGKon NO-LOCK NO-ERROR. IF NOT AVAILABLE GebKonto THEN cDaten = TRIM(SUBSTRING(FormText[11],41,20)). ELSE cDaten = GebKonto.Bez. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cDaten ). excelAppl:ActiveCell:HorizontalAlignment = -4131. cDaten = TRIM(STRING(AufGKon.Ausgang,"->>>>>9")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'H', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(AufGKon.Betrag,"->>>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). cDaten = TRIM(STRING(AufGKon.MWSt_Cd ,"z9")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'J', INPUT ExZeile, INPUT cDaten ). FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = VWC AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9991 AND TUmsGrp.Mwst = MWSTAns.Ansatz NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = 9991 TUmsGrp.Mwst = MWSTAns.Ansatz TUmsGrp.Bez = 'Recycling-Gebühren'. END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag. i5 = i5 + 1. END. IF i5 > 0 THEN lTotal = TRUE. IF lTotal THEN DO: ExZeile = ExZeile + 1. cDaten = TRIM(SUBSTRING(FormText[14],21,20)). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'C', INPUT ExZeile, INPUT cDaten ). excelAppl:ActiveCell:HorizontalAlignment = -4131. cDaten = TRIM(STRING(VFak_Betr,"->>>>9.99")). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'I', INPUT ExZeile, INPUT cDaten ). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA C-Win PROCEDURE FAKTURA : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VSeite = 0. VFak_Betr = 0. LiKopf = TRUE. FPreis = TRUE. FBetrag = TRUE. FRabatt = TRUE. FUeber = TRUE. FSamm = FALSE. VKopfArt = 'FAKTURA_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. { v8/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. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. VZeile = FILL(cWag, StBreite). { v8/putstream.i "1" } SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)). SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } LiKopf = FALSE. RUN SUMMENRABATTE. { v8/putstream.i "1" } RUN GEBINDE_SALDO. RUN GEBINDE_ABRECHNUNG. RUN MEHRWERTSTEUER. SUBSTRING(VZeile,083) = '=========='. { v8/putstream.i "2" } FUeber = FALSE. RUN ZAHLUNGSKONDITION. RUN UMSATZVERTEILUNG. RUN KOPF_MUTATION. Rundbetr = VFak_Betr. VesrKnr = BAufko.Fak_Knr. VesrFnr = BAufko.Faknr. IF VBesr = 2 THEN RUN VESR_DRUCK02. ELSE RUN VESR_DRUCK. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTURA_KOPF C-Win PROCEDURE FAKTURA_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN NEUE_SEITE. IF VSeite = 1 THEN DO: IF Laser THEN DO: VZeile = DruckInit + SchriftInit. CASE Schacht: WHEN 1 THEN VZeile = VZeile + Schacht1. WHEN 2 THEN VZeile = VZeile + Schacht2. WHEN 3 THEN VZeile = VZeile + Schacht3. WHEN 4 THEN VZeile = VZeile + Schacht4. END CASE. PUT STREAM Out_Stream CONTROL VZeile. END. RUN PP_DRUCKEN. IF SFaknr = 0 THEN DO: SFaknr = BAufko.Faknr. REPEAT WHILE SFaknr = 0 TRANSACTION: RUN "v8/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 = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. 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 = ''. { v8/putstream.i BLiDruck.Listkzz }. IF BAufko.Adresse[05] <> '' THEN DO: DO ix = 1 TO 5: SUBSTRING(VZeile,053) = BAufko.Adresse[ix]. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. END. ELSE DO: DO ix = 7 TO 11: SUBSTRING(VZeile,053) = Adresse.Anschrift[ix]. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. END. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20)) + STRING(SFaknr,"z999999") + " /" + STRING(VSeite,"zz9"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20)) + " " + BSteuer.MWST_Nr. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). { v8/putstream.i "2" } DO WHILE VSeite = 1. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20)) + " " + BAufko.I_Best. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20)) + " " + STRING(BAufko.Aufnr,"9999999"). SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + STRING(BAufko.Auf_Datum,"99.99.9999"). SUBSTRING(VZeile,071) = TRIM(SUBSTRING(FormText[08],01,20)) + " " + STRING(BAufko.Fak_Knr,"9999999"). { v8/putstream.i "2" } XAuf_Text = BAufko.Auf_Text. i1 = INDEX(XAuf_Text, CHR(10)). i2 = 0. DO WHILE i1 > 0: SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1). { v8/putstreamf.i "1" } XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1). i1 = INDEX(XAuf_Text, CHR(10)). i2 = i2 + 1. END. IF XAuf_Text <> '' THEN DO: SUBSTRING(VZeile,001) = XAuf_Text. { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. XAuf_Text = BAufko.Abh_Text. i1 = INDEX(XAuf_Text, CHR(10)). i2 = 0. DO WHILE i1 > 0: SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1). { v8/putstreamf.i "1" } XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1). i1 = INDEX(XAuf_Text, CHR(10)). i2 = i2 + 1. END. IF XAuf_Text <> '' THEN DO: SUBSTRING(VZeile,001) = XAuf_Text. { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. LEAVE. END. IF LiKopf THEN DO: SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. StBreite = LENGTH(VZeile). { v8/putstream.i "1" } END. ELSE DO: { v8/putstream.i "1" } END. IF VSeite > 1 AND FUeber = TRUE THEN DO: SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)). SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "2" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_ABRECHNUNG C-Win PROCEDURE GEBINDE_ABRECHNUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ Zuszz = 0. FOR EACH 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 + 2. Ja = TRUE. END. IF (BLiDruck.Listtzz - VLine - Zuszz) <= BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. i5 = 0. VZTot = 0. IF Ja THEN DO: SUBSTRING(VZeile,001) = FormText[12]. SUBSTRING(VZeile,071) = FormText[13]. { v8/putstreamf.i "1" } END. FOR EACH 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,004) = GebKonto.Bez. SUBSTRING(VZeile,035) = STRING(AufGKon.Ausgang,"->>,>>9"). SUBSTRING(VZeile,045) = STRING(AufGKon.Eingang,"->>,>>9"). SUBSTRING(VZeile,055) = STRING(i1 ,"->>,>>9"). SUBSTRING(VZeile,065) = STRING(Rundbetr ,"->>,>>9.99"). SUBSTRING(VZeile,094) = STRING(VWC ,"z9"). { v8/putstream.i "1" } i5 = i5 + 1. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = VWC AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9990 AND TUmsGrp.Mwst = MWSTAns.Ansatz NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = 9990 TUmsGrp.Mwst = MWSTAns.Ansatz TUmsGrp.Bez = 'Gebinde-Kosten'. END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + Rundbetr. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[11],21,20)). SUBSTRING(VZeile,083) = STRING(VZTot,"->>,>>9.99"). { v8/putstream.i "1" } VFak_Betr = VFak_Betr + VZTot. END. IF NOT FSamm THEN DO: SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026). { v8/putstream.i "1" } SUBSTRING(VZeile,027) = TRIM(SUBSTRING(FormText[15],21,20)). SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026). { v8/putstream.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_LIEFERUNG C-Win PROCEDURE GEBINDE_LIEFERUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ Zuszz = 0. FOR EACH TGebKto NO-LOCK: Zuszz = Zuszz + 1. END. IF Zuszz > 0 THEN Zuszz = Zuszz + 2. Zuszz = (Zuszz + 1) / 2. IF (BLiDruck.Listtzz - VLine - Zuszz) <= BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. i5 = 0. VZTot = 0. SUBSTRING(VZeile,001) = BDrucker.DruUnterB + TRIM(SUBSTRING(FormText[10],01,20)) + BDrucker.DruUnterE. { v8/putstream.i "2" } i1 = 1. i2 = 0. FOR EACH TGebKto BY TGebKto.Sort_Cd BY TGebKto.Geb_Cd : i2 = i2 + 1. IF i2 MOD 2 = 0 THEN i1 = 41. ELSE i1 = 01. SUBSTRING(VZeile,i1) = STRING(TGebKto.A_Anz,"->>>>9") + " " + STRING(TGebKto.Bez,"x(30)"). IF i1 > 30 THEN DO: { v8/putstream.i "1" } i5 = i5 + 1. END. END. IF VZeile <> '' THEN DO: { v8/putstream.i "1" } i5 = i5 + 1. END. IF i5 > 0 THEN DO: { v8/putstream.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_RUECKNAHME_TABELLE C-Win PROCEDURE GEBINDE_RUECKNAHME_TABELLE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cTextArt AS CHARACTER NO-UNDO. cTextArt = 'GEBINDERETOUR' + STRING(FakArt,'99'). VTabTexte = ''. 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 DO: cTextArt = 'GEBINDERETOUR00'. FIND TabTexte NO-LOCK USE-INDEX TabTexte-k1 WHERE TabTexte.Firma = GVFirma AND TabTexte.TextArt = cTextArt AND TabTexte.Sprcd = LVSprcd NO-ERROR. END. 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 WHILE TRUE: ix = INDEX(VTabTexte, CHR(10)). IF ix = 0 THEN DO: VZeile = VTabTexte. LEAVE. END. VZeile = SUBSTRING(VTabTexte,01,ix - 1). VTabTexte = SUBSTRING(VTabTexte,ix + 1). { v8/putstream.i "1" }. END. IF VZeile <> '' THEN DO: { v8/putstream.i "1" }. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_SALDO C-Win PROCEDURE GEBINDE_SALDO : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FOR EACH 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 INITIALISIERUNG C-Win PROCEDURE INITIALISIERUNG : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE VProgName AS CHARACTER NO-UNDO. DEFINE VARIABLE VListnr AS INTEGER NO-UNDO. DEFINE VARIABLE cTemplate AS CHARACTER NO-UNDO. DEFINE BUFFER aTabel FOR Tabel. FIND FIRST tParam. cUser = tParam.cBenutzer. REPEAT TRANSACTION ON ERROR UNDO, LEAVE: FIND bAufko NO-LOCK WHERE bAufko.Firma = tParam.cFirma AND bAufko.Aufnr = tParam.iAufnr NO-ERROR. /* IF bAufko.AlsOfferte THEN */ /* DO: */ /* FIND LAST Tabel NO-LOCK USE-INDEX Tabel-k1 */ /* WHERE Tabel.Firma = GVFirma */ /* AND Tabel.RecArt = 'AUFDRUCK' */ /* AND Tabel.CodeC = cUser NO-ERROR. */ /* IF AVAILABLE Tabel THEN i1 = Tabel.CodeI + 1.*/ /* ELSE i1 = 1. */ /* CREATE Tabel. */ /* ASSIGN */ /* Tabel.Firma = GVFirma */ /* Tabel.RecArt = 'AUFDRUCK' */ /* Tabel.CodeC = cUser */ /* Tabel.CodeI = i1 */ /* Tabel.Sprcd = 1 */ /* Tabel.Int_1 = 0 */ /* Tabel.Int_2 = 0 */ /* Tabel.Int_3 = INTEGER(RECID(bAufko)) */ /* Tabel.Dec_1 = 0 */ /* Tabel.Dec_2 = 0 */ /* Tabel.Dec_3 = 0 */ /* Tabel.Bez1 = '' */ /* Tabel.Bez2 = tParam.cDokument */ /* Tabel.BezL = '' */ /* */ /* cRecid = RECID(bAufko) */ /* TRecid = RECID(Tabel). */ /* LEAVE. */ /* END. */ FIND aTabel NO-LOCK USE-INDEX Tabel-k1 WHERE aTabel.Firma = GVFirma AND aTabel.RecArt = 'FAKART' AND aTabel.CodeC = '' AND aTabel.CodeI = bAufko.Fak_Art AND aTabel.Sprcd = 1 NO-ERROR. IF NOT AVAILABLE aTabel THEN RETURN. . LVCodeC = aTabel.Bez2. cTemplate = aTabel.Bez2. FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1 WHERE HilfsTab.Firma = cFirma AND HilfsTab.Sort_1 = tParam.cBenutzer AND HilfsTab.Sort_2 = cTemplate NO-ERROR. IF NOT AVAILABLE HilfsTab THEN DO: FIND FIRST HilfsTab NO-LOCK USE-INDEX HilfsTab-k1 WHERE HilfsTab.Firma = cFirma AND HilfsTab.Sort_1 = '' AND HilfsTab.Sort_2 = cTemplate NO-ERROR. END. IF NOT AVAILABLE HilfsTab THEN RETURN 'NOK'. FIND bSchrift NO-LOCK WHERE bSchrift.Schname = HilfsTab.Zeichen_1 AND bSchrift.Schbild = HilfsTab.Zeichen_2 NO-ERROR. FIND bDrucker NO-LOCK WHERE bDrucker.Drucker = bSchrift.Schdru NO-ERROR. /* VTemp = SUBSTITUTE('&1%2-&3.txt', SESSION:TEMP-DIRECTORY,*/ /* tParam.Template, */ /* STRING(TIME,'999999') ). */ VProgname = TRIM(cUser) + '!AUFTRAG'. FIND FIRST Listen USE-INDEX Listen-k1 WHERE Listen.Firma = GVFirma AND Listen.Progname = VProgname AND Listen.Listfl = '' NO-ERROR. IF NOT AVAILABLE Listen THEN DO: FIND LAST Listen USE-INDEX Listen-k1 WHERE Listen.Firma = GVFirma NO-LOCK NO-ERROR. IF AVAILABLE Listen THEN VListnr = Listen.Listnr + 1. ELSE VListnr = 1. CREATE Listen. ASSIGN Listen.Firma = GVFirma Listen.Listnr = VListnr Listen.Progname = VProgname Listen.Listfl = '' Listen.Jahr = YEAR(TODAY) Listen.Sprcd = GVSprcd Listen.Sort = 1 Listen.ProgWahl = 1. END. Listen.Listfl = 'A'. FIND LiDruck USE-INDEX LiDruck-k1 WHERE LiDruck.Firma = GVFirma AND LiDruck.Listnr = Listen.Listnr AND LiDruck.ProgWahl = Listen.ProgWahl NO-ERROR. IF NOT AVAILABLE LiDruck THEN DO: CREATE LiDruck. ASSIGN LiDruck.Firma = GVFirma LiDruck.Listnr = Listen.Listnr LiDruck.ProgWahl = Listen.ProgWahl LiDruck.Listprog = 'AUFTRAG' + STRING(Listen.ProgWahl,'99') LiDruck.ListCopy = 1 LiDruck.Schacht = 0 LiDruck.Listlq = FALSE. END. ASSIGN LiDruck.ListDru = HilfsTab.Zeichen_1 LiDruck.ListBild = HilfsTab.Zeichen_2 LiDruck.Listtzz = HilfsTab.Zahl[01] LiDruck.Listkzz = HilfsTab.Zahl[02] LiDruck.Listfzz = HilfsTab.Zahl[03] LiDruck.ListCopy = HilfsTab.Zahl[04] LiDruck.Schacht = HilfsTab.Zahl[05] VBesr = HilfsTab.Zahl[07] Schacht = HilfsTab.Zahl[08]. IF LiDruck.ListCopy = 0 THEN LiDruck.ListCopy = 1. FIND LAST Tabel NO-LOCK USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'AUFDRUCK' AND Tabel.CodeC = cUser NO-ERROR. IF AVAILABLE Tabel THEN i1 = Tabel.CodeI + 1. ELSE i1 = 1. CREATE Tabel. ASSIGN Tabel.Firma = GVFirma Tabel.RecArt = 'AUFDRUCK' Tabel.CodeC = cUser Tabel.CodeI = i1 Tabel.Sprcd = 1 Tabel.Int_1 = INTEGER(RECID(Listen)) Tabel.Int_2 = INTEGER(RECID(LiDruck)) Tabel.Int_3 = INTEGER(RECID(bAufko)) Tabel.Dec_1 = DECIMAL(VBesr) Tabel.Dec_2 = INTEGER(RECID(HilfsTab)) Tabel.Dec_3 = Schacht Tabel.Bez1 = '' Tabel.Bez2 = tParam.cDokument Tabel.BezL = SUBSTITUTE('&1;&2;&3;&4', HilfsTab.Zahl[05], HilfsTab.Zahl[06], HilfsTab.Zahl[08], HilfsTab.Zahl[07]). ASSIGN TRecid = RECID(Tabel) ARecid = RECID(Listen) BRecid = RECID(LiDruck) CRecid = RECID(bAufko) . RELEASE Tabel . RELEASE Listen . RELEASE LiDruck . RELEASE HilfsTab. LEAVE. 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. Formtext[05] = REPLACE(Formtext[05], '-', cWag ). Formtext[05] = REPLACE(Formtext[05], '+', cPlus). Formtext[06] = REPLACE(Formtext[06], '-', cWag ). Formtext[06] = REPLACE(Formtext[06], '+', cPlus). 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(cSenk, Breite). SUBSTRING(RZeile,001) = STRING(' ',"x(06)"). SUBSTRING(RZeile,008) = STRING(' ',"x(03)"). SUBSTRING(RZeile,012) = STRING(' ',"x(08)"). SUBSTRING(RZeile,021) = STRING(' ',"x(05)"). SUBSTRING(RZeile,027) = STRING(' ',"x(08)"). SUBSTRING(RZeile,036) = STRING(' ',"x(35)"). SUBSTRING(RZeile,072) = STRING(' ',"x(02)"). SUBSTRING(RZeile,075) = STRING(' ',"x(07)"). SUBSTRING(RZeile,083) = STRING(' ',"x(10)"). SUBSTRING(RZeile,094) = STRING(' ',"x(02)"). RZeile = SUBSTRING(RZeile,01,StBreite). VZeile = ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK C-Win PROCEDURE LIEFERFAK : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VSeite = 0. VFak_Betr = 0. LiKopf = TRUE. FPreis = TRUE. FBetrag = TRUE. FRabatt = TRUE. FUeber = TRUE. FSamm = FALSE. VKopfArt = 'LIEFERFAK_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. { v8/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. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. VZeile = FILL(cWag, StBreite). { v8/putstream.i "1" } SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)). SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } LiKopf = FALSE. RUN SUMMENRABATTE. { v8/putstream.i "1" } RUN GEBINDE_SALDO. RUN GEBINDE_ABRECHNUNG. RUN MEHRWERTSTEUER. { v8/putstream.i "1" } SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[18],21,20)). SUBSTRING(VZeile,083) = "__________". { v8/putstreamf.i "2" } SUBSTRING(VZeile,050) = TRIM(SUBSTRING(FormText[18],41,20)). SUBSTRING(VZeile,083) = "__________". { v8/putstreamf.i "2" } RUN GEBINDE_RUECKNAHME_TABELLE. RUN KOPF_MUTATION. Rundbetr = 0. VesrKnr = BAufko.Fak_Knr. VesrFnr = BAufko.Faknr. IF VBesr = 2 THEN RUN VESR_DRUCK02. ELSE RUN VESR_DRUCK. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERFAK_KOPF C-Win PROCEDURE LIEFERFAK_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN NEUE_SEITE. IF VSeite = 1 THEN DO: IF Laser THEN DO: VZeile = DruckInit + SchriftInit. CASE Schacht: WHEN 1 THEN VZeile = VZeile + Schacht1. WHEN 2 THEN VZeile = VZeile + Schacht2. WHEN 3 THEN VZeile = VZeile + Schacht3. WHEN 4 THEN VZeile = VZeile + Schacht4. END CASE. PUT STREAM Out_Stream CONTROL VZeile. END. IF SFaknr = 0 THEN DO: SFaknr = BAufko.Faknr. REPEAT WHILE SFaknr = 0 TRANSACTION: RUN "v8/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 = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. 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 = ''. { v8/putstream.i BLiDruck.Listkzz }. IF BAufko.Adresse[05] <> '' THEN DO: DO ix = 1 TO 5: SUBSTRING(VZeile,053) = BAufko.Adresse[ix]. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. END. ELSE DO: DO ix = 7 TO 11: SUBSTRING(VZeile,053) = Adresse.Anschrift[ix]. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. END. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20)) + STRING(SFaknr,"z999999") + " /" + STRING(VSeite,"zz9"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20)) + " " + BSteuer.MWST_Nr. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). { v8/putstream.i "2" } DO WHILE VSeite = 1. RUN ABLADEVORSCHRIFT. RUN VERSANDART. RUN CHAUFFEUR. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20)) + " " + BAufko.I_Best. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],21,20)) + STRING(BAufko.Gewicht,"zzz,zz9.999-"). { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + STRING(BAufko.Auf_Datum,"99.99.9999"). SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[08],01,20)) + STRING(BAufko.Knr,"zz999999"). SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],41,20)) + " " + XTelnr. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[09],21,20)) + " " + STRING(BAufko.Lief_Datum,"99.99.9999"). SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[09],01,20)) + " " + XVersand. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20)) + " " + STRING(BAufko.Aufnr,"9999999"). SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[22],01,20)) + " " + XChauffeur. { v8/putstream.i "2" } IF XAblade <> '' THEN DO: SUBSTRING(VZeile,001) = XAblade. { v8/putstreamf.i "2" } END. XAuf_Text = BAufko.Auf_Text. i1 = INDEX(XAuf_Text, CHR(10)). i2 = 0. DO WHILE i1 > 0: SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1). { v8/putstreamf.i "1" } XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1). i1 = INDEX(XAuf_Text, CHR(10)). i2 = i2 + 1. END. IF XAuf_Text <> '' THEN DO: SUBSTRING(VZeile,001) = XAuf_Text. { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. XAuf_Text = BAufko.Abh_Text. i1 = INDEX(XAuf_Text, CHR(10)). i2 = 0. DO WHILE i1 > 0: SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1). { v8/putstreamf.i "1" } XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1). i1 = INDEX(XAuf_Text, CHR(10)). i2 = i2 + 1. END. IF XAuf_Text <> '' THEN DO: SUBSTRING(VZeile,001) = XAuf_Text. { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. LEAVE. END. IF LiKopf THEN DO: SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. { v8/putstream.i "1" } END. ELSE DO: { v8/putstream.i "1" } END. IF VSeite > 1 AND FUeber = TRUE THEN DO: SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)). SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "2" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERPREIS C-Win PROCEDURE LIEFERPREIS : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VSeite = 0. VFak_Betr = 0. LiKopf = TRUE. FPreis = TRUE. FBetrag = FALSE. FRabatt = FALSE. FSamm = FALSE. VKopfArt = 'LIEFERSCHEIN_KOPF'. RUN VALUE(VKopfArt). FOR EACH 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. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. VZeile = FILL(cWag, StBreite). { v8/putstream.i "2" } LiKopf = FALSE. RUN GEBINDE_SALDO. RUN GEBINDE_LIEFERUNG. RUN GEBINDE_RUECKNAHME_TABELLE. RUN KOPF_MUTATION. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIEFERSCHEIN C-Win PROCEDURE LIEFERSCHEIN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VSeite = 0. VFak_Betr = 0. LiKopf = TRUE. FPreis = FALSE. FBetrag = FALSE. FRabatt = FALSE. FSamm = FALSE. VKopfArt = 'LIEFERSCHEIN_KOPF'. RUN VALUE(VKopfArt). FOR EACH 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. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. VZeile = FILL(cWag, StBreite). { v8/putstream.i "2" } LiKopf = FALSE. RUN GEBINDE_SALDO. RUN GEBINDE_LIEFERUNG. RUN GEBINDE_RUECKNAHME_TABELLE. 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: ------------------------------------------------------------------------------*/ RUN NEUE_SEITE. IF VSeite = 1 THEN DO: IF Laser THEN DO: VZeile = DruckInit + SchriftInit. CASE Schacht: WHEN 1 THEN VZeile = VZeile + Schacht1. WHEN 2 THEN VZeile = VZeile + Schacht2. WHEN 3 THEN VZeile = VZeile + Schacht3. WHEN 4 THEN VZeile = VZeile + Schacht4. END CASE. PUT STREAM Out_Stream CONTROL VZeile. END. 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}. VZeile = ''. { v8/putstream.i BLiDruck.Listkzz }. IF BAufko.Adresse[05] <> '' THEN DO: DO ix = 1 TO 5: SUBSTRING(VZeile,053) = BAufko.Adresse[ix]. IF ix = 5 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. END. ELSE DO: DO ix = 7 TO 11: SUBSTRING(VZeile,053) = Adresse.Anschrift[ix]. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. END. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20)) + STRING(BAufko.Aufnr,"z999999") + " /" + STRING(VSeite,"zz9"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20)) + " " + BSteuer.MWST_Nr. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20)) + " " + STRING(FDatum,"99.99.9999"). { v8/putstream.i "2" } DO WHILE VSeite = 1. RUN ABLADEVORSCHRIFT. RUN VERSANDART. RUN CHAUFFEUR. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],21,20)) + " " + BAufko.I_Best. SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],21,20)) + STRING(BAufko.Gewicht,"zzz,zz9.999-"). { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + STRING(BAufko.Auf_Datum,"99.99.9999"). SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[08],01,20)) + STRING(BAufko.Knr,"zz999999"). SUBSTRING(VZeile,061) = TRIM(SUBSTRING(FormText[08],41,20)) + " " + XTelnr. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[09],21,20)) + " " + STRING(BAufko.Lief_Datum,"99.99.9999"). SUBSTRING(VZeile,033) = TRIM(SUBSTRING(FormText[09],01,20)) + " " + XVersand + " / " + XChauffeur. { v8/putstream.i "2" } /* SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[22],01,20)) * + " " * + XChauffeur. * { v8/putstream.i "2" } * */ IF XAblade <> '' THEN DO: SUBSTRING(VZeile,001) = XAblade. { v8/putstreamf.i "2" } END. XAuf_Text = BAufko.Auf_Text. i1 = INDEX(XAuf_Text, CHR(10)). i2 = 0. DO WHILE i1 > 0: SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1). { v8/putstreamf.i "1" } XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1). i1 = INDEX(XAuf_Text, CHR(10)). i2 = i2 + 1. END. IF XAuf_Text <> '' THEN DO: SUBSTRING(VZeile,001) = XAuf_Text. { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. XAuf_Text = BAufko.Abh_Text. i1 = INDEX(XAuf_Text, CHR(10)). i2 = 0. DO WHILE i1 > 0: SUBSTRING(VZeile,001) = SUBSTRING(XAuf_Text,01,i1 - 1). { v8/putstreamf.i "1" } XAuf_Text = SUBSTRING(XAuf_Text,i1 + 1). i1 = INDEX(XAuf_Text, CHR(10)). i2 = i2 + 1. END. IF XAuf_Text <> '' THEN DO: SUBSTRING(VZeile,001) = XAuf_Text. { v8/putstreamf.i "1" } i2 = i2 + 1. END. IF i2 > 0 THEN DO: { v8/putstream.i "1" } END. LEAVE. END. IF LiKopf THEN DO: SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. StBreite = LENGTH(VZeile). { v8/putstream.i "1" } END. ELSE DO: { v8/putstream.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER C-Win PROCEDURE MEHRWERTSTEUER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VWpfl = 0. VWust = 0. Zuszz = 0. DO ix = 1 TO 11: IF 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 + 4. 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,027) = MWSTAns.Bez. SUBSTRING(VZeile,065) = STRING(VWpfl[ix],"->>,>>9.99"). SUBSTRING(VZeile,083) = STRING(VWust[ix],"->>,>>9.99"). SUBSTRING(VZeile,094) = STRING(ix ,"z9"). { v8/putstream.i "1" } VFak_Betr = VFak_Betr + VWust[ix]. END. Rundbetr = VFak_Betr. Rundcode = 1. RUN "v8/runden.p". VFak_Betr = Rundbetr. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026). { v8/putstream.i "1" } SUBSTRING(VZeile,027) = TRIM(FormText[16]). SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_SEITE C-Win PROCEDURE NEUE_SEITE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE A AS INTEGER NO-UNDO. DEFINE VARIABLE B AS INTEGER NO-UNDO. DO WHILE VSeite > 0: IF DOpen THEN DO: PUT STREAM Out_Stream CHR(12). LEAVE. END. A = BLiDruck.Listtzz. DO B = VLine TO A: VZNr = VZNr + 1. CREATE XTermOut. ASSIGN XTermOut.ZNr = VZNr XTermOut.Zeile = ''. END. LEAVE. END. VLine = 0. VSeite = VSeite + 1. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PP_DRUCKEN C-Win PROCEDURE PP_DRUCKEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE xz AS CHARACTER FORMAT "x(300)". DEFINE VARIABLE X AS INTEGER. DEFINE VARIABLE Y AS INTEGER. DEFINE VARIABLE XX AS INTEGER. DEFINE VARIABLE YY AS INTEGER. PUT STREAM Out_Stream CONTROL CHR(027) "*t300R". PUT STREAM Out_Stream CONTROL CHR(027) "*r1A". XX = 1340. YY = 520. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(Y) "y" STRING(X) "X". /* RAHMEN */ X = XX + 0. Y = YY + 0. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X". PUT STREAM Out_Stream CONTROL CHR(027) "*c500a1B". PUT STREAM Out_Stream CONTROL CHR(027) "*c0P". PUT STREAM Out_Stream CONTROL CHR(027) "*c5G". PUT STREAM Out_Stream CONTROL CHR(027) "*c1a100B". PUT STREAM Out_Stream CONTROL CHR(027) "*c0P". PUT STREAM Out_Stream CONTROL CHR(027) "*c5G" CHR(10). X = XX + 500. Y = YY. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X". PUT STREAM Out_Stream CONTROL CHR(027) "*c1a100B". PUT STREAM Out_Stream CONTROL CHR(027) "*c0P". PUT STREAM Out_Stream CONTROL CHR(027) "*c5G". X = XX. Y = YY + 100. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X". PUT STREAM Out_Stream CONTROL CHR(027) "*c500a1B". PUT STREAM Out_Stream CONTROL CHR(027) "*c0P". PUT STREAM Out_Stream CONTROL CHR(027) "*c5G". /* HORIZONTALLINIE */ X = XX + 0. Y = YY + 110. /* PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X". PUT STREAM Out_Stream CONTROL CHR(027) "*c900a1B". PUT STREAM Out_Stream CONTROL CHR(027) "*c0P". PUT STREAM Out_Stream CONTROL CHR(027) "*c5G". */ /* P.P. ILANZ DIE POST B-ECONOMY */ X = XX + 20. Y = YY + 85. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X". PUT STREAM Out_Stream CONTROL CHR(027) "(s20v3b1p0s4148T". PUT STREAM Out_Stream CONTROL "P.P.". X = XX + 190. Y = YY + 45. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X". PUT STREAM Out_Stream CONTROL CHR(027) "(s8v0b1p0s4148T". PUT STREAM Out_Stream CONTROL "CH-7130". X = XX + 700. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X". PUT STREAM Out_Stream CONTROL CHR(027) "(s8v0b3p0s4148T". PUT STREAM Out_Stream CONTROL "DIE POST". X = XX + 190. Y = YY + 85. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X". PUT STREAM Out_Stream CONTROL CHR(027) "(s8v0b1p0s4148T". PUT STREAM Out_Stream CONTROL "Ilanz". X = XX + 510. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(y) "y" + STRING(x) + "X". PUT STREAM Out_Stream CONTROL CHR(027) "(s8v0b3p0s4148T". PUT STREAM Out_Stream CONTROL "B-ECONOMY". /* GO AT HOME */ X = 0. Y = 0. PUT STREAM Out_Stream CONTROL CHR(027) "*p" STRING(Y) "y" STRING(X) "X". PUT STREAM Out_Stream CONTROL CHR(027) "*rB" CHR(10). PUT STREAM Out_Stream CONTROL SchriftInit. 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 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. 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. CREATE SammFak. ASSIGN SammFak.Knr = Aufko.Fak_Knr SammFak.Aufnr = Aufko.Aufnr SammFak.Samm_Nr = Aufko.Samm_Nr SammFak.RID = RECID(Aufko). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK C-Win PROCEDURE SAMMFAK : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ Zuszz = 8. LiKopf = TRUE. FPreis = TRUE. FBetrag = TRUE. FRabatt = TRUE. FUeber = FALSE. FSamm = TRUE. VKopfArt = 'SAMMFAK_KOPF'. IF (BLiDruck.Listtzz - VLine - Zuszz ) < BLiDruck.Listfzz THEN DO: TiDruck = TRUE. END. IF TiDruck THEN DO: RUN VALUE(VKopfArt). END. ELSE DO: { v8/putstream.i "2" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[17],21,20)) + " " + STRING(BAufko.Aufnr,"zzzzzzzzz9"). { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],41,20)) + " " + STRING(BAufko.Auf_Datum,"99.99.9999"). { v8/putstream.i "2" } SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. { v8/putstream.i "1" } END. 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. { v8/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. VFak_Betr = VFak_Betr + Aufze.Net_Betr. END. VZeile = FILL(cWag, StBreite). { v8/putstream.i "1" } SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[10],41,20)). SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } LiKopf = FALSE. RUN SUMMENRABATTE. { v8/putstream.i "1" } RUN GEBINDE_SALDO. RUN GEBINDE_ABRECHNUNG. DO ix = 1 TO 12: GTWpfl[ix] = GTWpfl[ix] + 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. TiDruck = FALSE. IF FLetzt THEN RUN SAMMFAK_ENDE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_ENDE C-Win PROCEDURE SAMMFAK_ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026). { v8/putstream.i "1" } SUBSTRING(VZeile,027) = TRIM(SUBSTRING(FormText[14],01,20)). SUBSTRING(VZeile,083) = STRING(GTFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026). { v8/putstream.i "1" } 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,027) = MWSTAns.Bez. SUBSTRING(VZeile,065) = STRING(GTWpfl[ix],"->>,>>9.99"). SUBSTRING(VZeile,083) = STRING(GTWust[ix],"->>,>>9.99"). SUBSTRING(VZeile,094) = STRING(ix ,"z9"). { v8/putstream.i "1" } END. Rundbetr = GTFak_Betr. Rundcode = 1. RUN "v8/runden.p". GTFak_Betr = Rundbetr. SUBSTRING(VZeile,027) = FILL(cWag, StBreite - 026). { v8/putstream.i "1" } SUBSTRING(VZeile,027) = TRIM(FormText[16]). SUBSTRING(VZeile,083) = STRING(GTFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,083) = FILL('=', StBreite - 082). { v8/putstream.i "2" } FIND Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BAufko.Kond AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF AVAILABLE Kondi THEN DO: SUBSTRING(VZeile,001) = Kondi.KoText. IF Kondi.Skonto[01] <> 0 THEN DO: Rundbetr = GTSk_Ber * Kondi.Skonto[01] / 100. Rundcode = 1. RUN "v8/runden.p". SUBSTRING(VZeile,083) = STRING(Rundbetr,"->>,>>9.99"). END. END. ELSE DO: SUBSTRING(VZeile,001) = FILL('?', 30). END. { v8/putstream.i "2" } RUN UMSATZVERTEILUNG. VZeile = CHR(12). { v8/putstream.i "1" } Rundbetr = GTFak_Betr. VesrKnr = BAufko.Fak_Knr. VesrFnr = BAufko.Faknr. IF VBesr = 2 THEN RUN VESR_DRUCK02. ELSE RUN VESR_DRUCK. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMFAK_KOPF C-Win PROCEDURE SAMMFAK_KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN NEUE_SEITE. IF VSeite = 1 THEN DO: IF Laser THEN DO: VZeile = DruckInit + SchriftInit. CASE Schacht: WHEN 1 THEN VZeile = VZeile + Schacht1. WHEN 2 THEN VZeile = VZeile + Schacht2. WHEN 3 THEN VZeile = VZeile + Schacht3. WHEN 4 THEN VZeile = VZeile + Schacht4. END CASE. PUT STREAM Out_Stream CONTROL VZeile. END. RUN PP_DRUCKEN. IF SFaknr = 0 THEN SFaknr = BAufko.Faknr. REPEAT WHILE SFaknr = 0 TRANSACTION: RUN "v8/steunr.p" ( INPUT 2, OUTPUT VFaknr ). IF RETURN-VALUE <> '' THEN NEXT. SFaknr = VFaknr. RELEASE Aufko. END. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND LDebst USE-INDEX Debst-k1 WHERE LDebst.Firma = GVFirma AND LDebst.Knr = BAufko.Knr NO-LOCK NO-ERROR. FIND FDebst USE-INDEX Debst-k1 WHERE FDebst.Firma = GVFirma AND FDebst.Knr = BAufko.Fak_Knr NO-LOCK NO-ERROR. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = LDebst.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. LVSprcd = Adresse.Sprcd. DebInkl = FALSE. IF AVAILABLE Wust THEN DebInkl = Wust.Incl. END. F_Seite = VSeite. F_Faknr = SFaknr. DISPLAY F_Seite F_Faknr WITH FRAME {&FRAME-NAME}. VZeile = ''. { v8/putstream.i BLiDruck.Listkzz }. DO ix = 6 TO 12: SUBSTRING(VZeile,056) = Adresse.Anschrift[ix]. IF ix = 11 THEN DO: { v8/putstreamf.i "1" }. END. ELSE DO: { v8/putstream.i "1" }. END. END. SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[02],01,20)) + STRING(SFaknr,"z999999") + " /" + STRING(VSeite,"zz9"). { v8/putstreamf.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[18],01,20)) + " " + BSteuer.MWST_Nr. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[07],01,20)). SUBSTRING(VZeile,012) = STRING(FDatum,"99.99.9999"). { v8/putstream.i "2" } IF VSeite = 1 THEN DO: END. DO WHILE TiDruck. SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[17],21,20)) + " " + STRING(BAufko.Aufnr,"zzzzzzzzz9"). { v8/putstream.i "1" } SUBSTRING(VZeile,001) = TRIM (SUBSTRING(FormText[07],41,20)) + " " + STRING(BAufko.Auf_Datum,"99.99.9999"). SUBSTRING(VZeile,056) = TRIM(SUBSTRING(FormText[08],01,20)) + STRING(BAufko.Fak_Knr,"zz999999"). { v8/putstream.i "2" } LEAVE. END. IF LiKopf THEN DO: SUBSTRING(VZeile,001) = FormText[03]. SUBSTRING(VZeile,071) = FormText[04]. { v8/putstream.i "1" } SUBSTRING(VZeile,001) = FormText[05]. SUBSTRING(VZeile,071) = FormText[06]. StBreite = LENGTH(VZeile). { v8/putstream.i "1" } END. ELSE DO: { v8/putstream.i "1" } END. IF VSeite > 1 AND FUeber = TRUE THEN DO: SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[09],41,20)). SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "2" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SUMMENRABATTE C-Win PROCEDURE SUMMENRABATTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ 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 + 7. 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 NO-LOCK USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ. IF AufRabSu.F_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufRabSu.F_Wert). SUBSTRING(VZeile,036) = RText + " " + TRabSumm.Bez. SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-") + WText. SUBSTRING(VZeile,083) = STRING(- Rundbetr,"->>,>>9.99"). { v8/putstream.i "1" } i5 = i5 + 1. END. /* Abholrabatt ------------------------------------------------------- */ FOR EACH TRabSumm WHERE TRabSumm.Abh_Rab <> 0 BY TRabSumm.Rab_Summ: Rundbetr = TRabSumm.Abh_Rab. VFak_Betr = VFak_Betr - Rundbetr. IF NOT FRabatt THEN NEXT. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST AufRabSu NO-LOCK USE-INDEX AufRabSu-k1 WHERE AufRabSu.Firma = BAufko.Firma AND AufRabSu.Aufnr = BAufko.Aufnr AND AufRabSu.Rab_Summ = TRabSumm.Rab_Summ. IF AufRabSu.A_Proz_Betr THEN WText = "%". ELSE WText = "Fr.". RabWert = ABSOLUT(AufRabSu.A_Wert). SUBSTRING(VZeile,036) = RText + " " + TRabSumm.Bez. SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-") + WText. SUBSTRING(VZeile,083) = STRING(- Rundbetr,"->>,>>9.99"). { v8/putstream.i "1" } i5 = i5 + 1. END. /* Spezialpreis-Auftragsrabatte ---------------------------------------- */ FOR EACH TSpeRab WHERE TSpeRab.Auf_Betr <> 0 BY TSpeRab.Rab_Grp: Rundbetr = TSpeRab.Auf_Betr. VFak_Betr = VFak_Betr - Rundbetr. IF NOT FRabatt THEN NEXT. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'ARABGRP' AND Tabel.CodeC = '' AND Tabel.CodeI = TSpeRab.Rab_Grp AND Tabel.Sprcd = 1 NO-LOCK. IF Rundbetr < 0 THEN RText = VZusText. ELSE RText = VRabText. FIND FIRST 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,036) = RText + " " + TRIM(Tabel.Bez1). SUBSTRING(VZeile,055) = STRING(RabWert,"z9.99-") + WText. SUBSTRING(VZeile,083) = STRING(- Rundbetr,"->>,>>9.99"). { v8/putstream.i "1" } i5 = i5 + 1. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[14],21,20)). SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99"). { v8/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,036) = TRIM(SUBSTRING(FormText[11],41,20)). SUBSTRING(VZeile,083) = STRING(AufGKon.Betrag ,"->>,>>9.99"). SUBSTRING(VZeile,094) = STRING(AufGKon.MWSt_Cd ,"z9"). { v8/putstream.i "1" } i5 = i5 + 1. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = VWC AND MWSTAns.Datum <= FDatum NO-LOCK NO-ERROR. FIND FIRST TUmsGrp WHERE TUmsGrp.Ums_Grp = 9991 AND TUmsGrp.Mwst = MWSTAns.Ansatz NO-ERROR. IF NOT AVAILABLE TUmsGrp THEN DO: CREATE TUmsGrp. ASSIGN TUmsGrp.Ums_Grp = 9991 TUmsGrp.Mwst = MWSTAns.Ansatz TUmsGrp.Bez = 'Recycling-Gebühren'. END. TUmsGrp.Ums_Betr = TUmsGrp.Ums_Betr + AufGKon.Betrag. END. IF i5 > 0 THEN DO: SUBSTRING(VZeile,036) = TRIM(SUBSTRING(FormText[14],41,20)). SUBSTRING(VZeile,083) = STRING(VFak_Betr,"->>,>>9.99"). { v8/putstreamf.i "1" } END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE UMSATZVERTEILUNG C-Win PROCEDURE UMSATZVERTEILUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE Total1 AS DECIMAL NO-UNDO. DEFINE VARIABLE Total2 AS DECIMAL NO-UNDO. DEFINE VARIABLE Total3 AS DECIMAL NO-UNDO. DEFINE VARIABLE Brutto AS DECIMAL NO-UNDO. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. DEFINE VARIABLE fInkl AS LOG NO-UNDO. /* RUN FIND_PREISGRUPPE ( INPUT BAufko.Preis_Grp, OUTPUT cDaten ). IF INTEGER(ENTRY(3, cDaten, CHR(01))) = 0 THEN fInkl = FALSE. ELSE fInkl = TRUE. */ fInkl = FALSE. 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 (BLiDruck.Listtzz - VLine - Zuszz) < BLiDruck.Listfzz THEN DO: RUN VALUE(VKopfArt). END. IF Ja THEN DO: SUBSTRING(VZeile,001) = TRIM(SUBSTRING(FormText[15],41,20)). { v8/putstreamf.i "1" } END. Total1 = 0. Total2 = 0. Total3 = 0. FOR EACH TUmsGrp WHERE TUmsGrp.Ums_Betr <> 0 NO-LOCK BY TUmsGrp.Ums_Grp : IF fInkl THEN Rundbetr = TUmsGrp.Ums_Betr * TUmsGrp.Mwst / (100 + TUmsGrp.Mwst). ELSE Rundbetr = TUmsGrp.Ums_Betr * TUmsGrp.Mwst / 100. IF fInkl THEN Brutto = TUmsGrp.Ums_Betr. ELSE Brutto = TUmsGrp.Ums_Betr + Rundbetr. SUBSTRING(VZeile,001) = TUmsGrp.Bez. SUBSTRING(VZeile,040) = BSteuer.Fwc03. SUBSTRING(VZeile,050) = STRING(TUmsGrp.Ums_Betr,"->>>,>>9.99"). SUBSTRING(VZeile,065) = STRING(TUmsGrp.Mwst ,"z9.99%"). SUBSTRING(VZeile,071) = STRING(Rundbetr ,"->>>,>>9.99"). SUBSTRING(VZeile,082) = STRING(Brutto ,"->>>,>>9.99"). { v8/putstream.i "1" } Total1 = Total1 + TUmsGrp.Ums_Betr. Total2 = Total2 + Rundbetr. Total3 = Total3 + Brutto. END. SUBSTRING(VZeile,050) = STRING(Total1,"->>>,>>9.99"). SUBSTRING(VZeile,071) = STRING(Total2,"->>>,>>9.99"). SUBSTRING(VZeile,082) = STRING(Total3,"->>>,>>9.99"). { v8/putstreamf.i "1" } 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)". DEFINE VARIABLE PZReferenz AS CHARACTER FORMAT "x(27)". DEFINE VARIABLE PZTNummer AS CHARACTER FORMAT "x(09)". DEFINE VARIABLE VSZeile AS CHARACTER FORMAT "x(58)". DEFINE VARIABLE VZeile AS CHARACTER FORMAT "x(58)". DEFINE VARIABLE XArt AS INTEGER. DEFINE VARIABLE XAnz AS INTEGER. DEFINE VARIABLE XBetr AS CHARACTER FORMAT "x(20)". DEFINE VARIABLE VESR_P AS CHARACTER FORMAT "x(02)". DEFINE VARIABLE VESR AS CHARACTER FORMAT "x(02)". DEFINE VARIABLE DruBetr AS DECIMAL NO-UNDO. DEFINE VARIABLE XBetrag AS CHARACTER FORMAT "x(12)" NO-UNDO. i1 = BLiDruck.Listtzz - VLine. { v8/putstream.i i1 } IF Rundbetr <= 0 THEN DruBetr = 0. ELSE DruBetr = Rundbetr. DO WHILE TRUE: PZBetrag = ''. XBetrag = ''. IF DruBetr < 0 THEN DO: PZBetrag = FILL('*', 13). PZReferenz = FILL('*', 27). PZTNummer = FILL('*', 09). XBetrag = FILL('*', 12). END. ELSE DO: IF DruBetr > 0 THEN DO: PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 "). XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999"). END. IF DruBetr = 0 THEN DO: PZBetrag = " 04 ". END. PZReferenz = "996665000000" + STRING(VesrKnr,"999999") + "0" + STRING(VesrFnr,"9999999") + " ". PZTNummer = "01000530". RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR. VVesr = "". SUBSTRING(VVesr[01],01) = "Graubündner Kantonalbank". SUBSTRING(VVesr[01],30) = "Graubündner Kantonalbank". SUBSTRING(VVesr[02],01) = "7002 Chur". SUBSTRING(VVesr[02],30) = "7002 Chur". SUBSTRING(VVesr[05],01) = "Oswald Getränke AG". SUBSTRING(VVesr[05],30) = "Oswald Getränke AG". SUBSTRING(VVesr[06],01) = "Via Santeri 76". SUBSTRING(VVesr[06],30) = "Via Santeri 76". SUBSTRING(VVesr[07],01) = "7130 Ilanz". SUBSTRING(VVesr[07],30) = "7130 Ilanz". SUBSTRING(VVesr[09],14) = "01-530-4". SUBSTRING(VVesr[09],43) = "01-530-4". SUBSTRING(VVesr[07],61) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). SUBSTRING(VVesr[11],09) = STRING(XBetrag,"XXXXXXXXXX XX"). SUBSTRING(VVesr[11],40) = STRING(XBetrag,"XXXXXXXXXX XX"). SUBSTRING(VVesr[11],61) = Adresse.Anschrift[08]. SUBSTRING(VVesr[12],61) = Adresse.Anschrift[09]. SUBSTRING(VVesr[13],61) = Adresse.Anschrift[10]. SUBSTRING(VVesr[14],61) = Adresse.Anschrift[11]. SUBSTRING(VVesr[15],61) = Adresse.Anschrift[12]. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). SUBSTRING(VVesr[13],04) = SUBSTRING(VZeile,01,14). SUBSTRING(VVesr[14],01) = SUBSTRING(VZeile,16,17). SUBSTRING(VVesr[15],01) = Adresse.Anschrift[09]. SUBSTRING(VVesr[16],01) = Adresse.Anschrift[10]. SUBSTRING(VVesr[17],01) = Adresse.Anschrift[11]. SUBSTRING(VVesr[18],01) = Adresse.Anschrift[12]. SUBSTRING(VVesr[19],27) = STRING(VSZeile,"x(53)"). SUBSTRING(VVesr[19],84) = "H". VVesr[19] = BDrucker.Dru10cpi + BDrucker.DruLQb + CHR(27) + "k" + CHR(05) + VVesr[19] + CHR(27) + "k" + CHR(30) + BDrucker.DruLQe + BDrucker.Dru12cpi. DO ix = 1 TO 19: VZeile = VVesr[ix]. { v8/putstream.i "1" } END. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VESR_DRUCK02 C-Win PROCEDURE VESR_DRUCK02 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE rRand AS INTEGER NO-UNDO. DEFINE VARIABLE xx AS INTEGER NO-UNDO. DEFINE VARIABLE yy AS INTEGER NO-UNDO. DEFINE VARIABLE zPos AS CHARACTER NO-UNDO. IF VBesr <> 2 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)". DEFINE VARIABLE PZReferenz AS CHARACTER FORMAT "x(27)". DEFINE VARIABLE PZTNummer AS CHARACTER FORMAT "x(09)". DEFINE VARIABLE VSZeile AS CHARACTER FORMAT "x(58)". DEFINE VARIABLE VZeile AS CHARACTER FORMAT "x(58)". DEFINE VARIABLE XArt AS INTEGER. DEFINE VARIABLE XAnz AS INTEGER. DEFINE VARIABLE XBetr AS CHARACTER FORMAT "x(20)". DEFINE VARIABLE VESR_P AS CHARACTER FORMAT "x(02)". DEFINE VARIABLE VESR AS CHARACTER FORMAT "x(02)". DEFINE VARIABLE DruBetr AS DECIMAL NO-UNDO. DEFINE VARIABLE XBetrag AS CHARACTER FORMAT "x(12)" NO-UNDO. FIND DTabel USE-INDEX Tabel-k1 WHERE DTabel.Firma = GVFirma AND DTabel.RecArt = 'FAKDRU' AND DTabel.CodeC = 'BESR02' AND DTabel.CodeI = 0 AND DTabel.Sprcd = 1 NO-LOCK NO-ERROR. VZeile = ''. CASE DTabel.Dec_3: WHEN 1.0 THEN VZeile = VZeile + Schacht1. WHEN 2.0 THEN VZeile = VZeile + Schacht2. WHEN 3.0 THEN VZeile = VZeile + Schacht3. WHEN 4.0 THEN VZeile = VZeile + Schacht4. END CASE. xx = 00. yy = 2345. VZeile = VZeile + CHR(27) + '*p' + STRING(yy) + 'y' + STRING(xx) + 'x' + CHR(10). i1 = 1. PUT STREAM Out_Stream CONTROL VZeile. IF Rundbetr <= 0 THEN DruBetr = 0. ELSE DruBetr = Rundbetr. DO WHILE TRUE: PZBetrag = ''. XBetrag = ''. IF DruBetr < 0 THEN DO: PZBetrag = FILL('*', 13). PZReferenz = FILL('*', 27). PZTNummer = FILL('*', 09). XBetrag = FILL('*', 12). END. ELSE DO: IF DruBetr > 0 THEN DO: PZBetrag = "01" + STRING(Rundbetr * 100,"9999999999 "). XBetrag = STRING((Rundbetr * 100),"zz,zzz,zz999"). END. IF DruBetr = 0 THEN DO: PZBetrag = " 04 ". END. PZReferenz = "996665000000" + STRING(VesrKnr,"999999") + "0" + STRING(VesrFnr,"9999999") + " ". PZTNummer = "01000530". RUN PRUEFZIFFER ( INPUT-OUTPUT PZBetrag , INPUT-OUTPUT PZReferenz, INPUT-OUTPUT PZTNummer, OUTPUT VSZeile ). END. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VesrKnr NO-LOCK NO-ERROR. VVesr = "". SUBSTRING(VVesr[01],01) = "Graubündner Kantonalbank". SUBSTRING(VVesr[01],30) = "Graubündner Kantonalbank". SUBSTRING(VVesr[02],01) = "7002 Chur". SUBSTRING(VVesr[02],30) = "7002 Chur". SUBSTRING(VVesr[05],01) = "Oswald Getränke AG". SUBSTRING(VVesr[05],30) = "Oswald Getränke AG". SUBSTRING(VVesr[06],01) = "Via Santeri 76". SUBSTRING(VVesr[06],30) = "Via Santeri 76". SUBSTRING(VVesr[07],01) = "7130 Ilanz". SUBSTRING(VVesr[07],30) = "7130 Ilanz". SUBSTRING(VVesr[09],14) = "01-530-4". SUBSTRING(VVesr[09],43) = "01-530-4". SUBSTRING(VVesr[07],65) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). SUBSTRING(VVesr[11],09) = STRING(XBetrag,"XXXXXXXXXX XX"). SUBSTRING(VVesr[11],40) = STRING(XBetrag,"XXXXXXXXXX XX"). SUBSTRING(VVesr[11],63) = Adresse.Anschrift[08]. SUBSTRING(VVesr[12],63) = Adresse.Anschrift[09]. SUBSTRING(VVesr[13],63) = Adresse.Anschrift[10]. SUBSTRING(VVesr[14],63) = Adresse.Anschrift[11]. SUBSTRING(VVesr[15],63) = Adresse.Anschrift[12]. SUBSTRING(VZeile,001) = STRING(PZReferenz,"XX XXXXX XXXXX XXXXX XXXXX XXXXX"). SUBSTRING(VVesr[13],04) = SUBSTRING(VZeile,01,14). SUBSTRING(VVesr[14],01) = SUBSTRING(VZeile,16,17). SUBSTRING(VVesr[15],01) = Adresse.Anschrift[09]. SUBSTRING(VVesr[16],01) = Adresse.Anschrift[10]. SUBSTRING(VVesr[17],01) = Adresse.Anschrift[11]. SUBSTRING(VVesr[18],01) = Adresse.Anschrift[12]. SUBSTRING(VVesr[19],25) = STRING(VSZeile,"x(53)"). xx = 09. yy = 3287. zPos = CHR(27) + '*p' + STRING(yy) + 'y' + STRING(xx) + 'x'. VVesr[19] = zPos + CHR(27) + '(1O' + CHR(27) + '(s10h0b0s0p110T' + VVesr[19]. /* + SchriftInit. */ rRand = VRand. VRand = 0. DO ix = 1 TO 19: VZeile = VVesr[ix]. IF ix < 19 THEN VZeile = VZeile + CHR(10). PUT STREAM Out_Stream CONTROL VZeile. END. xx = 0. yy = 0. zPos = CHR(27) + '*p' + STRING(yy) + 'y' + STRING(xx) + 'x' + SchriftInit. PUT STREAM Out_Stream CONTROL zPos. VRand = rRand. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WORKFILE C-Win PROCEDURE WORKFILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FIND BSchrift USE-INDEX Schrift-k1 WHERE BSchrift.Schname = BLiDruck.ListDru AND BSchrift.Schbild = BLiDruck.ListBild 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. 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 = SESSION:TEMP-DIR. 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: ------------------------------------------------------------------------------*/ FIND Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BAufko.Kond AND Kondi.Sprcd = LVSprcd NO-LOCK NO-ERROR. IF AVAILABLE Kondi THEN DO: SUBSTRING(VZeile,001) = Kondi.KoText. IF Kondi.Skonto[01] <> 0 THEN DO: Rundbetr = BAufko.Sk_Ber * Kondi.Skonto[01] / 100. IF DebInkl THEN DO: Rundcode = 1. RUN "v8/runden.p". END. SUBSTRING(VZeile,083) = STRING(Rundbetr,"->>,>>9.99"). END. END. ELSE DO: SUBSTRING(VZeile,001) = FILL('?', 30). END. { v8/putstream.i "2" } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME