Consultor Eletrônico



Kbase P100954: How to define a CHOOSE event trigger for a Dynamic MENU-ITEM?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   29/10/2008
Status: Verified

GOAL:

How to define a CHOOSE event trigger for a Dynamic MENU-ITEM?

FIX:

Define an internal procedure to perform the processing required on the CHOOSE event of the MENU-ITEM and PERSISTENT RUN that procedure in the TRIGGERS phrase of the CREATE MENU-ITEM statement:
CREATE MENU-ITEM whMenuItem
ASSIGN
PARENT = whSubMenu
LABEL = salesrep.repname
TRIGGERS:
ON CHOOSE PERSISTENT RUN DisplayQuota IN THIS-PROCEDURE.
END TRIGGERS.
The following sample code demonstrates how to define a CHOOSE trigger for a dynamic MENU-ITEM. The following code may be run from the Procedure Editor after connecting to the Sports2000 demo database:
DEFINE VARIABLE whExitItem AS WIDGET-HANDLE.
DEFINE VARIABLE whSubMenu AS WIDGET-HANDLE.
DEFINE VARIABLE whMainMenu AS WIDGET-HANDLE.
DEFINE VARIABLE whMenuItem AS WIDGET-HANDLE.
FORM
salesrep.salesrep repname salesrep.region monthquota
WITH FRAME x WITH SIDE-LABELS ROW 5 CENTERED.
VIEW FRAME x.
/* Create the main menu bar. */
CREATE MENU whMainMenu.

/* Create a pull-down menu to list all sales reps. */
CREATE SUB-MENU whSubMenu
ASSIGN
PARENT = whMainMenu
LABEL = "Reps".
/* Create a menu item for each record in the Salesrep table. */
FOR EACH Salesrep BY repname:
CREATE MENU-ITEM whMenuItem
ASSIGN
PARENT = whSubMenu
LABEL = salesrep.repname
TRIGGERS:
ON CHOOSE PERSISTENT RUN DisplayQuota IN THIS-PROCEDURE.
END TRIGGERS.
END.
/* Add a rule to the whSubMenu. */
CREATE MENU-ITEM whMenuItem
ASSIGN
SUBTYPE = "RULE"
PARENT = whSubMenu.
/* Add an exit item to the whSubMenu. */
CREATE MENU-ITEM whExitItem
ASSIGN
PARENT = whSubMenu
LABEL = "E&xit".
/* Set up the menu bar. */
CURRENT-WINDOW:MENUBAR = whMainMenu.
/* Wait for the user to select Exit. */
WAIT-FOR CHOOSE OF whExitItem.
PROCEDURE DisplayQuota:
FIND FIRST salesrep WHERE repname = SELF:LABEL.
DISPLAY salesrep WITH FRAME x.
END.