REPORT ZNADAR_TABSTIPEMULATOR.
*------------------------------------ Definicin de las pestanyas
CONSTANTS: VARTEX(3) VALUE 'TEX'.
SELECTION-SCREEN PUSHBUTTON 01(10) TEX001 USER-COMMAND K001.
SELECTION-SCREEN PUSHBUTTON 11(10) TEX002 USER-COMMAND K002.
SELECTION-SCREEN PUSHBUTTON 21(10) TEX003 USER-COMMAND K003.
SELECTION-SCREEN PUSHBUTTON 31(10) TEX004 USER-COMMAND K004.
SELECTION-SCREEN PUSHBUTTON 41(10) TEX005 USER-COMMAND K005.
*------------------------------------ Definicin de la subpantallas
DATA: BEGIN OF ITAB OCCURS 0,
BLOQ(3) TYPE N.
INCLUDE STRUCTURE SCREEN.
DATA: END OF ITAB.
DATA: P_ACTUAL LIKE ITAB-BLOQ.
*------------------------------------ Pestanya 001
*------------------------------------ Los campos de dentro son ejemplos
SELECTION-SCREEN BEGIN OF BLOCK B001 WITH FRAME TITLE T001.
PARAMETERS: KMPO1(40).
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS: FECHA FOR ITAB-NAME.
SELECTION-SCREEN END OF BLOCK B001.
*------------------------------------ Pestanya 002
SELECTION-SCREEN BEGIN OF BLOCK B002 WITH FRAME TITLE T002.
PARAMETERS: KMPO2 LIKE SY-DATUM.
SELECTION-SCREEN END OF BLOCK B002.
*------------------------------------ Pestanya 003
SELECTION-SCREEN BEGIN OF BLOCK B003 WITH FRAME TITLE T003.
SELECTION-SCREEN COMMENT 10(60) COME1.
SELECTION-SCREEN END OF BLOCK B003.
*------------------------------------ Pestanya 004
SELECTION-SCREEN BEGIN OF BLOCK B004 WITH FRAME TITLE T004.
SELECTION-SCREEN COMMENT 10(60) COME2.
SELECTION-SCREEN END OF BLOCK B004.
*------------------------------------ Pestanya 005
SELECTION-SCREEN BEGIN OF BLOCK B005 WITH FRAME TITLE T005.
SELECTION-SCREEN COMMENT 10(60) COME3.
SELECTION-SCREEN END OF BLOCK B005.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
READ TABLE ITAB WITH KEY NAME = SCREEN-NAME.
CHECK SY-SUBRC EQ '0'.
MOVE-CORRESPONDING ITAB TO SCREEN.
IF P_ACTUAL NE ITAB-BLOQ.
SCREEN-INVISIBLE = '1'.
SCREEN-INPUT = SCREEN-REQUIRED = '0'.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
AT SELECTION-SCREEN.
FIELD-SYMBOLS: <F>.
DATA: AUX(6).
*------------------------------------ Bucle de pestanyas
CASE SY-UCOMM+0(1).
WHEN 'K'. LOOP AT SCREEN.
CHECK SCREEN-NAME+0(3) = VARTEX.
ASSIGN (SCREEN-NAME) TO <F>.
IF SCREEN-NAME+3(3) = SY-UCOMM+1(3).
TRANSLATE <F> TO UPPER CASE.
ELSE.
TRANSLATE <F> TO LOWER CASE.
ENDIF.
ENDLOOP.
P_ACTUAL = SY-UCOMM+1(3).
ENDCASE.
INITIALIZATION.
*------------------------------------ Texto de las pestanyas
TEX001 = T001 = 'CELL 001'.
TEX002 = T002 = 'cell 002'.
TEX003 = T003 = 'cell 003'.
TEX004 = T004 = 'cell 004'.
TEX005 = T005 = 'cell 005'.
* Ini ------------------------------- Slo como ejemplo.
COME1 = '*** Opcin no disponible, gracias por intentarlo.'.
COME2 = COME3 = COME1.
* Fin ------------------------------- Slo como ejemplo.
*------------------------------------ Buscamos los campos por bloques
DATA: CX LIKE ITAB-BLOQ,
CR(1).
CX = '000'. CLEAR CR.
LOOP AT SCREEN.
CHECK SCREEN-NAME+0(5) NE '%_10N'.
IF SCREEN-NAME+0(5) = '%B%_F' OR
( SCREEN-NAME+0(1) = 'T' AND
SCREEN-NAME+1(3) CO '0987654321' ).
CR = 'X'.
ADD 1 TO CX.
ENDIF.
CHECK CR = 'X'.
ITAB-BLOQ = CX.
MOVE-CORRESPONDING SCREEN TO ITAB.
APPEND ITAB.
ENDLOOP.
P_ACTUAL = '001'.