‎2011 Sep 28 12:12 PM
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.
‎2011 Sep 28 12:34 PM
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.
‎2011 Sep 28 12:53 PM
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.
‎2011 Oct 03 7:20 AM
BY USING THE ABOVE CODE ONLY DISPLAY CODE IS EXECUTING , REMANINGN CODE UNDER ADOR DELETE OR MODIFY IN NOT EXECUTING.