‎2006 Jan 15 11:16 PM
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."
‎2006 Jan 15 11:43 PM
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
‎2006 Jan 15 11:43 PM
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
‎2006 Jan 16 9:17 PM
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.
‎2006 Jan 16 11:07 PM
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
‎2006 Jan 15 11:44 PM
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CHECK SCREEN-GROUP1 = 'XYZ'.
SCREEN-output = '0'.
MODIFY SCREEN.
ENDLOOP.
‎2006 Jan 17 1:13 AM
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'.