Application Development 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: 

dynamic addition of tabs to tabstrip

Former Member
0 Kudos

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 ....

1 ACCEPTED SOLUTION

Former Member
0 Kudos

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

1 REPLY 1

Former Member
0 Kudos

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