Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Calling a sub screen in MODULE user_command_9000 INPUT

Former Member
0 Likes
863

HI,

PROCESS BEFORE OUTPUT.

MODULE STATUS_9000.

CALL SUBSCREEN subscreen_9220 INCLUDING sy-repid '9220'.

CALL SUBSCREEN subscreen_9240 INCLUDING sy-repid '9240'.

PROCESS AFTER INPUT.

CALL SUBSCREEN subscreen_9220.

MODULE USER_COMMAND_9000.

***********************************************************************************************

  • Inside MODULE user_command_9000 INPUT.

DATA: ok_code TYPE sy-ucomm.

CLEAR ok_code.

ok_code = sy-ucomm.

CASE ok_code.

WHEN 'CANCEL'.

LEAVE PROGRAM.

WHEN 'ENTER'.

IF rb_hdb_code EQ 'X'

OR rb_landed_code EQ 'X'

OR rb_hawker_code EQ 'X'.

CALL SCREEN 9221.

ENDIF.

IF rb_trade_code EQ 'X'.

select OPERAND from TE221

into table t_tt221

where OPTYP eq 'TQUANT'.

CALL SCREEN 9222.

ENDIF.

IF rb_non_standard_code = 'X'.

PERFORM GET_DATA.

CALL SCREEN 9223.

ENDIF.

<b> WHEN 'OK'.

CALL SUBSCREEN subscreen_9240 INCLUDING sy-repid '9240'.</b>

WHEN OTHERS.

ENDCASE.

ENDMODULE. " USER_COMMAND_9000 INPUT

*****************************************************************************************

<b></b> My question is "when case is OK" then I need to display a subscreen in the same normal screen 9000 as we do in selection screen in a normal report.

Wat needs to be done here .

pls do suggest me. Good answers are appreciated and rewarded.

regards

Mac

3 REPLIES 3
Read only

Former Member
0 Likes
575

Hi Mac,

To get the subscreen in the same screen you have to define a subscreen area in the normal screeen when you cerate the normal screen..

then use in PBO/PAI

call subscreen <area> including <prog> <dynpro>

hope it helps

Read only

Former Member
0 Likes
575

Hi Mac

You have to write the " CALL SUBSCREEN" statement both in pbo and pai,

the call subscreen statement should be in flow logic .

so write that statement(in bold) in pai.

do it dynamically by assigning a number and changing it using a dynamic variable.

hope this helps u.

here is an example :

REPORT demo_dynpro_tabstrip_server.

CONTROLS mytabstrip TYPE TABSTRIP.

DATA: ok_code TYPE sy-ucomm,

save_ok TYPE sy-ucomm.

DATA number TYPE sy-dynnr.

mytabstrip-activetab = 'PUSH2'.

number = '0120'.

CALL SCREEN 100.

MODULE status_0100 OUTPUT.

SET PF-STATUS 'SCREEN_100'.

ENDMODULE.

MODULE cancel INPUT.

LEAVE PROGRAM.

ENDMODULE.

MODULE user_command INPUT.

save_ok = ok_code.

CLEAR ok_code.

IF save_ok = 'OK'.

MESSAGE i888(sabapdocu) WITH 'MYTABSTRIP-ACTIVETAB ='

mytabstrip-activetab.

ELSE.

mytabstrip-activetab = save_ok.

CASE save_ok.

WHEN 'PUSH1'.

number = '0110'.

WHEN 'PUSH2'.

number = '0120'.

WHEN 'PUSH3'.

number = '0130'.

ENDCASE.

ENDIF.

ENDMODULE.

  • flow logic of the screen 100

PROCESS BEFORE OUTPUT.

MODULE STATUS_0100.

CALL SUBSCREEN SUB INCLUDING SY-REPID NUMBER.

PROCESS AFTER INPUT.

MODULE CANCEL AT EXIT-COMMAND.

CALL SUBSCREEN SUB.

MODULE USER_COMMAND.

  • flow logic of the screen 110

PROCESS BEFORE OUTPUT.

PROCESS AFTER INPUT.

  • flow logic of the screen 120

PROCESS BEFORE OUTPUT.

PROCESS AFTER INPUT.

  • flow logic of the screen 130

PROCESS BEFORE OUTPUT.

PROCESS AFTER INPUT.

Regards,

Prasanth

  • Reward all helpful replies

Read only

Former Member
0 Likes
575

HI MAC,

CAHNGE UR CODE LIKE THIS.

SURELY IT WILL WORK.

PROCESS BEFORE OUTPUT.

MODULE STATUS_9000.

CALL SUBSCREEN subscreen_9220 INCLUDING sy-repid scrno.

PROCESS AFTER INPUT.

CALL SUBSCREEN SUBA.

MODULE USER_COMMAND_9000.

***********************************************************************************************

  • Inside MODULE user_command_9000 INPUT.

DATA: ok_code TYPE sy-ucomm.

DATA:SCRNO(4) TYPE N VALUE 9220.

CLEAR ok_code.

ok_code = sy-ucomm.

CASE ok_code.

WHEN 'CANCEL'.

LEAVE PROGRAM.

WHEN 'ENTER'.

IF rb_hdb_code EQ 'X'

OR rb_landed_code EQ 'X'

OR rb_hawker_code EQ 'X'.

CALL SCREEN 9221.

ENDIF.

IF rb_trade_code EQ 'X'.

select OPERAND from TE221

into table t_tt221

where OPTYP eq 'TQUANT'.

CALL SCREEN 9222.

ENDIF.

IF rb_non_standard_code = 'X'.

PERFORM GET_DATA.

CALL SCREEN 9223.

ENDIF.

WHEN 'OK'.

SCRNO = 9240.

WHEN OTHERS.

ENDCASE.

ENDMODULE. " USER_COMMAND_9000 INPUT

REGARDS,

BHARAT.