&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME wKreditlimiten &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wKreditlimiten /*------------------------------------------------------------------------ File: Description: from cntnrwin.w - ADM SmartWindow Template Input Parameters: Output Parameters: History: New V9 Version - January 15, 1998 ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AB. */ /*----------------------------------------------------------------------*/ /* 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 Fenster AS HANDLE NO-UNDO. DEF VAR hToolbar AS HANDLE NO-UNDO. DEF VAR FMutFlag AS LOG NO-UNDO INIT FALSE. DEF VAR SAktiv AS LOG NO-UNDO INIT FALSE. DEF VAR Firma AS CHAR NO-UNDO. DEF VAR AdFirma AS CHAR NO-UNDO. DEF VAR Progname AS CHAR NO-UNDO. DEF VAR Vertr AS INT NO-UNDO. DEF VAR cVorlage AS CHAR NO-UNDO. DEF VAR cDokument AS CHAR NO-UNDO. DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR cDateiName AS CHAR NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR Limite AS INT NO-UNDO. DEF VAR Sicherheit AS DEC NO-UNDO. DEF TEMP-TABLE TLimite FIELD Kgr AS INT FIELD Knr AS INT FIELD Frw AS CHAR FIELD Saldo AS DEC FIELD Limite AS INT FIELD Sicher AS DEC FIELD Umsatz AS DEC INDEX TLimite-k1 AS PRIMARY Kgr Knr. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartWindow &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER WINDOW &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source /* Name of first Frame and/or Browse and/or first Query */ &Scoped-define FRAME-NAME fMain /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS RECT-13 F_VonKnr F_BisKnr F_VonKgr F_BisKgr ~ F_VonDatum F_BisDatum T_Limite Btn_OK Btn_Cancel &Scoped-Define DISPLAYED-OBJECTS F_VonKnr F_BisKnr F_VonKgr F_BisKgr ~ F_VonDatum F_BisDatum T_Limite /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 F_VonKnr F_BisKnr F_VonKgr F_BisKgr F_VonDatum ~ F_BisDatum T_Limite /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD XGET_KUNDENGRUPPE wKreditlimiten FUNCTION XGET_KUNDENGRUPPE RETURNS CHARACTER ( ipKgr AS INT ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define the widget handle for the window */ DEFINE VAR wKreditlimiten AS WIDGET-HANDLE NO-UNDO. /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Cancel AUTO-END-KEY LABEL "&abbrechen" SIZE 14 BY 1. DEFINE BUTTON Btn_OK IMAGE-UP FILE "grafik/results%.ico":U IMAGE-INSENSITIVE FILE "grafik/results%.ico":U LABEL "Excel" SIZE 7 BY 1.71. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BisKgr AS INTEGER FORMAT "999":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U LABEL "von - bis Fakturadatum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonKgr AS INTEGER FORMAT "999":U INITIAL 0 LABEL "von - bis Kundengruppen" VIEW-AS FILL-IN NATIVE SIZE 6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_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-13 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 72 BY 9.05. DEFINE VARIABLE T_Limite AS LOGICAL INITIAL no LABEL "nur Kunden mit Kreditlimite" VIEW-AS TOGGLE-BOX SIZE 31.8 BY 1 NO-UNDO. /* ************************ Frame Definitions *********************** */ DEFINE FRAME fMain F_VonKnr AT ROW 1.57 COL 26 COLON-ALIGNED F_BisKnr AT ROW 1.57 COL 44 COLON-ALIGNED F_VonKgr AT ROW 2.52 COL 26 COLON-ALIGNED F_BisKgr AT ROW 2.52 COL 44 COLON-ALIGNED F_VonDatum AT ROW 3.52 COL 26 COLON-ALIGNED F_BisDatum AT ROW 3.52 COL 44 COLON-ALIGNED T_Limite AT ROW 4.52 COL 28 Btn_OK AT ROW 7.52 COL 28.4 Btn_Cancel AT ROW 8 COL 52 RECT-13 AT ROW 1.24 COL 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 74 BY 9.52. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartWindow Allow: Basic,Browse,DB-Fields,Query,Smart,Window Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source Design Page: 1 Other Settings: COMPILE */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW IF SESSION:DISPLAY-TYPE = "GUI":U THEN CREATE WINDOW wKreditlimiten ASSIGN HIDDEN = YES TITLE = "Auswertung der Kreditlimiten" HEIGHT = 9.52 WIDTH = 74 MAX-HEIGHT = 48.76 MAX-WIDTH = 256 VIRTUAL-HEIGHT = 48.76 VIRTUAL-WIDTH = 256 RESIZE = no SCROLL-BARS = no STATUS-AREA = no BGCOLOR = ? FGCOLOR = ? THREE-D = yes MESSAGE-AREA = no SENSITIVE = yes. ELSE {&WINDOW-NAME} = CURRENT-WINDOW. &IF '{&WINDOW-SYSTEM}' NE 'TTY' &THEN IF NOT wKreditlimiten:LOAD-ICON("grafik/appl.ico":U) THEN MESSAGE "Unable to load icon: grafik/appl.ico" VIEW-AS ALERT-BOX WARNING BUTTONS OK. &ENDIF /* END WINDOW DEFINITION */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB wKreditlimiten /* ************************* Included-Libraries *********************** */ {src/adm2/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW wKreditlimiten VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME fMain */ /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_BisKgr IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_VonKgr IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME fMain 6 */ /* SETTINGS FOR TOGGLE-BOX T_Limite IN FRAME fMain 6 */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wKreditlimiten) THEN wKreditlimiten:HIDDEN = yes. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME wKreditlimiten &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wKreditlimiten wKreditlimiten ON END-ERROR OF wKreditlimiten /* Auswertung der Kreditlimiten */ OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO: IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wKreditlimiten wKreditlimiten ON WINDOW-CLOSE OF wKreditlimiten /* Auswertung der Kreditlimiten */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Cancel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel wKreditlimiten ON CHOOSE OF Btn_Cancel IN FRAME fMain /* abbrechen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_OK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK wKreditlimiten ON CHOOSE OF Btn_OK IN FRAME fMain /* Excel */ DO: DO WITH FRAME {&FRAME-NAME}: Btn_OK:SENSITIVE = FALSE. Btn_Cancel:SENSITIVE = FALSE. SESSION:SET-WAIT-STATE ('GENERAL'). END. RUN REPORT. DO WITH FRAME {&FRAME-NAME}: Btn_OK:SENSITIVE = TRUE. Btn_Cancel:SENSITIVE = TRUE. SESSION:SET-WAIT-STATE(''). END. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wKreditlimiten /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. Progname = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.') NO-ERROR. SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR. IF SAktiv THEN DO: Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR. END. SESSION:DATA-ENTRY-RETURN = TRUE. /* TRIGGERS ------------------------------------------------------ */ ON 'END-ERROR':U OF {&WINDOW-NAME} ANYWHERE DO: RUN ENDE. RETURN NO-APPLY. END. /* Include custom Main Block code for SmartWindows. */ {src/adm2/windowmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects wKreditlimiten _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 wKreditlimiten _DEFAULT-DISABLE PROCEDURE disable_UI : /*------------------------------------------------------------------------------ Purpose: DISABLE the User Interface Parameters: Notes: Here we clean-up the user-interface by deleting dynamic widgets we have created and/or hide frames. This procedure is usually called when we are ready to "clean-up" after running. ------------------------------------------------------------------------------*/ /* Delete the WINDOW we created */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wKreditlimiten) THEN DELETE WIDGET wKreditlimiten. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wKreditlimiten PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR wx AS INT NO-UNDO. DEF VAR wy AS INT NO-UNDO. DEF VAR xString AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION NO-ERROR. DYNAMIC-FUNCTION('GET_FEHLWERTE':U, INPUT Progname, INPUT Fenster ) NO-ERROR. ASSIGN {&List-6}. END. GET-KEY-VALUE SECTION 'FensterPositionen' KEY Progname VALUE xString. IF xString = ? THEN xString = '30;30'. IF xString = '' THEN xString = '30;30'. wx = INTEGER(ENTRY(1, xString, ';')). wy = INTEGER(ENTRY(2, xString, ';')). IF wx < 0 THEN wx = 1. IF wy < 0 THEN wy = 1. {&WINDOW-NAME}:X = wx. {&WINDOW-NAME}:Y = wy. RUN SUPER. IF SAktiv THEN RUN FENSTER_TITEL ( INPUT {&WINDOW-NAME}:HANDLE ) NO-ERROR. DO WITH FRAME {&FRAME-NAME}: DISPLAY {&List-6}. END. GET-KEY-VALUE SECTION 'FwDebitor' KEY 'Kred_Lim_Vers' VALUE xString. IF xString = ? THEN xString = ''. IF xString = '' THEN xString= '5000'. Limite = INTEGER(xString). GET-KEY-VALUE SECTION 'FwDebitor' KEY 'FwSicherheit' VALUE xString. IF xString = ? THEN xString = ''. IF xString = '' THEN xString= '85.00'. Sicherheit = DECIMAL(xString). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wKreditlimiten _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ DISPLAY F_VonKnr F_BisKnr F_VonKgr F_BisKgr F_VonDatum F_BisDatum T_Limite WITH FRAME fMain IN WINDOW wKreditlimiten. ENABLE RECT-13 F_VonKnr F_BisKnr F_VonKgr F_BisKgr F_VonDatum F_BisDatum T_Limite Btn_OK Btn_Cancel WITH FRAME fMain IN WINDOW wKreditlimiten. {&OPEN-BROWSERS-IN-QUERY-fMain} VIEW wKreditlimiten. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wKreditlimiten PROCEDURE ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR wx AS INT NO-UNDO. DEF VAR wy AS INT NO-UNDO. DEF VAR xString AS CHAR NO-UNDO. IF Saktiv THEN RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ). wx = {&WINDOW-NAME}:X NO-ERROR. wy = {&WINDOW-NAME}:Y NO-ERROR. xString = STRING(wx) + ';' + STRING(wy). PUT-KEY-VALUE SECTION 'FensterPositionen' KEY Progname VALUE xString. APPLY "CLOSE":U TO THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject wKreditlimiten PROCEDURE exitObject : /*------------------------------------------------------------------------------ Purpose: Window-specific override of this procedure which destroys its contents and itself. Notes: ------------------------------------------------------------------------------*/ RUN ENDE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF wKreditlimiten 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 = 'A1'. eh:Range(Zelle):Select. eh:Selection:VALUE = Steuer.Firma1. Zelle = 'D1'. eh:Range(Zelle):Select. eh:Selection:VALUE = 'Kreditlimitten-Liste'. Zelle = 'I1'. eh:Range(Zelle):Select. eh:Selection:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999'). Zelle = 'A2'. eh:Range(Zelle):Select. eh:Selection:VALUE = Steuer.Ort. Zelle = 'D2'. eh:Range(Zelle):Select. eh:Selection:VALUE = STRING(F_VonDatum,'99.99.9999') + ' - ' + STRING(F_BisDatum,'99.99.9999'). Zelle = 'I2'. 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 REPORT wKreditlimiten PROCEDURE REPORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Saldo AS DEC NO-UNDO. DEF VAR GSaldo AS DEC NO-UNDO. DEF VAR TSaldo AS DEC NO-UNDO. DEF VAR Sicher AS DEC NO-UNDO. DEF VAR GSicher AS DEC NO-UNDO. DEF VAR TSicher AS DEC NO-UNDO. DEF VAR Umsatz AS DEC NO-UNDO. DEF VAR GUmsatz AS DEC NO-UNDO. DEF VAR TUmsatz AS DEC NO-UNDO. DEF VAR cKgr AS CHAR NO-UNDO. DEF VAR ja AS LOG NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF F_VonDatum = ? THEN F_VonDatum = DATE(01,01,0001). IF F_BisDatum = ? THEN F_BisDatum = DATE(12,31,YEAR(TODAY)). IF F_BisDatum < F_VonDatum THEN F_BisDatum = F_BisDatum. IF F_VonKnr = 0 AND F_BisKnr = 0 THEN F_BisKnr = 999999. IF F_VonKgr = 0 AND F_BisKgr = 0 THEN F_BisKgr = 999. IF F_VonKnr > F_BisKnr THEN F_BisKnr = F_VonKnr . IF F_VonKgr > F_BisKgr THEN F_BisKgr = F_VonKgr . DISPLAY {&List-6}. DYNAMIC-FUNCTION('PUT_FEHLWERTE':U, INPUT Progname, INPUT Fenster) NO-ERROR. END. RUN TEMPFILE_FUELLEN. FIND FIRST TLimite NO-LOCK NO-ERROR. IF NOT AVAILABLE TLimite THEN DO: MESSAGE 'Keine Daten Selektiert ! ' VIEW-AS ALERT-BOX INFORMATION. RETURN ''. END. cVorlage = 'Kreditlimiten.xls'. cDokument = 'Kreditlimiten.xls'. cDaten = 'Kreditlimiten.txt'. cDateiName = cDokument + CHR(01) + cVorlage. RUN CREATEDATEI ( INPUT cDateiName ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. cDokument = RETURN-VALUE. cDateiName = cDaten. RUN CREATEDATEI ( INPUT cDateiName ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. cDaten = RETURN-VALUE. OUTPUT TO VALUE(cDaten). TSaldo = 0. TSicher = 0. TUmsatz = 0. FOR EACH TLimite USE-INDEX TLimite-k1 BREAK BY TLimite.Kgr BY TLimite.Knr : IF FIRST-OF ( TLimite.Kgr ) THEN DO: GSaldo = 0. GSicher = 0. GUmsatz = 0. cKgr = DYNAMIC-FUNCTION('XGET_KUNDENGRUPPE':U, INPUT TLimite.Kgr) NO-ERROR. PUT CONTROL STRING(TLimite.Kgr,'999 ') cKgr CHR(10). END. ASSIGN GSaldo = GSaldo + TLimite.Saldo GSicher = GSicher + TLimite.Sicher GUmsatz = GUmsatz + TLimite.Umsatz. ASSIGN TSaldo = TSaldo + TLimite.Saldo TSicher = TSicher + TLimite.Sicher TUmsatz = TUmsatz + TLimite.Umsatz. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = TLimite.Knr NO-LOCK NO-ERROR. PUT CONTROL '£' STRING(TLimite.Knr ,'999999') '£' Adresse.Anzeig_Br '££' TLimite.Frw '£' TRIM(STRING(TLimite.Saldo ,'->>>>>>>9')) '£' TRIM(STRING(TLimite.Umsatz,'->>>>>>>9')) '£' TRIM(STRING(TLimite.Limite,'->>>>>>>9')) '£' TRIM(STRING(TLimite.Sicher,'->>>>>>>9')) CHR(10). IF NOT LAST-OF ( TLimite.Kgr ) THEN NEXT. PUT CONTROL 'Total Kundengruppe ' STRING(TLimite.Kgr ,'999') '£££££' TRIM(STRING(GSaldo ,'->>>>>>>9')) '£' TRIM(STRING(GUmsatz,'->>>>>>>9')) '££' TRIM(STRING(GSicher,'->>>>>>>9')) CHR(10) '£' CHR(10). END. PUT CONTROL 'Gesamttotal aller Gruppen' '£££££' TRIM(STRING(TSaldo ,'->>>>>>>9')) '£' TRIM(STRING(TUmsatz,'->>>>>>>9')) '££' TRIM(STRING(TSicher,'->>>>>>>9')) CHR(10). OUTPUT CLOSE. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: RUN FEHLER ( INPUT 1035 ). RETURN. END. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ). IF NOT ja THEN DO: RUN FEHLER ( INPUT 1040 ). DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. RETURN NO-APPLY. END. Zelle = 'A5'. excelAppl:Range(Zelle):SELECT. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten. excelAppl:APPLICATION:RUN ( 'DateiEinfügen' ). RUN KOPF ( INPUT excelAppl ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEMPFILE_FUELLEN wKreditlimiten PROCEDURE TEMPFILE_FUELLEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Knr AS INT NO-UNDO INIT -1. DEF VAR Saldo AS DEC NO-UNDO. DEF VAR Umsatz AS DEC NO-UNDO. EMPTY TEMP-TABLE TLimite. FOR EACH Debop USE-INDEX Debop-k1 WHERE Debop.Firma = Firma AND Debop.Knr >= F_VonKnr AND Debop.Knr <= F_BisKnr AND Debop.FakDat >= F_VonDatum AND Debop.FakDat <= F_BisDatum NO-LOCK, FIRST Debst NO-LOCK USE-INDEX Debst-k1 WHERE Debst.firma = Debop.Firma AND Debst.Knr = Debop.Knr AND Debst.Ku_Grp >= F_VonKgr AND Debst.Ku_Grp <= F_BisKgr AND ((NOT T_Limite) OR (T_Limite AND Debst.Kred_Lim_Vers > 0)) BREAK BY Debop.Knr BY Debop.Faknr : IF FIRST-OF ( Debop.Knr ) THEN DO: Saldo = 0. Umsatz = 0. END. Saldo = Saldo + Debop.Saldo. Umsatz = Umsatz + Debop.Fakbetr. IF NOT LAST-OF ( Debop.Knr ) THEN NEXT. CREATE TLimite. ASSIGN TLimite.Kgr = Debst.Ku_Grp TLimite.Knr = Debst.Knr TLimite.Saldo = Saldo TLimite.Umsatz = Umsatz TLimite.Limite = Debst.Kred_Lim_Vers TLimite.Frw = Debst.Frw TLimite.Sicher = 0. IF TLimite.Limite = 0 THEN NEXT. IF TLimite.Saldo < TLimite.Limite THEN TLimite.Sicher = TLimite.Saldo * Sicherheit / 100. ELSE TLimite.Sicher = TLimite.Limite * Sicherheit / 100. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION XGET_KUNDENGRUPPE wKreditlimiten FUNCTION XGET_KUNDENGRUPPE RETURNS CHARACTER ( ipKgr AS INT ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ FIND FIRST Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = Firma AND Tabel.RecArt = 'KUNDGRP' AND Tabel.CodeC = '' AND Tabel.CodeI = ipKgr NO-LOCK NO-ERROR. IF NOT AVAILABLE Tabel THEN RETURN '?????????'. RETURN Tabel.Bez1. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME