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

TABBED BLOCK

Former Member
0 Likes
910

I define several blocks in my report . One of them is a tabbed block with two subscreens .Other block has several radio buttons.

I try to hide the tabbed block completely when i mark one radio button ,but i can't get it.

I use "LOOP AT SCREEN. ENDLOOP."

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
744

Hi

when you create the TAB, the name of screen element is the label you assign by statament SELECTION-SCREEN TAB.

So you can hide that element, try this code it should solve your problem.

TABLES SSCRFIELDS.

PARAMETERS: P1 RADIOBUTTON GROUP R1 DEFAULT 'X' USER-COMMAND HIDE,

P2 RADIOBUTTON GROUP R1.

SELECTION-SCREEN BEGIN OF TABBED BLOCK TABB1 FOR 14 LINES.

SELECTION-SCREEN TAB (15) TABS1 USER-COMMAND UCOMM1

DEFAULT SCREEN 100.

SELECTION-SCREEN TAB (15) TABS2 USER-COMMAND UCOMM2

DEFAULT SCREEN 200.

SELECTION-SCREEN TAB (15) TABS3 USER-COMMAND UCOMM3

DEFAULT SCREEN 300.

SELECTION-SCREEN END OF BLOCK TABB1.

SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.

PARAMETERS: P_BUKRS LIKE T001-BUKRS.

SELECTION-SCREEN END OF SCREEN 100.

SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.

PARAMETERS: P_GJAHR LIKE BKPF-GJAHR.

SELECTION-SCREEN END OF SCREEN 200.

SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.

PARAMETERS: P_BELNR LIKE BKPF-BELNR.

SELECTION-SCREEN END OF SCREEN 300.

INITIALIZATION.

AT SELECTION-SCREEN.

CASE SSCRFIELDS-UCOMM.

WHEN 'UCOMM1'.

TABB1-PROG = SY-REPID.

TABB1-DYNNR = 100.

TABB1-ACTIVETAB = 'TABS1'.

WHEN 'UCOMM2'.

TABB1-PROG = SY-REPID.

TABB1-DYNNR = 200.

TABB1-ACTIVETAB = 'TABS2'.

WHEN 'UCOMM3'.

TABB1-PROG = SY-REPID.

TABB1-DYNNR = 300.

TABB1-ACTIVETAB = 'TABS3'.

ENDCASE.

AT SELECTION-SCREEN OUTPUT.

DATA NAME(5).

CASE 'X'.

WHEN P1. NAME = 'TABS2'.

WHEN P2. NAME = 'TABS3'.

ENDCASE.

LOOP AT SCREEN.

IF SCREEN-NAME = NAME.

SCREEN-ACTIVE = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

Max

5 REPLIES 5
Read only

Former Member
0 Likes
745

Hi

when you create the TAB, the name of screen element is the label you assign by statament SELECTION-SCREEN TAB.

So you can hide that element, try this code it should solve your problem.

TABLES SSCRFIELDS.

PARAMETERS: P1 RADIOBUTTON GROUP R1 DEFAULT 'X' USER-COMMAND HIDE,

P2 RADIOBUTTON GROUP R1.

SELECTION-SCREEN BEGIN OF TABBED BLOCK TABB1 FOR 14 LINES.

SELECTION-SCREEN TAB (15) TABS1 USER-COMMAND UCOMM1

DEFAULT SCREEN 100.

SELECTION-SCREEN TAB (15) TABS2 USER-COMMAND UCOMM2

DEFAULT SCREEN 200.

SELECTION-SCREEN TAB (15) TABS3 USER-COMMAND UCOMM3

DEFAULT SCREEN 300.

SELECTION-SCREEN END OF BLOCK TABB1.

SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.

PARAMETERS: P_BUKRS LIKE T001-BUKRS.

SELECTION-SCREEN END OF SCREEN 100.

SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.

PARAMETERS: P_GJAHR LIKE BKPF-GJAHR.

SELECTION-SCREEN END OF SCREEN 200.

SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.

PARAMETERS: P_BELNR LIKE BKPF-BELNR.

SELECTION-SCREEN END OF SCREEN 300.

INITIALIZATION.

AT SELECTION-SCREEN.

CASE SSCRFIELDS-UCOMM.

WHEN 'UCOMM1'.

TABB1-PROG = SY-REPID.

TABB1-DYNNR = 100.

TABB1-ACTIVETAB = 'TABS1'.

WHEN 'UCOMM2'.

TABB1-PROG = SY-REPID.

TABB1-DYNNR = 200.

TABB1-ACTIVETAB = 'TABS2'.

WHEN 'UCOMM3'.

TABB1-PROG = SY-REPID.

TABB1-DYNNR = 300.

TABB1-ACTIVETAB = 'TABS3'.

ENDCASE.

AT SELECTION-SCREEN OUTPUT.

DATA NAME(5).

CASE 'X'.

WHEN P1. NAME = 'TABS2'.

WHEN P2. NAME = 'TABS3'.

ENDCASE.

LOOP AT SCREEN.

IF SCREEN-NAME = NAME.

SCREEN-ACTIVE = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

Max

Read only

0 Likes
744

I don't want to change the subscreen in the tabstrip.

Remember that i am talking about a report ,i don't use a module pool

I have three blocks.

The first one contain code like this one :

PARAMETERS: P1 RADIOBUTTON GROUP R1 DEFAULT 'X' USER-COMMAND HIDE,

P2 RADIOBUTTON GROUP R1.

The second one contain code like this one :

PARAMETERS: P_GJAHR LIKE BKPF-GJAHR.

The thrid and the last one contain code like this one :

SELECTION-SCREEN BEGIN OF TABBED BLOCK TABB1 FOR 14 LINES.

SELECTION-SCREEN TAB (15) TABS1 USER-COMMAND UCOMM1

DEFAULT SCREEN 100.

SELECTION-SCREEN TAB (15) TABS2 USER-COMMAND UCOMM2

DEFAULT SCREEN 200.

SELECTION-SCREEN TAB (15) TABS3 USER-COMMAND UCOMM3

DEFAULT SCREEN 300.

SELECTION-SCREEN END OF BLOCK TABB1.

SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.

PARAMETERS: P_BUKRS LIKE T001-BUKRS.

SELECTION-SCREEN END OF SCREEN 100.

SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.

PARAMETERS: P_GJAHR LIKE BKPF-GJAHR.

SELECTION-SCREEN END OF SCREEN 200.

SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.

PARAMETERS: P_BELNR LIKE BKPF-BELNR.

SELECTION-SCREEN END OF SCREEN 300.

When i click in the first and the second radio-button i want to hide the block with the tabstrip and the subscreens .If i click the third and the fourth radio button i want to show the block the tabstrip and the subscreen active.

Read only

0 Likes
744

Hi

You can't do it in selection-screen, because you can't hide the subarea, but only the tabs.

The only way to hide a subarea is to load an empty subscreen in it, but it's not possible to do that in selection-screen.

You should manage your selection screen in a dynpro, so module pool.

Max

Read only

former_member186741
Active Contributor
0 Likes
744

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

CHECK SCREEN-GROUP1 = 'XYZ'.

SCREEN-output = '0'.

MODIFY SCREEN.

ENDLOOP.

Read only

Former Member
0 Likes
744

Add the option 'MODIF ID ABC' with your BEGIN OF TABBED BLOCK as below

SELECTION-SCREEN BEGIN OF TABBED BLOCK TABB1 FOR 14 LINES MODIF ID ABC.

SELECTION-SCREEN TAB (15) TABS1 USER-COMMAND UCOMM1

DEFAULT SCREEN 100 MODIF ID ABC.

SELECTION-SCREEN TAB (15) TABS2 USER-COMMAND UCOMM2

DEFAULT SCREEN 200 MODIF ID ABC.

SELECTION-SCREEN TAB (15) TABS3 USER-COMMAND UCOMM3

DEFAULT SCREEN 300 MODIF ID ABC.

SELECTION-SCREEN END OF BLOCK TABB1 MODIF ID ABC.

Then in your LOOP AT SCREEN, you can set SCREEN-ACTIVE = 0 when SCREEN-NAME = 'ABC'.