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 navigation

Former Member
0 Likes
511

HI

I am trying to create a tabbed block with 3tabs(dispaly, delete, insert) with their sub screen areas.

when i am clicking on tab2(delete), tab1(display) fields are displaying instead of tab2(delete).

SELECTION-SCREEN : BEGIN OF TABBED BLOCK CALENDER FOR 15 LINES,

TAB (20) BUTTON1 USER-COMMAND DISPLAY DEFAULT SCREEN 500,

TAB (20) BUTTON2 USER-COMMAND DELETE DEFAULT SCREEN 600,

TAB (20) BUTTON3 USER-COMMAND INSERT DEFAULT SCREEN 700.

SELECTION-SCREEN END OF BLOCK CALENDER.

INITIALIZATION.

BUTTON1 = 'DISPLAY'.

BUTTON2 = 'DELETE'.

BUTTON3 = 'INSERT'.

CALENDER-PROG = SY-REPID.

CALENDER-DYNNR = 500.

*CALENDER-ACTIVETAB = 'BUTTON1'.

AT SELECTION-SCREEN.

CASE SY-DYNNR.

WHEN 1000.

WHEN 500.

CLEAR : CALENDER-DYNNR, CALENDER-ACTIVETAB.

CALENDER-DYNNR = 500.

CALENDER-ACTIVETAB = 'BUTTON1'.

WHEN 600.

CLEAR : CALENDER-DYNNR, CALENDER-ACTIVETAB.

CALENDER-DYNNR = 600.

CALENDER-ACTIVETAB = 'BUTTON2'.

WHEN 700.

CLEAR : CALENDER-DYNNR, CALENDER-ACTIVETAB.

CALENDER-DYNNR = 700.

CALENDER-ACTIVETAB = 'BUTTON3'.

ENDCASE.

I want to display correct subscreen area.

Please provide me solution.

3 REPLIES 3
Read only

Former Member
0 Likes
471

Hi,

You should work that out like:


SELECTION-SCREEN BEGIN OF SCREEN 500 AS SUBSCREEN.
PARAMETERS: p1 TYPE c LENGTH 10,
             p2 TYPE c LENGTH 10,
             p3 TYPE c LENGTH 10.
 SELECTION-SCREEN END OF SCREEN 500.

 SELECTION-SCREEN BEGIN OF SCREEN 600 AS SUBSCREEN.
PARAMETERS: q1 TYPE c LENGTH 10,
             q2 TYPE c LENGTH 10,
             q3 TYPE c LENGTH 10.
 SELECTION-SCREEN END OF SCREEN 600.

 SELECTION-SCREEN BEGIN OF SCREEN 700 AS SUBSCREEN.
PARAMETERS: r1 TYPE c LENGTH 10,
             r2 TYPE c LENGTH 10,
             r3 TYPE c LENGTH 10.
 SELECTION-SCREEN END OF SCREEN 700.

 SELECTION-SCREEN : BEGIN OF TABBED BLOCK calender FOR 15 LINES,
 TAB (20) button1 USER-COMMAND display, "DEFAULT SCREEN 500,
TAB (20) button2 USER-COMMAND delete,  "DEFAULT SCREEN 600,
TAB (20) button3 USER-COMMAND insert.  "DEFAULT SCREEN 700.
SELECTION-SCREEN END OF BLOCK calender.

INITIALIZATION.
   button1 = 'DISPLAY'.
   button2 = 'DELETE'.
   button3 = 'INSERT'.
   calender-prog = sy-repid.
   calender-dynnr = 500.
   calender-activetab = 'BUTTON1'.

AT SELECTION-SCREEN.
   CASE sy-dynnr.
     WHEN 1000.
       CASE sy-ucomm.
         WHEN 'DISPLAY'.
           calender-dynnr = 500.
         WHEN 'DELETE'.
           calender-dynnr = 600.
         WHEN 'INSERT'.
           calender-dynnr = 700.

         WHEN OTHERS.
           ...
       ENDCASE.

   ENDCASE.

Kr,

Manu.

Read only

Former Member
0 Likes
471

Hi ,

You can go with below code.

CASE sy-ucomm.

WHEN 'DISPLAY'.

CLEAR : calender-dynnr, calender-activetab.

calender-dynnr = 500.

calender-activetab = 'BUTTON1'.

WHEN 'DELETE'.

CLEAR : calender-dynnr, calender-activetab.

calender-dynnr = 600.

calender-activetab = 'BUTTON2'.

WHEN 'INSERT'.

CLEAR : calender-dynnr, calender-activetab.

calender-dynnr = 700.

calender-activetab = 'BUTTON3'.

ENDCASE.

it will work fine.

Read only

Former Member
0 Likes
471

BY USING THE ABOVE CODE ONLY DISPLAY CODE IS EXECUTING , REMANINGN CODE UNDER ADOR DELETE OR MODIFY IN NOT EXECUTING.