Kbase P19991: How to obtain the label of current value of a RADIO-SET
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  1/26/2007 |
|
Status: Unverified
GOAL:
How to obtain the label of current value of a RADIO-SET
FIX:
Use code similar to the following to obtain the SCREEN-VALUE and the LABEL of the currently selected RADIO-BUTTON of a RADIO-SET widget:
DEFINE VARIABLE RADIO-SET-1 AS INTEGER
VIEW-AS RADIO-SET VERTICAL
RADIO-BUTTONS
"Item 1", 1,
"Item 2", 2,
"Item 3", 3
SIZE 12 BY 3 NO-UNDO.
DEFINE VARIABLE iPosition AS INTEGER NO-UNDO.
DEFINE FRAME DEFAULT-FRAME
RADIO-SET-1 AT ROW 4.1 COL 14 NO-LABEL WIDGET-ID 2
WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
SIDE-LABELS NO-UNDERLINE THREE-D
AT COL 1 ROW 1
SIZE 80 BY 16 WIDGET-ID 100.
ON VALUE-CHANGED OF RADIO-SET-1 DO:
iPosition = LOOKUP(RADIO-SET-1:SCREEN-VALUE,RADIO-SET-1:RADIO-BUTTONS).
MESSAGE
"selected button Screen value:" "~t" RADIO-SET-1:SCREEN-VALUE "~n"
"selected button label:" "~t~t" ENTRY(iPosition - 1,RADIO-SET-1:RADIO-BUTTONS)
VIEW-AS ALERT-BOX.
END.
ENABLE ALL WITH FRAME DEFAULT-FRAME.
APPLY 'VALUE-CHANGED' TO RADIO-SET-1.
WAIT-FOR CLOSE OF THIS-PROCEDURE.
Alternatively, pass the handle of the RADIO-SET widget to the following user defined function to obtain the LABEL of its currently selected RADIO-BUTTON:
FUNCTION GetSelectedLabel RETURNS CHARACTER(INPUT phRadioSet AS HANDLE):
DEFINE VARIABLE sLabelList AS CHARACTER NO-UNDO.
DEFINE VARIABLE sValueList AS CHARACTER NO-UNDO.
DEFINE VARIABLE ii AS INTEGER NO-UNDO.
DO ii=1 TO NUM-ENTRIES(phRadioSet:RADIO-BUTTONS) BY 2:
sLabelList = sLabelList + ENTRY(ii, phRadioSet:RADIO-BUTTONS) + phRadioSet:DELIMITER.
END.
DO ii=2 TO NUM-ENTRIES(phRadioSet:RADIO-BUTTONS) BY 2:
sValueList = sValueList + ENTRY(ii, phRadioSet:RADIO-BUTTONS) + phRadioSet:DELIMITER.
END.
RETURN(ENTRY(LOOKUP(phRadioSet:SCREEN-VALUE, sValueList), sLabelList)).
END FUNCTION.