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?
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 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
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |