Skip to main content

I am trying to display a pop-up menu on a grid for a program executing on Acu-To-Web

I managed to get it working, and actually identify what grid row it was clicked on.

It seems that you have to define the Pop-Up before displaying the original Floating window and manage the pop-up from the events it generates from the Event Procedure defined for the window.

That's fine as long as the grid exists in the original window..  I need to be able to display the pop-up in a subroutine called from the original window.

So I defined the pop-up, displayed the window, and called the subroutine passing both the Window's Handle and the Popup's Handle.   In the subroutine i gave the following command:

              MODIFY WS-CALLING-PROGRAM-WINDOW-HANDLE EVENT PROCEDURE IS MAIN-SCREEN-EVENT-HANDLER

Well guess what folks --  the MAIN-SCREEN-EVENT-HANDLER never gets executed when I finger tap any of the grid rows

Can one of the developers, or product managers comment, or advise whether that approach would work ?

Thanks


#acutoweb
#ModifyWindow-Handle
#EventProcedureIs
#pop-upmenu

I am trying to display a pop-up menu on a grid for a program executing on Acu-To-Web

I managed to get it working, and actually identify what grid row it was clicked on.

It seems that you have to define the Pop-Up before displaying the original Floating window and manage the pop-up from the events it generates from the Event Procedure defined for the window.

That's fine as long as the grid exists in the original window..  I need to be able to display the pop-up in a subroutine called from the original window.

So I defined the pop-up, displayed the window, and called the subroutine passing both the Window's Handle and the Popup's Handle.   In the subroutine i gave the following command:

              MODIFY WS-CALLING-PROGRAM-WINDOW-HANDLE EVENT PROCEDURE IS MAIN-SCREEN-EVENT-HANDLER

Well guess what folks --  the MAIN-SCREEN-EVENT-HANDLER never gets executed when I finger tap any of the grid rows

Can one of the developers, or product managers comment, or advise whether that approach would work ?

Thanks


#acutoweb
#ModifyWindow-Handle
#EventProcedureIs
#pop-upmenu

I revised my program so that the Initial Floating Window is displayed in the called subroutine program.

and using a flag set if executing under Acu-To-Web,  I Modify the Window's handle to specify an EVENT PROCEDURE.

It does not work either.

DISPLAY-INITIAL-MAINT-WINDOW.
     DISPLAY FLOATING WINDOW
         LAYOUT-MANAGER = MY-QUERY-LAYOUT-MGR,
         LINES 51, SIZE 84,
         CONTROL FONT default-font,   TITLE-BAR,
         WITH SYSTEM MENU,
         MODELESS, ERASE, LINK TO THREAD,
         NO SCROLL, NO WRAP, USER-COLORS
         TITLE WS-WINDOW-TITLE.  ABEL-OFFSET 0,
         handle is MAINTENANCE-WINDOW.

IF EXECUTING-FROM-ACU-TO-WEB
           MODIFY MAINTENANCE-WINDOW EVENT PROCEDURE IS MAIN-SCREEN-EVENT-HANDLER
           MODIFY MAINTENANCE-WINDOW POP-UP MENU IS GRID-POPUP-MENU-HANDLE.


I revised my program so that the Initial Floating Window is displayed in the called subroutine program.

and using a flag set if executing under Acu-To-Web,  I Modify the Window's handle to specify an EVENT PROCEDURE.

It does not work either.

DISPLAY-INITIAL-MAINT-WINDOW.
     DISPLAY FLOATING WINDOW
         LAYOUT-MANAGER = MY-QUERY-LAYOUT-MGR,
         LINES 51, SIZE 84,
         CONTROL FONT default-font,   TITLE-BAR,
         WITH SYSTEM MENU,
         MODELESS, ERASE, LINK TO THREAD,
         NO SCROLL, NO WRAP, USER-COLORS
         TITLE WS-WINDOW-TITLE.  ABEL-OFFSET 0,
         handle is MAINTENANCE-WINDOW.

IF EXECUTING-FROM-ACU-TO-WEB
           MODIFY MAINTENANCE-WINDOW EVENT PROCEDURE IS MAIN-SCREEN-EVENT-HANDLER
           MODIFY MAINTENANCE-WINDOW POP-UP MENU IS GRID-POPUP-MENU-HANDLE.

From the initial post - MODIFY WS-CALLING-PROGRAM-WINDOW-HANDLE EVENT PROCEDURE IS MAIN-SCREEN-EVENT-HANDLER  - does this work when using the runtime, if yes, when using the the thin client, if yes, but not with AcuToWeb then a support incident should be raised. If the code isn't working with the runtime or thin client, can you attach a simple example to the forum post?


I am trying to display a pop-up menu on a grid for a program executing on Acu-To-Web

I managed to get it working, and actually identify what grid row it was clicked on.

It seems that you have to define the Pop-Up before displaying the original Floating window and manage the pop-up from the events it generates from the Event Procedure defined for the window.

That's fine as long as the grid exists in the original window..  I need to be able to display the pop-up in a subroutine called from the original window.

So I defined the pop-up, displayed the window, and called the subroutine passing both the Window's Handle and the Popup's Handle.   In the subroutine i gave the following command:

              MODIFY WS-CALLING-PROGRAM-WINDOW-HANDLE EVENT PROCEDURE IS MAIN-SCREEN-EVENT-HANDLER

Well guess what folks --  the MAIN-SCREEN-EVENT-HANDLER never gets executed when I finger tap any of the grid rows

Can one of the developers, or product managers comment, or advise whether that approach would work ?

Thanks


#acutoweb
#ModifyWindow-Handle
#EventProcedureIs
#pop-upmenu

Attached is a simple program with this issue failing.

Comment and Un-COmmenting a couple of lines shows that not MODIFYING the Window, the program works.

IDENTIFICATION DIVISION. PROGRAM-ID. MYGRIDPOPUP. AUTHOR. SENTINEL HILL. DATE-WRITTEN. Wednesday, FEB 24, 2022 12:12:28 PM. WORKING-STORAGE SECTION. COPY "acugui.def". COPY "acucobol.def". COPY "crtvars.def". COPY "showmsg.def". 77 Quit-Mode-Flag PIC S9(5) COMP-4 VALUE 0. 77 Key-Status IS SPECIAL-NAMES CRT STATUS PIC 9(4) VALUE 0. 88 Exit-Pushed VALUE 27. 88 Message-Received VALUE 95. 88 Event-Occurred VALUE 96. 88 Screen-No-Input-Field VALUE 97. 88 Screen-Time-Out VALUE 99. * property-defined variable * user-defined variable 77 Screen1-Handle USAGE IS HANDLE OF WINDOW VALUE NULL. 77 Screen1-Ef-1-Value PIC X(30). 77 IX PIC 9(2) COMP. 77 ws-row PIC 9(3). 77 ws-col PIC 9(3). 77 ws-tasto PIC x(15). 77 Screen1-Mn-1-Handle USAGE IS HANDLE OF MENU VALUE NULL. 77 ws-option-1 PIC X(11). 77 ws-option-2 PIC X(11). 77 ws-option-3 PIC X(11). 77 Screen1-Popup-Menu-Handle USAGE IS HANDLE OF MENU VALUE NULL. 77 ws-item PIC 9(3). 77 Menu-Sub-Handle USAGE IS HANDLE VALUE NULL. 01 default-font HANDLE of FONT. 01 small-font HANDLE of FONT. 01 ESCAPE-CODE PIC 9(3). 77 WS-CURRENT-ROW PIC 99. 77 WS-ROW-TO-RESTORE PIC 99. 77 WS-CURRENT-COLUMN PIC 99. 01 WS-CURSOR-HIGHLIGHTED PIC 9. 88 CURSOR-IS-CLEARED VALUE 0. 88 CURSOR-IS-SET VALUE 1. 01 WS-GRID-HEADINGS. 03 FILLER PIC X(5) VALUE "Item". 03 FILLER PIC X(40) VALUE "Sentinel Hill Accounting Applications". 03 FILLER PIC X(20) VALUE "Program Name". 03 FILLER PIC X(5) VALUE "Type". 01 WS-TOP-OF-1ST-ROW PIC 9(4) COMP VALUE 75. 01 WS-BOTTOM-OF-LAST-ROW PIC 9(4) COMP VALUE 335. 01 WS-ROW-PIXEL-HEIGHT PIC 9(4) COMP VALUE 29. 01 WS-GRID-ROW-OF-POPUP-POSITION PIC 9(4) COMP. 01 WS-GRID-CLICKED-DATA PIC X(25). 01 WS-GRID-SELECT-FLAG PIC X. 01 WS-LAST-ROW-FILLED PIC 99. 01 WS-GRID-DISPLAY-LINE. 03 FILLER PIC X(2) VALUE SPACE. 03 WS-SHOW-USAPPS-ITEM PIC Z9. 03 FILLER PIC X(1) VALUE SPACE. 03 WS-SHOW-USAPPS-DESC PIC X(40). 03 WS-SHOW-USAPPS-PROGNAME PIC X(20). 03 WS-SHOW-USAPPS-CALL-TYPE PIC X(5). 78 popup-menu-fnct value 3. 78 popup-string-fnct value 4. 78 maint-edit-function value 2. 78 maint-delete-function value 3. 78 maint-cut-function value 10. 78 maint-copy-function value 11. 78 maint-paste-function value 12. 78 string-cut-function value 1. 78 string-copy-function value 2. 78 string-paste-function value 3. 78 PURPLE-FRAME VALUE 65793. 78 ws-grid-row-color-1 VALUE BCKGRND-YELLOW + BLACK. 78 ws-grid-row-color-2 VALUE BCKGRND-BRIGHT-WHITE + BLACK. 78 ws-grid-highlight-color VALUE BCKGRND-BRIGHT-GREEN + BLACK. 78 ws-grid-heading-color VALUE BCKGRND-BRIGHT-CYAN + BLACK. 78 ws-grid-basic-color VALUE WINDOW-BRIGHT-WHITE + BLACK. 78 ws-grid-divider-color VALUE BROWN. 01 GRID-POPUP-MENU-HANDLE HANDLE OF MENU. 01 WS-POPUP-MENU-COUNT PIC 9(3) VALUE 5. 01 USAPPS-POPUP-MENU-ITEMS. 03 FILLER PIC X(31) VALUE " >&Add/Modify". 03 FILLER PIC 9(1) VALUE popup-menu-fnct. 03 FILLER PIC 9(2) VALUE maint-edit-function. 03 FILLER PIC X(31) VALUE " >&Clear". 03 FILLER PIC 9(1) VALUE popup-menu-fnct. 03 FILLER PIC 9(2) VALUE maint-delete-function. 03 FILLER PIC X(31) VALUE " |Cut &Field". 03 FILLER PIC 9(1) VALUE popup-string-fnct. 03 FILLER PIC 9(2) VALUE string-cut-function. 03 FILLER PIC X(31) VALUE " >Cop&y Field". 03 FILLER PIC 9(1) VALUE popup-string-fnct. 03 FILLER PIC 9(2) VALUE string-copy-function. 03 FILLER PIC X(31) VALUE " >P&aste Field". 03 FILLER PIC 9(1) VALUE popup-string-fnct. 03 FILLER PIC 9(2) VALUE string-paste-function. 01 USAPPS-POPUP-TABLE REDEFINES USAPPS-POPUP-MENU-ITEMS. 05 WS-POPUP-MENU-ITEMS OCCURS 5 TIMES INDEXED BY POP-MENU-IDX. 07 WS-POP-ITEM-OPTION PIC X(1). 88 WS-POP-ITEM-DISABLED VALUE "X", FALSE SPACE. 88 WS-POP-ITEM-MARKED VALUE "+", FALSE SPACE. 07 WS-POP-ITEM-LEVEL PIC X(1). 88 WS-POP-TOP-LEVEL VALUE SPACE. 88 WS-POP-UP-ITEM VALUE ">", "|". 88 WS-POP-SEPARATOR-BAR VALUE "|". 07 WS-POP-ITEM-TEXT PIC X(29). 07 WS-POP-ITEM-VALUE PIC 999. 01 USER-MENU-TABLE. 03 USER-MENU-SELECTIONS OCCURS 15 TIMES INDEXED BY UM-IX. 07 USER-MENU-DESCRIPTION PIC X(40). 07 USER-MAIN-PROGRAM PIC X(18). 07 USER-MENU-TYPE PIC X(1). / SCREEN SECTION. 01 Screen1. 03 bar LINE 1 COL 1.00, SIZE 80, WIDTH = 2 COLOR white, LOW SHADING = (-1, 2). 03 label, LINE 1.50 COL 3.00, SIZE 25.00 CELLS, FONT IS default-font, TITLE "Pop-Up on Grid Test", TRANSPARENT. 03 label, LINE 3.00 COL 3.00, SIZE 25.00 CELLS, FONT IS default-font, TITLE "(With MODIFY Window EVENT) ", TRANSPARENT. 03 label, LINE 1.50, COL 25.00, LINES 1.00, FONT IS small-font, TITLE "See if you can get a pop-up displayed on a grid using the ", TRANSPARENT. 03 label, LINE 3.00, COL 25.00, LINES 1.00, FONT IS small-font, TITLE "mouse when executing over Acu-To-Web.", TRANSPARENT. 03 frame, LINE 4.30, COL 1.00, LINES 3.50 CELLS, SIZE 65.00 CELLS, COLOR IS PURPLE-FRAME, FONT IS default-font, LOWERED, HIGH-COLOR 16, LOW-COLOR 1, FILL-COLOR MAGENTA, FILL-PERCENT 100. 03 TEST-GRID-Field, grid, LINE 8.8, COL 2.00, LINES 14.0, SIZE 45.00 CELLS, COLOR IS ws-grid-basic-color, FONT IS default-font, ID IS 5, EVENT PROCEDURE IS GRID-FIELD-EVENT-HANDLER, 3-D, * POP-UP MENU IS GRID-POPUP-MENU-HANDLE, COLUMN-HEADINGS, HEADING-COLOR ws-grid-heading-color, HEADING-DIVIDER-COLOR black, HEADING-FONT IS default-font, TILED-HEADINGS, CURSOR-COLOR ws-grid-highlight-color, CURSOR-FRAME-WIDTH 0, DIVIDER-COLOR ws-grid-divider-color, NUM-ROWS 13, ROW-DIVIDERS 1, VPADDING 50. 03 label, line WS-TOP-OF-1ST-ROW PIXEL, col 1 PIXEL, title "---", TRANSPARENT. 03 label, line WS-BOTTOM-OF-LAST-ROW PIXEL, col 1 PIXEL, title "---", TRANSPARENT. 03 push-button, LINE 5.40, COL 3.00, LINES 1.75 CELLS, SIZE 7.00, FONT IS default-font, EXCEPTION-VALUE = 28, TITLE "E&xit", SELF-ACT. 03 push-button, COL + 1.50, LINES 1.75 CELLS, SIZE 18.00, FONT IS default-font, EXCEPTION-VALUE = 02, TITLE "Inquire Grid Rows", SELF-ACT. 03 Grid-Sizing-Screen. 05 frame, LINE 12.0, COL 48, LINES 5.0, SIZE 20.00 CELLS, ENGRAVED, "Grid Pixels:". 05 label, LINE + 1.5, COL 49.5, TITLE "Top Row:", TRANSPARENT. 05 label, COL 59.0, PIC ZZ99 VALUE WS-TOP-OF-1ST-ROW, TRANSPARENT. 05 label, LINE + 1.5, COL 49.5, TITLE "Bottom Row:", TRANSPARENT. 05 label, COL 59.0, PIC ZZ99 VALUE WS-BOTTOM-OF-LAST-ROW, TRANSPARENT. 05 label, LINE + 1.3, COL 49.5, TITLE "Row Height:", TRANSPARENT. 05 label, COL 59.0, PIC ZZ99 VALUE WS-ROW-PIXEL-HEIGHT, TRANSPARENT. 01 Screen-Popup-Clicked-Screen. 03 label, LINE 20, COL 49, TITLE "Popup Row:", TRANSPARENT. 03 label, COL + 1.0, PIC ZZ99 VALUE mouse-row-pixel, TRANSPARENT. 03 label, LINE + 1.5, COL 49, TITLE "Popup Col:", TRANSPARENT. 03 label, COL + 0.5, PIC ZZ99 VALUE mouse-col-pixel, TRANSPARENT. 03 label, LINE + 1.5, COL 49, TITLE "Pop on Grid Data Row:", TRANSPARENT. 03 label, COL + 1.0, PIC Z9 VALUE WS-GRID-ROW-OF-POPUP-POSITION, TRANSPARENT. 01 Grid-Item-Clicked-Screen. 03 label, LINE 26, COL 49, TITLE "Row Clicked:", TRANSPARENT. 03 label, COL + 1.0, PIC Z99 VALUE EVENT-DATA-2, TRANSPARENT. 03 label, LINE + 1.5, COL 49, TITLE "Col Clicked:", TRANSPARENT. 03 label, COL + 0.5, PIC Z99 VALUE EVENT-DATA-1, TRANSPARENT. 01 Grid-Item-Clicked-Data-Screen. 03 label, LINE 32, COL 49, TITLE "Row:", TRANSPARENT. 03 label, COL + 0.5, PIC Z9 VALUE IX, TRANSPARENT. 03 label, COL + 0.5, TITLE "Cell Data:", TRANSPARENT. 03 label, LINE + 1.5, COL 49, TITLE WS-GRID-CLICKED-DATA, TRANSPARENT. PROCEDURE DIVISION. Acu-Main-Logic. ACCEPT System-Information FROM System-Info. ACCEPT Terminal-Abilities FROM Terminal-Info. accept default-font from standard object "DEFAULT-FONT". accept small-font from standard object "SMALL-FONT". PERFORM Acu-Screen1-Popup-Menu-Menu. PERFORM INIT-GRID-POPUP-MENU. MOVE Menu-Handle TO Screen1-Popup-Menu-Handle. DISPLAY FLOATING WINDOW LINES 37.0, SIZE 68.60, CELL HEIGHT 10, CELL WIDTH 10, AUTO-MINIMIZE, LINK TO THREAD, MODELESS, RESIZABLE, * POP-UP MENU IS Screen1-Popup-Menu-Handle, NO SCROLL, WITH SYSTEM MENU, TITLE "Screen", TITLE-BAR, NO WRAP, FOREGROUND-COLOR 0, |RED=4, BLACK=0 BACKGROUND-COLOR 2, |WHITE=7, GREEN=2 * EVENT PROCEDURE Screen1-Event-Proc, HANDLE IS Screen1-Handle. * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Comment out these lines and remove the "*" in the DISPLAY above $$$$$$$$$$$$ * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ and you will get the PopUp Displayed $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ * MODIFY Screen1-Handle EVENT PROCEDURE IS Screen1-Event-Proc. MODIFY Screen1-Handle POP-UP MENU IS Screen1-Popup-Menu-Handle. * * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ COMPUTE WS-ROW-PIXEL-HEIGHT = (WS-BOTTOM-OF-LAST-ROW - WS-TOP-OF-1ST-ROW) / 13. DISPLAY Screen1 UPON Screen1-Handle. MODIFY TEST-GRID-Field, ROW-COLOR-PATTERN = (ws-grid-row-color-1, ws-grid-row-color-2). MODIFY TEST-GRID-Field, DATA-COLUMNS = ( 1, 6, 44, 64 ). MODIFY TEST-GRID-Field, DISPLAY-COLUMNS = ( 1, 7, 45, 60 ). MODIFY TEST-GRID-Field, ALIGNMENT = ( "L", "L", "L", "C"). MODIFY TEST-GRID-Field, COLUMN-DIVIDERS = ( 1, 1, 1, 1 ). MODIFY TEST-GRID-Field, record-to-add = WS-GRID-HEADINGS. PERFORM INIT-THE-MAIN-MENU-TABLE. PERFORM VARYING UM-IX FROM 1 BY 1 UNTIL UM-IX > 15 PERFORM DISPLAY-THIS-GRID-DATA-LINE END-PERFORM. SET ESCAPE-CODE TO ZERO. PERFORM UNTIL ESCAPE-CODE = 28 ACCEPT Screen1 ON EXCEPTION ACCEPT ESCAPE-CODE FROM ESCAPE KEY IF ESCAPE-CODE = 96 PERFORM Acu-Screen1-Evaluate-Func ELSE IF ESCAPE-CODE = 02 PERFORM VARYING IX FROM 1 BY 2 UNTIL IX > 10 INQUIRE TEST-GRID-Field(IX, 2), CELL-DATA IN WS-GRID-CLICKED-DATA DISPLAY Grid-Item-Clicked-Data-Screen CALL "c$sleep" USING 2 END-PERFORM DESTROY Grid-Item-Clicked-Data-Screen SET ESCAPE-CODE TO ZERO END-IF END-IF END-ACCEPT IF WS-GRID-SELECT-FLAG = "Y" DISPLAY Grid-Item-Clicked-Screen, Grid-Item-Clicked-Data-Screen MOVE SPACES TO WS-GRID-SELECT-FLAG END-IF END-PERFORM. DESTROY Screen1-Handle. INITIALIZE Key-Status. PERFORM Acu-Exit-Rtn. Acu-Exit-Rtn. EXIT PROGRAM STOP RUN. / Acu-Screen1-Evaluate-Func. ACCEPT ESCAPE-CODE FROM ESCAPE KEY. EVALUATE TRUE WHEN Event-Occurred IF Event-Type = Cmd-Close PERFORM Acu-Screen1-Exit END-IF END-EVALUATE. MOVE 1 TO Accept-Control. Acu-Screen1-Exit. SET Exit-Pushed TO TRUE. Acu-Screen1-Popup-Menu-Menu. PERFORM Acu-Screen1-Popup-Menu THRU Acu-Screen1-Popup-Menu-Exit. Acu-Screen1-Popup-Menu. CALL "W$MENU" USING Wmenu-New-Popup GIVING Menu-Handle IF Menu-Handle = ZERO GO TO Acu-Screen1-Popup-Menu-Exit. MOVE Menu-Handle to Screen1-Popup-Menu-Handle. Acu-Screen1-Popup-Menu-Exit. MOVE ZERO TO Return-Code. Acu-Screen1-Msg-Close. ACCEPT Quit-Mode-Flag FROM ENVIRONMENT "QUIT_MODE" IF Quit-Mode-Flag = ZERO PERFORM Acu-Screen1-Exit PERFORM Acu-Exit-Rtn. Screen1-Event-Proc. EVALUATE Event-Type WHEN MSG-END-MENU PERFORM Screen1-Ev-Msg-End-Menu WHEN MSG-INIT-MENU PERFORM Screen1-Ev-Msg-Init-Menu END-EVALUATE. *** start event editor code *** * Screen1-Ev-Msg-Init-Menu. initialize MOUSE-INFO. call "w$mouse" using GET-MOUSE-STATUS mouse-info. move mouse-row-pixel to ws-row. move mouse-col-pixel to ws-col. COMPUTE WS-GRID-ROW-OF-POPUP-POSITION = ((mouse-row-pixel - WS-TOP-OF-1ST-ROW) / WS-ROW-PIXEL-HEIGHT). DISPLAY Screen-Popup-Clicked-Screen. IF (mouse-row-pixel < WS-TOP-OF-1ST-ROW OR > WS-BOTTOM-OF-LAST-ROW) OR (mouse-col < 2.5 OR > 17) SET EVENT-ACTION TO EVENT-ACTION-FAIL EXIT PARAGRAPH. MOVE WS-GRID-ROW-OF-POPUP-POSITION TO WS-CURRENT-ROW. PERFORM HIGHLIGHT-CURRENT-USERAPP-ROW. initialize ws-item. move "Menu 1 - A" to ws-option-1. move "Menu 1 - B" to ws-option-2. move "Menu 1 - C" to ws-option-3. perform create-popup-menu. * create-popup-menu. CALL "W$MENU" USING WMENU-DELETE, Screen1-Popup-Menu-Handle, 1 CALL "W$MENU" USING WMENU-DELETE, Screen1-Popup-Menu-Handle, 2 CALL "W$MENU" USING WMENU-DELETE, Screen1-Popup-Menu-Handle, 3 CALL "W$MENU" USING WMENU-ADD, Screen1-Popup-Menu-Handle, 0, 0, ws-option-1, 1 CALL "W$MENU" USING WMENU-ADD, Screen1-Popup-Menu-Handle, 0, 0, ws-option-2, 2 CALL "W$MENU" USING WMENU-ADD, Screen1-Popup-Menu-Handle, 0, 0, ws-option-3, 3. Screen1-Ev-Msg-End-Menu. exit. * CALL "W$MENU" USING WMENU-DESTROY, Screen1-Popup-Menu-Handle DISPLAY-THIS-GRID-DATA-LINE. MOVE SPACES TO WS-GRID-DISPLAY-LINE. MOVE UM-IX TO WS-SHOW-USAPPS-ITEM. IF USER-MENU-DESCRIPTION (UM-IX) NOT = SPACES MOVE USER-MENU-DESCRIPTION (UM-IX) TO WS-SHOW-USAPPS-DESC MOVE USER-MAIN-PROGRAM (UM-IX) TO WS-SHOW-USAPPS-PROGNAME MOVE USER-MENU-TYPE (UM-IX) TO WS-SHOW-USAPPS-CALL-TYPE. MODIFY TEST-GRID-Field, Y = UM-IX + 1, record-data = WS-GRID-DISPLAY-LINE. GRID-FIELD-EVENT-HANDLER. EVALUATE EVENT-TYPE WHEN MSG-GOTO-CELL PERFORM IDENTIFY-OP-SELECT-USERAPP-CELL WHEN MSG-GOTO-CELL-MOUSE PERFORM IDENTIFY-OP-SELECT-USERAPP-CELL WHEN MSG-BEGIN-ENTRY PERFORM OP-IS-EDITING-USERAPP-CELL WHEN MSG-FINISH-ENTRY PERFORM FINISH-EDIT-OF-USERAPP-CELL * WHEN MSG-GRID-RBUTTON-DOWN PERFORM IDENTIFY-CELL-FOR-USERAPP-POPUP * WHEN MSG-GRID-RBUTTON-UP PERFORM SHOW-USERAPP-POPUP-MENU * WHEN MSG-INIT-MENU PERFORM IDENTIFY-CELL-FOR-USERAPP-POPUP * WHEN MSG-MENU-INPUT PERFORM SHOW-USERAPP-POPUP-MENU END-EVALUATE. * User Cursored To an Adjacent Cell (Could be Up or Down or Left or Right) or a particular cell was clicked. * Identify the row and highlight it. If it was to a different column, ignore it, and reset cursor to 1st column * EVENT-DATA-1 will hold the Column, and EVENT-DATA-2 the Row IDENTIFY-OP-SELECT-USERAPP-CELL. IF EVENT-DATA-2 NOT = WS-CURRENT-ROW + 1 SUBTRACT 1 FROM EVENT-DATA-2 GIVING WS-CURRENT-ROW PERFORM HIGHLIGHT-CURRENT-USERAPP-ROW. DISPLAY Grid-Item-Clicked-Screen. * Operator is trying the edit the contents of a cell. * Prevent the action from occurring by setting EVENT-ACTION to EVENT-ACTION-FAIL. * EVENT-DATA-1 will hold the Column, and EVENT-DATA-2 the Row * Field changes only allowed to the Description and Program Name for User Defined Apps * and only to Description for MainMenu Items OP-IS-EDITING-USERAPP-CELL. MOVE SPACE TO WS-GRID-SELECT-FLAG. INQUIRE TEST-GRID-Field, LAST-ROW IN WS-LAST-ROW-FILLED. IF (EVENT-DATA-2 - 1 > WS-LAST-ROW-FILLED) OR (EVENT-DATA-2 = 1) SET EVENT-ACTION TO EVENT-ACTION-FAIL ELSE INQUIRE TEST-GRID-Field(EVENT-DATA-2, EVENT-DATA-1), CELL-DATA IN WS-GRID-CLICKED-DATA MOVE EVENT-DATA-2 TO IX MOVE "Y" TO WS-GRID-SELECT-FLAG SET EVENT-ACTION TO EVENT-ACTION-FAIL-TERMINATE. FINISH-EDIT-OF-USERAPP-CELL. EXIT. IDENTIFY-CELL-FOR-USERAPP-POPUP. IF EVENT-DATA-2 = 1 SET EVENT-ACTION TO EVENT-ACTION-FAIL ELSE SUBTRACT 1 FROM EVENT-DATA-2 GIVING WS-CURRENT-ROW. SHOW-USERAPP-POPUP-MENU. IF EVENT-DATA-2 = 1 SET EVENT-ACTION TO EVENT-ACTION-FAIL ELSE IF GRID-POPUP-MENU-HANDLE = ZERO PERFORM BUILD-POPUP-WINDOW-MENU MOVE POPUP-MENU-HANDLE to GRID-POPUP-MENU-HANDLE END-IF CALL "W$MENU" USING WMENU-POPUP, GRID-POPUP-MENU-HANDLE. INIT-GRID-POPUP-MENU. CALL "W$MENU" USING WMENU-NEW-POPUP. IF RETURN-CODE NOT = ZERO MOVE RETURN-CODE TO POPUP-MENU-HANDLE ELSE MOVE ZERO TO POPUP-MENU-HANDLE. BUILD-POPUP-WINDOW-MENU. IF POPUP-MENU-HANDLE NOT = ZERO PERFORM ADD-MENU-POPUP-ITEM VARYING POP-MENU-IDX FROM 1 BY 1 UNTIL POP-MENU-IDX > WS-POPUP-MENU-COUNT. ADD-MENU-POPUP-ITEM. IF WS-POP-SEPARATOR-BAR( POP-MENU-IDX ) CALL "W$MENU" USING WMENU-ADD, POPUP-MENU-HANDLE, 0, W-SEPARATOR. MOVE ZERO TO MENU-FLAGS. IF WS-POP-ITEM-DISABLED( POP-MENU-IDX ) ADD W-DISABLED TO MENU-FLAGS. IF WS-POP-ITEM-MARKED( POP-MENU-IDX ) ADD W-CHECKED TO MENU-FLAGS. CALL "W$MENU" USING WMENU-ADD, POPUP-MENU-HANDLE, 0, MENU-FLAGS, WS-POP-ITEM-TEXT( POP-MENU-IDX ), WS-POP-ITEM-VALUE( POP-MENU-IDX ). * Set the cursor to the WS-CURRENT-ROW (data row) along with a Highlighted color for the row * (Remember the Row so can restore the color back when moved off) HIGHLIGHT-CURRENT-USERAPP-ROW. PERFORM RESTORE-TO-NORMAL-USERAPP-ROW-COLOR. MODIFY TEST-GRID-Field, CURSOR-X = 1, CURSOR-Y = WS-CURRENT-ROW + 1. MODIFY TEST-GRID-Field, Y = WS-CURRENT-ROW + 1, ROW-COLOR = ws-grid-highlight-color. MOVE WS-CURRENT-ROW TO WS-ROW-TO-RESTORE. SET CURSOR-IS-SET TO TRUE. RESTORE-TO-NORMAL-USERAPP-ROW-COLOR. IF CURSOR-IS-SET SET CURSOR-IS-CLEARED TO TRUE IF WS-ROW-TO-RESTORE = 2 OR 4 OR 6 OR 8 OR 10 OR 12 OR 14 OR 16 MODIFY TEST-GRID-Field, Y = WS-ROW-TO-RESTORE + 1, ROW-COLOR = ws-grid-row-color-1 ELSE IF WS-ROW-TO-RESTORE > ZERO MODIFY TEST-GRID-Field, Y = WS-ROW-TO-RESTORE + 1, ROW-COLOR = ws-grid-row-color-2. INIT-THE-MAIN-MENU-TABLE. MOVE SPACES TO USER-MENU-TABLE. MOVE "Accounts Payable" TO USER-MENU-DESCRIPTION (1). MOVE "APMENU" TO USER-MAIN-PROGRAM (1). MOVE "S" TO USER-MENU-TYPE (1). MOVE "Accounts Receivable" TO USER-MENU-DESCRIPTION (2). MOVE "ARMENU" TO USER-MAIN-PROGRAM (2). MOVE "S" TO USER-MENU-TYPE (2). MOVE "General Ledger" TO USER-MENU-DESCRIPTION (3). MOVE "GLMENU" TO USER-MAIN-PROGRAM (3). MOVE "S" TO USER-MENU-TYPE (3). MOVE "Inventory Management" TO USER-MENU-DESCRIPTION (4). MOVE "IMMENU" TO USER-MAIN-PROGRAM (4). MOVE "S" TO USER-MENU-TYPE (4). MOVE "Customer Order Processing" TO USER-MENU-DESCRIPTION (5). MOVE "OPMENU" TO USER-MAIN-PROGRAM (5). MOVE "S" TO USER-MENU-TYPE (5). MOVE "Professional Invoicing" TO USER-MENU-DESCRIPTION (6). MOVE "PIMENU" TO USER-MAIN-PROGRAM (6). MOVE "S" TO USER-MENU-TYPE (6). MOVE "Purchase Orders / Receiving" TO USER-MENU-DESCRIPTION (7). MOVE "POMENU" TO USER-MAIN-PROGRAM (7). MOVE "S" TO USER-MENU-TYPE (7). MOVE "Fixed Assets / Depreciation" TO USER-MENU-DESCRIPTION (8). MOVE "FAMENU" TO USER-MAIN-PROGRAM (8). MOVE "S" TO USER-MENU-TYPE (8). MOVE "Marina/Yacht Club Management" TO USER-MENU-DESCRIPTION (9). MOVE "MMENU" TO USER-MAIN-PROGRAM (9). MOVE "S" TO USER-MENU-TYPE (9). MOVE "Bank Reconciliation" TO USER-MENU-DESCRIPTION (10). MOVE "BRMENU" TO USER-MAIN-PROGRAM (10). MOVE "S" TO USER-MENU-TYPE (10).


Attached is a simple program with this issue failing.

Comment and Un-COmmenting a couple of lines shows that not MODIFYING the Window, the program works.

IDENTIFICATION DIVISION. PROGRAM-ID. MYGRIDPOPUP. AUTHOR. SENTINEL HILL. DATE-WRITTEN. Wednesday, FEB 24, 2022 12:12:28 PM. WORKING-STORAGE SECTION. COPY "acugui.def". COPY "acucobol.def". COPY "crtvars.def". COPY "showmsg.def". 77 Quit-Mode-Flag PIC S9(5) COMP-4 VALUE 0. 77 Key-Status IS SPECIAL-NAMES CRT STATUS PIC 9(4) VALUE 0. 88 Exit-Pushed VALUE 27. 88 Message-Received VALUE 95. 88 Event-Occurred VALUE 96. 88 Screen-No-Input-Field VALUE 97. 88 Screen-Time-Out VALUE 99. * property-defined variable * user-defined variable 77 Screen1-Handle USAGE IS HANDLE OF WINDOW VALUE NULL. 77 Screen1-Ef-1-Value PIC X(30). 77 IX PIC 9(2) COMP. 77 ws-row PIC 9(3). 77 ws-col PIC 9(3). 77 ws-tasto PIC x(15). 77 Screen1-Mn-1-Handle USAGE IS HANDLE OF MENU VALUE NULL. 77 ws-option-1 PIC X(11). 77 ws-option-2 PIC X(11). 77 ws-option-3 PIC X(11). 77 Screen1-Popup-Menu-Handle USAGE IS HANDLE OF MENU VALUE NULL. 77 ws-item PIC 9(3). 77 Menu-Sub-Handle USAGE IS HANDLE VALUE NULL. 01 default-font HANDLE of FONT. 01 small-font HANDLE of FONT. 01 ESCAPE-CODE PIC 9(3). 77 WS-CURRENT-ROW PIC 99. 77 WS-ROW-TO-RESTORE PIC 99. 77 WS-CURRENT-COLUMN PIC 99. 01 WS-CURSOR-HIGHLIGHTED PIC 9. 88 CURSOR-IS-CLEARED VALUE 0. 88 CURSOR-IS-SET VALUE 1. 01 WS-GRID-HEADINGS. 03 FILLER PIC X(5) VALUE "Item". 03 FILLER PIC X(40) VALUE "Sentinel Hill Accounting Applications". 03 FILLER PIC X(20) VALUE "Program Name". 03 FILLER PIC X(5) VALUE "Type". 01 WS-TOP-OF-1ST-ROW PIC 9(4) COMP VALUE 75. 01 WS-BOTTOM-OF-LAST-ROW PIC 9(4) COMP VALUE 335. 01 WS-ROW-PIXEL-HEIGHT PIC 9(4) COMP VALUE 29. 01 WS-GRID-ROW-OF-POPUP-POSITION PIC 9(4) COMP. 01 WS-GRID-CLICKED-DATA PIC X(25). 01 WS-GRID-SELECT-FLAG PIC X. 01 WS-LAST-ROW-FILLED PIC 99. 01 WS-GRID-DISPLAY-LINE. 03 FILLER PIC X(2) VALUE SPACE. 03 WS-SHOW-USAPPS-ITEM PIC Z9. 03 FILLER PIC X(1) VALUE SPACE. 03 WS-SHOW-USAPPS-DESC PIC X(40). 03 WS-SHOW-USAPPS-PROGNAME PIC X(20). 03 WS-SHOW-USAPPS-CALL-TYPE PIC X(5). 78 popup-menu-fnct value 3. 78 popup-string-fnct value 4. 78 maint-edit-function value 2. 78 maint-delete-function value 3. 78 maint-cut-function value 10. 78 maint-copy-function value 11. 78 maint-paste-function value 12. 78 string-cut-function value 1. 78 string-copy-function value 2. 78 string-paste-function value 3. 78 PURPLE-FRAME VALUE 65793. 78 ws-grid-row-color-1 VALUE BCKGRND-YELLOW + BLACK. 78 ws-grid-row-color-2 VALUE BCKGRND-BRIGHT-WHITE + BLACK. 78 ws-grid-highlight-color VALUE BCKGRND-BRIGHT-GREEN + BLACK. 78 ws-grid-heading-color VALUE BCKGRND-BRIGHT-CYAN + BLACK. 78 ws-grid-basic-color VALUE WINDOW-BRIGHT-WHITE + BLACK. 78 ws-grid-divider-color VALUE BROWN. 01 GRID-POPUP-MENU-HANDLE HANDLE OF MENU. 01 WS-POPUP-MENU-COUNT PIC 9(3) VALUE 5. 01 USAPPS-POPUP-MENU-ITEMS. 03 FILLER PIC X(31) VALUE " >&Add/Modify". 03 FILLER PIC 9(1) VALUE popup-menu-fnct. 03 FILLER PIC 9(2) VALUE maint-edit-function. 03 FILLER PIC X(31) VALUE " >&Clear". 03 FILLER PIC 9(1) VALUE popup-menu-fnct. 03 FILLER PIC 9(2) VALUE maint-delete-function. 03 FILLER PIC X(31) VALUE " |Cut &Field". 03 FILLER PIC 9(1) VALUE popup-string-fnct. 03 FILLER PIC 9(2) VALUE string-cut-function. 03 FILLER PIC X(31) VALUE " >Cop&y Field". 03 FILLER PIC 9(1) VALUE popup-string-fnct. 03 FILLER PIC 9(2) VALUE string-copy-function. 03 FILLER PIC X(31) VALUE " >P&aste Field". 03 FILLER PIC 9(1) VALUE popup-string-fnct. 03 FILLER PIC 9(2) VALUE string-paste-function. 01 USAPPS-POPUP-TABLE REDEFINES USAPPS-POPUP-MENU-ITEMS. 05 WS-POPUP-MENU-ITEMS OCCURS 5 TIMES INDEXED BY POP-MENU-IDX. 07 WS-POP-ITEM-OPTION PIC X(1). 88 WS-POP-ITEM-DISABLED VALUE "X", FALSE SPACE. 88 WS-POP-ITEM-MARKED VALUE "+", FALSE SPACE. 07 WS-POP-ITEM-LEVEL PIC X(1). 88 WS-POP-TOP-LEVEL VALUE SPACE. 88 WS-POP-UP-ITEM VALUE ">", "|". 88 WS-POP-SEPARATOR-BAR VALUE "|". 07 WS-POP-ITEM-TEXT PIC X(29). 07 WS-POP-ITEM-VALUE PIC 999. 01 USER-MENU-TABLE. 03 USER-MENU-SELECTIONS OCCURS 15 TIMES INDEXED BY UM-IX. 07 USER-MENU-DESCRIPTION PIC X(40). 07 USER-MAIN-PROGRAM PIC X(18). 07 USER-MENU-TYPE PIC X(1). / SCREEN SECTION. 01 Screen1. 03 bar LINE 1 COL 1.00, SIZE 80, WIDTH = 2 COLOR white, LOW SHADING = (-1, 2). 03 label, LINE 1.50 COL 3.00, SIZE 25.00 CELLS, FONT IS default-font, TITLE "Pop-Up on Grid Test", TRANSPARENT. 03 label, LINE 3.00 COL 3.00, SIZE 25.00 CELLS, FONT IS default-font, TITLE "(With MODIFY Window EVENT) ", TRANSPARENT. 03 label, LINE 1.50, COL 25.00, LINES 1.00, FONT IS small-font, TITLE "See if you can get a pop-up displayed on a grid using the ", TRANSPARENT. 03 label, LINE 3.00, COL 25.00, LINES 1.00, FONT IS small-font, TITLE "mouse when executing over Acu-To-Web.", TRANSPARENT. 03 frame, LINE 4.30, COL 1.00, LINES 3.50 CELLS, SIZE 65.00 CELLS, COLOR IS PURPLE-FRAME, FONT IS default-font, LOWERED, HIGH-COLOR 16, LOW-COLOR 1, FILL-COLOR MAGENTA, FILL-PERCENT 100. 03 TEST-GRID-Field, grid, LINE 8.8, COL 2.00, LINES 14.0, SIZE 45.00 CELLS, COLOR IS ws-grid-basic-color, FONT IS default-font, ID IS 5, EVENT PROCEDURE IS GRID-FIELD-EVENT-HANDLER, 3-D, * POP-UP MENU IS GRID-POPUP-MENU-HANDLE, COLUMN-HEADINGS, HEADING-COLOR ws-grid-heading-color, HEADING-DIVIDER-COLOR black, HEADING-FONT IS default-font, TILED-HEADINGS, CURSOR-COLOR ws-grid-highlight-color, CURSOR-FRAME-WIDTH 0, DIVIDER-COLOR ws-grid-divider-color, NUM-ROWS 13, ROW-DIVIDERS 1, VPADDING 50. 03 label, line WS-TOP-OF-1ST-ROW PIXEL, col 1 PIXEL, title "---", TRANSPARENT. 03 label, line WS-BOTTOM-OF-LAST-ROW PIXEL, col 1 PIXEL, title "---", TRANSPARENT. 03 push-button, LINE 5.40, COL 3.00, LINES 1.75 CELLS, SIZE 7.00, FONT IS default-font, EXCEPTION-VALUE = 28, TITLE "E&xit", SELF-ACT. 03 push-button, COL + 1.50, LINES 1.75 CELLS, SIZE 18.00, FONT IS default-font, EXCEPTION-VALUE = 02, TITLE "Inquire Grid Rows", SELF-ACT. 03 Grid-Sizing-Screen. 05 frame, LINE 12.0, COL 48, LINES 5.0, SIZE 20.00 CELLS, ENGRAVED, "Grid Pixels:". 05 label, LINE + 1.5, COL 49.5, TITLE "Top Row:", TRANSPARENT. 05 label, COL 59.0, PIC ZZ99 VALUE WS-TOP-OF-1ST-ROW, TRANSPARENT. 05 label, LINE + 1.5, COL 49.5, TITLE "Bottom Row:", TRANSPARENT. 05 label, COL 59.0, PIC ZZ99 VALUE WS-BOTTOM-OF-LAST-ROW, TRANSPARENT. 05 label, LINE + 1.3, COL 49.5, TITLE "Row Height:", TRANSPARENT. 05 label, COL 59.0, PIC ZZ99 VALUE WS-ROW-PIXEL-HEIGHT, TRANSPARENT. 01 Screen-Popup-Clicked-Screen. 03 label, LINE 20, COL 49, TITLE "Popup Row:", TRANSPARENT. 03 label, COL + 1.0, PIC ZZ99 VALUE mouse-row-pixel, TRANSPARENT. 03 label, LINE + 1.5, COL 49, TITLE "Popup Col:", TRANSPARENT. 03 label, COL + 0.5, PIC ZZ99 VALUE mouse-col-pixel, TRANSPARENT. 03 label, LINE + 1.5, COL 49, TITLE "Pop on Grid Data Row:", TRANSPARENT. 03 label, COL + 1.0, PIC Z9 VALUE WS-GRID-ROW-OF-POPUP-POSITION, TRANSPARENT. 01 Grid-Item-Clicked-Screen. 03 label, LINE 26, COL 49, TITLE "Row Clicked:", TRANSPARENT. 03 label, COL + 1.0, PIC Z99 VALUE EVENT-DATA-2, TRANSPARENT. 03 label, LINE + 1.5, COL 49, TITLE "Col Clicked:", TRANSPARENT. 03 label, COL + 0.5, PIC Z99 VALUE EVENT-DATA-1, TRANSPARENT. 01 Grid-Item-Clicked-Data-Screen. 03 label, LINE 32, COL 49, TITLE "Row:", TRANSPARENT. 03 label, COL + 0.5, PIC Z9 VALUE IX, TRANSPARENT. 03 label, COL + 0.5, TITLE "Cell Data:", TRANSPARENT. 03 label, LINE + 1.5, COL 49, TITLE WS-GRID-CLICKED-DATA, TRANSPARENT. PROCEDURE DIVISION. Acu-Main-Logic. ACCEPT System-Information FROM System-Info. ACCEPT Terminal-Abilities FROM Terminal-Info. accept default-font from standard object "DEFAULT-FONT". accept small-font from standard object "SMALL-FONT". PERFORM Acu-Screen1-Popup-Menu-Menu. PERFORM INIT-GRID-POPUP-MENU. MOVE Menu-Handle TO Screen1-Popup-Menu-Handle. DISPLAY FLOATING WINDOW LINES 37.0, SIZE 68.60, CELL HEIGHT 10, CELL WIDTH 10, AUTO-MINIMIZE, LINK TO THREAD, MODELESS, RESIZABLE, * POP-UP MENU IS Screen1-Popup-Menu-Handle, NO SCROLL, WITH SYSTEM MENU, TITLE "Screen", TITLE-BAR, NO WRAP, FOREGROUND-COLOR 0, |RED=4, BLACK=0 BACKGROUND-COLOR 2, |WHITE=7, GREEN=2 * EVENT PROCEDURE Screen1-Event-Proc, HANDLE IS Screen1-Handle. * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Comment out these lines and remove the "*" in the DISPLAY above $$$$$$$$$$$$ * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ and you will get the PopUp Displayed $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ * MODIFY Screen1-Handle EVENT PROCEDURE IS Screen1-Event-Proc. MODIFY Screen1-Handle POP-UP MENU IS Screen1-Popup-Menu-Handle. * * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ COMPUTE WS-ROW-PIXEL-HEIGHT = (WS-BOTTOM-OF-LAST-ROW - WS-TOP-OF-1ST-ROW) / 13. DISPLAY Screen1 UPON Screen1-Handle. MODIFY TEST-GRID-Field, ROW-COLOR-PATTERN = (ws-grid-row-color-1, ws-grid-row-color-2). MODIFY TEST-GRID-Field, DATA-COLUMNS = ( 1, 6, 44, 64 ). MODIFY TEST-GRID-Field, DISPLAY-COLUMNS = ( 1, 7, 45, 60 ). MODIFY TEST-GRID-Field, ALIGNMENT = ( "L", "L", "L", "C"). MODIFY TEST-GRID-Field, COLUMN-DIVIDERS = ( 1, 1, 1, 1 ). MODIFY TEST-GRID-Field, record-to-add = WS-GRID-HEADINGS. PERFORM INIT-THE-MAIN-MENU-TABLE. PERFORM VARYING UM-IX FROM 1 BY 1 UNTIL UM-IX > 15 PERFORM DISPLAY-THIS-GRID-DATA-LINE END-PERFORM. SET ESCAPE-CODE TO ZERO. PERFORM UNTIL ESCAPE-CODE = 28 ACCEPT Screen1 ON EXCEPTION ACCEPT ESCAPE-CODE FROM ESCAPE KEY IF ESCAPE-CODE = 96 PERFORM Acu-Screen1-Evaluate-Func ELSE IF ESCAPE-CODE = 02 PERFORM VARYING IX FROM 1 BY 2 UNTIL IX > 10 INQUIRE TEST-GRID-Field(IX, 2), CELL-DATA IN WS-GRID-CLICKED-DATA DISPLAY Grid-Item-Clicked-Data-Screen CALL "c$sleep" USING 2 END-PERFORM DESTROY Grid-Item-Clicked-Data-Screen SET ESCAPE-CODE TO ZERO END-IF END-IF END-ACCEPT IF WS-GRID-SELECT-FLAG = "Y" DISPLAY Grid-Item-Clicked-Screen, Grid-Item-Clicked-Data-Screen MOVE SPACES TO WS-GRID-SELECT-FLAG END-IF END-PERFORM. DESTROY Screen1-Handle. INITIALIZE Key-Status. PERFORM Acu-Exit-Rtn. Acu-Exit-Rtn. EXIT PROGRAM STOP RUN. / Acu-Screen1-Evaluate-Func. ACCEPT ESCAPE-CODE FROM ESCAPE KEY. EVALUATE TRUE WHEN Event-Occurred IF Event-Type = Cmd-Close PERFORM Acu-Screen1-Exit END-IF END-EVALUATE. MOVE 1 TO Accept-Control. Acu-Screen1-Exit. SET Exit-Pushed TO TRUE. Acu-Screen1-Popup-Menu-Menu. PERFORM Acu-Screen1-Popup-Menu THRU Acu-Screen1-Popup-Menu-Exit. Acu-Screen1-Popup-Menu. CALL "W$MENU" USING Wmenu-New-Popup GIVING Menu-Handle IF Menu-Handle = ZERO GO TO Acu-Screen1-Popup-Menu-Exit. MOVE Menu-Handle to Screen1-Popup-Menu-Handle. Acu-Screen1-Popup-Menu-Exit. MOVE ZERO TO Return-Code. Acu-Screen1-Msg-Close. ACCEPT Quit-Mode-Flag FROM ENVIRONMENT "QUIT_MODE" IF Quit-Mode-Flag = ZERO PERFORM Acu-Screen1-Exit PERFORM Acu-Exit-Rtn. Screen1-Event-Proc. EVALUATE Event-Type WHEN MSG-END-MENU PERFORM Screen1-Ev-Msg-End-Menu WHEN MSG-INIT-MENU PERFORM Screen1-Ev-Msg-Init-Menu END-EVALUATE. *** start event editor code *** * Screen1-Ev-Msg-Init-Menu. initialize MOUSE-INFO. call "w$mouse" using GET-MOUSE-STATUS mouse-info. move mouse-row-pixel to ws-row. move mouse-col-pixel to ws-col. COMPUTE WS-GRID-ROW-OF-POPUP-POSITION = ((mouse-row-pixel - WS-TOP-OF-1ST-ROW) / WS-ROW-PIXEL-HEIGHT). DISPLAY Screen-Popup-Clicked-Screen. IF (mouse-row-pixel < WS-TOP-OF-1ST-ROW OR > WS-BOTTOM-OF-LAST-ROW) OR (mouse-col < 2.5 OR > 17) SET EVENT-ACTION TO EVENT-ACTION-FAIL EXIT PARAGRAPH. MOVE WS-GRID-ROW-OF-POPUP-POSITION TO WS-CURRENT-ROW. PERFORM HIGHLIGHT-CURRENT-USERAPP-ROW. initialize ws-item. move "Menu 1 - A" to ws-option-1. move "Menu 1 - B" to ws-option-2. move "Menu 1 - C" to ws-option-3. perform create-popup-menu. * create-popup-menu. CALL "W$MENU" USING WMENU-DELETE, Screen1-Popup-Menu-Handle, 1 CALL "W$MENU" USING WMENU-DELETE, Screen1-Popup-Menu-Handle, 2 CALL "W$MENU" USING WMENU-DELETE, Screen1-Popup-Menu-Handle, 3 CALL "W$MENU" USING WMENU-ADD, Screen1-Popup-Menu-Handle, 0, 0, ws-option-1, 1 CALL "W$MENU" USING WMENU-ADD, Screen1-Popup-Menu-Handle, 0, 0, ws-option-2, 2 CALL "W$MENU" USING WMENU-ADD, Screen1-Popup-Menu-Handle, 0, 0, ws-option-3, 3. Screen1-Ev-Msg-End-Menu. exit. * CALL "W$MENU" USING WMENU-DESTROY, Screen1-Popup-Menu-Handle DISPLAY-THIS-GRID-DATA-LINE. MOVE SPACES TO WS-GRID-DISPLAY-LINE. MOVE UM-IX TO WS-SHOW-USAPPS-ITEM. IF USER-MENU-DESCRIPTION (UM-IX) NOT = SPACES MOVE USER-MENU-DESCRIPTION (UM-IX) TO WS-SHOW-USAPPS-DESC MOVE USER-MAIN-PROGRAM (UM-IX) TO WS-SHOW-USAPPS-PROGNAME MOVE USER-MENU-TYPE (UM-IX) TO WS-SHOW-USAPPS-CALL-TYPE. MODIFY TEST-GRID-Field, Y = UM-IX + 1, record-data = WS-GRID-DISPLAY-LINE. GRID-FIELD-EVENT-HANDLER. EVALUATE EVENT-TYPE WHEN MSG-GOTO-CELL PERFORM IDENTIFY-OP-SELECT-USERAPP-CELL WHEN MSG-GOTO-CELL-MOUSE PERFORM IDENTIFY-OP-SELECT-USERAPP-CELL WHEN MSG-BEGIN-ENTRY PERFORM OP-IS-EDITING-USERAPP-CELL WHEN MSG-FINISH-ENTRY PERFORM FINISH-EDIT-OF-USERAPP-CELL * WHEN MSG-GRID-RBUTTON-DOWN PERFORM IDENTIFY-CELL-FOR-USERAPP-POPUP * WHEN MSG-GRID-RBUTTON-UP PERFORM SHOW-USERAPP-POPUP-MENU * WHEN MSG-INIT-MENU PERFORM IDENTIFY-CELL-FOR-USERAPP-POPUP * WHEN MSG-MENU-INPUT PERFORM SHOW-USERAPP-POPUP-MENU END-EVALUATE. * User Cursored To an Adjacent Cell (Could be Up or Down or Left or Right) or a particular cell was clicked. * Identify the row and highlight it. If it was to a different column, ignore it, and reset cursor to 1st column * EVENT-DATA-1 will hold the Column, and EVENT-DATA-2 the Row IDENTIFY-OP-SELECT-USERAPP-CELL. IF EVENT-DATA-2 NOT = WS-CURRENT-ROW + 1 SUBTRACT 1 FROM EVENT-DATA-2 GIVING WS-CURRENT-ROW PERFORM HIGHLIGHT-CURRENT-USERAPP-ROW. DISPLAY Grid-Item-Clicked-Screen. * Operator is trying the edit the contents of a cell. * Prevent the action from occurring by setting EVENT-ACTION to EVENT-ACTION-FAIL. * EVENT-DATA-1 will hold the Column, and EVENT-DATA-2 the Row * Field changes only allowed to the Description and Program Name for User Defined Apps * and only to Description for MainMenu Items OP-IS-EDITING-USERAPP-CELL. MOVE SPACE TO WS-GRID-SELECT-FLAG. INQUIRE TEST-GRID-Field, LAST-ROW IN WS-LAST-ROW-FILLED. IF (EVENT-DATA-2 - 1 > WS-LAST-ROW-FILLED) OR (EVENT-DATA-2 = 1) SET EVENT-ACTION TO EVENT-ACTION-FAIL ELSE INQUIRE TEST-GRID-Field(EVENT-DATA-2, EVENT-DATA-1), CELL-DATA IN WS-GRID-CLICKED-DATA MOVE EVENT-DATA-2 TO IX MOVE "Y" TO WS-GRID-SELECT-FLAG SET EVENT-ACTION TO EVENT-ACTION-FAIL-TERMINATE. FINISH-EDIT-OF-USERAPP-CELL. EXIT. IDENTIFY-CELL-FOR-USERAPP-POPUP. IF EVENT-DATA-2 = 1 SET EVENT-ACTION TO EVENT-ACTION-FAIL ELSE SUBTRACT 1 FROM EVENT-DATA-2 GIVING WS-CURRENT-ROW. SHOW-USERAPP-POPUP-MENU. IF EVENT-DATA-2 = 1 SET EVENT-ACTION TO EVENT-ACTION-FAIL ELSE IF GRID-POPUP-MENU-HANDLE = ZERO PERFORM BUILD-POPUP-WINDOW-MENU MOVE POPUP-MENU-HANDLE to GRID-POPUP-MENU-HANDLE END-IF CALL "W$MENU" USING WMENU-POPUP, GRID-POPUP-MENU-HANDLE. INIT-GRID-POPUP-MENU. CALL "W$MENU" USING WMENU-NEW-POPUP. IF RETURN-CODE NOT = ZERO MOVE RETURN-CODE TO POPUP-MENU-HANDLE ELSE MOVE ZERO TO POPUP-MENU-HANDLE. BUILD-POPUP-WINDOW-MENU. IF POPUP-MENU-HANDLE NOT = ZERO PERFORM ADD-MENU-POPUP-ITEM VARYING POP-MENU-IDX FROM 1 BY 1 UNTIL POP-MENU-IDX > WS-POPUP-MENU-COUNT. ADD-MENU-POPUP-ITEM. IF WS-POP-SEPARATOR-BAR( POP-MENU-IDX ) CALL "W$MENU" USING WMENU-ADD, POPUP-MENU-HANDLE, 0, W-SEPARATOR. MOVE ZERO TO MENU-FLAGS. IF WS-POP-ITEM-DISABLED( POP-MENU-IDX ) ADD W-DISABLED TO MENU-FLAGS. IF WS-POP-ITEM-MARKED( POP-MENU-IDX ) ADD W-CHECKED TO MENU-FLAGS. CALL "W$MENU" USING WMENU-ADD, POPUP-MENU-HANDLE, 0, MENU-FLAGS, WS-POP-ITEM-TEXT( POP-MENU-IDX ), WS-POP-ITEM-VALUE( POP-MENU-IDX ). * Set the cursor to the WS-CURRENT-ROW (data row) along with a Highlighted color for the row * (Remember the Row so can restore the color back when moved off) HIGHLIGHT-CURRENT-USERAPP-ROW. PERFORM RESTORE-TO-NORMAL-USERAPP-ROW-COLOR. MODIFY TEST-GRID-Field, CURSOR-X = 1, CURSOR-Y = WS-CURRENT-ROW + 1. MODIFY TEST-GRID-Field, Y = WS-CURRENT-ROW + 1, ROW-COLOR = ws-grid-highlight-color. MOVE WS-CURRENT-ROW TO WS-ROW-TO-RESTORE. SET CURSOR-IS-SET TO TRUE. RESTORE-TO-NORMAL-USERAPP-ROW-COLOR. IF CURSOR-IS-SET SET CURSOR-IS-CLEARED TO TRUE IF WS-ROW-TO-RESTORE = 2 OR 4 OR 6 OR 8 OR 10 OR 12 OR 14 OR 16 MODIFY TEST-GRID-Field, Y = WS-ROW-TO-RESTORE + 1, ROW-COLOR = ws-grid-row-color-1 ELSE IF WS-ROW-TO-RESTORE > ZERO MODIFY TEST-GRID-Field, Y = WS-ROW-TO-RESTORE + 1, ROW-COLOR = ws-grid-row-color-2. INIT-THE-MAIN-MENU-TABLE. MOVE SPACES TO USER-MENU-TABLE. MOVE "Accounts Payable" TO USER-MENU-DESCRIPTION (1). MOVE "APMENU" TO USER-MAIN-PROGRAM (1). MOVE "S" TO USER-MENU-TYPE (1). MOVE "Accounts Receivable" TO USER-MENU-DESCRIPTION (2). MOVE "ARMENU" TO USER-MAIN-PROGRAM (2). MOVE "S" TO USER-MENU-TYPE (2). MOVE "General Ledger" TO USER-MENU-DESCRIPTION (3). MOVE "GLMENU" TO USER-MAIN-PROGRAM (3). MOVE "S" TO USER-MENU-TYPE (3). MOVE "Inventory Management" TO USER-MENU-DESCRIPTION (4). MOVE "IMMENU" TO USER-MAIN-PROGRAM (4). MOVE "S" TO USER-MENU-TYPE (4). MOVE "Customer Order Processing" TO USER-MENU-DESCRIPTION (5). MOVE "OPMENU" TO USER-MAIN-PROGRAM (5). MOVE "S" TO USER-MENU-TYPE (5). MOVE "Professional Invoicing" TO USER-MENU-DESCRIPTION (6). MOVE "PIMENU" TO USER-MAIN-PROGRAM (6). MOVE "S" TO USER-MENU-TYPE (6). MOVE "Purchase Orders / Receiving" TO USER-MENU-DESCRIPTION (7). MOVE "POMENU" TO USER-MAIN-PROGRAM (7). MOVE "S" TO USER-MENU-TYPE (7). MOVE "Fixed Assets / Depreciation" TO USER-MENU-DESCRIPTION (8). MOVE "FAMENU" TO USER-MAIN-PROGRAM (8). MOVE "S" TO USER-MENU-TYPE (8). MOVE "Marina/Yacht Club Management" TO USER-MENU-DESCRIPTION (9). MOVE "MMENU" TO USER-MAIN-PROGRAM (9). MOVE "S" TO USER-MENU-TYPE (9). MOVE "Bank Reconciliation" TO USER-MENU-DESCRIPTION (10). MOVE "BRMENU" TO USER-MAIN-PROGRAM (10). MOVE "S" TO USER-MENU-TYPE (10).

EVENT PROCEDURE Screen1-Event-Proc, HANDLE IS Screen1-Handle.

MODIFY Screen1-Handle EVENT PROCEDURE IS Screen1-LC-Event-Proc.

I placed Screen1-LC-Event-Proc in the Procedural code right before INIT-THE-MAIN-MENU-TABLE.  I just had it do a simple display "I'm here". I run your program and can see that   Screen1-LC-Event-Proc is being used.