&ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gVerband &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gVerband /*------------------------------------------------------------------------ File: Description: from cntnrdlg.w - ADM2 SmartDialog Template Input Parameters: Output Parameters: Author: Created: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AppBuilder. */ /*----------------------------------------------------------------------*/ /* Create an unnamed pool to store all the widgets created by this procedure. This is a good default which assures that this procedure's triggers and internal procedures will execute in this procedure's storage, and that proper cleanup will occur on deletion of the procedure. */ CREATE WIDGET-POOL. /* *************************** Definitions ************************** */ /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEF VAR MaxPage AS INT NO-UNDO. DEF VAR AktSeite AS INT NO-UNDO. DEF VAR FMutFlag AS LOG NO-UNDO. DEF VAR Fenster AS HANDLE NO-UNDO. DEF VAR Verband_Grp AS INT NO-UNDO. DEF VAR Firma AS CHAR INIT '1000' NO-UNDO. DEF VAR AdFirma AS CHAR INIT '1000' NO-UNDO. DEF VAR Progname AS CHAR INIT '1000' NO-UNDO. DEF VAR FwSprcd AS INT NO-UNDO. DEF VAR RetVal AS CHAR NO-UNDO. DEF VAR Faknr AS INT NO-UNDO INIT 999999. DEF BUFFER BAdresse FOR Adresse. DEF BUFFER BDebst FOR Debst. DEF TEMP-TABLE TDebop LIKE Debop. DEF WORKFILE WDebop LIKE Debop. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartDialog &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER DIALOG-BOX &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target /* Name of first Frame and/or Browse and/or first Query */ &Scoped-define FRAME-NAME gVerband /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS CB_Verband VonKnr BisKnr VonDatum BisDatum ~ Fakturadatum FakKnr T_Verbuchen Btn_Excel F_Adresse RECT-37 &Scoped-Define DISPLAYED-OBJECTS CB_Verband VonKnr BisKnr VonDatum BisDatum ~ Fakturadatum FakKnr T_Verbuchen F_Adresse /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-5 Btn_Excel &Scoped-define List-6 CB_Verband VonKnr BisKnr VonDatum BisDatum ~ Fakturadatum FakKnr T_Verbuchen F_Adresse /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define a dialog box */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Excel IMAGE-UP FILE "grafik/results%.ico":U IMAGE-INSENSITIVE FILE "grafik/results%.ico":U LABEL "Excel" SIZE 7 BY 1.81. DEFINE VARIABLE CB_Verband AS CHARACTER FORMAT "X(256)":U LABEL "Verband" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 46 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE BisDatum AS DATE FORMAT "99.99.9999":U VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE BisKnr AS INTEGER FORMAT "999999":U INITIAL 999999 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE FakKnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "Knr der Faktura" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE Fakturadatum AS DATE FORMAT "99.99.9999":U LABEL "Datum für Gesamtrechnung" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Adresse AS CHARACTER FORMAT "X(256)":U VIEW-AS FILL-IN NATIVE SIZE 48 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE VonDatum AS DATE FORMAT "99.99.9999":U INITIAL 01/01/00 LABEL "von - bis Fakturadatum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE VonKnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "von - bis Kundennummer" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-37 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 90 BY 9.05. DEFINE VARIABLE T_Verbuchen AS LOGICAL INITIAL no LABEL "Verbuchen nach Liste" VIEW-AS TOGGLE-BOX SIZE 45 BY 1 NO-UNDO. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gVerband CB_Verband AT ROW 2 COL 28 COLON-ALIGNED VonKnr AT ROW 3 COL 28 COLON-ALIGNED BisKnr AT ROW 3 COL 46 COLON-ALIGNED VonDatum AT ROW 4 COL 28 COLON-ALIGNED BisDatum AT ROW 4 COL 46 COLON-ALIGNED NO-LABEL Fakturadatum AT ROW 6 COL 28 COLON-ALIGNED FakKnr AT ROW 7 COL 28 COLON-ALIGNED T_Verbuchen AT ROW 8.33 COL 30 Btn_Excel AT ROW 4 COL 82.2 F_Adresse AT ROW 7 COL 39 COLON-ALIGNED NO-LABEL NO-TAB-STOP RECT-37 AT ROW 1.24 COL 2 SPACE(0.99) SKIP(0.22) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Verbandsabrechnung". /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDialog Allow: Basic,Browse,DB-Fields,Query,Smart Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target Design Page: 1 Other Settings: COMPILE */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gVerband /* ************************* Included-Libraries *********************** */ {src/adm2/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR DIALOG-BOX gVerband Custom */ ASSIGN FRAME gVerband:SCROLLABLE = FALSE FRAME gVerband:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN BisDatum IN FRAME gVerband 6 */ /* SETTINGS FOR FILL-IN BisKnr IN FRAME gVerband 6 */ /* SETTINGS FOR BUTTON Btn_Excel IN FRAME gVerband 5 */ /* SETTINGS FOR COMBO-BOX CB_Verband IN FRAME gVerband 6 */ /* SETTINGS FOR FILL-IN FakKnr IN FRAME gVerband 6 */ /* SETTINGS FOR FILL-IN Fakturadatum IN FRAME gVerband 6 */ /* SETTINGS FOR FILL-IN F_Adresse IN FRAME gVerband 6 */ ASSIGN F_Adresse:READ-ONLY IN FRAME gVerband = TRUE. /* SETTINGS FOR TOGGLE-BOX T_Verbuchen IN FRAME gVerband 6 */ /* SETTINGS FOR FILL-IN VonDatum IN FRAME gVerband 6 */ /* SETTINGS FOR FILL-IN VonKnr IN FRAME gVerband 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gVerband /* Query rebuild information for DIALOG-BOX gVerband _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gVerband */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gVerband &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gVerband gVerband ON END-ERROR OF FRAME gVerband /* Verbandsabrechnung */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gVerband gVerband ON GO OF FRAME gVerband /* Verbandsabrechnung */ DO: RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gVerband gVerband ON WINDOW-CLOSE OF FRAME gVerband /* Verbandsabrechnung */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Excel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel gVerband ON CHOOSE OF Btn_Excel IN FRAME gVerband /* Excel */ DO: DO WITH FRAME {&FRAME-NAME}: SESSION:SET-WAIT-STATE('GENEARL'). Btn_Excel:VISIBLE = FALSE. RUN REPORT. Btn_Excel:VISIBLE = TRUE. SESSION:SET-WAIT-STATE(''). RUN ENDE. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME FakKnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL FakKnr gVerband ON LEAVE OF FakKnr IN FRAME gVerband /* Knr der Faktura */ DO: RUN KUNDE ( INPUT INTEGER(SELF:SCREEN-VALUE) ). IF RETURN-VALUE = 'ERROR' THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. F_Adresse:SCREEN-VALUE IN FRAME {&FRAME-NAME} = BAdresse.Anzeig_Br. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gVerband /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR. ProgName = DYNAMIC-FUNCTION('MAKEPROGNAME':U, INPUT THIS-PROCEDURE) NO-ERROR. SESSION:DATA-ENTRY-RETURN = TRUE. /* TRIGGERS ------------------------------------------------------ */ /* ------------------------------------------------------------------ */ {src/adm2/dialogmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gVerband _ADM-CREATE-OBJECTS PROCEDURE adm-create-objects : /*------------------------------------------------------------------------------ Purpose: Create handles for all SmartObjects used in this procedure. After SmartObjects are initialized, then SmartLinks are added. Parameters: ------------------------------------------------------------------------------*/ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gVerband _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 gVerband. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gVerband PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: RUN COMBO_VERBAND ( INPUT CB_Verband:HANDLE ). END. RUN SUPER. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. IF VALID-HANDLE(Fenster) THEN Fenster = Fenster:FIRST-CHILD. DO WHILE VALID-HANDLE(Fenster). DO WHILE TRUE WITH FRAME {&FRAME-NAME}: IF Fenster:TYPE = 'EDITOR' THEN LEAVE. IF Fenster:TYPE = 'LITERAL' THEN LEAVE. IF Fenster:TYPE = 'RECTANGLE' THEN LEAVE. IF Fenster:TYPE = 'BUTTON' THEN LEAVE. GET-KEY-VALUE SECTION 'Verbandsabrechnung' KEY Fenster:NAME VALUE cString. IF cString = ? THEN LEAVE. Fenster:SCREEN-VALUE = cString NO-ERROR. LEAVE. END. Fenster = Fenster:NEXT-SIBLING. END. RUN LESENFWAUSWERTUNGEN ( INPUT FRAME {&FRAME-NAME}:HANDLE, INPUT Progname ) NO-ERROR. T_Verbuchen = FALSE. DISPLAY T_Verbuchen WITH FRAME {&FRAME-NAME}. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gVerband _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 CB_Verband VonKnr BisKnr VonDatum BisDatum Fakturadatum FakKnr T_Verbuchen F_Adresse WITH FRAME gVerband. ENABLE CB_Verband VonKnr BisKnr VonDatum BisDatum Fakturadatum FakKnr T_Verbuchen Btn_Excel F_Adresse RECT-37 WITH FRAME gVerband. VIEW FRAME gVerband. {&OPEN-BROWSERS-IN-QUERY-gVerband} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gVerband PROCEDURE ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR. IF AktSeite > 1 THEN DO: RUN selectPage ( INPUT 1 ). RETURN NO-APPLY. END. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ). APPLY 'GO' TO FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gVerband PROCEDURE exitObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ RUN ENDE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF gVerband PROCEDURE KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. /* FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. Zelle = 'B1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Firma1. Zelle = 'D1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Preisliste ' + xPreisgrp. Zelle = 'H1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999'). Zelle = 'B2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Ort. Zelle = 'D2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = ''. Zelle = 'H2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS'). */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KUNDE gVerband PROCEDURE KUNDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipKnr AS INT NO-UNDO. FIND BAdresse USE-INDEX Adresse-k1 WHERE BAdresse.Firma = AdFirma AND BAdresse.Knr = ipKnr NO-LOCK NO-ERROR. IF NOT AVAILABLE BAdresse THEN RETURN 'ERROR'. IF NOT BAdresse.Aktiv THEN RETURN 'ERROR'. FIND BDebst USE-INDEX Debst-k1 WHERE BDebst.Firma = Firma AND BDebst.Knr = ipKnr NO-LOCK NO-ERROR. IF NOT AVAILABLE BDebst THEN RETURN 'ERROR'. IF NOT BDebst.Aktiv THEN RETURN 'ERROR'. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gVerband PROCEDURE REPORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR Betr1 AS DEC NO-UNDO EXTENT 3. DEF VAR Betr2 AS DEC NO-UNDO EXTENT 3. DEF VAR Betr3 AS DEC NO-UNDO EXTENT 3. DEF VAR Rab1 AS DEC NO-UNDO. DEF VAR Rab2 AS DEC NO-UNDO. DEF VAR Netto AS DEC NO-UNDO. DEF VAR VWpfl AS DEC NO-UNDO EXTENT 12. DEF VAR VWust AS DEC NO-UNDO EXTENT 12. DEF VAR OK AS LOG NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR Vorlage AS CHAR NO-UNDO. DEF VAR Dokument AS CHAR NO-UNDO. DEF VAR Daten AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF VonKnr = 0 AND BisKnr = 0 THEN BisKnr = 999999. IF VonDatum = ? THEN VonDatum = DATE(MONTH(TODAY),01,YEAR(TODAY)). IF BisDatum = ? THEN DO: BisDatum = VonDatum. DO WHILE MONTH(BisDatum) = MONTH(VonDatum): BisDatum = BisDatum + 1. END. BisDatum = BisDatum - 1. END. IF Fakturadatum = ? THEN Fakturadatum = TODAY. RUN KUNDE ( INPUT FakKnr ). IF RETURN-VALUE = 'ERROR' THEN RETURN. F_Adresse:SCREEN-VALUE IN FRAME {&FRAME-NAME} = BAdresse.Anzeig_Br. Verband_Grp = INTEGER(CB_Verband:SCREEN-VALUE). DISPLAY {&List-6}. END. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. IF VALID-HANDLE(Fenster) THEN Fenster = Fenster:FIRST-CHILD. DO WHILE VALID-HANDLE(Fenster). DO WHILE TRUE WITH FRAME {&FRAME-NAME}: IF Fenster:TYPE = 'EDITOR' THEN LEAVE. IF Fenster:TYPE = 'LITERAL' THEN LEAVE. IF Fenster:TYPE = 'RECTANGLE' THEN LEAVE. IF Fenster:TYPE = 'BUTTON' THEN LEAVE. cString = Fenster:SCREEN-VALUE. PUT-KEY-VALUE SECTION 'Verbandsabrechnung' KEY Fenster:NAME VALUE cString. LEAVE. END. Fenster = Fenster:NEXT-SIBLING. END. RUN SCHREIBENFWAUSWERTUNGEN ( INPUT FRAME {&FRAME-NAME}:HANDLE, INPUT Progname ) NO-ERROR. RUN SELEKTION. FIND FIRST TDebop NO-LOCK NO-ERROR. IF NOT AVAILABLE TDebop THEN RETURN. Vorlage = 'Verbandsabrechnung.xls'. Dokument = Vorlage + CHR(01) + Vorlage. Daten = 'Verbandsabrechnung.csv'. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: RUN FEHLER ( INPUT 1035 ). RETURN NO-APPLY. END. DO WHILE TRUE: RUN CREATEDATEI ( INPUT Dokument ). IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE. CASE RETURN-VALUE: WHEN 'ERROR-PARAMETER' THEN DO: RUN FEHLER ( INPUT 1036 ). RETURN NO-APPLY. END. WHEN 'ERROR-LOESCHEN' THEN DO: RUN FEHLER ( INPUT 1037 ). RETURN NO-APPLY. END. WHEN 'ERROR-VORLAGE' THEN DO: RUN FEHLER ( INPUT 1038 ). RETURN NO-APPLY. END. OTHERWISE DO: MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. END CASE. LEAVE. END. Dokument = RETURN-VALUE. DO WHILE TRUE: RUN CREATEDATEI ( INPUT Daten ). IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE. CASE RETURN-VALUE: WHEN 'ERROR-PARAMETER' THEN DO: RUN FEHLER ( INPUT 1036 ). RETURN NO-APPLY. END. WHEN 'ERROR-LOESCHEN' THEN DO: RUN FEHLER ( INPUT 1037 ). RETURN NO-APPLY. END. WHEN 'ERROR-VORLAGE' THEN DO: RUN FEHLER ( INPUT 1038 ). RETURN NO-APPLY. END. OTHERWISE DO: MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. END CASE. LEAVE. END. Daten = RETURN-VALUE. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. IF T_Verbuchen THEN DO: RUN NUMMER_LOESEN ( INPUT 2, OUTPUT Faknr ). END. OUTPUT TO VALUE(Daten). PUT CONTROL '£' CHR(10). DO ix = 1 TO 11: CASE ix: WHEN 2 THEN PUT CONTROL '£' Steuer.Firma1 '££'. WHEN 3 THEN PUT CONTROL '£' Steuer.Firma2 '££'. WHEN 4 THEN PUT CONTROL '£' Steuer.Strasse '££'. WHEN 5 THEN PUT CONTROL '£' Steuer.Ort '££'. WHEN 6 THEN PUT CONTROL '£MWST-Nr : ' Steuer.MWST_Nr '££'. OTHERWISE PUT CONTROL '£££'. END CASE. PUT CONTROL BAdresse.Anschrift[ix] CHR(10). END. PUT CONTROL '£' CHR(10) '£' CHR(10) '£' CHR(10) '£Rechnung : ' STRING(Faknr,'999999') '££' Steuer.Ort ', ' STRING(Fakturadatum,'99.99.9999') CHR(10) '£' CHR(10). PUT CONTROL '£Knr£Filiale£Faknr£Ansatz1£Ansatz2£Total' CHR(10) '£' CHR(10). Betr1 = 0. Betr2 = 0. Betr3 = 0. VWpfl = 0. VWust = 0. FOR EACH TDebop USE-INDEX Debop-k1 NO-LOCK, FIRST Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = TDebop.Knr NO-LOCK BREAK BY TDebop.Knr BY TDebop.Faknr : IF FIRST-OF ( TDebop.Faknr ) THEN DO: Betr1[01] = 0. Betr2[01] = 0. Betr3[01] = 0. END. IF FIRST-OF ( TDebop.Knr ) THEN DO: Betr1[02] = 0. Betr2[02] = 0. Betr3[02] = 0. END. DO ix = 1 TO 11: VWpfl[ix] = VWpfl[ix] + TDebop.FakWpfl[ix]. VWust[ix] = VWust[ix] + TDebop.FakWust[ix]. IF ix = 11 THEN NEXT. IF TDebop.FakWpfl[ix] = 0 THEN NEXT. IF TDebop.FakWpro[ix] < 5 THEN ii = 1. ELSE ii = 2. CASE ii: WHEN 1 THEN DO: Betr1[01] = Betr1[01] + TDebop.FakWpfl[ix]. Betr1[02] = Betr1[02] + TDebop.FakWpfl[ix]. Betr1[03] = Betr1[03] + TDebop.FakWpfl[ix]. END. WHEN 2 THEN DO: Betr2[01] = Betr2[01] + TDebop.FakWpfl[ix]. Betr2[02] = Betr2[02] + TDebop.FakWpfl[ix]. Betr2[03] = Betr2[03] + TDebop.FakWpfl[ix]. END. END CASE. END. Betr3[01] = Betr3[01] + TDebop.FakBetr. Betr3[02] = Betr3[02] + TDebop.FakBetr. Betr3[03] = Betr3[03] + TDebop.FakBetr. PUT CONTROL '£' STRING(TDebop.Knr ,'999999') '£' Adresse.Anzeig_Br '£' STRING(TDebop.Faknr ,'999999') '£' TRIM(STRING(Betr1[01],'->>>>>>>>9.99')) '£' TRIM(STRING(Betr2[01],'->>>>>>>>9.99')) '£' TRIM(STRING(Betr3[01],'->>>>>>>>9.99')) CHR(10). END. PUT CONTROL '£' CHR(10) 'Total aller Rechnungen££££' TRIM(STRING(Betr1[03],'->>>>>>>>9.99')) '£' TRIM(STRING(Betr2[03],'->>>>>>>>9.99')) '£' TRIM(STRING(Betr3[03],'->>>>>>>>9.99')) CHR(10). Rab1 = Betr1[03] * 4.0 / 100 * -1. Rab2 = Betr2[03] * 3.2 / 100 * -1. Netto = Betr3[03] + Rab1 + Rab2. PUT CONTROL '£Rabatt 4.0% auf Ansatz 1£££££' TRIM(STRING(Rab1,'->>>>>>>>9.99')) CHR(10). PUT CONTROL '£Rabatt 3.2% auf Ansatz 2£££££' TRIM(STRING(Rab2,'->>>>>>>>9.99')) CHR(10). PUT CONTROL 'Netto-Rechnungsbetrag££££££' TRIM(STRING(Netto,'->>>>>>>>9.99')) CHR(10) '£' CHR(10). PUT CONTROL 'Mehrwertsteueraufstellung' CHR(10). 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 <= Fakturadatum NO-LOCK. PUT CONTROL '££' MWSTAns.Bez '££' TRIM(STRING(VWpfl[ix],'->>>>>>>>9.99')) '£' TRIM(STRING(MWSTAns.Ansatz,'z9.99')) '£' TRIM(STRING(VWust[ix],'->>>>>>>>9.99')) CHR(10). END. OUTPUT CLOSE. RUN OPENEXCEL ( INPUT excelAppl, INPUT Dokument, INPUT '', OUTPUT ok ). IF NOT ok THEN DO: RUN FEHLER ( INPUT 1040 ). RETURN NO-APPLY. END. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + Daten. excelAppl:Application:RUN ( 'DateiEinfügen' ). RUN KOPF ( INPUT excelAppl ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. IF T_Verbuchen THEN RUN VERBUCHEN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SELEKTION gVerband PROCEDURE SELEKTION : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FOR EACH TDebop: DELETE TDebop. END. FOR EACH Debop USE-INDEX Debop-k1 WHERE Debop.Firma = Firma AND Debop.Knr >= VonKnr AND Debop.Knr <= BisKnr AND Debop.FakDat >= VonDatum AND Debop.FakDat <= BisDatum AND Debop.Saldo = Debop.FakBetr NO-LOCK, FIRST Debst USE-INDEX Debst-k1 WHERE Debst.Firma = Debop.Firma AND Debst.Knr = Debop.Knr AND Debst.Verband_Grp = Verband_Grp NO-LOCK: CREATE TDebop. BUFFER-COPY Debop TO TDebop. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERBUCHEN gVerband PROCEDURE VERBUCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR ix AS INT NO-UNDO. DEF VAR VTrNr1 AS INT NO-UNDO. DEF VAR VTrNr2 AS INT NO-UNDO. DEF VAR ja AS LOG NO-UNDO INIT FALSE. MESSAGE 'Wollen Sie die verbuchung starten ? ' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE ja. IF NOT Ja THEN RETURN. FIND FIRST Kondi USE-INDEX Kondi-k1 WHERE Kondi.Kond = BDebst.Kond NO-LOCK NO-ERROR. REPEAT TRANSACTION: FIND LAST TransNr USE-INDEX TransNr-k1 WHERE TransNr.Firma = '9999' NO-LOCK NO-ERROR. IF AVAILABLE TransNr THEN DO: VTrNr1 = TransNr.TrNr1 + 1. VTrNr2 = 1. END. ELSE DO: VTrNr1 = 1. VTrNr2 = 1. END. CREATE TransNr. ASSIGN TransNr.Firma = '9999' TransNr.TrNr1 = VTrNr1 TransNr.TrNr2 = VTrNr2 TransNr.Herk = 69. FOR EACH WDebop: DELETE WDebop. END. CREATE WDebop. ASSIGN WDebop.Firma = Firma WDebop.Knr = BDebst.Knr WDebop.Faknr = Faknr WDebop.Fakdat = Fakturadatum WDebop.Faellig = Fakturadatum + Kondi.Faellig WDebop.Kond = BDebst.Kond WDebop.Kte = 'VERB' WDebop.Vertr = 0 WDebop.TrNr1 = VTrNr1 WDebop.TrNr2 = VTrNr2. FIND FIRST TDebop NO-LOCK. ASSIGN WDebop.MahDat = ? WDebop.MahAnz = 0 WDebop.MahStu = 0 WDebop.Konto = TDebop.Konto WDebop.WustAbr = TDebop.WustAbr WDebop.FRW = TDebop.FRW WDebop.Kurs = TDebop.Kurs WDebop.Faktor = TDebop.Faktor. FOR EACH TDebop: FIND FIRST WDebop. ASSIGN WDebop.Saldo = WDebop.Saldo + TDebop.Saldo WDebop.Fakbetr = WDebop.Fakbetr + TDebop.Fakbetr WDebop.Zahbetr = WDebop.Zahbetr + TDebop.Zahbetr WDebop.Skonto = WDebop.Skonto + TDebop.Skonto WDebop.Skber = WDebop.Skber + TDebop.Skber WDebop.WW = WDebop.WW + TDebop.WW WDebop.Porto = WDebop.Porto + TDebop.Porto WDebop.Verpack = WDebop.Verpack + TDebop.Verpack WDebop.Transp = WDebop.Transp + TDebop.Transp. DO ix = 1 TO 12: IF TDebop.Fakwpfl[ix] = 0 THEN NEXT. ASSIGN WDebop.Fakwpfl[ix] = WDebop.Fakwpfl[ix] + TDebop.Fakwpfl[ix] WDebop.Fakwust[ix] = WDebop.Fakwust[ix] + TDebop.Fakwust[ix] WDebop.Fakwpro[ix] = TDebop.Fakwpro[ix] WDebop.Fakincl[ix] = TDebop.Fakincl[ix]. END. FIND Debst WHERE Debst.Firma = TDebop.Firma AND Debst.Knr = TDebop.Knr. FIND Debop WHERE Debop.Firma = TDebop.Firma AND Debop.Knr = TDebop.Knr AND Debop.Faknr = TDebop.Faknr. Debst.Saldo = Debst.Saldo - TDebop.Saldo. FIND LAST Debhi USE-INDEX Debhi-k1 WHERE Debhi.Firma = TDebop.Firma AND Debhi.Knr = TDebop.Knr NO-LOCK NO-ERROR. IF AVAILABLE Debhi THEN ix = Debhi.Trnr + 1. ELSE ix = 1. CREATE Debhi. ASSIGN Debhi.Firma = TDebop.Firma Debhi.Knr = TDebop.Knr Debhi.Trnr = ix Debhi.TrNr1 = VTrNr1 Debhi.TrNr2 = VTrNr2 Debhi.Datum = Fakturadatum Debhi.Faknr = TDebop.Faknr Debhi.Haben = TDebop.Saldo Debhi.Kte = 'VERB' Debhi.Konto = TDebop.Konto Debhi.Skonto = 0 Debhi.Saldo = Debst.Saldo Debhi.FRW = TDebop.Frw Debhi.Kurs = TDebop.Kurs Debhi.Faktor = TDebop.Faktor. DELETE Debop. END. FIND FIRST WDebop. FIND Debst WHERE Debst.Firma = WDebop.Firma AND Debst.Knr = WDebop.Knr. Debst.Saldo = Debst.Saldo + WDebop.Saldo. CREATE Debop. BUFFER-COPY WDebop TO Debop. FIND LAST Debhi USE-INDEX Debhi-k1 WHERE Debhi.Firma = WDebop.Firma AND Debhi.Knr = WDebop.Knr NO-LOCK NO-ERROR. IF AVAILABLE Debhi THEN ix = Debhi.Trnr + 1. ELSE ix = 1. CREATE Debhi. ASSIGN Debhi.Firma = WDebop.Firma Debhi.Knr = WDebop.Knr Debhi.Trnr = ix Debhi.TrNr1 = VTrNr1 Debhi.TrNr2 = VTrNr2 Debhi.Datum = Fakturadatum Debhi.Faknr = WDebop.Faknr Debhi.Haben = 0 Debhi.Soll = WDebop.Saldo Debhi.Kte = 'VERB' Debhi.Konto = WDebop.Konto Debhi.Skonto = 0 Debhi.Saldo = Debst.Saldo Debhi.FRW = WDebop.Frw Debhi.Kurs = WDebop.Kurs Debhi.Faktor = WDebop.Faktor. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME