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

help on selection screen

Former Member
0 Likes
1,180

Hi all,

I have a requirement to create two reports.For these reports logic, processing everything is same except selection screen parameters(different).

So what i want to do is in selection screen appln tool bar create two buttons one for each report say report1 and report2.

if i press report1 then i should get 1st report selection screen parameters.and if i press report2 i should get 2nd report selection parameters and process according to the selection.

iam thinking of using SSCRFIELDS.

Please kindly help me with the logic how to go abt it.

Thanks and regards

Chandu.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,149

hI

THERE IS A MINOR CHANGE

&----


*& Report ZTSAMP

*&

&----


*&

*&

&----


REPORT ZTSAMP.

TABLES sscrfields.

DATA flag.

PARAMETERS test.

SELECTION-SCREEN FUNCTION KEY 1.

SELECTION-SCREEN FUNCTION KEY 2.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.

PARAMETERS: p1(10) TYPE c MODIF ID BL1,

p2(10) TYPE c MODIF ID BL1 ,

p3(10) TYPE c MODIF ID BL1.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.

PARAMETERS: p4(10) TYPE c MODIF ID bl2,

p5(10) TYPE c MODIF ID bl2,

p6(10) TYPE c MODIF ID bl2.

SELECTION-SCREEN END OF BLOCK b2.

INITIALIZATION.

sscrfields-functxt_01 = 'REPORT1'.

sscrfields-functxt_02 = 'REPORT2'.

LOOP AT SCREEN.

SCREEN-ACTIVE = '0'.

MODIFY SCREEN.

ENDLOOP.

AT SELECTION-SCREEN.

IF sscrfields-ucomm = 'FC01'.

flag = '1'.

ELSEIF sscrfields-ucomm = 'FC02'.

flag = '2'.

ENDIF.

AT SELECTION-SCREEN OUTPUT.

IF FLAG = '1'.

LOOP AT SCREEN.

IF screen-group1 = 'BL1'.

screen-active = '0'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSEIF FLAG = '2'.

LOOP AT SCREEN.

IF screen-group1 = 'BL2'.

screen-active = '0'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

START-OF-SELECTION.

Message was edited by: Harikishore Sreenivasulu

11 REPLIES 11
Read only

Former Member
0 Likes
1,149

Have a selection screen with checkbox or radio button which toggles between the two report.

Eg:

PARAMETERS show_all AS CHECKBOX USER-COMMAND flag.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.

PARAMETERS: p1(10) TYPE c,

p2(10) TYPE c,

p3(10) TYPE c.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.

PARAMETERS: p4(10) TYPE c MODIF ID bl2,

p5(10) TYPE c MODIF ID bl2,

p6(10) TYPE c MODIF ID bl4.

SELECTION-SCREEN END OF BLOCK b2.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF show_all <> 'X' AND

screen-group1 = 'BL2'.

screen-active = '0'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

LOOP AT SCREEN.

IF screen-group1 = 'BL2'.

screen-intensified = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

Read only

Former Member
0 Likes
1,149

use the following coomand..

SELECTION-SCREEN PUSHBUTTON [/][pos](len) button_text

USER-COMMAND fcode [MODIF ID modid] .

Loop At screen .

  • check for modif id and modify the screen.

Read only

Former Member
0 Likes
1,149

hI

TABLES sscrfields.

DATA flag.

PARAMETERS test.

SELECTION-SCREEN FUNCTION KEY 1.

SELECTION-SCREEN FUNCTION KEY 2.

INITIALIZATION.

sscrfields-functxt_01 = 'REPORT1'.

sscrfields-functxt_02 = 'REPORT2'.

AT SELECTION-SCREEN.

IF sscrfields-ucomm = 'FC01'.

flag = '1'.

ELSEIF sscrfields-ucomm = 'FC02'.

flag = '2'.

ENDIF.

START-OF-SELECTION.

IF flag = '1'.

<CODE>

ELSEIF flag = '2'.

<CODE>

ENDIF.

Read only

0 Likes
1,149

Hi Harikishore,

Thanks for ur reply.

As i said my requirement is when i press appln tool bar buttons i should get the selection screen parameters not the start-of-selection event so that user can enter values and process according to the selection.

i hope it clarifies.

Message was edited by: Sai Chand Pullepu

Read only

Former Member
0 Likes
1,149

Hi Sai,

You can also use tab page in selection screen instead of push buttons , to give a more user friendly look.

Tab page logic works the same way as push button only that the presentation is different.

Though coding a tabpage in selection screen is a bit complicated but u can find the ready made code in SAP help guide.

regards,

Sumeet Mishra

Read only

Former Member
0 Likes
1,149

Hi

Then you can include the parameters in the

At selection-screen output

&----


*& Report ZTSAMP

*&

&----


*&

*&

&----


REPORT ZTSAMP.

*SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-p02.

*PARAMETERS: p_logsys LIKE tbdls-logsys OBLIGATORY,

*p_lang TYPE laiso,

*p_mode AS CHECKBOX DEFAULT 'X' USER-COMMAND flag.

*SELECTION-SCREEN END OF BLOCK block2.

*

*SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-p01.

*PARAMETERS:

*p_prtid TYPE vbap-vbeln MODIF ID bl1,

*p_bckid TYPE vbap-posnr MODIF ID bl1.

*SELECTION-SCREEN END OF BLOCK block1.

*

*at selection-screen.

*

*LOOP AT SCREEN.

*IF p_mode eq 'X' AND screen-group1 = 'BL1'.

*screen-active = '0'.

*ENDIF.

*MODIFY SCREEN.

*ENDLOOP.

*

*LOOP AT SCREEN.

*IF screen-group1 = 'BL1'.

*screen-intensified = '1'.

*MODIFY SCREEN.

*ENDIF.

*ENDLOOP.

*

*

**start-of-selection.

*data: yea(4) type n.

*

*CALL FUNCTION 'GET_CURRENT_YEAR'

  • EXPORTING

    • BUKRS = ' '

  • DATE = sy-datum

    • IMPORTING

    • CURRM =

  • CURRY = yea

    • PREVM =

    • PREVY =

  • .

*write:/ yea.

TABLES sscrfields.

DATA flag.

PARAMETERS test.

SELECTION-SCREEN FUNCTION KEY 1.

SELECTION-SCREEN FUNCTION KEY 2.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.

PARAMETERS: p1(10) TYPE c MODIF ID BL1,

p2(10) TYPE c MODIF ID BL1 ,

p3(10) TYPE c MODIF ID BL1.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.

PARAMETERS: p4(10) TYPE c MODIF ID bl2,

p5(10) TYPE c MODIF ID bl2,

p6(10) TYPE c MODIF ID bl2.

SELECTION-SCREEN END OF BLOCK b2.

INITIALIZATION.

sscrfields-functxt_01 = 'REPORT1'.

sscrfields-functxt_02 = 'REPORT2'.

AT SELECTION-SCREEN.

IF sscrfields-ucomm = 'FC01'.

flag = '1'.

ELSEIF sscrfields-ucomm = 'FC02'.

flag = '2'.

ENDIF.

AT SELECTION-SCREEN OUTPUT.

IF FLAG = '1'.

LOOP AT SCREEN.

IF screen-group1 = 'BL1'.

screen-active = '0'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSEIF FLAG = '2'.

LOOP AT SCREEN.

IF screen-group1 = 'BL2'.

screen-active = '0'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

START-OF-SELECTION.

  • IF flag = '1'.

*<CODE>

  • ELSEIF flag = '2'.

  • <CODE>

*

Message was edited by: Harikishore Sreenivasulu

Read only

Former Member
0 Likes
1,149

hi,

You can use AT SELECTION SCREEN OUTPUT event to decide which frame u want to display.

regards,

Sumeet Mishra

Read only

Former Member
0 Likes
1,150

hI

THERE IS A MINOR CHANGE

&----


*& Report ZTSAMP

*&

&----


*&

*&

&----


REPORT ZTSAMP.

TABLES sscrfields.

DATA flag.

PARAMETERS test.

SELECTION-SCREEN FUNCTION KEY 1.

SELECTION-SCREEN FUNCTION KEY 2.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.

PARAMETERS: p1(10) TYPE c MODIF ID BL1,

p2(10) TYPE c MODIF ID BL1 ,

p3(10) TYPE c MODIF ID BL1.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.

PARAMETERS: p4(10) TYPE c MODIF ID bl2,

p5(10) TYPE c MODIF ID bl2,

p6(10) TYPE c MODIF ID bl2.

SELECTION-SCREEN END OF BLOCK b2.

INITIALIZATION.

sscrfields-functxt_01 = 'REPORT1'.

sscrfields-functxt_02 = 'REPORT2'.

LOOP AT SCREEN.

SCREEN-ACTIVE = '0'.

MODIFY SCREEN.

ENDLOOP.

AT SELECTION-SCREEN.

IF sscrfields-ucomm = 'FC01'.

flag = '1'.

ELSEIF sscrfields-ucomm = 'FC02'.

flag = '2'.

ENDIF.

AT SELECTION-SCREEN OUTPUT.

IF FLAG = '1'.

LOOP AT SCREEN.

IF screen-group1 = 'BL1'.

screen-active = '0'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSEIF FLAG = '2'.

LOOP AT SCREEN.

IF screen-group1 = 'BL2'.

screen-active = '0'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

START-OF-SELECTION.

Message was edited by: Harikishore Sreenivasulu

Read only

0 Likes
1,149

hi all,

Thanks alot for ur replies Iam doing now i will let u know abt it and i will assign points soon.

Read only

Former Member
0 Likes
1,149

hi sai

is it working??

!!!!!!!!!!reward if helpful!!!!!!!!!!!!

Read only

Former Member
0 Likes
1,149

i create a list with 2 push buttons .the push buttons are created having function code 'REPORT1' and 'REPORT2' by creating the pf-status using se41.below is the code.

REPORT ZTEM1.

set pf-status 'PF_SCREEN1000'.

write:'select one of the above '.

selection-screen:begin of screen 100.

parameters:name(20).

selection-screen end of screen 100.

selection-screen:begin of screen 200.

parameters:age(20).

selection-screen end of screen 200.

at user-command.

if sy-ucomm = 'REPORT1'.

call selection-screen 100.

endif.

if sy-ucomm = 'REPORT2'.

call selection-screen 200.

endif.

if sy-ucomm = 'BACK'.

leave to screen 0.

endif.