‎2007 Sep 10 8:41 AM
Hello,
I have a report with a selection screen containing one parameter.
I want that, in certain conditions, the selection screen to be skipped.
I think I can use the AT SELECTION-SCREEN OUTPUT event and modify the screen table, but I don't know what to modify in order to skip the selection screen.
Any ideeas?
‎2007 Sep 10 8:47 AM
Hi,
You can set parameter property
LOOP AT SCREEN.
IF SCREEN-NAME = PARAMETER/SELECTI-OPTION-HIGH/LOW
SCREEN-INPUT = '0'.
ENDIF.
ENDLOOP.
e.g. PARAMETER NAME = 'P_MATNR'
SELECT-OPTION = 'P_MATNR-HIGH'
You can also check SELECT-OPTIONS - screen_options (NO-DISPLAY ).
***reward if helpful.
Message was edited by:
Sachchidanand Aphale
‎2007 Sep 10 8:50 AM
Hi George see this code,
REPORT zm_selectoutput .
TABLES : lfa1, kna1 .
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME .
PARAMETERS : r1 RADIOBUTTON GROUP gr1 USER-COMMAND flag DEFAULT 'X',
r2 RADIOBUTTON GROUP gr1.
SELECTION-SCREEN END OF BLOCK blk1 .
SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME .
SELECT-OPTIONS : p_lifnr FOR lfa1-lifnr MODIF ID ide.
SELECTION-SCREEN END OF BLOCK blk2 .
SELECTION-SCREEN BEGIN OF BLOCK blk3 WITH FRAME .
SELECT-OPTIONS : p_kunnr FOR kna1-kunnr MODIF ID idf.
SELECTION-SCREEN END OF BLOCK blk3 .
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN .
IF r1 IS NOT INITIAL AND screen-group1 = 'IDE' .
screen-active = '0' .
MODIFY SCREEN.
ENDIF.
ENDLOOP.
LOOP AT SCREEN .
IF r2 IS NOT INITIAL AND screen-group1 = 'IDF' .
screen-active = '0' .
MODIFY SCREEN.
ENDIF.
ENDLOOP.
Regards,
Nihar Swain ,,,,,,,,,,,,,,
‎2007 Sep 10 8:58 AM
Using screen-active = 0 is just hiding the parameter, the selection screen is still there and I have ti press "Execute button". How cand I skip that too?
‎2007 Sep 10 9:03 AM
hi,
try like this.
for any standard transaction when we want to skip initial screen we do like this.
CALL TRANSACTION 'MM01' AND SKIP FIRST SCREEN.
in ur case i think use SY-DYNNR [to hold current screen no] and try like this.
where chkbox is any condition to skip selection screen for u.
if chkbox = 'X'.
call screen '200' and SKIP FIRST SCREEN.
where 200 is next screen after selection screen.
or find out by debugging the scrno of selection screen [SY-DYNNR] and try like this
call screen '200' and skip SY-DYNNR.
if helpful reward some points.
with regards,
Suresh Aluri.
‎2007 Sep 10 9:09 AM
Hi,
Instead of going for a parameters option.Try with a single screen ,putting the parameter field in it. and then try to call the screen when ever u want.
call screen 100. In screen 100 use ur parameter field.
Try like this.
if x is initial.
call screen 100.
endif.
Regards,
Nagaraj
‎2007 Sep 10 9:12 AM
Is there a way to do something like this?
if condition = true.
parameters: param1 type type1 no-display.
else.
parameters: param1 type type1.
endif.
‎2007 Sep 10 9:13 AM
Hi
You can use the skip keyword to skip group of field from selction screen.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 16(10) TEXT-010.
SELECTION-SCREEN COMMENT 37(10) TEXT-020.
SELECTION-SCREEN END OF LINE.
SKIP.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 05(10) TEXT-040.
PARAMETERS X_M01 LIKE RESB-MATNR.
SELECTION-SCREEN COMMENT 35(01) TEXT-050.
PARAMETERS X_Q01 LIKE RESB-ERFMG.
SELECTION-SCREEN END OF LINE.
SKIP.
Thanks and Best Regards,
Vinoth