03-14-2007 1:51 PM
I have a program like the one below. Once I select "p_test" it opens up another field to allow the input of a range.
However, if I change my mind and want to deselect "p_test", it seems like select options are not evaluated again, and it insists that I input values.
Is there a way I can turn off p_test, or do I have to exit the program and start again, once I select it?
PROGRAM zz_test.
DATA g_s_sflight TYPE sflight.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS p_test
AS CHECKBOX
USER-COMMAND p_test.
SELECT-OPTIONS s_carrid FOR g_s_sflight-carrid
MODIF ID car.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
PARAMETERS p_report
AS CHECKBOX
USER-COMMAND p_report.
SELECTION-SCREEN END OF BLOCK b2.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF p_test = 'X'.
IF screen-group1 = 'CAR'.
screen-active = '1'.
screen-required = '1'.
MODIFY SCREEN.
ENDIF.
ELSE.
IF screen-group1 = 'CAR'.
screen-active = '0'.
screen-required = '0'.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
START-OF-SELECTION.
SELECT * FROM sflight
INTO g_s_sflight
WHERE carrid IN s_carrid.
ENDSELECT.
03-14-2007 1:56 PM
Hello,
Chekc this code:
PARAMETERS: SP_CHECK AS CHECKBOX USER-COMMAND CHECK.
SELECT-OPTIONS: SO_MATNR FOR MARA-MATNR MODIF ID GRP.
AT SELECTION-SCREEN OUTPUT.
IF SP_CHECK IS INITIAL.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'GRP'.
SCREEN-INPUT = '0'.
SCREEN-OUTPUT = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
CLEAR: SO_MATNR.
REFRESH: SO_MATNR.
ENDIF.
AT SELECTION-SCREEN ON SP_CHECK.
PERFORM MATERIAL_CHECK.
FORM MATERIAL_CHECK.
IF NOT SP_CHECK IS INITIAL AND SY-UCOMM = 'ONLI'.
IF SO_MATNR[] IS INITIAL.
LOOP AT SCREEN.
IF SCREEN-NAME = 'SO_MATNR-LOW'.
SCREEN-INPUT = '1'.
SCREEN-OUTPUT = '0'.
SCREEN-REQUIRED = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM. " MATERIAL_CHECK
If useful reward.
Vasanth
03-14-2007 1:59 PM
hi jerry,
give like this...
LOOP AT SCREEN.
IF p_test = 'X'.
IF screen-group1 = 'CAR'.
screen-active = '1'.
screen-invisible = '0'.
MODIFY SCREEN.
ENDIF.
ELSE.
IF screen-group1 = 'CAR'.
screen-active = '0'.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
do reward if it helps,
priya.
03-14-2007 1:59 PM
03-14-2007 2:02 PM
hi
please copy paste this code ur problem solved.
DATA g_s_sflight TYPE sflight.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS p_test AS CHECKBOX USER-COMMAND p_test.
SELECT-OPTIONS s_carrid FOR g_s_sflight-carrid MODIF ID car .
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
PARAMETERS p_report AS CHECKBOX USER-COMMAND p_report.
SELECTION-SCREEN END OF BLOCK b2.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF p_test = 'X'.
IF screen-group1 = 'CAR'.
screen-active = '1'.
screen-required = '1'.
MODIFY SCREEN.
s_carrid-low = '00'.s_carrid-high = '00'.
APPEND s_carrid.
ENDIF.
ELSE.
IF screen-group1 = 'CAR'.
screen-active = '0'.
screen-required = '0'.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
START-OF-SELECTION.
SELECT * FROM sflight
INTO g_s_sflight
WHERE carrid IN s_carrid.
ENDSELECT.
**Please reward suitable points***
With Regards
Navin Khedikar