12-19-2006 9:58 AM
hi gurus ,
can ne1 plz tell me how can we hav dynamic tabs on the tabstrip control .
one of the way is to have max no of tabs n making them visible n invisible .
but wat the problem is dat the text on the tabs is also dynamic i don knw its value in advance .
if any1 knws how to do dis then plzzz reply asap . its urgent
pts wil b rewarded for sure ....
12-19-2006 2:18 PM
1. Create program in SE38 type module pool and Activated
2. Go to SE51 give the program name and screen number then Layout Editor in drags tabstrip with wizard.
3. Automacaly code is generated.
4. Subscreen(101) add the two Check Boxs (CH1,CH2).
5. Changed the Tab1 properties on Program in Click check box <b>OUTPUT Field only</b>
then tab text also you give Dynamic
PROGRAM ZTAB1 .
FUNCTION CODES FOR TABSTRIP 'TAB2'
CONSTANTS: BEGIN OF C_TAB2,
TAB1 LIKE SY-UCOMM VALUE 'TAB2_FC1',
TAB2 LIKE SY-UCOMM VALUE 'TAB2_FC2',
TAB3 LIKE SY-UCOMM VALUE 'TAB2_FC3',
END OF C_TAB2.
DATA FOR TABSTRIP 'TAB2'
CONTROLS: TAB2 TYPE TABSTRIP.
DATA: BEGIN OF G_TAB2,
SUBSCREEN LIKE SY-DYNNR,
PROG LIKE SY-REPID VALUE 'ZTAB1',
PRESSED_TAB LIKE SY-UCOMM VALUE C_TAB2-TAB1,
END OF G_TAB2.
DATA: OK_CODE LIKE SY-UCOMM.
DATA:A(1),B(1).
OUTPUT MODULE FOR TABSTRIP 'TAB2': SETS ACTIVE TAB
MODULE TAB2_ACTIVE_TAB_SET OUTPUT.
TAB2-ACTIVETAB = G_TAB2-PRESSED_TAB.
CASE G_TAB2-PRESSED_TAB.
WHEN C_TAB2-TAB1.
G_TAB2-SUBSCREEN = '0101'.
WHEN C_TAB2-TAB2.
G_TAB2-SUBSCREEN = '0102'.
WHEN C_TAB2-TAB3.
G_TAB2-SUBSCREEN = '0103'.
WHEN OTHERS.
DO NOTHING
ENDCASE.
ENDMODULE.
INPUT MODULE FOR TABSTRIP 'TAB2': GETS ACTIVE TAB
MODULE TAB2_ACTIVE_TAB_GET INPUT.
CASE OK_CODE.
WHEN C_TAB2-TAB1.
G_TAB2-PRESSED_TAB = C_TAB2-TAB1.
WHEN C_TAB2-TAB2.
G_TAB2-PRESSED_TAB = C_TAB2-TAB2.
WHEN C_TAB2-TAB3.
G_TAB2-PRESSED_TAB = C_TAB2-TAB3.
WHEN OTHERS.
DO NOTHING
ENDCASE.
ENDMODULE.
<b>MAIN SCREEN 100</b>
MODULE STATUS_0100 OUTPUT.
LOOP AT SCREEN.
IF SCREEN-NAME = 'TAB2_TAB2'.
IF A = 1.
SCREEN-ACTIVE = 1.
ELSEIF A = 0.
SCREEN-ACTIVE = 0.
ENDIF.
ENDIF.
IF SCREEN-NAME = 'TAB2_TAB3'.
IF B = 1.
SCREEN-ACTIVE = 1.
ELSEIF B = 0.
SCREEN-ACTIVE = 0.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE. " STATUS_0100 OUTPUT
<b>* SUBSCREEN 103</b>
MODULE USER_COMMAND_0110 INPUT.
CASE OK_CODE.
WHEN 'CH1'.
IF A = 0.
A = 1.
ELSEIF A = 1.
A = 0.
ENDIF.
WHEN 'CH2'.
IF B = 0.
B = 1.
ELSEIF B = 1.
B = 0.
ENDIF.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0110 INPUT
Message was edited by:
Durga Vinta
12-19-2006 2:18 PM
1. Create program in SE38 type module pool and Activated
2. Go to SE51 give the program name and screen number then Layout Editor in drags tabstrip with wizard.
3. Automacaly code is generated.
4. Subscreen(101) add the two Check Boxs (CH1,CH2).
5. Changed the Tab1 properties on Program in Click check box <b>OUTPUT Field only</b>
then tab text also you give Dynamic
PROGRAM ZTAB1 .
FUNCTION CODES FOR TABSTRIP 'TAB2'
CONSTANTS: BEGIN OF C_TAB2,
TAB1 LIKE SY-UCOMM VALUE 'TAB2_FC1',
TAB2 LIKE SY-UCOMM VALUE 'TAB2_FC2',
TAB3 LIKE SY-UCOMM VALUE 'TAB2_FC3',
END OF C_TAB2.
DATA FOR TABSTRIP 'TAB2'
CONTROLS: TAB2 TYPE TABSTRIP.
DATA: BEGIN OF G_TAB2,
SUBSCREEN LIKE SY-DYNNR,
PROG LIKE SY-REPID VALUE 'ZTAB1',
PRESSED_TAB LIKE SY-UCOMM VALUE C_TAB2-TAB1,
END OF G_TAB2.
DATA: OK_CODE LIKE SY-UCOMM.
DATA:A(1),B(1).
OUTPUT MODULE FOR TABSTRIP 'TAB2': SETS ACTIVE TAB
MODULE TAB2_ACTIVE_TAB_SET OUTPUT.
TAB2-ACTIVETAB = G_TAB2-PRESSED_TAB.
CASE G_TAB2-PRESSED_TAB.
WHEN C_TAB2-TAB1.
G_TAB2-SUBSCREEN = '0101'.
WHEN C_TAB2-TAB2.
G_TAB2-SUBSCREEN = '0102'.
WHEN C_TAB2-TAB3.
G_TAB2-SUBSCREEN = '0103'.
WHEN OTHERS.
DO NOTHING
ENDCASE.
ENDMODULE.
INPUT MODULE FOR TABSTRIP 'TAB2': GETS ACTIVE TAB
MODULE TAB2_ACTIVE_TAB_GET INPUT.
CASE OK_CODE.
WHEN C_TAB2-TAB1.
G_TAB2-PRESSED_TAB = C_TAB2-TAB1.
WHEN C_TAB2-TAB2.
G_TAB2-PRESSED_TAB = C_TAB2-TAB2.
WHEN C_TAB2-TAB3.
G_TAB2-PRESSED_TAB = C_TAB2-TAB3.
WHEN OTHERS.
DO NOTHING
ENDCASE.
ENDMODULE.
<b>MAIN SCREEN 100</b>
MODULE STATUS_0100 OUTPUT.
LOOP AT SCREEN.
IF SCREEN-NAME = 'TAB2_TAB2'.
IF A = 1.
SCREEN-ACTIVE = 1.
ELSEIF A = 0.
SCREEN-ACTIVE = 0.
ENDIF.
ENDIF.
IF SCREEN-NAME = 'TAB2_TAB3'.
IF B = 1.
SCREEN-ACTIVE = 1.
ELSEIF B = 0.
SCREEN-ACTIVE = 0.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE. " STATUS_0100 OUTPUT
<b>* SUBSCREEN 103</b>
MODULE USER_COMMAND_0110 INPUT.
CASE OK_CODE.
WHEN 'CH1'.
IF A = 0.
A = 1.
ELSEIF A = 1.
A = 0.
ENDIF.
WHEN 'CH2'.
IF B = 0.
B = 1.
ELSEIF B = 1.
B = 0.
ENDIF.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0110 INPUT
Message was edited by:
Durga Vinta