&ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1 &ANALYZE-RESUME &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 --- */ DEF VAR cSort AS CHAR INIT 'Datum' NO-UNDO. DEF VAR cAufAb AS CHAR INIT 'DESCENDING' NO-UNDO. DEF VAR lAufAb AS LOG INIT FALSE NO-UNDO. DEF VAR StartDatum AS DATE NO-UNDO. DEF VAR hQuery AS HANDLE NO-UNDO. DEF VAR iKnr AS INT NO-UNDO. DEF VAR iArtnr AS INT NO-UNDO. DEF VAR lFirst AS LOG INIT TRUE NO-UNDO. DEF VAR lSort AS LOG INIT FALSE NO-UNDO. /* ---------- Globale Variablen ---------------------------------- */ { v8/globvar.i " " " " "SHARED" } { v8/debivar.i " " " " "SHARED" } { v8/artivar.i " " " " "SHARED" } { v8/contvar.i " " " " "SHARED" } DEF TEMP-TABLE tArtbw NO-UNDO FIELD Artnr AS INT FORMAT '999999' FIELD Inhalt AS INT FORMAT '9999' FIELD Jahr AS INT FORMAT '9999' FIELD Artikel AS CHAR FORMAT 'x(40)' FIELD Datum AS DATE FORMAT '99.99.9999' FIELD Menge AS DEC FORMAT '->,>>>,>>9' FIELD Preis AS DEC DECIMALS 4 FORMAT '>>,>>9.999' FIELD Bru_Betr AS DEC FORMAT '->>,>>>,>>9.99' LABEL 'Brutto' FIELD Rabatt AS DEC FORMAT '->>>9.99' FIELD Net_Betr AS DEC FORMAT '->>,>>>,>>9.99' LABEL 'Netto' FIELD DokNr AS CHAR FORMAT 'x(10)' FIELD iZeile AS INT FIELD KGebinde AS CHAR FORMAT 'x(12)' FIELD VGebinde AS CHAR FORMAT 'x(12)' FIELD GGebinde AS CHAR FORMAT 'x(12)' FIELD FremdNr AS CHAR FORMAT 'xxxxxx.xxxx.xxxx' LABEL 'Alte Nummer' FIELD Lager AS INT FORMAT 'z9' LABEL 'LG' INDEX tArtbw-k1 iZeile. DEF TEMP-TABLE tBrowser NO-UNDO FIELD Feld AS CHAR FIELD Pos AS INT FIELD Breit AS DEC FIELD fAktiv AS LOG FIELD fVisible AS LOG FIELD PosAkt AS INT FIELD BreitAkt AS DEC FIELD hCol AS HANDLE FIELD cType AS CHAR FIELD cFormat AS CHAR FIELD cInitial AS CHAR FIELD cLabel AS CHAR. DEF TEMP-TABLE tMenuItems NO-UNDO FIELD hMenuItem AS HANDLE. /* _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_table /* Define KEY-PHRASE in case it is used by any query. */ &Scoped-define KEY-PHRASE TRUE /* Definitions for FRAME F-Main */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS F_abDatum br_table F_Artnr RECT-35 &Scoped-Define DISPLAYED-OBJECTS F_Knr F_Anzeig_Br F_abDatum F_Artnr /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 F_Knr F_Anzeig_Br F_abDatum F_Artnr /* _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 /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD SetZeilenFarbe B-table-Win FUNCTION SetZeilenFarbe RETURNS LOGICAL ( ipFarbe AS INT ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE VARIABLE F_abDatum AS DATE FORMAT "99.99.9999":U LABEL "ab Datum" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Anzeig_Br AS CHARACTER FORMAT "x(50)":U VIEW-AS FILL-IN NATIVE SIZE 95 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Artnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "Artikelnummer" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Knr AS INTEGER FORMAT "999999":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-35 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 166 BY 20.48. /* Browse definitions */ DEFINE BROWSE br_table &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_table B-table-Win _STRUCTURED /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ASSIGN NO-ROW-MARKERS SEPARATORS SIZE 160.4 BY 15.62 BGCOLOR 15 FONT 11. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main F_Knr AT ROW 2.52 COL 2.6 NO-LABEL NO-TAB-STOP F_Anzeig_Br AT ROW 2.52 COL 13 COLON-ALIGNED NO-LABEL NO-TAB-STOP F_abDatum AT ROW 2.52 COL 123 COLON-ALIGNED WIDGET-ID 2 br_table AT ROW 4.1 COL 3 F_Artnr AT ROW 20 COL 15.8 COLON-ALIGNED "Kunde" VIEW-AS TEXT SIZE 50 BY 1 AT ROW 1.48 COL 3 FONT 9 RECT-35 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 = 21.19 WIDTH = 168. /* 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 Size-to-Fit Custom */ /* BROWSE-TAB br_table F_abDatum F-Main */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE FRAME F-Main:HIDDEN = TRUE. ASSIGN br_table:ALLOW-COLUMN-SEARCHING IN FRAME F-Main = TRUE br_table:COLUMN-RESIZABLE IN FRAME F-Main = TRUE br_table:COLUMN-MOVABLE IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_abDatum IN FRAME F-Main 6 */ /* SETTINGS FOR FILL-IN F_Anzeig_Br IN FRAME F-Main NO-ENABLE 6 */ ASSIGN F_Anzeig_Br:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_Artnr IN FRAME F-Main 6 */ /* SETTINGS FOR FILL-IN F_Knr IN FRAME F-Main NO-ENABLE ALIGN-L 6 */ ASSIGN F_Knr:READ-ONLY IN FRAME F-Main = TRUE. /* _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 _Options = "NO-LOCK KEY-PHRASE SORTBY-PHRASE" _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 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: APPLY 'ENTRY' TO F_AbDatum IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win ON ROW-DISPLAY OF br_table IN FRAME F-Main DO: DYNAMIC-FUNCTION( 'SetZeilenFarbe':U, 15 ). 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 START-SEARCH OF br_table IN FRAME F-Main DO: DEF VAR ColumnHandle AS HANDLE NO-UNDO. DEF VAR xSort AS CHAR NO-UNDO. ASSIGN ColumnHandle = {&BROWSE-NAME}:CURRENT-COLUMN. DO WITH FRAME {&FRAME-NAME}: APPLY 'END-SEARCH' TO {&BROWSE-NAME}. END. xSort = ColumnHandle:NAME. IF cSort = xSort THEN lAufAb = NOT lAufAb. IF lAufAb THEN cAufAb = ''. ELSE cAufAb = 'DESCENDING'. cSort = xSort. lSort = TRUE. RUN TEMP_TABELLE_FUELLEN ( iKnr, iArtnr, StartDatum ). 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 F_abDatum &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_abDatum B-table-Win ON LEAVE OF F_abDatum IN FRAME F-Main /* ab Datum */ DO: ASSIGN F_AbDatum. StartDatum = F_abDatum. RUN TEMP_TABELLE_FUELLEN ( iKnr, iArtnr, StartDatum ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_abDatum B-table-Win ON RETURN OF F_abDatum IN FRAME F-Main /* ab Datum */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Artnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr B-table-Win ON LEAVE OF F_Artnr IN FRAME F-Main /* Artikelnummer */ DO: ASSIGN {&List-6}. iArtnr = F_Artnr. RUN TEMP_TABELLE_FUELLEN ( iKnr, iArtnr, StartDatum ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr B-table-Win ON RETURN OF F_Artnr IN FRAME F-Main /* Artikelnummer */ 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 *************************** */ ASSIGN cSort = 'DATUM' cAufAb = 'DESCENDING' lAufAb = FALSE F_Artnr = 0 F_abDatum = TODAY - 365 StartDatum = F_abDatum. PROCEDURE ShellExecuteA EXTERNAL "shell32.dll": DEF INPUT PARAMETER hwnd AS LONG. /* Handle to parent window */ DEF INPUT PARAMETER lpOperation AS CHAR. /* Operation to perform: open, print */ DEF INPUT PARAMETER lpFile AS CHAR. /* Document or executable name */ DEF INPUT PARAMETER lpParameters AS CHAR. /* Command line parameters to executable in lpFile */ DEF INPUT PARAMETER lpDirectory AS CHAR. /* Default directory */ DEF INPUT PARAMETER nShowCmd AS LONG. /* whether shown when opened: 0 hidden, 1 normal, minimized 2, maximized 3, 0 if lpFile is a document */ DEF RETURN PARAMETER hInstance AS LONG. /* Less than or equal to 32 */ END PROCEDURE. /* PROCEDURE EXPORT_EXCEL: { incl/brwexportexcel.i } END PROCEDURE. PROCEDURE FILTER_SETZEN: { incl/brwfilter.i } END PROCEDURE. PROCEDURE ZURUECKSETZEN: { incl/brwresetbreitespalte.i } END PROCEDURE. */ PROCEDURE SORTIERBAR: DEF INPUT PARAMETER ipSort AS HANDLE NO-UNDO. DEF INPUT PARAMETER ipMove AS HANDLE NO-UNDO. DEF VAR hBrowser AS HANDLE NO-UNDO. ipMove:CHECKED = FALSE. ipSort:CHECKED = TRUE . hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. hBrowser:COLUMN-MOVABLE = FALSE. hBrowser:ALLOW-COLUMN-SEARCHING = TRUE. END PROCEDURE. PROCEDURE VERSCHIEBBAR: DEF INPUT PARAMETER ipMove AS HANDLE NO-UNDO. DEF INPUT PARAMETER ipSort AS HANDLE NO-UNDO. DEF VAR hBrowser AS HANDLE NO-UNDO. ipSort:CHECKED = FALSE. ipMove:CHECKED = TRUE . hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. hBrowser:ALLOW-COLUMN-SEARCHING = FALSE. hBrowser:COLUMN-MOVABLE = TRUE. END PROCEDURE. &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 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 ENDEAUFTRAG B-table-Win PROCEDURE ENDEAUFTRAG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_BROWSE B-table-Win PROCEDURE ENTRY_BROWSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-destroy B-table-Win PROCEDURE local-destroy : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ DEF VAR hBrowser AS HANDLE NO-UNDO. DEF VAR Sektion AS CHAR NO-UNDO. Sektion = ENTRY(1, THIS-PROCEDURE:NAME, '.'). hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. DYNAMIC-FUNCTION('setBrowserDaten':U, INPUT hBrowser, INPUT Sektion ) NO-ERROR. RUN dispatch IN THIS-PROCEDURE ( INPUT 'destroy':U ) . /* Code placed here will execute AFTER standard behavior. */ 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: ------------------------------------------------------------------------------*/ DEF VAR Sektion AS CHAR NO-UNDO. DEF VAR hBrowser AS HANDLE NO-UNDO. DEF VAR hTBrowser AS HANDLE NO-UNDO. DEF VAR hMenu AS HANDLE NO-UNDO. DEF VAR hMenuItem AS HANDLE NO-UNDO. DEF VAR hItem_Filter AS HANDLE NO-UNDO. DEF VAR hItem_Excel AS HANDLE NO-UNDO. DEF VAR hItem_zurueck AS HANDLE NO-UNDO. DEF VAR hItem_sort AS HANDLE NO-UNDO. DEF VAR hItem_move AS HANDLE NO-UNDO. DEF VAR hItem_Rule AS HANDLE NO-UNDO. DEF VAR cMenu AS CHAR NO-UNDO. DEF VAR hxMenu AS HANDLE NO-UNDO. DEF VAR hxMenuItem AS HANDLE EXTENT 10 NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR cExceptList AS CHAR NO-UNDO INIT 'iZeile'. CREATE QUERY hQuery. hQuery:SET-BUFFERS(TEMP-TABLE tArtbw:DEFAULT-BUFFER-HANDLE). hQuery:QUERY-PREPARE('FOR EACH tArtbw NO-LOCK'). BROWSE {&BROWSE-NAME}:QUERY = hQuery. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. hBrowser:ADD-COLUMNS-FROM( 'tArtbw', cExceptList ). F_abDatum = TODAY - 365. StartDatum = F_abDatum. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) . Sektion = ENTRY(1, THIS-PROCEDURE:NAME, '.'). EMPTY TEMP-TABLE TBrowser. htBrowser = TEMP-TABLE TBrowser:DEFAULT-BUFFER-HANDLE. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. hBrowser:COLUMN-MOVABLE = TRUE. DYNAMIC-FUNCTION('getBrowserDaten':U, INPUT htBrowser, INPUT hBrowser, INPUT Sektion ) NO-ERROR. hMenu = hBrowser:POPUP-MENU NO-ERROR. hMenuItem = hMenu :FIRST-CHILD NO-ERROR. DO WHILE VALID-HANDLE (hMenuItem): IF hMenuItem:NAME = ? OR NOT hMenuItem:NAME BEGINS 'x_' THEN DO: hMenuItem = hMenuItem:NEXT-SIBLING. NEXT. END. CREATE tMenuItems. ASSIGN tMenuItems.hMenuItem = hMenuItem. hMenuItem = hMenuItem:NEXT-SIBLING. END. hMenu = ?. CREATE MENU hMenu ASSIGN POPUP-ONLY = TRUE TITLE = 'Browser Menu'. CREATE MENU-ITEM hItem_Excel ASSIGN LABEL = 'Export in Excel' NAME = 'm_excel' PARENT = hMenu. CREATE MENU-ITEM hItem_Filter ASSIGN LABEL = 'Filter setzen' NAME = 'm_filter' PARENT = hMenu. CREATE MENU-ITEM hItem_Rule ASSIGN SUBTYPE = 'RULE':U PARENT = hMenu. CREATE MENU-ITEM hItem_zurueck ASSIGN LABEL = 'Spalten und Breite zurücksetzen' NAME = 'm_zurueck' PARENT = hMenu. CREATE MENU-ITEM hItem_Rule ASSIGN SUBTYPE = 'RULE':U PARENT = hMenu. CREATE MENU-ITEM hItem_sort ASSIGN LABEL = 'Spalten sortierbar' NAME = 'm_zurueck' TOGGLE-BOX = TRUE CHECKED = TRUE PARENT = hMenu. CREATE MENU-ITEM hItem_move ASSIGN LABEL = 'Spalten verschiebbar' NAME = 'm_move' TOGGLE-BOX = TRUE CHECKED = FALSE PARENT = hMenu. CREATE MENU-ITEM hItem_Rule ASSIGN SUBTYPE = 'RULE':U PARENT = hMenu. FOR EACH tMenuItems ii = 1 TO 10: CREATE MENU-ITEM hxMenuItem[ii] ASSIGN LABEL = tMenuItems.hMenuItem:LABEL NAME = SUBSTRING(tMenuItems.hMenuItem:NAME,03) TOGGLE-BOX = TRUE PARENT = hMenu. ON CHOOSE OF hxMenuItem[ii] PERSISTENT RUN VALUE(hxMenuItem[ii]:NAME) IN TARGET-PROCEDURE. ON VALUE-CHANGED OF hxMenuItem[ii] PERSISTENT RUN VALUE(hxMenuItem[ii]:NAME) IN TARGET-PROCEDURE. END. hBrowser:POPUP-MENU = hMenu NO-ERROR. ON CHOOSE OF hItem_Filter PERSISTENT RUN FILTER_SETZEN IN TARGET-PROCEDURE. ON CHOOSE OF hItem_Excel PERSISTENT RUN EXPORT_EXCEL IN TARGET-PROCEDURE. ON CHOOSE OF hItem_zurueck PERSISTENT RUN ZURUECKSETZEN IN TARGET-PROCEDURE. ON VALUE-CHANGED OF hItem_sort PERSISTENT RUN SORTIERBAR IN TARGET-PROCEDURE ( hItem_sort, hItem_move ). ON VALUE-CHANGED OF hItem_move PERSISTENT RUN VERSCHIEBBAR IN TARGET-PROCEDURE ( hItem_move, hItem_sort ). APPLY 'VALUE-CHANGED' TO hItem_Sort. RUN TEMP_TABELLE_FUELLEN ( iKnr, iArtnr, StartDatum ). 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: ------------------------------------------------------------------------------*/ /* DO WHILE TRUE WITH FRAME {&FRAME-NAME}: ASSIGN F_Artnr. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE. CLOSE QUERY {&BROWSE-NAME}. LEAVE. END. IF F_Artnr <> 0 THEN VSort = VSort + 10. CASE VSort: WHEN 1 THEN DO: OPEN QUERY {&BROWSE-NAME} FOR EACH AnaDat.Artbw USE-INDEX Artbw-k3 WHERE Artbw.Firma = GVFirma AND Artbw.Knr = XVKnr AND Artbw.Datum >= StartDatum NO-LOCK BY Artbw.Datum DESCENDING. END. WHEN 11 THEN DO: OPEN QUERY {&BROWSE-NAME} FOR EACH AnaDat.Artbw USE-INDEX Artbw-k9 WHERE Artbw.Firma = GVFirma AND Artbw.Knr = XVKnr AND Artbw.Artnr = F_Artnr AND Artbw.Datum >= StartDatum NO-LOCK BY Artbw.Artnr BY Artbw.Inhalt BY Artbw.Jahr BY Artbw.Datum DESCENDING. END. WHEN 2 THEN DO: OPEN QUERY {&BROWSE-NAME} FOR EACH AnaDat.Artbw USE-INDEX Artbw-k5 WHERE Artbw.Firma = GVFirma AND Artbw.Knr = XVKnr AND Artbw.Datum >= StartDatum NO-LOCK BY Artbw.Artnr BY Artbw.Inhalt BY Artbw.Jahr BY Artbw.Datum DESCENDING. END. WHEN 12 THEN DO: OPEN QUERY {&BROWSE-NAME} FOR EACH AnaDat.Artbw USE-INDEX Artbw-k9 WHERE Artbw.Firma = GVFirma AND Artbw.Knr = XVKnr AND Artbw.Artnr = F_Artnr AND Artbw.Datum >= StartDatum NO-LOCK BY Artbw.Artnr BY Artbw.Inhalt BY Artbw.Jahr BY Artbw.Datum DESCENDING. END. END CASE. */ F_Artnr = 0. DISPLAY F_Artnr WITH FRAME {&FRAME-NAME}. 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 XVKnr = 0 OR XVKnr = ? THEN RETURN. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = XVKnr NO-LOCK NO-ERROR. IF NOT AVAILABLE Adresse THEN RETURN. F_Knr = XVKnr. F_Anzeig_Br = Adresse.Anzeig_Br. F_Artnr = 0. DISPLAY {&List-6} WITH FRAME {&FRAME-NAME}. ASSIGN iKnr = F_Knr iArtnr = F_Artnr. IF lFirst THEN DO: lFirst = FALSE. RETURN. END. RUN TEMP_TABELLE_FUELLEN ( iKnr, iArtnr, StartDatum ). 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 ------------------------------------------------------------------------------*/ /* SEND-RECORDS does nothing because there are no External Tables specified for this SmartBrowser, and there are no tables specified in any contained Browse, Query, or Frame. */ 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 TEMP_TABELLE_FUELLEN B-table-Win PROCEDURE TEMP_TABELLE_FUELLEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipKnr AS INT NO-UNDO. DEF INPUT PARAMETER ipArtnr AS INT NO-UNDO. DEF INPUT PARAMETER ipDatum AS DATE NO-UNDO. DEF VAR iZeile AS INT NO-UNDO. DEF VAR xWhere AS CHAR NO-UNDO. DEF VAR zSort AS CHAR NO-UNDO. IF ipDatum = ? THEN ipDatum = DATE(01,01,YEAR(TODAY) - 2). IF ipKnr = 0 THEN RETURN NO-APPLY. IF NOT lSort THEN DO: SESSION:SET-WAIT-STATE('GENERAL'). EMPTY TEMP-TABLE tArtbw. xWhere = SUBSTITUTE('FOR EACH tArtbw NO-LOCK WHERE TRUE BY tArtbw.&1 &2 ', cSort, cAufAb). hQuery:QUERY-PREPARE(xWhere). hQuery:QUERY-OPEN(). hQuery:QUERY-CLOSE(). FOR EACH Artbw NO-LOCK USE-INDEX Artbw-k3 WHERE Artbw.Firma = GVFirma AND Artbw.Knr = ipKnr AND ((ipArtnr = 0) OR (ipArtnr = Artbw.Artnr)) AND Artbw.Datum >= ipDatum: iZeile = iZeile + 1. CREATE tArtbw. BUFFER-COPY Artbw TO tArtbw ASSIGN tArtbw.iZeile = iZeile tArtbw.KGebinde = DYNAMIC-FUNCTION('getKGebindeKBez':U , Artbw.KGeb_Cd) tArtbw.VGebinde = DYNAMIC-FUNCTION('getVGebindeKBez':U , Artbw.VGeb_Cd) tArtbw.GGebinde = DYNAMIC-FUNCTION('getGGebindeKBez':U , Artbw.GGeb_Cd) tArtbw.Artikel = TRIM(Artbw.Bez1 + ' ' + Artbw.Bez2) tArtbw.FremdNr = DYNAMIC-FUNCTION('getFremdNr':U , Artbw.Artnr, Artbw.Inhalt, Artbw.Jahr ) tArtbw.DokNr = (IF Artbw.Faknr > 0 THEN ('F' + TRIM(STRING(Artbw.Faknr,'>>999999'))) ELSE ('A' + TRIM(STRING(Artbw.Aufnr,'>>999999')))) NO-ERROR. END. SESSION:SET-WAIT-STATE(''). END. lSort = FALSE. zSort = ''. IF cSort = 'Artnr' THEN zSort = ' BY tArtbw.KGebinde '. ELSE zSort = ' BY tArtbw.Artnr BY tArtbw.KGebinde '. IF cSort <> 'Datum' THEN zSort = zSort + ' BY tArtbw.Datum DESCENDING'. xWhere = SUBSTITUTE('FOR EACH tArtbw NO-LOCK WHERE TRUE BY tArtbw.&1 &2 &3', cSort, cAufAb, zSort). hQuery:QUERY-PREPARE(xWhere). hQuery:QUERY-OPEN(). APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION SetZeilenFarbe B-table-Win FUNCTION SetZeilenFarbe RETURNS LOGICAL ( ipFarbe AS INT ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEF VAR iFarbe AS INT NO-UNDO. DEF VAR hFeld AS HANDLE NO-UNDO. DO WITH FRAME {&FRAME-NAME}: FOR EACH tBrowser WHERE VALID-HANDLE(tBrowser.hCol) AND tBrowser.fVisible NO-LOCK: IF tBrowser.Feld = cSort THEN iFarbe = 8. ELSE iFarbe = ipFarbe. tBrowser.hCol:BGCOLOR = iFarbe. END. END. /**/ RETURN TRUE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME