‎2007 Mar 23 2:31 PM
Hi,
Please how to return a parameter grayed (disabled) in selection-screen.
Thanks a lot.
‎2007 Mar 23 2:34 PM
‎2007 Mar 23 2:35 PM
Hi there. If you want to grey out a parameter in your selection screen so that the user cannot change or enter data, here's what you need to do. First use a modif ID with the field. Then before your start of selection you will change the screen input value. Here is some sample code:
PARAMETERS: p_field LIKE rlgrap-filename MODIF ID fpn.
AT SELECTION-SCREEN OUTPUT.
make any parameter in group FPN display only
(gray out areas we don't want user to change)
LOOP AT SCREEN.
CHECK screen-group1 = 'FPN'.
screen-input = 0. "Output (Display) only
MODIFY SCREEN.
ENDLOOP.
I hope this helps.
- April King
‎2007 Mar 23 2:54 PM
I have 2 parameters in my selection-screen and i went if the first is valide and exist, the second became grayed (not in default).
Thanks
‎2007 Mar 23 2:58 PM
hi,
In ABAP, we will not have any events like lost_cursor similar to VB.
At selection-screen gets triggered once we press Enter after giving input to First parameter. So, that validation can be done for first parameter and make the second parameter grayedout.
Regards,
Sailaja.
‎2007 Mar 23 3:01 PM
Okay. Then try this (assuming that you have MODIF ID fpn assigned to p_field2):
AT SELECTION-SCREEN.
IF p_field1 > space. "change this to whatever you need to check for field1 to be valid
LOOP AT SCREEN.
CHECK screen-group1 = 'FPN'.
screen-input = 0. "Output (Display) only
MODIFY SCREEN.
ENDLOOP.
ENDIF.
- April
‎2007 Mar 23 3:01 PM
Hi Hraichi,
PARAMETERS: P_MARA TYPE MARA-MATNR.
PARAMETERS: P_MATKL TYPE MARA-MATKL.
AT SELECTION-SCREEN.
LOOP AT SCREEN.
IF SCREEN-NAME = 'P_MARA' AND P_MATKL IS NOT INTIAL.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDIF.
IF SCREEN-NAME = 'P_MATKL' AND P_MARA IS NOT INTIAL.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
Thanks,
Vinay
‎2007 Mar 23 2:51 PM
Hi,
You can disable the parameter by setting SCREEN-INPUT as 0 to grayed out in the AT SELECTION-SCREEN event.
PARAMETERS: P_MARA TYPE MARA-MATNR.
AT SELECTION-SCREEN.
LOOP AT SCREEN.
IF SCREEN-NAME = 'P_MARA'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
Thanks,
Vinay
‎2007 Mar 23 3:33 PM
How about using radio-buttons to select the active field. Something lie this:
SELECTION-SCREEN BEGIN OF LINE .
PARAMETERS : r_p1 RADIOBUTTON GROUP fred DEFAULT 'X' USER-COMMAND bob ,
p_p1 TYPE char20 MODIF ID pa1 .
SELECTION-SCREEN END OF LINE .
SELECTION-SCREEN BEGIN OF LINE .
PARAMETERS : r_p2 RADIOBUTTON GROUP fred ,
p_p2 TYPE char20 MODIF ID pa2 .
SELECTION-SCREEN END OF LINE .
AT SELECTION-SCREEN OUTPUT .
LOOP AT SCREEN .
IF screen-name EQ 'P_P1' .
IF r_p1 EQ 'X' .
MOVE '1' TO screen-input .
ELSE .
MOVE '0' TO screen-input .
ENDIF .
MODIFY SCREEN .
ENDIF .
IF screen-name EQ 'P_P2' .
IF r_p2 EQ 'X' .
MOVE '1' TO screen-input .
ELSE .
MOVE '0' TO screen-input .
ENDIF .
MODIFY SCREEN .
ENDIF .
ENDLOOP .Have a good weekend!
Lyal
‎2011 Feb 08 9:46 PM