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. hDaten = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR. hFenster = DYNAMIC-FUNCTION('getContainerSource':U) NO-ERROR. IF NOT VALID-HANDLE ( hDaten ) THEN hDaten = THIS-PROCEDURE:HANDLE. /* IF VALID-HANDLE(hFenster) THEN Progname = DYNAMIC-FUNCTION('getProgname':U, INPUT hFenster ) NO-ERROR. */ EMPTY TEMP-TABLE tBrowser . EMPTY TEMP-TABLE tMenuItems . hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. hBrowser:COLUMN-MOVABLE = TRUE. htBrowser = TEMP-TABLE tBrowser:DEFAULT-BUFFER-HANDLE. 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. 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_sort' 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 = tMenuItems.hMenuItem:TOGGLE-BOX PARENT = hMenu. IF hxMenuItem[ii]:TOGGLE-BOX = TRUE THEN hxMenuItem[ii]:CHECKED = FALSE. 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 ). DYNAMIC-FUNCTION('getBrowserDaten':U, INPUT htBrowser, INPUT hBrowser, INPUT Sektion ) NO-ERROR. APPLY 'VALUE-CHANGED' TO hItem_sort. hMenu = hBrowser:POPUP-MENU NO-ERROR. hMenu = hMenu:FIRST-CHILD NO-ERROR. DO WHILE VALID-HANDLE (hMenu): cName = hMenu:NAME NO-ERROR. IF cName <> ? AND INDEX(cName, 'inakt') > 0 THEN DO: hInaktiv = hMenu. LEAVE. END. hMenu = hMenu:NEXT-SIBLING. END.