&ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW &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 --- */ /* ---------- Globale Variablen ---------------------------------- */ { v8/globvar.i" " " " "SHARED" } { v8/debivar.i " " " " "SHARED" } { v8/artivar.i " " " " "SHARED" } { v8/contvar.i " " " " "SHARED" } /* _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 first Frame and/or Browse and/or first Query */ &Scoped-define FRAME-NAME F-Main &Scoped-define BROWSE-NAME br_table /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES Debhi /* Define KEY-PHRASE in case it is used by any query. */ &Scoped-define KEY-PHRASE TRUE /* Definitions for BROWSE br_table */ &Scoped-define FIELDS-IN-QUERY-br_table Debhi.Datum Debhi.Faknr Debhi.Soll ~ Debhi.Haben Debhi.Skonto Debhi.Konto Debhi.Kte Debhi.Saldo &Scoped-define ENABLED-FIELDS-IN-QUERY-br_table &Scoped-define QUERY-STRING-br_table FOR EACH Debhi WHERE ~{&KEY-PHRASE} ~ AND Debhi.Firma = GVFirma ~ AND Debhi.Knr = DVKnr NO-LOCK ~ BY Debhi.Knr ~ BY Debhi.Datum DESCENDING ~ BY Debhi.Faknr DESCENDING ~ BY Debhi.Trnr DESCENDING &Scoped-define OPEN-QUERY-br_table OPEN QUERY br_table FOR EACH Debhi WHERE ~{&KEY-PHRASE} ~ AND Debhi.Firma = GVFirma ~ AND Debhi.Knr = DVKnr NO-LOCK ~ BY Debhi.Knr ~ BY Debhi.Datum DESCENDING ~ BY Debhi.Faknr DESCENDING ~ BY Debhi.Trnr DESCENDING. &Scoped-define TABLES-IN-QUERY-br_table Debhi &Scoped-define FIRST-TABLE-IN-QUERY-br_table Debhi /* Definitions for FRAME F-Main */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS Btn_Excel F_Knr F_Kunde br_table RECT-1 &Scoped-Define DISPLAYED-OBJECTS F_Knr F_Kunde /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ /* _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_Excel LABEL "&Excel" SIZE 14 BY 1.24. DEFINE VARIABLE F_Knr AS INTEGER FORMAT "999999":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Kunde AS CHARACTER FORMAT "X(256)":U VIEW-AS FILL-IN NATIVE SIZE 80 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-1 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 117.4 BY 10.81. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY br_table FOR Debhi SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE br_table &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_table B-table-Win _STRUCTURED QUERY br_table NO-LOCK DISPLAY Debhi.Datum FORMAT "99.99.9999":U Debhi.Faknr FORMAT "z999999":U Debhi.Soll FORMAT "z,zzz,zz9.99-":U Debhi.Haben FORMAT "z,zzz,zz9.99-":U Debhi.Skonto FORMAT "zz,zz9.99-":U Debhi.Konto FORMAT "x(12)":U Debhi.Kte COLUMN-LABEL "KText" FORMAT "x(05)":U Debhi.Saldo FORMAT "z,zzz,zz9.99-":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ASSIGN NO-ROW-MARKERS SEPARATORS SIZE 98 BY 8.57 BGCOLOR 15 . /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main Btn_Excel AT ROW 3 COL 102.6 F_Knr AT ROW 1.67 COL 3 NO-LABEL F_Kunde AT ROW 1.67 COL 15 COLON-ALIGNED NO-LABEL br_table AT ROW 3 COL 3 RECT-1 AT ROW 1.24 COL 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SCROLLABLE . /* *********************** 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 */ /* 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 = 11.19 WIDTH = 120.2. /* 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 Size-to-Fit Custom */ /* BROWSE-TAB br_table F_Kunde F-Main */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE FRAME F-Main:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN F_Knr IN FRAME F-Main ALIGN-L */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE br_table /* Query rebuild information for BROWSE br_table _TblList = "AnaDat.Debhi" _Options = "NO-LOCK KEY-PHRASE" _OrdList = "AnaDat.Debhi.Knr|yes,AnaDat.Debhi.Datum|no,AnaDat.Debhi.Faknr|no,AnaDat.Debhi.Trnr|no" _Where[1] = "Debhi.Firma = GVFirma AND Debhi.Knr = DVKnr" _FldNameList[1] = Anadat.Debhi.Datum _FldNameList[2] > Anadat.Debhi.Faknr "Debhi.Faknr" ? "z999999" "integer" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[3] > Anadat.Debhi.Soll "Debhi.Soll" ? "z,zzz,zz9.99-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[4] > Anadat.Debhi.Haben "Debhi.Haben" ? "z,zzz,zz9.99-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[5] > Anadat.Debhi.Skonto "Debhi.Skonto" ? "zz,zz9.99-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[6] = Anadat.Debhi.Konto _FldNameList[7] > Anadat.Debhi.Kte "Debhi.Kte" "KText" "x(05)" "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[8] > Anadat.Debhi.Saldo "Debhi.Saldo" ? "z,zzz,zz9.99-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is NOT OPENED */ /* BROWSE br_table */ &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 DO: RUN new-state ( INPUT 'ENDE, MAIN':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME br_table &Scoped-define SELF-NAME br_table &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win ON END-ERROR OF br_table IN FRAME F-Main DO: RUN new-state ( INPUT 'ENDE, MAIN':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win ON ROW-ENTRY OF br_table 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_table B-table-Win ON ROW-LEAVE OF br_table 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_table B-table-Win ON VALUE-CHANGED OF br_table IN FRAME F-Main DO: /* This ADM trigger code must be preserved in order to notify other objects when the browser's current row changes. */ {src/adm/template/brschnge.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Excel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel B-table-Win ON CHOOSE OF Btn_Excel IN FRAME F-Main /* Excel */ DO: RUN EXCEL. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Knr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr B-table-Win ON ENTRY OF F_Knr IN FRAME F-Main DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Kunde &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Kunde B-table-Win ON ENTRY OF F_Kunde IN FRAME F-Main DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK B-table-Win /* *************************** Main Block *************************** */ &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN RUN dispatch IN THIS-PROCEDURE ('initialize':U). &ENDIF ON END-ERROR OF BROWSE {&BROWSE-NAME} DO: RUN new-state ( INPUT 'ENDE, MAIN':U ). RETURN NO-APPLY. END. ON END-ERROR OF FRAME {&FRAME-NAME} DO: APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END. /* _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 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 EXCEL B-table-Win PROCEDURE EXCEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR VKnr AS INT NO-UNDO. DEF VAR Vorlage AS CHAR NO-UNDO. DEF VAR Datei AS CHAR NO-UNDO. DEF VAR Daten AS CHAR NO-UNDO. DEF VAR cParam AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR io AS LOG NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. Vorlage = 'DebHist.xls'. Datei = 'DebHist.xls'. Daten = SESSION:TEMP-DIR + 'DebHist.csv'. cParam = Datei + CHR(01) + Vorlage. RUN CREATEDATEI ( INPUT cParam ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. Datei = RETURN-VALUE. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: MESSAGE 'Die Applikation Excel konnte nicht gestartet werden ! ' VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. OUTPUT TO VALUE(Daten). VKnr = INTEGER(F_Knr:SCREEN-VALUE IN FRAME {&FRAME-NAME}). FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VKnr NO-LOCK. PUT CONTROL STRING(Adresse.Knr,'999999') CHR(10) Adresse.Anschrift[06] CHR(10) Adresse.Anschrift[07] CHR(10) Adresse.Anschrift[08] CHR(10) Adresse.Anschrift[09] CHR(10) Adresse.Anschrift[10] CHR(10) Adresse.Anschrift[11] CHR(10) '£' CHR(10) '£' CHR(10) '£Datum£Faknr£Soll£Haben£Skonto£Saldo' CHR(10) '£' CHR(10). Rundbetr = 0. FOR EACH Debhi USE-INDEX Debhi-k2 WHERE Debhi.Firma = GVFirma AND Debhi.Knr = VKnr NO-LOCK: Rundbetr = Rundbetr + Debhi.Soll - Debhi.Haben - Debhi.Skonto. PUT CONTROL '£' STRING(Debhi.Datum,'99.99.9999') '£' STRING(Debhi.Faknr,'>>>>>9') '£'. IF Debhi.Soll <> 0 THEN PUT CONTROL STRING(Debhi.Soll ,'->>>>>>>>9.99'). PUT CONTROL '£'. IF Debhi.Haben <> 0 THEN PUT CONTROL STRING(Debhi.Haben ,'->>>>>>>>9.99'). PUT CONTROL '£'. IF Debhi.Skonto <> 0 THEN PUT CONTROL STRING(Debhi.Skonto,'->>>>>>>>9.99'). PUT CONTROL '£'. PUT CONTROL STRING(Rundbetr,'->>>>>>>>9.99') CHR(10). END. OUTPUT CLOSE. RUN OPENEXCEL ( INPUT excelAppl, INPUT Datei, INPUT '', OUTPUT io ). IF NOT io 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' ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. 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 ) . F_Knr = DVKnr. F_Kunde = ''. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = DVKnr NO-LOCK NO-ERROR. IF AVAILABLE Adresse THEN F_Kunde = Adresse.Anzeig_Br. DISPLAY F_Knr F_Kunde WITH FRAME {&FRAME-NAME}. RUN dispatch IN THIS-PROCEDURE ('open-query':U). APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. 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 "Debhi"} /* 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