&ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW /* Temp-Table and Buffer definitions */ DEFINE TEMP-TABLE XSchrift NO-UNDO LIKE Schrift. DEFINE NEW SHARED TEMP-TABLE XTermOut NO-UNDO LIKE TermOut. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS B-table-Win /*------------------------------------------------------------------------ File: Description: from BROWSER.W - Basic SmartBrowser Object Template Input Parameters: Output Parameters: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress UIB. */ /*----------------------------------------------------------------------*/ /* Create an unnamed pool to store all the widgets created by this procedure. This is a good default which assures that this procedure's triggers and internal procedures will execute in this procedure's storage, and that proper cleanup will occur on deletion of the procedure. */ CREATE WIDGET-POOL. /* *************************** Definitions ************************** */ /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEFINE VARIABLE AltSchname LIKE Schrift.Schname NO-UNDO. DEFINE VARIABLE QOpen AS LOG NO-UNDO. DEFINE VARIABLE FOpen AS LOG NO-UNDO. DEFINE VARIABLE OBreite AS INTEGER NO-UNDO. DEFINE VARIABLE cInstallation AS CHARACTER NO-UNDO. DEFINE VARIABLE VProgname AS CHARACTER NO-UNDO. DEFINE VARIABLE ARecid AS RECID INIT -1 NO-UNDO. DEFINE VARIABLE BRecid AS RECID INIT -1 NO-UNDO. DEFINE VARIABLE FInit AS LOG NO-UNDO. DEFINE VARIABLE FVerbuchen AS LOG NO-UNDO. /* ------------------------------------------------------------------------- */ DEFINE VARIABLE VZeile AS CHARACTER FORMAT "x(180)". DEFINE VARIABLE VPage AS INTEGER. DEFINE VARIABLE RRand AS INTEGER INIT 0. DEFINE VARIABLE VDatei AS CHARACTER FORMAT "x(30)". DEFINE VARIABLE VTage AS INTEGER FORMAT "99". DEFINE VARIABLE VDatum AS DATE FORMAT "99.99.9999". DEFINE VARIABLE BDatum AS DATE FORMAT "99.99.9999". DEFINE VARIABLE nDatum AS INTEGER NO-UNDO. DEFINE VARIABLE VName AS CHARACTER FORMAT "x(30)". DEFINE VARIABLE VOrt AS CHARACTER FORMAT "x(30)". DEFINE VARIABLE VTrArt AS INTEGER. DEFINE VARIABLE VTot AS DECIMAL EXTENT 10. DEFINE VARIABLE VDat AS INTEGER. DEFINE VARIABLE VAnzDat AS INTEGER. DEFINE VARIABLE VBuDat AS DATE FORMAT "99.99.9999". DEFINE VARIABLE VKonto AS CHARACTER FORMAT "x(12)". DEFINE VARIABLE VFirma AS CHARACTER FORMAT "x(08)". DEFINE VARIABLE AFirma AS CHARACTER FORMAT "x(08)". DEFINE VARIABLE VFaknr AS INTEGER. DEFINE VARIABLE VDebst AS LOG. DEFINE VARIABLE KnrPos AS INTEGER NO-UNDO. DEFINE VARIABLE FnrPos AS INTEGER NO-UNDO. DEFINE VARIABLE KnrLang AS INTEGER NO-UNDO. DEFINE VARIABLE FnrLang AS INTEGER NO-UNDO. DEFINE VARIABLE SperrDat AS DATE NO-UNDO. DEFINE VARIABLE cDrucker AS CHARACTER NO-UNDO. DEFINE VARIABLE XFakBetr AS DECIMAL. DEFINE VARIABLE XSaldo AS DECIMAL. DEFINE VARIABLE XSkBer AS DECIMAL. DEFINE VARIABLE XSkonto AS DECIMAL. DEFINE VARIABLE XFakDat AS DATE. DEFINE VARIABLE XKond AS INTEGER. DEFINE VARIABLE VSkonto AS DECIMAL. DEFINE VARIABLE VBetrag AS DECIMAL. DEFINE VARIABLE VTol AS DECIMAL. DEFINE VARIABLE VSk_Tol_Max AS DECIMAL. DEFINE VARIABLE VSk_Tol_% AS DECIMAL. DEFINE BUFFER BAdresse FOR Adresse. DEFINE BUFFER BDebst FOR Debst . DEFINE BUFFER BTabel FOR Tabel . DEFINE BUFFER CSteuer FOR Steuer . DEFINE VARIABLE VZaBetr AS DECIMAL. DEFINE VARIABLE VSkBetr AS DECIMAL. DEFINE VARIABLE XDatum AS DATE. DEFINE VARIABLE VTrNr1 AS INTEGER. DEFINE VARIABLE VTrNr2 AS INTEGER. DEFINE VARIABLE VHerk AS INTEGER. DEFINE VARIABLE VBankKto AS CHARACTER. DEFINE VARIABLE VSkoKto AS CHARACTER. DEFINE VARIABLE VDebKto AS CHARACTER. DEFINE VARIABLE VBuchtxt1 AS CHARACTER. DEFINE VARIABLE VBuchtxt2 AS CHARACTER. DEFINE VARIABLE VZahFl AS LOG. DEFINE VARIABLE FFehler AS LOG. DEFINE VARIABLE VKte AS CHARACTER. DEFINE VARIABLE VDateiName AS CHARACTER FORMAT "x(40)" NO-UNDO. DEFINE VARIABLE OKpressed AS LOG NO-UNDO. DEFINE VARIABLE zz AS INTEGER. DEFINE BUFFER BDebop FOR Debop. DEFINE BUFFER BDebza FOR Debza. DEFINE BUFFER BDebfa FOR Debfa. DEFINE VARIABLE VAntZ AS DECIMAL DECIMALS 4. DEFINE VARIABLE VAntS AS DECIMAL DECIMALS 4. DEFINE VARIABLE XTot AS DECIMAL EXTENT 12. DEFINE VARIABLE VZah AS DECIMAL EXTENT 12. DEFINE VARIABLE VSko AS DECIMAL EXTENT 12. DEFINE VARIABLE VZRes AS DECIMAL. DEFINE VARIABLE VSRes AS DECIMAL. DEFINE VARIABLE VMax AS INTEGER. DEFINE TEMP-TABLE WFile FIELD Kto1 AS CHARACTER FIELD Kto2 AS CHARACTER FIELD MWST_Cd AS INTEGER FIELD Betrag AS DECIMAL. /* ---------- Globale Variablen ---------------------------------- */ { v8/globvar.i" " " " "SHARED" } { v8/debivar.i " " " " "SHARED" } { v8/artivar.i " " " " "SHARED" } { v8/contvar.i " " " " "SHARED" } { v8/listtitv.i "NEW" "SHARED" } { incl/ttcamt054_esr.i } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartBrowser &Scoped-define DB-AWARE no &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME F-Main &Scoped-define BROWSE-NAME Br_Druckername /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES XSchrift Schrift /* Define KEY-PHRASE in case it is used by any query. */ &Scoped-define KEY-PHRASE TRUE /* Definitions for BROWSE Br_Druckername */ &Scoped-define FIELDS-IN-QUERY-Br_Druckername XSchrift.Schname &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Druckername &Scoped-define QUERY-STRING-Br_Druckername FOR EACH XSchrift WHERE ~{&KEY-PHRASE} NO-LOCK ~ ~{&SORTBY-PHRASE} &Scoped-define OPEN-QUERY-Br_Druckername OPEN QUERY Br_Druckername FOR EACH XSchrift WHERE ~{&KEY-PHRASE} NO-LOCK ~ ~{&SORTBY-PHRASE}. &Scoped-define TABLES-IN-QUERY-Br_Druckername XSchrift &Scoped-define FIRST-TABLE-IN-QUERY-Br_Druckername XSchrift /* Definitions for BROWSE Br_Schriftbild */ &Scoped-define FIELDS-IN-QUERY-Br_Schriftbild Schrift.Schbild &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Schriftbild &Scoped-define QUERY-STRING-Br_Schriftbild FOR EACH Schrift NO-LOCK ~ BY Schrift.Schbild &Scoped-define OPEN-QUERY-Br_Schriftbild OPEN QUERY Br_Schriftbild FOR EACH Schrift NO-LOCK ~ BY Schrift.Schbild. &Scoped-define TABLES-IN-QUERY-Br_Schriftbild Schrift &Scoped-define FIRST-TABLE-IN-QUERY-Br_Schriftbild Schrift /* Definitions for FRAME F-Main */ /* Standard List Definitions */ &Scoped-Define ENABLED-FIELDS Listen.VFl[1] Listen.VCh[1] Listen.ENr[1] ~ Listen.ECh[1] Listen.VDa[1] Listen.BDa[1] Listen.ENr[3] &Scoped-define ENABLED-TABLES Listen &Scoped-define FIRST-ENABLED-TABLE Listen &Scoped-Define ENABLED-OBJECTS Br_Druckername Br_Schriftbild F_Sort F_USER ~ F_TZZ F_KZZ F_FZZ F_Programm F_LQ F_Zeichen F_KOPIE F_SCHACHT Btn_Start ~ Btn_Ende S_Anzahl F_Bemerk RECT-10 RECT-11 RECT-12 RECT-13 RECT-17 &Scoped-Define DISPLAYED-FIELDS Listen.VFl[1] Listen.VCh[1] Listen.ENr[1] ~ Listen.ECh[1] Listen.VDa[1] Listen.BDa[1] Listen.ENr[3] &Scoped-define DISPLAYED-TABLES Listen &Scoped-define FIRST-DISPLAYED-TABLE Listen &Scoped-Define DISPLAYED-OBJECTS F_Sort F_USER F_TZZ F_KZZ F_FZZ F_Programm ~ F_LQ F_Zeichen F_KOPIE F_SCHACHT S_Anzahl F_Bemerk /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-1 F_Sort F_TZZ F_KZZ F_FZZ F_LQ F_KOPIE F_SCHACHT &Scoped-define List-2 Listen.VFl[1] Listen.VCh[1] Listen.ENr[1] ~ Listen.ECh[1] Listen.VDa[1] Listen.BDa[1] Listen.ENr[3] /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" B-table-Win _INLINE /* Actions: ? adm/support/keyedit.w ? ? ? */ /* STRUCTURED-DATA &BROWSE-NAME ************************** * Set attributes related to FOREIGN KEYS */ RUN set-attribute-list ( 'Keys-Accepted = "", Keys-Supplied = ""':U). /************************** */ /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Advanced Query Options" B-table-Win _INLINE /* Actions: ? adm/support/advqedit.w ? ? ? */ /* STRUCTURED-DATA &BROWSE-NAME ************************ * Set attributes related to SORTBY-OPTIONS */ RUN set-attribute-list ( 'SortBy-Options = ""':U). /************************ */ /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Ende LABEL "&Ende" SIZE 14 BY 1. DEFINE BUTTON Btn_Start LABEL "&Starten" SIZE 14 BY 1. DEFINE VARIABLE F_Bemerk AS CHARACTER FORMAT "X(256)":U VIEW-AS FILL-IN NATIVE SIZE 77 BY 1.05 BGCOLOR 10 NO-UNDO. DEFINE VARIABLE F_FZZ AS INTEGER FORMAT "999":U INITIAL 0 LABEL "Fusszeilen" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1.05 TOOLTIP "Wieviele Zeilen müssen am Ende der Seite leer bleiben" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_KOPIE AS INTEGER FORMAT "9":U INITIAL 0 LABEL "Anz. Kopien" VIEW-AS FILL-IN NATIVE SIZE 4.2 BY 1.05 TOOLTIP "Anzahl Listenkopien" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_KZZ AS INTEGER FORMAT "999":U INITIAL 0 LABEL "Kopfzeilen" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1.05 TOOLTIP "Wieviele leere Kopfzeilen müssen gedruckt werden" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_LQ AS LOGICAL FORMAT "j/n":U INITIAL NO LABEL "Schönschrift" VIEW-AS FILL-IN NATIVE SIZE 4.2 BY 1.05 TOOLTIP "Wieviele Zeilen müssen am Ende der Seite leer bleiben" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Programm AS CHARACTER FORMAT "X(20)":U INITIAL "VESREIN" LABEL "Programm" VIEW-AS FILL-IN NATIVE SIZE 25 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_SCHACHT AS INTEGER FORMAT "9":U INITIAL 0 LABEL "Schacht" VIEW-AS FILL-IN NATIVE SIZE 4.2 BY 1.05 TOOLTIP "Welcher Schacht muss angesteuer werden" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_TZZ AS INTEGER FORMAT "999":U INITIAL 0 LABEL "Zeilen" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1.05 TOOLTIP "Wieviele Zeilen hat die ganze Seite" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_USER AS CHARACTER FORMAT "X(20)":U LABEL "Benutzer" VIEW-AS FILL-IN NATIVE SIZE 25 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Zeichen AS INTEGER FORMAT "zz9":U INITIAL 0 LABEL "Anz. Zeichen" VIEW-AS FILL-IN NATIVE SIZE 6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Sort AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "Kundennummer", 1 SIZE 43.2 BY .95 NO-UNDO. DEFINE RECTANGLE RECT-10 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 47.6 BY 4.14. DEFINE RECTANGLE RECT-11 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 79.2 BY 9.43. DEFINE RECTANGLE RECT-12 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 47.6 BY 4.52. DEFINE RECTANGLE RECT-13 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 124 BY 1.81. DEFINE RECTANGLE RECT-17 EDGE-PIXELS 5 GRAPHIC-EDGE NO-FILL SIZE 131 BY 18.14. DEFINE VARIABLE S_Anzahl AS INTEGER INITIAL 0 VIEW-AS SLIDER MIN-VALUE 0 MAX-VALUE 500 HORIZONTAL TIC-MARKS BOTH FREQUENCY 20 SIZE 20.8 BY 2.76 NO-UNDO. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_Druckername FOR XSchrift SCROLLING. DEFINE QUERY Br_Schriftbild FOR Schrift SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_Druckername &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Druckername B-table-Win _STRUCTURED QUERY Br_Druckername NO-LOCK DISPLAY XSchrift.Schname COLUMN-LABEL "Drucker" FORMAT "x(50)":U WIDTH 51 /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ASSIGN NO-ROW-MARKERS SEPARATORS SIZE 55 BY 9 BGCOLOR 15 ROW-HEIGHT-CHARS .62. DEFINE BROWSE Br_Schriftbild &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Schriftbild B-table-Win _STRUCTURED QUERY Br_Schriftbild DISPLAY Schrift.Schbild FORMAT "x(30)":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 20 BY 9 BGCOLOR 15 . /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main Br_Druckername AT ROW 1.71 COL 4 Br_Schriftbild AT ROW 1.71 COL 61 Listen.VFl[1] AT ROW 16.38 COL 20 WIDGET-ID 2 LABEL "ISO 20022" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 F_Sort AT ROW 6.62 COL 86 NO-LABELS F_USER AT ROW 2.14 COL 97.8 COLON-ALIGNED NO-TAB-STOP F_TZZ AT ROW 11.71 COL 11 COLON-ALIGNED F_KZZ AT ROW 11.71 COL 32 COLON-ALIGNED F_FZZ AT ROW 11.71 COL 53 COLON-ALIGNED F_Programm AT ROW 3.24 COL 97.8 COLON-ALIGNED NO-TAB-STOP F_LQ AT ROW 11.71 COL 77 COLON-ALIGNED F_Zeichen AT ROW 4.38 COL 97.8 COLON-ALIGNED NO-TAB-STOP F_KOPIE AT ROW 11.71 COL 98 COLON-ALIGNED F_SCHACHT AT ROW 11.71 COL 115 COLON-ALIGNED Listen.VCh[1] AT ROW 13.38 COL 18 COLON-ALIGNED LABEL "Dateiname" FORMAT "x(100)" VIEW-AS FILL-IN NATIVE SIZE 42.2 BY 1 TOOLTIP "mit rechter Maustaste kann Datei gesucht werden !" BGCOLOR 15 Listen.ENr[1] AT ROW 14.38 COL 18 COLON-ALIGNED LABEL "Toleranztage" FORMAT "99" VIEW-AS FILL-IN NATIVE SIZE 5 BY 1 BGCOLOR 15 Listen.ECh[1] AT ROW 14.38 COL 41 COLON-ALIGNED LABEL "Konto" FORMAT "x(12)" VIEW-AS FILL-IN NATIVE SIZE 19.6 BY 1 BGCOLOR 15 Listen.VDa[1] AT ROW 15.38 COL 18 COLON-ALIGNED AUTO-RETURN LABEL "von - bis Datum" FORMAT "99.99.9999" VIEW-AS FILL-IN NATIVE SIZE 18.2 BY 1 BGCOLOR 15 Listen.BDa[1] AT ROW 15.38 COL 41 COLON-ALIGNED LABEL "-" FORMAT "99.99.9999" VIEW-AS FILL-IN NATIVE SIZE 18.2 BY 1 BGCOLOR 15 Listen.ENr[3] AT ROW 13.67 COL 69.2 NO-LABELS VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "Einzahlungsdatum", 0, "Ueberweisungsdatum", 1, "Guschriftsdatum", 2 SIZE 33.2 BY 2.29 Btn_Start AT ROW 13.52 COL 112 Btn_Ende AT ROW 14.67 COL 112 S_Anzahl AT ROW 15.95 COL 104.8 NO-LABELS NO-TAB-STOP F_Bemerk AT ROW 17.81 COL 18 COLON-ALIGNED NO-LABELS NO-TAB-STOP RECT-10 AT ROW 1.71 COL 83.6 RECT-11 AT ROW 1.48 COL 3 RECT-12 AT ROW 6.38 COL 83.6 RECT-13 AT ROW 11.33 COL 3.8 RECT-17 AT ROW 1.24 COL 2 WITH 1 DOWN KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 132.6 BY 19.57 TITLE "Aufbereiten der VESR-Daten ab Diskette". /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartBrowser Allow: Basic,Browse Frames: 1 Add Fields to: EXTERNAL-TABLES Other Settings: PERSISTENT-ONLY COMPILE Temp-Tables and Buffers: TABLE: XSchrift T "?" NO-UNDO Anadat Schrift TABLE: XTermOut T "NEW SHARED" NO-UNDO AnaDat TermOut END-TABLES. */ /* This procedure should always be RUN PERSISTENT. Report the error, */ /* then cleanup and return. */ IF NOT THIS-PROCEDURE:PERSISTENT THEN DO: MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U VIEW-AS ALERT-BOX ERROR BUTTONS OK. RETURN. END. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW /* DESIGN Window definition (used by the UIB) CREATE WINDOW B-table-Win ASSIGN HEIGHT = 19.57 WIDTH = 132.6. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB B-table-Win /* ************************* Included-Libraries *********************** */ {src/adm/method/browser.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW B-table-Win NOT-VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME F-Main NOT-VISIBLE FRAME-NAME Custom */ /* BROWSE-TAB Br_Druckername 1 F-Main */ /* BROWSE-TAB Br_Schriftbild Br_Druckername F-Main */ ASSIGN FRAME F-Main:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN Listen.BDa[1] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Listen.ECh[1] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Listen.ENr[1] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR RADIO-SET Listen.ENr[3] IN FRAME F-Main 2 */ ASSIGN F_Bemerk:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_FZZ IN FRAME F-Main 1 */ /* SETTINGS FOR FILL-IN F_KOPIE IN FRAME F-Main 1 */ /* SETTINGS FOR FILL-IN F_KZZ IN FRAME F-Main 1 */ /* SETTINGS FOR FILL-IN F_LQ IN FRAME F-Main 1 */ ASSIGN F_Programm:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_SCHACHT IN FRAME F-Main 1 */ /* SETTINGS FOR RADIO-SET F_Sort IN FRAME F-Main 1 */ /* SETTINGS FOR FILL-IN F_TZZ IN FRAME F-Main 1 */ ASSIGN F_USER:READ-ONLY IN FRAME F-Main = TRUE. ASSIGN F_Zeichen:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN Listen.VCh[1] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Listen.VDa[1] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR TOGGLE-BOX Listen.VFl[1] IN FRAME F-Main 2 EXP-LABEL */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Druckername /* Query rebuild information for BROWSE Br_Druckername _TblList = "Temp-Tables.XSchrift" _Options = "NO-LOCK KEY-PHRASE SORTBY-PHRASE" _FldNameList[1] > Temp-Tables.XSchrift.Schname "XSchrift.Schname" "Drucker" "x(50)" "character" ? ? ? ? ? ? no ? no no "51" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is NOT OPENED */ /* BROWSE Br_Druckername */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Schriftbild /* Query rebuild information for BROWSE Br_Schriftbild _TblList = "Anadat.Schrift" _OrdList = "Anadat.Schrift.Schbild|yes" _FldNameList[1] = Anadat.Schrift.Schbild _Query is NOT OPENED */ /* BROWSE Br_Schriftbild */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main /* Query rebuild information for FRAME F-Main _Options = "NO-LOCK" _Query is NOT OPENED */ /* FRAME F-Main */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME F-Main &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F-Main B-table-Win ON END-ERROR OF FRAME F-Main /* Aufbereiten der VESR-Daten ab Diskette */ DO: RUN new-state ( INPUT 'ENDE, MAIN':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F-Main B-table-Win ON GO OF FRAME F-Main /* Aufbereiten der VESR-Daten ab Diskette */ DO: DO TRANSACTION: FIND Listen WHERE RECID(Listen) = ARecid. Listen.Listfl = ''. END. RUN new-state ('drucken_ende':U). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Druckername &Scoped-define SELF-NAME Br_Druckername &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Druckername B-table-Win ON ROW-ENTRY OF Br_Druckername IN FRAME F-Main DO: /* This code displays initial values for newly added or copied rows. */ {src/adm/template/brsentry.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Druckername B-table-Win ON ROW-LEAVE OF Br_Druckername IN FRAME F-Main DO: /* Do not disable this code or no updates will take place except by pressing the Save button on an Update SmartPanel. */ {src/adm/template/brsleave.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Druckername B-table-Win ON VALUE-CHANGED OF Br_Druckername IN FRAME F-Main DO: {src/adm/template/brschnge.i} ASchname = XSchrift.Schname. OPEN QUERY Br_Schriftbild FOR EACH Schrift WHERE Schrift.Schname = ASchname NO-LOCK. FIND BSchrift WHERE BSchrift.Schname = ASchname AND BSchrift.Schbild = ASchbild NO-LOCK NO-ERROR. IF AVAILABLE BSchrift THEN DO: REPOSITION Br_Schriftbild TO RECID RECID(BSchrift) NO-ERROR. Br_Schriftbild:SELECT-FOCUSED-ROW() IN FRAME {&FRAME-NAME}. Br_Schriftbild:FETCH-SELECTED-ROW(1) IN FRAME {&FRAME-NAME}. END. ELSE DO: APPLY 'VALUE-CHANGED' TO BROWSE Br_Schriftbild. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Schriftbild &Scoped-define SELF-NAME Br_Schriftbild &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Schriftbild B-table-Win ON ROW-ENTRY OF Br_Schriftbild IN FRAME F-Main DO: /* This code displays initial values for newly added or copied rows. */ {src/adm/template/brsentry.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Schriftbild B-table-Win ON ROW-LEAVE OF Br_Schriftbild IN FRAME F-Main DO: /* Do not disable this code or no updates will take place except by pressing the Save button on an Update SmartPanel. */ {src/adm/template/brsleave.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Schriftbild B-table-Win ON VALUE-CHANGED OF Br_Schriftbild IN FRAME F-Main DO: {src/adm/template/brschnge.i} IF ASchbild <> Schrift.Schbild THEN DO: ASSIGN F_TZZ = Schrift.Schzztot F_KZZ = Schrift.Schzzbeg F_FZZ = Schrift.Schzzend. DISPLAY {&List-1} WITH FRAME {&FRAME-NAME}. END. ASchbild = Schrift.Schbild. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Ende &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Ende B-table-Win ON CHOOSE OF Btn_Ende IN FRAME F-Main /* Ende */ DO: DO TRANSACTION: FIND Listen WHERE RECID(Listen) = ARecid. Listen.Listfl = ''. END. { v8/druck_ende.i } RUN new-state ( INPUT 'ENDE, MAIN':U ). APPLY 'GO' TO FRAME {&FRAME-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Start &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Start B-table-Win ON CHOOSE OF Btn_Start IN FRAME F-Main /* Starten */ DO: DO WITH FRAME {&FRAME-NAME}: IF Listen.ECh[01]:SCREEN-VALUE = '' THEN DO: MESSAGE 'Kontonummer eingeben ! ' VIEW-AS ALERT-BOX ERROR. APPLY 'ENTRY' TO Listen.ECh[01]. RETURN NO-APPLY. END. DEFINE VARIABLE DateiName AS CHARACTER NO-UNDO. DateiName = LC(VCh[01]:SCREEN-VALUE). IF DateiName = '' THEN DO: RUN FILESUCHEN ( INPUT-OUTPUT DateiName ). IF DateiName = '' THEN DO: APPLY 'ENTRY' TO VCh[01]. RETURN NO-APPLY. END. Listen.VCh[01]:SCREEN-VALUE = DateiName. END. IF SEARCH(DateiName) = ? THEN DO: MESSAGE 'Datei ' DateiName ' ist nicht zu finden' VIEW-AS ALERT-BOX. APPLY 'ENTRY' TO Listen.VCh[01] IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. FILE-INFO:FILE-NAME = SEARCH(DateiName). DateiName = FILE-INFO:FULL-PATHNAME. Listen.VCh[01]:SCREEN-VALUE = DateiName. IF VDa[01]:SCREEN-VALUE = ? THEN VDa[01]:SCREEN-VALUE = STRING(SperrDat + 1). IF VDa[01]:SCREEN-VALUE = '' THEN VDa[01]:SCREEN-VALUE = STRING(SperrDat + 1). IF BDa[01]:SCREEN-VALUE = ? THEN BDa[01]:SCREEN-VALUE = STRING(DATE(12,31,2099)). IF BDa[01]:SCREEN-VALUE = '' THEN BDa[01]:SCREEN-VALUE = STRING(DATE(12,31,2099)). END. IF XSchrift.Schname = "TERMINAL" THEN DO: { v8/fehler.i "0094" } REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}: FIND Listen WHERE RECID(Listen) = ARecid. ASSIGN Listen.Listfl = ''. RELEASE Listen . LEAVE. END. FIND Listen WHERE RECID(Listen ) = ARecid NO-LOCK. APPLY 'CHOOSE' TO Btn_Ende IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. DO TRANSACTION WITH FRAME {&FRAME-NAME}: DISABLE Btn_Start. DISABLE Btn_Ende. ASSIGN {&List-1}. FIND Listen WHERE RECID(Listen) = ARecid. FIND LiDruck WHERE RECID(LiDruck) = BRecid. ASSIGN Breite = F_Zeichen Listen.Sort = F_Sort LiDruck.Listtzz = F_TZZ LiDruck.Listkzz = F_KZZ LiDruck.Listfzz = F_FZZ LiDruck.Listlq = F_LQ LiDruck.ListCopy = F_KOPIE LiDruck.Schacht = F_SCHACHT LiDruck.Listdru = XSchrift.Schname LiDruck.Listbild = Schrift.Schbild. IF LiDruck.ListCopy = 0 THEN LiDruck.ListCopy = 1. ASSIGN {&List-2}. IF VDa[01] = ? THEN VDa[01] = SperrDat + 1. IF BDa[01] = ? THEN BDa[01] = DATE(31,12,YEAR(TODAY)). IF VDa[01] <= SperrDat THEN VDa[01] = SperrDat + 1. DateiName = LC(Listen.VCh[01]). IF SEARCH(DateiName) = ? THEN DO: MESSAGE 'Datei ist nicht zu finden' VIEW-AS ALERT-BOX. APPLY 'ENTRY' TO Listen.VCh[01] IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. DateiName = SEARCH(DateiName). DISPLAY {&List-2} WITH FRAME {&FRAME-NAME}. ASSIGN LiDruck.ProgWahl = Listen.ProgWahl LiDruck.Listprog = TRIM(F_Programm) + STRING(Listen.ProgWahl,'99'). RELEASE Listen . RELEASE LiDruck. END. FIND Listen WHERE RECID(Listen ) = ARecid NO-LOCK. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK. RUN LIBILD. FVerbuchen = FALSE. RUN DRUCKEN. IF FVerbuchen THEN RUN VERBUCHEN. DO TRANSACTION WITH FRAME {&FRAME-NAME}: FIND Listen WHERE RECID(Listen) = ARecid. ASSIGN Listen.Listfl = ''. RELEASE Listen . END. FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK. DO WITH FRAME {&FRAME-NAME}: ENABLE Btn_Start. ENABLE Btn_Ende. APPLY 'CHOOSE' TO Btn_Ende IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. TiDruck = TRUE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Listen.ENr[3] &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.ENr[3] B-table-Win ON RETURN OF Listen.ENr[3] IN FRAME F-Main /* ENr */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Listen.VCh[1] &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.VCh[1] B-table-Win ON RIGHT-MOUSE-CLICK OF Listen.VCh[1] IN FRAME F-Main /* Dateiname */ DO: SYSTEM-DIALOG GET-FILE VDateiName TITLE "Auswahl der BESR-Datei ..." FILTERS "Alle Dateien (*.*)" "*.*" MUST-EXIST USE-FILENAME UPDATE OKpressed. IF OKpressed = FALSE THEN RETURN NO-APPLY. DO WITH FRAME {&FRAME-NAME}: Listen.VCh[01]:SCREEN-VALUE = VDateiName. END. APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Druckername &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK B-table-Win /* *************************** Main Block *************************** */ FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR. FIND BSteuer USE-INDEX Steuer-k1 WHERE BSteuer.Firma = GVFirma NO-LOCK NO-ERROR. KnrPos = INTEGER(SUBSTRING(STRING(Steuer.St07,'9999'),01,02)). KnrLang = INTEGER(SUBSTRING(STRING(Steuer.St07,'9999'),03,02)). FnrPos = INTEGER(SUBSTRING(STRING(Steuer.St08,'9999'),01,02)). FnrLang = INTEGER(SUBSTRING(STRING(Steuer.St08,'9999'),03,02)). IF KnrLang = 0 THEN KnrLang = 6. IF FnrLang = 0 THEN FnrLang = 6. IF KnrPos = 0 THEN KnrPos = 27 - KnrLang - FnrLang. IF FnrPos = 0 THEN FnrPos = 27 - FnrLang. cInstallation = DYNAMIC-FUNCTION('getInstallation') NO-ERROR. ON END-ERROR ANYWHERE DO: DO TRANSACTION: FIND Listen WHERE RECID(Listen) = ARecid. Listen.Listfl = ''. RELEASE Listen. END. END. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN RUN dispatch IN THIS-PROCEDURE ('initialize':U). &ENDIF /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available B-table-Win _ADM-ROW-AVAILABLE PROCEDURE adm-row-available : /*------------------------------------------------------------------------------ Purpose: Dispatched to this procedure when the Record- Source has a new row available. This procedure tries to get the new row (or foriegn keys) from the Record-Source and process it. Parameters: ------------------------------------------------------------------------------*/ /* Define variables needed by this internal procedure. */ {src/adm/template/row-head.i} /* Process the newly available records (i.e. display fields, open queries, and/or pass records on to any RECORD-TARGETS). */ {src/adm/template/row-end.i} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_ISO20022 B-table-Win PROCEDURE CREATE_ISO20022 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipcDatei AS CHARACTER NO-UNDO. DEFINE VARIABLE iTT AS INTEGER NO-UNDO. DEFINE VARIABLE iMM AS INTEGER NO-UNDO. DEFINE VARIABLE iJJ AS INTEGER NO-UNDO. DEFINE VARIABLE iTrArt AS INTEGER NO-UNDO. DEFINE VARIABLE iAnz AS INTEGER NO-UNDO. DEFINE VARIABLE iTotBetr AS DECIMAL NO-UNDO. DEFINE VARIABLE iTotTax AS DECIMAL NO-UNDO. DEFINE VARIABLE iTeilnrNr AS INTEGER NO-UNDO. DEFINE VARIABLE cKto AS CHARACTER NO-UNDO. EMPTY TEMP-TABLE tHeader . EMPTY TEMP-TABLE tSubHeader . EMPTY TEMP-TABLE tZahlung . RUN read_camt054_esr.p ( ipcDatei , INPUT-OUTPUT htHeader , INPUT-OUTPUT htSubHeader, INPUT-OUTPUT htZahlung ). IF RETURN-VALUE <> '' THEN DO: MESSAGE 'Verarbeitung fehlerhaft' VIEW-AS ALERT-BOX. RETURN. END. ASSIGN VAnzahl = 0 iTotBetr = 0 iTotTax = 0 iAnz = 0. FOR EACH tSubHeader WITH FRAME {&FRAME-NAME}: ASSIGN VAnzahl = VAnzahl + tSubHeader.Anzahl iTotBetr = iTotBetr + tSubHeader.Total iTotTax = iTotTax + tSubHeader.Taxen. FOR EACH tZahlung WHERE tZahlung.iSeq = tSubHeader.iSeq: FIND LAST VESRZahl NO-LOCK NO-ERROR. IF AVAILABLE VESRZahl THEN ix = VESRZahl.Trnr + 1. ELSE ix = 1. iTrArt = 1. IF SUBSTRING(tSubHeader.TeilnrNr,01,01) >= '0' AND SUBSTRING(tSubHeader.TeilnrNr,01,01) <= '9' THEN iTeilnrNr = INTEGER(SUBSTRING(tSubHeader.TeilnrNr,001,09)). ELSE DO: cKto = ''. DO ii = 13 TO LENGTH(tSubHeader.TeilnrNr): IF SUBSTRING(tSubHeader.TeilnrNr,ii,01) >= '0' AND SUBSTRING(tSubHeader.TeilnrNr,ii,01) <= '9' THEN cKto = cKto + SUBSTRING(tSubHeader.TeilnrNr,ii,01). IF LENGTH(cKto) >= 9 THEN LEAVE. END. iTeilnrNr = INTEGER(cKto). END. CREATE VESRZahl. ASSIGN VESRZahl.Trnr = ix VESRZahl.Tr_Art = iTrArt VESRZahl.Tn_Nr = iTeilnrNr VESRZahl.Referenz = tZahlung.Referenz VESRZahl.Betrag = tZahlung.Betrag VESRZahl.Aufg_Ref = tZahlung.AufRef VESRZahl.Mi_Fi_Nr = tZahlung.ServiceRef VESRZahl.Rj_Cd = '' VESRZahl.Taxen_02 = DECIMAL(tZahlung.Taxen). iJJ = INTEGER(SUBSTRING(tSubHeader.Buchdat,001,04)). iMM = INTEGER(SUBSTRING(tSubHeader.Buchdat,006,02)). iTT = INTEGER(SUBSTRING(tSubHeader.Buchdat,009,02)). VESRZahl.Aufg_Dat = DATE(iMM,iTT,iJJ). VESRZahl.Verb_Dat = DATE(iMM,iTT,iJJ). iJJ = INTEGER(SUBSTRING(tSubHeader.Valuta,001,04)). iMM = INTEGER(SUBSTRING(tSubHeader.Valuta,006,02)). iTT = INTEGER(SUBSTRING(tSubHeader.Valuta,009,02)). VESRZahl.Guts_Dat = DATE(iMM,iTT,iJJ). IF tZahlung.lStorno THEN DO: VESRZahl.Betrag = VESRZahl.Betrag * -1. VESRZahl.Taxen_02 = VESRZahl.Taxen_02 * -1. END. iAnz = iAnz + 1. S_Anzahl:SCREEN-VALUE = STRING(iAnz). END. END. FIND FIRST tHeader. ASSIGN ix = ix + 1 iTrArt = 900. CREATE VESRZahl. ASSIGN VESRZahl.Trnr = ix VESRZahl.Tr_Art = iTrArt VESRZahl.Tn_Nr = 0 VESRZahl.Referenz = tHeader.IBAN VESRZahl.Betrag = iTotBetr VESRZahl.Aufg_Ref = STRING(VAnzahl) VESRZahl.Mi_Fi_Nr = '' VESRZahl.Rj_Cd = '' VESRZahl.Taxen_02 = iTotTax. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_V11 B-table-Win PROCEDURE CREATE_V11 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipcDatei AS CHARACTER NO-UNDO. DEFINE VARIABLE VDatum1 AS DATE NO-UNDO. DEFINE VARIABLE VDatum2 AS DATE NO-UNDO. DEFINE VARIABLE VDatum3 AS DATE NO-UNDO. DEFINE VARIABLE iTeilnrNr AS INTEGER NO-UNDO. OUTPUT TO 'VESR.V11'. INPUT FROM VALUE(ipcdatei) NO-ECHO. VAnzahl = 0. B010: REPEAT WITH FRAME {&FRAME-NAME}: VZeile = "". ix = 0. DO WHILE TRUE: READKEY. IF INTEGER(LASTKEY) < 0 THEN LEAVE B010. IF INT(LASTKEY) = 13 OR INT(LASTKEY) = 10 THEN DO: IF ix > 0 THEN DO: PUT CONTROL CHR(34) VZeile CHR(34) CHR(10). VZeile = "". ix = 0. VAnzahl = VAnzahl + 1. S_Anzahl:SCREEN-VALUE = STRING(VAnzahl). END. NEXT. END. VZeile = VZeile + CHR(LASTKEY). ix = ix + 1. IF ix = 128 THEN DO: PUT CONTROL CHR(34) VZeile CHR(34) CHR(10). VZeile = "". ix = 0. VAnzahl = VAnzahl + 1. S_Anzahl:SCREEN-VALUE = STRING(VAnzahl). END. END. END. IF ix > 0 THEN DO: PUT CONTROL CHR(34) VZeile CHR(34) CHR(10). VZeile = "". ix = 0. VAnzahl = VAnzahl + 1. S_Anzahl:SCREEN-VALUE = STRING(VAnzahl). END. OUTPUT CLOSE. INPUT CLOSE. FIND Femeld NO-LOCK WHERE Femeld.Sprcd = GVSprcd AND Femeld.Fenr = 442 NO-ERROR. F_Bemerk = Femeld.Fetext. RELEASE Femeld. DISPLAY F_Bemerk WITH FRAME {&FRAME-NAME}. VAnzahl = 0. INPUT FROM "VESR.V11" NO-ECHO. B020: REPEAT: IMPORT VZeile. FIND LAST VESRZahl NO-LOCK NO-ERROR. IF AVAILABLE VESRZahl THEN ix = VESRZahl.Trnr + 1. ELSE ix = 1. VTrArt = INTEGER(SUBSTRING(VZeile,001,03)). IF VTrArt >= 900 THEN DO: IF INTEGER(SUBSTRING(VZeile,064,02)) < 90 THEN VDatum1 = DATE(INTEGER(SUBSTRING(VZeile,066,02)), INTEGER(SUBSTRING(VZeile,068,02)), INTEGER(SUBSTRING(VZeile,064,02)) + 2000). ELSE VDatum1 = DATE(INTEGER(SUBSTRING(VZeile,066,02)), INTEGER(SUBSTRING(VZeile,068,02)), INTEGER(SUBSTRING(VZeile,064,02)) + 1900). IF SUBSTRING(VZeile,04,01) >= '0' AND SUBSTRING(VZeile,04,01) <= '9' THEN iTeilnrNr = INTEGER(SUBSTRING(VZeile,004,09)). ELSE iTeilnrNr = 0. CREATE VESRZahl. ASSIGN VESRZahl.Trnr = ix VESRZahl.Tr_Art = VTrArt VESRZahl.Tn_Nr = iTeilnrNr VESRZahl.Referenz = SUBSTRING(VZeile,013,27) VESRZahl.Betrag = INTEGER(SUBSTRING(VZeile,040,12)) / 100 VESRZahl.Aufg_Ref = SUBSTRING(VZeile,054,10) VESRZahl.Aufg_Dat = VDatum1 VESRZahl.Taxen_01 = INTEGER(SUBSTRING(VZeile,070,09)) / 100 VESRZahl.Taxen_02 = INTEGER(SUBSTRING(VZeile,079,09)) / 100. IF VTrArt = 995 THEN DO: VESRZahl.Betrag = VESRZahl.Betrag * -1. VESRZahl.Taxen_01 = VESRZahl.Taxen_01 * -1. END. NEXT. END. IF INTEGER(SUBSTRING(VZeile,060,02)) < 90 THEN VDatum1 = DATE(INTEGER(SUBSTRING(VZeile,062,02)), INTEGER(SUBSTRING(VZeile,064,02)), INTEGER(SUBSTRING(VZeile,060,02)) + 2000). ELSE VDatum1 = DATE(INTEGER(SUBSTRING(VZeile,062,02)), INTEGER(SUBSTRING(VZeile,064,02)), INTEGER(SUBSTRING(VZeile,060,02)) + 1900). IF INTEGER(SUBSTRING(VZeile,066,02)) < 90 THEN VDatum2 = DATE(INTEGER(SUBSTRING(VZeile,068,02)), INTEGER(SUBSTRING(VZeile,070,02)), INTEGER(SUBSTRING(VZeile,066,02)) + 2000). ELSE VDatum2 = DATE(INTEGER(SUBSTRING(VZeile,068,02)), INTEGER(SUBSTRING(VZeile,070,02)), INTEGER(SUBSTRING(VZeile,066,02)) + 1900). IF INTEGER(SUBSTRING(VZeile,072,02)) < 90 THEN VDatum3 = DATE(INTEGER(SUBSTRING(VZeile,074,02)), INTEGER(SUBSTRING(VZeile,076,02)), INTEGER(SUBSTRING(VZeile,072,02)) + 2000). ELSE VDatum3 = DATE(INTEGER(SUBSTRING(VZeile,074,02)), INTEGER(SUBSTRING(VZeile,076,02)), INTEGER(SUBSTRING(VZeile,072,02)) + 1900). IF SUBSTRING(VZeile,04,01) >= '0' AND SUBSTRING(VZeile,04,01) <= '9' THEN iTeilnrNr = INTEGER(SUBSTRING(VZeile,004,09)). ELSE iTeilnrNr = 0. CREATE VESRZahl. ASSIGN VESRZahl.Trnr = ix VESRZahl.Tr_Art = VTrArt VESRZahl.Tn_Nr = iTeilnrNr VESRZahl.Referenz = SUBSTRING(VZeile,013,27) VESRZahl.Betrag = INTEGER(SUBSTRING(VZeile,040,10)) / 100 VESRZahl.Aufg_Ref = SUBSTRING(VZeile,050,10) VESRZahl.Aufg_Dat = VDatum1 VESRZahl.Verb_Dat = VDatum2 VESRZahl.Guts_Dat = VDatum3 VESRZahl.Mi_Fi_Nr = SUBSTRING(VZeile,078,09) VESRZahl.Rj_Cd = SUBSTRING(VZeile,087,01) VESRZahl.Taxen_02 = INTEGER(SUBSTRING(VZeile,097,04)) / 100. IF VTrArt = 005 OR VTrArt = 015 OR VTrArt = 105 OR VTrArt = 115 THEN DO: VESRZahl.Betrag = VESRZahl.Betrag * -1. VESRZahl.Taxen_02 = VESRZahl.Taxen_02 * -1. END. VAnzahl = VAnzahl + 1. S_Anzahl:SCREEN-VALUE = STRING(VAnzahl). END. INPUT CLOSE. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI B-table-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. ------------------------------------------------------------------------------*/ /* Hide all frames. */ HIDE FRAME F-Main. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN B-table-Win PROCEDURE DRUCKEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE XHelptx AS CHARACTER FORMAT "x(70)". DEFINE VARIABLE TT AS INTEGER. DEFINE VARIABLE MM AS INTEGER. DEFINE VARIABLE JJ AS INTEGER. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO. /* -------------------------------------------------------------------------- */ FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR. VSort = Listen.Sort. VTage = Listen.ENr[01]. VDatum = Listen.VDa[01]. BDatum = Listen.BDa[01]. VKonto = Listen.ECh[01]. nDatum = Listen.ENr[03]. cDateiName = Listen.VCh[01]. XHelptx = Helptext[02]. TitTxt = "". FIND Femeld NO-LOCK WHERE Femeld.Sprcd = GVSprcd AND Femeld.Fenr = 441 NO-ERROR. F_Bemerk = Femeld.Fetext. DISPLAY F_Bemerk WITH FRAME {&FRAME-NAME}. VAnzahl = 0. FOR EACH VESRZahl: DELETE VESRZahl. VAnzahl = VAnzahl + 1. S_Anzahl:SCREEN-VALUE = STRING(VAnzahl). END. VAnzahl = 0. FOR EACH Zahlung WHERE Zahlung.Zahl_Art = 99: DELETE Zahlung. VAnzahl = VAnzahl + 1. S_Anzahl:SCREEN-VALUE = STRING(VAnzahl). END. DO WHILE NOT VFl[01] : RUN CREATE_V11 ( cDateiName ). LEAVE. END. DO WHILE VFl[01] : RUN CREATE_ISO20022 ( cDateiName ). LEAVE. END. FIND Femeld NO-LOCK WHERE Femeld.Sprcd = GVSprcd AND Femeld.Fenr = 443 NO-ERROR. F_Bemerk = Femeld.Fetext. DISPLAY F_Bemerk WITH FRAME {&FRAME-NAME}. Linkcd = 8. DO WHILE Linkcd = 8: XHelptx = Helptext[02]. TitTxt = "". RUN LISTTIT1. VCopy = 1. VKonto = TRIM(Listen.ECh[01]). VDat = 3. DO PRESELECT EACH VESRZahl NO-LOCK: DO VCopy = 1 TO LiDruck.ListCopy: LNeu = TRUE. /* -------------------------------------------------------------------------- */ { v8/opendruck.i} /* -------------------------------------------------------------------------- */ VLine = 0. VRand = 0. RRand = 0. VTot = 0. VAnzDat = 0. DruFl = TRUE. TiDruck = TRUE. Uebertrag = ''. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR. REPEAT: IF LNeu THEN FIND FIRST VESRZahl NO-ERROR. ELSE FIND NEXT VESRZahl NO-ERROR. IF NOT AVAILABLE VESRZahl THEN LEAVE. LNeu = FALSE. RUN LISTTIT2. DO WHILE VESRZahl.Tr_Art < 900: LVKnr = INTEGER(SUBSTRING(VESRZahl.Refe,KnrPos,KnrLang)). LVFaknr = INTEGER(SUBSTRING(VESRZahl.Refe,FnrPos,FnrLang)). LVFirma = GVFirma. VBuDat = VESRZahl.Guts_Dat. CASE nDatum: WHEN 0 THEN VBuDat = VESRZahl.Aufg_Dat. WHEN 1 THEN VBuDat = VESRZahl.Verb_Dat. WHEN 2 THEN VBuDat = VESRZahl.Guts_Dat. END CASE. IF VDatum <> ? AND VBuDat < VDatum THEN VBuDat = VDatum. IF BDatum <> ? AND VBuDat > BDatum THEN VBuDat = BDatum. IF VBuDat <= SperrDat THEN VBuDat = SperrDat + 1. FIND CSteuer WHERE CSteuer.Firma = LVFirma NO-LOCK NO-ERROR. IF AVAILABLE CSteuer THEN AdFirma = CSteuer.AdFirma. ELSE AdFirma = LVFirma. FIND Adresse NO-LOCK USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = LVKnr NO-ERROR. FIND Debop NO-LOCK WHERE Debop.Firma = LVFirma AND Debop.Knr = LVKnr AND Debop.Faknr = LVFaknr NO-ERROR. /* ---------------------------------------------------------------------- */ /* Wiederkehr temporärer Spezialfall 18.10.2016 */ /* ---------------------------------------------------------------------- */ DO WHILE NOT AVAILABLE Adresse OR NOT AVAILABLE Debop : IF NOT cInstallation BEGINS 'Wieder' THEN LEAVE. LVKnr = INTEGER(SUBSTRING(VESRZahl.Refe,13,06)). LVFaknr = INTEGER(SUBSTRING(VESRZahl.Refe,20,07)). FIND Adresse NO-LOCK USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = LVKnr NO-ERROR. FIND Debop NO-LOCK WHERE Debop.Firma = LVFirma AND Debop.Knr = LVKnr AND Debop.Faknr = LVFaknr NO-ERROR. IF AVAILABLE Debop THEN LEAVE. LVKnr = INTEGER(SUBSTRING(VESRZahl.Refe,KnrPos,KnrLang)). LVFaknr = INTEGER(SUBSTRING(VESRZahl.Refe,FnrPos,FnrLang)). LEAVE. END. PUT VESRZahl.Tr_Art FORMAT "999" AT 001 LVKnr FORMAT "999999" AT 005. IF AVAILABLE Adresse THEN PUT Adresse.Anzeig_br FORMAT "x(35)" AT 014. ELSE PUT '????????????????????' FORMAT "x(35)" AT 014. PUT LVFaknr FORMAT "9999999" AT 051 VBuDat FORMAT "99.99.9999" AT 059 VESRZahl.Betrag FORMAT "zzz,zz9.99-" AT 070. PUT VESRZahl.Aufg_Ref FORMAT "x(10)" AT 083 VESRZahl.Aufg_Dat FORMAT "99.99.9999" AT 096 VESRZahl.Mi_Fi_Nr FORMAT "x(09)" AT 108 SKIP. VTot[01] = VTot[01] + VESRZahl.Betrag. VTot[02] = VTot[02] + VESRZahl.Taxen_02. VTot[03] = VTot[03] + 1. IF NOT AVAILABLE Adresse THEN DO: FIND Debop USE-INDEX Debop-k2 WHERE Debop.Firma = GVFirma AND Debop.Faknr = LVFaknr NO-LOCK NO-ERROR. IF AVAILABLE Debop THEN LVKnr = Debop.Knr. END. FIND FIRST Zahlung USE-INDEX Zahlung-k2 WHERE Zahlung.Firma = LVFirma AND Zahlung.Knr = LVKnr AND Zahlung.Zahl_Art = 99 AND Zahlung.Faknr = STRING(LVFaknr,"9999999") AND Zahlung.Konto_S = VKonto AND Zahlung.Datum_1 = VBuDat AND NOT Zahlung.Verbucht NO-ERROR. IF NOT AVAILABLE Zahlung THEN DO: FIND LAST Zahlung USE-INDEX Zahlung-k1 WHERE Zahlung.Firma = LVFirma NO-LOCK NO-ERROR. IF AVAILABLE Zahlung THEN i5 = Zahlung.Trnr + 1. ELSE i5 = 1. CREATE Zahlung. ASSIGN Zahlung.Firma = LVFirma Zahlung.Trnr = i5 Zahlung.Knr = LVKnr Zahlung.Zahl_Art = 99 Zahlung.Faknr = STRING(LVFaknr,"9999999") Zahlung.Konto_S = VKonto Zahlung.Datum_1 = VBuDat Zahlung.Verbucht = FALSE. END. Zahlung.Betrag = Zahlung.Betrag + VESRZahl.Betrag. LEAVE. END. DO WHILE VESRZahl.Tr_Art >= 900: PUT CONTROL Drufettb. PUT TRIM(SUBSTRING(Helptext[16],01,35)) FORMAT "x(35)" AT 014 VTot[03] FORMAT "zzz,zz9" AT 055 VTot[01] FORMAT "zzz,zz9.99-" AT 070. PUT CONTROL Drufette. PUT "" SKIP(1). PUT CONTROL Drufettb. VTot[04] = VESRZahl.Betrag. VTot[05] = INTEGER(VESRZahl.Aufg_Ref). PUT TRIM(SUBSTRING(Helptext[16],36,35)) FORMAT "x(35)" AT 014 VTot[05] FORMAT "zzz,zz9" AT 055 VTot[04] FORMAT "zzz,zz9.99-" AT 070 VESRZahl.Taxen_01 FORMAT "z,zz9.99-" AT 082 VESRZahl.Taxen_02 FORMAT "z,zz9.99-" AT 092. PUT CONTROL Drufette. PUT "" SKIP. VTot[06] = VTot[06] + VTot[03]. VTot[07] = VTot[07] + VTot[01]. VTot[08] = VTot[08] + VTot[05]. VTot[09] = VTot[09] + VTot[04]. VTot[01] = 0. VTot[02] = 0. VTot[03] = 0. VTot[04] = 0. VTot[05] = 0. VAnzDat = VAnzDat + 1. TiDruck = TRUE. LEAVE. END. END. /* FIND NEXT */ IF VAnzDat > 1 THEN DO: PUT "" SKIP(1). PUT CONTROL Drufettb. PUT TRIM(SUBSTRING(Helptext[17],01,35)) FORMAT "x(35)" AT 014 VTot[06] FORMAT "zzz,zz9" AT 055 VTot[07] FORMAT "zzz,zz9.99-" AT 070. PUT CONTROL Drufette. PUT "" SKIP(1). PUT CONTROL Drufettb. PUT TRIM(SUBSTRING(Helptext[17],36,35)) FORMAT "x(35)" AT 014 VTot[08] FORMAT "zzz,zz9" AT 055 VTot[09] FORMAT "zzz,zz9.99-" AT 070. PUT CONTROL Drufette. PUT "" SKIP. END. END. /* KOPIEN */ END. /* PRESELECT */ Linkcd = 0. IF DOpen = TRUE THEN DO: OUTPUT CLOSE. IF lPDF THEN RUN datei2viper.p ( cDrucker ). END. ELSE DO: RUN "v8/d-liste.w" ( INPUT Helptext[02] ). END. IF VTot[06] = VTot[08] AND VTot[07] = VTot[09] THEN DO: Linkcd = 7. END. Helptext[02] = XHelpTx. END. /* Linkcd = 8 */ DO WHILE Linkcd = 7: RUN VERARBEITEN. IF DOpen = TRUE THEN DO: OUTPUT CLOSE. IF lPDF THEN RUN datei2viper.p ( cDrucker ). END. ELSE DO: RUN "v8/d-liste.w" ( INPUT Helptext[02] ). END. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FILESUCHEN B-table-Win PROCEDURE FILESUCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT-OUTPUT PARAMETER ipDateiName AS CHARACTER NO-UNDO. DEFINE VARIABLE cDatei AS CHARACTER NO-UNDO. cDatei = ipDateiName. ipDateiName = ''. ja = FALSE. SYSTEM-DIALOG GET-FILE cDatei MUST-EXIST TITLE 'BESR-Dateiname ? ' USE-FILENAME UPDATE Ja. IF Ja THEN ipDateiName = cDatei. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INTERFACE B-table-Win PROCEDURE INTERFACE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FOR EACH WFile WHERE WFile.Betrag <> 0 BY WFile.Kto1: FIND LAST Interf USE-INDEX Interf-k1 WHERE Interf.Firma = BSteuer.FBFirma AND Interf.TrNr1 = VTrNr1 AND Interf.TrNr2 = VTrNr2 NO-LOCK NO-ERROR. IF AVAILABLE Interf THEN ix = Interf.Trnr + 1. ELSE ix = 1. CREATE Interf. ASSIGN Interf.Firma = BSteuer.FBFirma Interf.TrNr1 = VTrNr1 Interf.TrNr2 = VTrNr2 Interf.TrNr = ix Interf.Kto1 = WFile.Kto1 Interf.Kto2 = WFile.Kto2 Interf.Herk = TransNr.Herk Interf.Datum = BDebza.ZahDat Interf.Buchtxt1 = VBuchtxt1 Interf.Buchtxt2 = VBuchtxt2 Interf.Betrag = WFile.Betrag Interf.Betrag_Frw = WFile.Betrag Interf.FRW = BDebop.FRW Interf.Faktor = BDebop.Faktor Interf.Kurs = BDebop.Kurs Interf.Verbucht = FALSE Interf.Faknr = STRING(BDebop.Faknr,"9999999") Interf.Knr = BDebop.Knr Interf.MWST_Nr = "" Interf.MWST_Cd = WFile.MWST_Cd Interf.HKFirma = BDebop.Firma. DELETE WFile. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LIBILD B-table-Win PROCEDURE LIBILD : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { v8/libild.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LISTTIT1 B-table-Win PROCEDURE LISTTIT1 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { v8/listtit1.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LISTTIT2 B-table-Win PROCEDURE LISTTIT2 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { v8/listtit2.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-display-fields B-table-Win PROCEDURE local-display-fields : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ RUN dispatch IN THIS-PROCEDURE ( INPUT 'display-fields':U ) . DISPLAY {&List-1} WITH FRAME {&FRAME-NAME}. IF ARecid > -1 THEN DO: FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK. DISPLAY {&List-2} WITH FRAME {&FRAME-NAME}. END. ENABLE {&List-2} WITH FRAME {&FRAME-NAME}. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-hide B-table-Win PROCEDURE local-hide : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ DO TRANSACTION: FIND Listen WHERE RECID(Listen) = ARecid. Listen.Listfl = ''. END. RUN dispatch IN THIS-PROCEDURE ( INPUT 'hide':U ) . END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize B-table-Win PROCEDURE local-initialize : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ DEFINE BUFFER BListen FOR Listen. DEFINE VARIABLE VListnr LIKE Listen.Listnr. F_USER = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR. QOpen = FALSE. FInit = TRUE. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) . VProgname = TRIM(F_USER) + '!' + TRIM(F_Programm). FIND FIRST Listen USE-INDEX Listen-k1 WHERE Listen.Firma = GVFirma AND Listen.Progname = VProgname AND Listen.Listfl = '' NO-LOCK NO-ERROR. DO TRANSACTION: IF NOT AVAILABLE Listen THEN DO: FIND LAST BListen USE-INDEX Listen-k1 WHERE BListen.Firma = GVFirma NO-LOCK NO-ERROR. IF AVAILABLE BListen THEN VListnr = BListen.Listnr + 1. ELSE VListnr = 1. CREATE Listen. ASSIGN Listen.Firma = GVFirma Listen.Listnr = VListnr Listen.Progname = VProgname Listen.Listfl = '' Listen.Jahr = GVJahr Listen.Sprcd = GVSprcd Listen.Sort = 1 Listen.ProgWahl = 1. END. ARecid = RECID(Listen). FIND LiDruck USE-INDEX LiDruck-k1 WHERE LiDruck.Firma = GVFirma AND LiDruck.Listnr = Listen.Listnr AND LiDruck.ProgWahl = Listen.ProgWahl NO-LOCK NO-ERROR. IF NOT AVAILABLE LiDruck THEN DO: CREATE LiDruck. ASSIGN LiDruck.Firma = GVFirma LiDruck.Listnr = Listen.Listnr LiDruck.ProgWahl = Listen.ProgWahl LiDruck.Listprog = TRIM(F_Programm) + STRING(Listen.ProgWahl,'99') LiDruck.ListCopy = 1 LiDruck.Schacht = 0 LiDruck.Listlq = FALSE. END. BRecid = RECID(LiDruck). FIND Listen WHERE RECID(Listen) = ARecid. Listen.Listfl = 'A'. SperrDat = DYNAMIC-FUNCTION('getSperrDatum':U) NO-ERROR. Listen.VDa[01] = SperrDat + 1. RELEASE Listen. RELEASE LiDruck. END. /* TRANSACTION */ FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK. FOpen = TRUE. ASchname = LiDruck.ListDru. ASchbild = LiDruck.ListBild. RUN dispatch IN THIS-PROCEDURE ('open-query':U). FIND FIRST XSchrift WHERE XSchrift.Schname = ASchname NO-LOCK NO-ERROR. IF AVAILABLE XSchrift THEN DO: REPOSITION Br_Druckername TO RECID RECID(XSchrift) NO-ERROR. Br_Druckername:SELECT-FOCUSED-ROW() IN FRAME {&FRAME-NAME}. Br_Druckername:FETCH-SELECTED-ROW(1) IN FRAME {&FRAME-NAME}. END. ELSE DO: Br_Druckername:FETCH-SELECTED-ROW(1) IN FRAME {&FRAME-NAME}. END. APPLY 'VALUE-CHANGED' TO BROWSE Br_Druckername. RUN LIBILD. F_Zeichen = Breite. F_Sort = Listen.Sort. F_TZZ = LiDruck.Listtzz. F_KZZ = LiDruck.Listkzz. F_FZZ = LiDruck.Listfzz. F_LQ = LiDruck.Listlq. F_KOPIE = LiDruck.ListCopy. F_SCHACHT = LiDruck.Schacht. OBreite = Breite. RUN dispatch IN THIS-PROCEDURE ('display-fields':U). Helptext = ''. FOR EACH LiBild WHERE LiBild.Sprcd = GVSprcd AND LiBild.Prog = 'ZAHLUNG' NO-LOCK: Helptext[LiBild.Tenr] = LiBild.Litext. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-open-query B-table-Win PROCEDURE local-open-query : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ IF FOpen = FALSE THEN RETURN NO-APPLY. IF QOpen = TRUE THEN DO: CLOSE QUERY Br_Druckername. CLOSE QUERY Br_Schriftbild. END. QOpen = FALSE. FOR EACH XSchrift: DELETE XSchrift. END. AltSchname = ''. FOR EACH Schrift NO-LOCK: IF Schrift.Schname = AltSchname THEN NEXT. CREATE XSchrift. BUFFER-COPY Schrift TO XSchrift. AltSchname = Schrift.Schname. END. OPEN QUERY Br_Druckername FOR EACH XSchrift NO-LOCK. QOpen = TRUE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-row-changed B-table-Win PROCEDURE local-row-changed : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ RUN dispatch IN THIS-PROCEDURE ( INPUT 'row-changed':U ) . OPEN QUERY Br_Schriftbild FOR EACH Schrift WHERE Schrift.Schname = XSchrift.Schname NO-LOCK. IF AVAILABLE LiDruck THEN DO: FIND BSchrift WHERE BSchrift.Schname = LiDruck.ListDru AND BSchrift.Schbild = LiDruck.ListBild NO-LOCK NO-ERROR. IF AVAILABLE BSchrift THEN DO: REPOSITION Br_Schriftbild TO RECID RECID(BSchrift) NO-ERROR. END. END. APPLY 'VALUE-CHANGED' TO BROWSE Br_Schriftbild. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view B-table-Win PROCEDURE local-view : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) . IF ARecid < 0 THEN RETURN. DO TRANSACTION: FIND Listen WHERE RECID(Listen) = ARecid. ASSIGN Listen.VNr[01] = XVAufnr Listen.BNr[01] = XVAufnr. RELEASE Listen. END. FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK. RUN dispatch IN THIS-PROCEDURE ('display-fields':U). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MEHRWERTSTEUER B-table-Win PROCEDURE MEHRWERTSTEUER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ XTot = 0. VZah = 0. VSko = 0. VMax = 0. VZRes = VZaBetr. VSRes = VSkBetr. VAntZ = VZaBetr * 100 / BDebop.FakBetr. VAntS = VSkBetr * 100 / BDebop.FakBetr. DO zz = 1 TO 11: XTot[zz] = BDebop.FakWpfl[zz] + BDebop.FakWust[zz]. IF BDebop.FakWpfl[zz] <> 0 THEN VMax = zz. END. DO zz = 1 TO 11: IF XTot[zz] = 0 THEN NEXT. IF zz = VMax THEN DO: VZah[zz] = VZRes. VSko[zz] = VSRes. LEAVE. END. Rundbetr = XTot[zz] * VAntZ / 100. Rundcode = 1. RUN "v8/runden.p". VZah[zz] = Rundbetr. VZRes = VZRes - Rundbetr. Rundbetr = XTot[zz] * VAntS / 100. Rundcode = 1. RUN "v8/runden.p". VSko[zz] = Rundbetr. VSRes = VSRes - Rundbetr. END. DO zz = 1 TO 11: IF XTot[zz] = 0 THEN NEXT. Rundbetr = 0. IF NOT BDebop.FakIncl[zz] THEN DO: Rundbetr = VZah[zz] * BDebop.Fakwpro[zz] / (100 + BDebop.Fakwpro[zz]). Rundcode = 1. RUN "v8/runden.p". END. ASSIGN BDebza.ZahWpfl[zz] = VZah[zz] - Rundbetr BDebza.ZahWust[zz] = Rundbetr BDebza.ZahSkon[zz] = VSko[zz] BDebop.ZahWpfl[zz] = BDebop.ZahWpfl[zz] + BDebza.ZahWpfl[zz] BDebop.ZahWust[zz] = BDebop.ZahWust[zz] + BDebza.ZahWust[zz] BDebop.ZahSkon[zz] = BDebop.ZahSkon[zz] + BDebza.ZahSkon[zz]. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records B-table-Win _ADM-SEND-RECORDS PROCEDURE send-records : /*------------------------------------------------------------------------------ Purpose: Send record ROWID's for all tables used by this file. Parameters: see template/snd-head.i ------------------------------------------------------------------------------*/ /* Define variables needed by this internal procedure. */ {src/adm/template/snd-head.i} /* For each requested table, put it's ROWID in the output list. */ {src/adm/template/snd-list.i "Schrift"} {src/adm/template/snd-list.i "XSchrift"} /* Deal with any unexpected table requests before closing. */ {src/adm/template/snd-end.i} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed B-table-Win PROCEDURE state-changed : /* ----------------------------------------------------------- Purpose: Parameters: Notes: -------------------------------------------------------------*/ DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO. CASE p-state: /* Object instance CASEs can go here to replace standard behavior or add new cases. */ {src/adm/template/bstates.i} END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERARBEITEN B-table-Win PROCEDURE VERARBEITEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE BUFFER XSteuNr FOR SteuNr. /* -------------------------------------------------------------------------- */ Helptext[03] = Helptext[12]. Helptext[04] = Helptext[13]. Helptext[05] = Helptext[14]. Helptext[02] = Helptext[15]. TitTxt = "". RUN LISTTIT1. { v8/opendruck.i } VTot = 0. AFirma = "". FOR EACH Zahlung USE-INDEX Zahlung-k2 WHERE Zahlung.Zahl_Art = 99 AND Zahlung.Verbucht = FALSE TRANSACTION: IF Zahlung.Betrag = 0 THEN DO: DELETE Zahlung. NEXT. END. IF AFirma = "" THEN AFirma = Zahlung.Firma. IF Zahlung.Firma <> AFirma THEN DO: PUT "" SKIP. PUT CONTROL Drufettb. PUT TRIM(SUBSTRING(Helptext[18],01,35)) FORMAT "x(35)" AT 014 VTot[01] FORMAT "zzz,zz9.99-" AT 076 VTot[02] FORMAT "zzz,zz9.99-" AT 087. PUT CONTROL Drufette. PUT "" SKIP(1). IF VTot[06] <> 0 THEN DO: PUT CONTROL Drufettb. PUT TRIM(SUBSTRING(Helptext[18],36,35)) FORMAT "x(35)" AT 014 VTot[06] FORMAT "zzz,zz9.99-" AT 076 VTot[07] FORMAT "zzz,zz9.99-" AT 087. PUT CONTROL Drufette. PUT "" SKIP(1). END. VTot[01] = 0. VTot[02] = 0. VTot[06] = 0. VTot[07] = 0. AFirma = Zahlung.Firma. Zuszz = 5. END. RUN LISTTIT2. VFirma = Zahlung.Firma. LVFirma = Zahlung.Firma. FIND XSteuNr WHERE XSteuNr.Firma = VFirma NO-LOCK NO-ERROR. FIND CSteuer WHERE CSteuer.Firma = VFirma NO-LOCK NO-ERROR. LVKnr = Zahlung.Knr. VFaknr = INTEGER(Zahlung.Faknr). LVFaknr = INTEGER(Zahlung.Faknr). LVDat = Zahlung.Datum_1. VDebst = TRUE. IF AVAILABLE CSteuer THEN AdFirma = CSteuer.AdFirma. ELSE AdFirma = FILL("!", 04). IF AVAILABLE XSteuNr THEN DO: VSK_Tol_Max = XSteuNr.Sk_Tol_Max. VSK_Tol_% = XSteuNr.Sk_Tol_%. END. ELSE DO: VSK_Tol_Max = 0. VSK_Tol_% = 0. END. FIND Debst USE-INDEX Debst-k1 WHERE Debst.Firma = LVFirma AND Debst.Knr = LVKnr NO-LOCK NO-ERROR. IF NOT AVAILABLE Debst THEN VDebst = FALSE. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = LVKnr NO-LOCK NO-ERROR. IF NOT AVAILABLE Adresse THEN DO: VName = FILL("?", 20). VOrt = FILL("?", 20). VDebst = FALSE. END. ELSE DO: VName = Adresse.Anzeig_br. END. PUT VFirma FORMAT "x(06)" AT 001 LVKnr FORMAT "999999" AT 008 VName FORMAT "x(39)" AT 016 VFaknr FORMAT "9999999" AT 057 Zahlung.Datum_1 FORMAT VDatForm AT 065 Zahlung.Betrag FORMAT "zzz,zz9.99-" AT 076. IF NOT VDebst THEN DO: { v8/femeld.i "0430" } PUT Fetext FORMAT "x(28)" AT 111 SKIP. VTot[06] = VTot[06] + Zahlung.Betrag. VTot[07] = VTot[07] + Zahlung.Skonto. VTot[08] = VTot[08] + Zahlung.Betrag. VTot[09] = VTot[09] + Zahlung.Skonto. DELETE Zahlung. NEXT. END. FIND Debop WHERE Debop.Firma = VFirma AND Debop.Knr = LVKnr AND Debop.Faknr = VFaknr NO-LOCK NO-ERROR. IF NOT AVAILABLE Debop THEN DO: { v8/femeld.i "0431" } PUT Fetext FORMAT "x(28)" AT 111 SKIP. VTot[06] = VTot[06] + Zahlung.Betrag. VTot[07] = VTot[07] + Zahlung.Skonto. VTot[08] = VTot[08] + Zahlung.Betrag. VTot[09] = VTot[09] + Zahlung.Skonto. DELETE Zahlung. NEXT. END. XFakBetr = Debop.FakBetr. XSaldo = Debop.Saldo. XFakDat = Debop.FakDat. XKond = Debop.Kond. XSkBer = Debop.SkBer. XSkonto = Debop.Skonto. IF XFakBetr > 0 AND Zahlung.Betrag > XSaldo THEN DO: { v8/femeld.i "0432" } PUT Fetext FORMAT "x(28)" AT 111 SKIP. VTot[06] = VTot[06] + Zahlung.Betrag. VTot[07] = VTot[07] + Zahlung.Skonto. VTot[08] = VTot[08] + Zahlung.Betrag. VTot[09] = VTot[09] + Zahlung.Skonto. DELETE Zahlung. NEXT. END. IF XFakBetr < 0 AND Zahlung.Betrag < XSaldo THEN DO: { v8/femeld.i "0433" } PUT Fetext FORMAT "x(28)" AT 111 SKIP. VTot[06] = VTot[06] + Zahlung.Betrag. VTot[07] = VTot[07] + Zahlung.Skonto. VTot[08] = VTot[08] + Zahlung.Betrag. VTot[09] = VTot[09] + Zahlung.Skonto. DELETE Zahlung. NEXT. END. VSkonto = 0. Rundbetr = XFakBetr * VSk_Tol_% / 100. RundCode = 1. RUN "v8/runden.p". VTol = Rundbetr. IF VTol > VSk_Tol_Max THEN VTol = XSteuNr.Sk_Tol_Max. DO WHILE XSaldo <> Zahlung.Betrag: IF XFakBetr > 0 AND Zahlung.Betrag > XSaldo THEN LEAVE. IF XFakBetr < 0 AND Zahlung.Betrag < XSaldo THEN LEAVE. FIND Kondi WHERE Kondi.Kond = XKond AND Kondi.Sprcd = GVSprcd NO-LOCK. IF (XFakDat + Kondi.Tage[02] + VTage >= LVDat) THEN DO: Rundbetr = XFakBetr * Kondi.Skonto[02] / 100. Rundcode = 1. RUN "v8/runden.p". VSkonto = Rundbetr - XSkonto. END. IF (XFakDat + Kondi.Tage[01] + VTage >= LVDat) THEN DO: Rundbetr = XFakBetr * Kondi.Skonto[01] / 100. Rundcode = 1. RUN "v8/runden.p". VSkonto = Rundbetr - XSkonto. END. IF XFakBetr > 0 AND (XSaldo - Zahlung.Betrag - VSkonto) < 0 THEN DO: VSkonto = XSaldo - Zahlung.Betrag. END. IF XFakBetr < 0 AND (XSaldo - Zahlung.Betrag - VSkonto) > 0 THEN DO: VSkonto = XSaldo - Zahlung.Betrag. END. VBetrag = XSaldo - Zahlung.Betrag - VSkonto. IF VBetrag = 0 THEN LEAVE. IF VBetrag < 0 THEN VBetrag = - VBetrag. IF VBetrag <= VTol THEN VSkonto = XSaldo - Zahlung.Betrag. LEAVE. END. Zahlung.Skonto = VSkonto. PUT Zahlung.Skonto FORMAT "zzz,zz9.99-" AT 087 Zahlung.Konto_S FORMAT "x(12)" AT 099. IF (XSaldo - Zahlung.Betrag - Zahlung.Skonto) <> 0 THEN PUT "*** " FORMAT "x(20)" AT 111 SKIP. ELSE PUT " " FORMAT "x(20)" AT 111 SKIP. VTot[01] = VTot[01] + Zahlung.Betrag. VTot[02] = VTot[02] + Zahlung.Skonto. VTot[03] = VTot[03] + Zahlung.Betrag. VTot[04] = VTot[04] + Zahlung.Skonto. END. PUT "" SKIP. PUT CONTROL Drufettb. PUT TRIM(SUBSTRING(Helptext[18],01,35)) FORMAT "x(35)" AT 014 VTot[01] FORMAT "zzz,zz9.99-" AT 076 VTot[02] FORMAT "zzz,zz9.99-" AT 087. PUT CONTROL Drufette. PUT "" SKIP(1). IF VTot[06] <> 0 THEN DO: PUT CONTROL Drufettb. PUT TRIM(SUBSTRING(Helptext[18],36,35)) FORMAT "x(35)" AT 014 VTot[06] FORMAT "zzz,zz9.99-" AT 076 VTot[07] FORMAT "zzz,zz9.99-" AT 087. PUT CONTROL Drufette. PUT "" SKIP(1). END. IF VTot[06] = VTot[08] THEN DO: FVerbuchen = TRUE. LEAVE. END. PUT CONTROL Drufettb. PUT TRIM(SUBSTRING(Helptext[19],01,35)) FORMAT "x(35)" AT 014 VTot[03] FORMAT "zzz,zz9.99-" AT 076 VTot[04] FORMAT "zzz,zz9.99-" AT 087. PUT CONTROL Drufette. PUT "" SKIP(1). IF VTot[08] <> 0 THEN DO: PUT CONTROL Drufettb. PUT TRIM(SUBSTRING(Helptext[19],36,35)) FORMAT "x(35)" AT 014 VTot[08] FORMAT "zzz,zz9.99-" AT 076 VTot[09] FORMAT "zzz,zz9.99-" AT 087. PUT CONTROL Drufette. PUT "" SKIP(1). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERBUCHEN B-table-Win PROCEDURE VERBUCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ F_Bemerk = 'Zahlungen werden verbucht ...'. DISPLAY F_Bemerk WITH FRAME {&FRAME-NAME}. DEFINE VARIABLE VKnr AS INTEGER. DEFINE VARIABLE VFaknr AS INTEGER. Helptext = ''. i5 = 0. FOR EACH LiBild USE-INDEX LiBild-k1 WHERE LiBild.Sprcd = GVSprcd AND LiBild.Prog = 'ZAHLUNG' NO-LOCK: i5 = i5 + 1. Helptext[i5] = LiBild.Litext. END. VAnzahl = 0. FOR EACH Zahlung USE-INDEX Zahlung-k1 WHERE Zahlung.Firma = GVFirma AND Zahlung.Zahl_Art = 99 AND Zahlung.Verbucht = FALSE TRANSACTION: VAnzahl = VAnzahl + 1. S_Anzahl:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(VAnzahl). VZaBetr = Zahlung.Betrag. VSkBetr = Zahlung.Skonto. VBankKto = Zahlung.Konto_S. VHerk = 63. DVKnr = Zahlung.Knr. DVFaknr = INTEGER(Zahlung.Faknr). XDatum = Zahlung.Datum_1. /* CASE nDatum: WHEN 0 THEN XDatum = Zahlung.Datum_1. WHEN 1 THEN XDatum = Zahlung.Datum_2. WHEN 2 THEN XDatum = Zahlung.Datum_3. END CASE. */ FIND Debop USE-INDEX Debop-k1 WHERE Debop.Firma = Zahlung.Firma AND Debop.Knr = DVKnr AND Debop.Faknr = DVFaknr NO-LOCK. FIND BDebop USE-INDEX Debop-k1 WHERE BDebop.Firma = Debop.Firma AND BDebop.Knr = Debop.Knr AND BDebop.Faknr = Debop.Faknr. FIND BDebst USE-INDEX Debst-k1 WHERE BDebst.Firma = Debop.Firma AND BDebst.Knr = Debop.Knr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Debop.Knr NO-LOCK. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK. FIND SteuNr WHERE SteuNr.Firma = GVFirma NO-LOCK. IF XDatum > BDebop.Faellig THEN VZahFl = FALSE. ELSE VZahFl = TRUE. IF VZahFl THEN VKte = TRIM(SUBSTRING(Helptext[02],21,04)). ELSE VKte = TRIM(SUBSTRING(Helptext[02],31,04)). IF VSkoKto = '' THEN DO: VSkoKto = SteuNr.Konto_Skonto. IF VSkoKto = '' THEN DO: FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1 WHERE Waehrung.Firma = GVFirma AND Waehrung.FRW = Steuer.Fwc03 NO-ERROR. IF AVAILABLE Waehrung THEN VSkoKto = Waehrung.DebSammKto. END. END. VDebKto = BDebop.Konto. FIND LAST TransNr USE-INDEX TransNr-k1 WHERE TransNr.Firma = StFirma AND TransNr.TrNr1 = BDebop.TrNr1 NO-LOCK NO-ERROR. VTrNr1 = TransNr.TrNr1. VTrNr2 = TransNr.TrNr2 + 1. CREATE TransNr. ASSIGN TransNr.Firma = StFirma TransNr.TrNr1 = VTrNr1 TransNr.TrNr2 = VTrNr2 TransNr.Herk = VHerk. VBuchtxt1 = Adresse.Anzeig_Br. VBuchtxt2 = Helptext[01] + " " + STRING(BDebop.Faknr,"9999999"). FOR EACH WFile: DELETE WFile. END. /* ---- Zahlung verarbeiten (Normal) --------------------------------------- */ DO WHILE VZaBetr <> 0 OR VSkBetr <> 0: FIND LAST BDebza USE-INDEX Debza-k1 WHERE BDebza.Firma = GVFirma AND BDebza.Knr = DVKnr AND BDebza.Faknr = DVFaknr NO-LOCK NO-ERROR. IF AVAILABLE BDebza THEN VTrnr = BDebza.Trnr + 1. ELSE VTrnr = 1. CREATE BDebza. ASSIGN BDebza.Firma = GVFirma BDebza.Knr = DVKnr BDebza.Faknr = DVFaknr BDebza.Trnr = VTrnr BDebza.Zahdat = XDatum BDebza.Zahbetr = VZaBetr BDebza.Skonto = VSkBetr BDebza.Konto = VBankKto BDebza.TrNr1 = VTrNr1 BDebza.TrNr2 = VTrNr2 BDebza.FRW = BDebop.Frw BDebza.Kurs = BDebop.Kurs BDebza.Faktor = BDebop.Faktor BDebza.Kte = VKte. RUN MEHRWERTSTEUER. /* MWSTBERECHNUNG */ BDebop.Saldo = BDebop.Saldo - VZaBetr - VSkBetr. BDebop.Skonto = BDebop.Skonto + VSkBetr. BDebop.Zahbetr = BDebop.Zahbetr + VZaBetr. BDebop.Zahdat = XDatum. BDebst.Saldo = BDebst.Saldo - VZaBetr - VSkBetr. FIND LAST Debhi USE-INDEX Debhi-k1 WHERE Debhi.Firma = GVFirma AND Debhi.Knr = DVKnr NO-LOCK NO-ERROR. IF AVAILABLE Debhi THEN VTrnr = Debhi.Trnr + 1. ELSE VTrnr = 1. CREATE Debhi. ASSIGN Debhi.Firma = BDebza.Firma Debhi.Knr = BDebza.Knr Debhi.Trnr = VTrnr Debhi.TrNr1 = VTrNr1 Debhi.TrNr2 = VTrNr2 Debhi.Datum = BDebza.Zahdat Debhi.Faknr = BDebza.Faknr Debhi.Haben = BDebza.Zahbetr Debhi.Kte = BDebza.Kte Debhi.Konto = BDebza.Konto Debhi.Skonto = BDebza.Skonto Debhi.Saldo = BDebst.Saldo Debhi.FRW = BDebop.Frw Debhi.Kurs = BDebop.Kurs Debhi.Faktor = BDebop.Faktor. IF NOT BDebop.Wustabr THEN DO: FIND LAST Debwu USE-INDEX Debwu-k1 WHERE Debwu.Firma = GVFirma AND Debwu.Knr = BDebza.Knr AND Debwu.Faknr = BDebza.Faknr NO-LOCK NO-ERROR. IF AVAILABLE Debwu THEN VTrnr = Debwu.Trnr + 1. ELSE VTrnr = 1. CREATE Debwu. ASSIGN Debwu.Firma = BDebza.Firma Debwu.Knr = BDebza.Knr Debwu.Faknr = BDebza.Faknr Debwu.Trnr = VTrnr Debwu.TrNr1 = VTrNr1 Debwu.TrNr2 = VTrNr2 Debwu.Datum = BDebza.Zahdat Debwu.Betrag = BDebza.Zahbetr Debwu.Konto = BDebza.Konto Debwu.Kte = BDebza.Kte Debwu.FRW = BDebop.Frw Debwu.Kurs = BDebop.Kurs Debwu.Faktor = BDebop.Faktor. DO ix = 1 TO 11: ASSIGN Debwu.Wustpfl[ix] = BDebza.Zahwpfl[ix] Debwu.Wust [ix] = BDebza.Zahwust[ix] Debwu.Skonto [ix] = BDebza.ZahSkon[ix]. END. END. /* ---- Interface fuer Zahlung, Skonto ------------------------------------- */ FIND FIRST WFile WHERE WFile.Kto1 = BDebza.Konto AND WFile.Kto2 = BDebop.Konto NO-ERROR. IF NOT AVAILABLE WFile THEN DO: CREATE WFile. ASSIGN WFile.Kto1 = BDebza.Konto WFile.Kto2 = BDebop.Konto WFile.MWST_Cd = 0. END. ASSIGN WFile.Betrag = WFile.Betrag + VZaBetr. FIND FIRST WFile WHERE WFile.Kto1 = VSkoKto AND WFile.Kto2 = BDebop.Konto NO-ERROR. IF NOT AVAILABLE WFile THEN DO: CREATE WFile. ASSIGN WFile.Kto1 = VSkoKto WFile.Kto2 = BDebop.Konto WFile.MWST_Cd = 0. END. ASSIGN WFile.Betrag = WFile.Betrag + VSkBetr. /* ---- Interface fuer Mehrwertsteuer (Vereinnahmt und Skonto) ------------- */ DO ix = 1 TO 10: IF BDebza.ZahWpfl[ix] = 0 AND BDebza.ZahSkon[ix] = 0 THEN NEXT. FIND FIRST Wust USE-INDEX Wust-k2 WHERE Wust.WuCd = ix NO-LOCK. IF NOT BDebop.WustAbr AND BDebza.ZahWpfl[ix] <> 0 THEN DO: IF BDebop.Fakincl[ix] THEN DO: RundBetr = BDebza.ZahWpfl[ix] / (100 + BDebop.FakWPro[ix]) * BDebop.FakWPro[ix]. Rundcode = 1. RUN "v8/runden.p". END. ELSE DO: Rundbetr = BDebza.ZahWust[ix]. END. FIND FIRST WFile WHERE WFile.Kto1 = SteuNr.Konto_Wust_H AND WFile.Kto2 = Wust.Konto NO-ERROR. IF NOT AVAILABLE WFile THEN DO: CREATE WFile. ASSIGN WFile.Kto1 = SteuNr.Konto_Wust_H WFile.Kto2 = Wust.Konto WFile.MWST_Cd = 0. END. ASSIGN WFile.Betrag = WFile.Betrag + Rundbetr. END. IF BDebza.ZahSkon[ix] <> 0 THEN DO: IF NOT BDebop.WustAbr THEN LVKto1 = SteuNr.Konto_Wust_H. ELSE LVKto1 = Wust.Konto. LVKto2 = VSkoKto. RundBetr = BDebza.ZahSkon[ix] * BDebop.FakWPro[ix] / (100 + BDebop.FakWPro[ix]). Rundcode = 1. RUN "v8/runden.p". FIND FIRST WFile WHERE WFile.Kto1 = LVKto1 AND WFile.Kto2 = LVKto2 NO-ERROR. IF NOT AVAILABLE WFile THEN DO: CREATE WFile. ASSIGN WFile.Kto1 = LVKto1 WFile.Kto2 = LVKto2 WFile.MWST_Cd = 0. END. ASSIGN WFile.Betrag = WFile.Betrag + Rundbetr. END. END. RUN INTERFACE. DVFaknr = BDebop.Faknr. DVKnr = BDebop.Knr. RUN new-state ('zahlung_verbucht, *':U). LEAVE. END. /* Zahlung Normal */ Zahlung.Verbucht = TRUE. END. DVKnr = VKnr. DVFaknr = VFaknr. F_Bemerk = 'Zahlungen sind verbucht'. DISPLAY F_Bemerk WITH FRAME {&FRAME-NAME}. FOR EACH Zahlung WHERE Zahlung.Firma = GVFirma AND Zahlung.Verbucht = TRUE TRANSACTION: DELETE Zahlung. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME