- REPORT ZTCEMULATOR.
- *---------------------------------------------- Tabla Interna del TC
- DATA: BEGIN OF ITAB OCCURS 0,
- DNI(10), "Slo pueden tener 3 posiciones
- NOM(40), "Slo pueden tener 3 posiciones
- END OF ITAB.
- SELECTION-SCREEN BEGIN OF BLOCK TABY WITH FRAME TITLE TIT001.
- *---------------------------------------------- Definicin del TC.
- SELECTION-SCREEN BEGIN OF LINE.
- PARAMETERS: KDNI_001(10) LOWER CASE.
- PARAMETERS: KNOM_001(40) LOWER CASE.
- SELECTION-SCREEN PUSHBUTTON 53(4) BOT001 USER-COMMAND BDOW.
- SELECTION-SCREEN END OF LINE.
- SELECTION-SCREEN BEGIN OF LINE.
- PARAMETERS: KDNI_002(10) LOWER CASE.
- PARAMETERS: KNOM_002(40) LOWER CASE.
- SELECTION-SCREEN PUSHBUTTON 53(4) BOT003 USER-COMMAND BSAV.
- SELECTION-SCREEN END OF LINE.
- SELECTION-SCREEN BEGIN OF LINE.
- PARAMETERS: KDNI_003(10) LOWER CASE.
- PARAMETERS: KNOM_003(40) LOWER CASE.
- SELECTION-SCREEN PUSHBUTTON 53(4) BOT002 USER-COMMAND BUP.
- SELECTION-SCREEN END OF LINE.
- SELECTION-SCREEN PUSHBUTTON /30(20) BOT004 USER-COMMAND BFIN.
- SELECTION-SCREEN END OF BLOCK TABY.
- *---------------------------------------------- Variables Totales
- DATA: LONG_TAB TYPE I,
- POINT_TAB TYPE I,
- LONG_PAN TYPE I VALUE 3.
- *---------------------------------------------- Inicializamos los campos
- INITIALIZATION.
- TIT001 = ' Table Control Emulator '.
- BOT001 = '@0I@'. " Icono Arriba: ICON_NEXT_VALUE @0I@
- BOT002 = '@0H@'. " Icono Abajo : ICON_PREVIOUS_VALUE @0H@
- BOT003 = '@2L@'. " Icono Grabar: ICON_SYSTEM_SAVE @2L@
- BOT004 = '@3Y@ Posicionar.....'.
- " Icono Grabar: ICON_POSITION @2L@
- INCLUDE <ICON>.
- *---------------------------------------------- Esto es para el ejemplo
- DATA: NLIN(3) TYPE N.
- TABLES: USR21, ADRP.
- SELECT * FROM USR21.
- SELECT SINGLE * FROM ADRP WHERE PERSNUMBER = USR21-PERSNUMBER.
- ITAB-DNI = USR21-BNAME.
- CONCATENATE ADRP-NAME_FIRST ADRP-NAME_LAST INTO ITAB-NOM
- SEPARATED BY ' '.
- CONDENSE ITAB-NOM.
- APPEND ITAB.
- ENDSELECT.
- SORT ITAB.
- POINT_TAB = 1.
- DESCRIBE TABLE ITAB LINES LONG_TAB.
- PERFORM PAINT_TAB USING ' '.
- *---------------------------------------------- Control de los Botones
- AT SELECTION-SCREEN.
- CASE SY-UCOMM.
- WHEN 'BUP'. ADD 1 TO POINT_TAB.
- WHEN 'BDOW'. SUBTRACT 1 FROM POINT_TAB.
- WHEN 'BSAV'. PERFORM PAINT_TAB USING 'G'.
- WHEN 'BFIN'. PERFORM SEEK_TAB.
- ENDCASE.
- AT SELECTION-SCREEN OUTPUT.
- PERFORM PAINT_TAB USING ' '.
- *---------------------------------------------- Rutinas
- FORM SEEK_TAB.
- DATA: VALO LIKE SVAL OCCURS 0 WITH HEADER LINE.
- * Ini ----------------------------------------- Solo para la emulacion
- VALO-TABNAME = 'USR01'.
- VALO-FIELDNAME = 'BNAME'.
- APPEND VALO.
- VALO-TABNAME = 'ADRP'.
- VALO-FIELDNAME = 'NAME_LAST'. APPEND VALO.
- * Fin ----------------------------------------- Solo para la emulacion
- CALL FUNCTION 'POPUP_GET_VALUES'
- EXPORTING
- * NO_VALUE_CHECK = ' '
- POPUP_TITLE = 'Posicionar en...'
- * START_COLUMN = '5'
- * START_ROW = '5'
- * IMPORTING
- * RETURNCODE =
- TABLES
- FIELDS = VALO
- EXCEPTIONS
- ERROR_IN_FIELDS = 1
- OTHERS = 2.
- DATA: FON(1).
- CLEAR FON.
- LOOP AT VALO.
- LOOP AT ITAB WHERE DNI CP VALO-VALUE OR NOM CP VALO-VALUE.
- CHECK NOT VALO-VALUE IS INITIAL.
- POINT_TAB = SY-TABIX.
- FON = 'X'.
- EXIT.
- ENDLOOP.
- IF SY-SUBRC = 0 AND FON = 'X'. EXIT. ENDIF.
- ENDLOOP.
- ENDFORM.
- FORM PAINT_TAB USING CAR.
- DATA: N_TAB(3) TYPE N,
- CAMPO(30),
- AX(3) TYPE N,
- DX(30),
- CX TYPE I.
- FIELD-SYMBOLS: <F>, <FS>.
- IF POINT_TAB <= 0.
- POINT_TAB = 1.
- ELSEIF POINT_TAB > LONG_TAB.
- POINT_TAB = LONG_TAB.
- ENDIF.
- CX = POINT_TAB + LONG_PAN - 1.
- IF CX > LONG_TAB. SUBTRACT 1 FROM POINT_TAB. ENDIF.
- N_TAB = POINT_TAB.
- DO LONG_PAN TIMES.
- READ TABLE ITAB INDEX N_TAB.
- CHECK SY-SUBRC EQ 0.
- AX = SY-INDEX.
- LOOP AT SCREEN.
- CHECK SCREEN-NAME CP 'k*_*'.
- CONCATENATE SCREEN-NAME+0(5) AX INTO CAMPO.
- CONCATENATE 'itab-' SCREEN-NAME+1(3) INTO DX.
- ASSIGN (CAMPO) TO <F>.
- ASSIGN (DX) TO <FS>.
- IF CAR = 'G'.
- <FS> = <F>.
- MODIFY ITAB FROM ITAB INDEX N_TAB.
- ELSE.
- <F> = <FS>.
- ENDIF.
- ENDLOOP.
- ADD 1 TO N_TAB.
- ENDDO.
- ENDFORM.
Última modificación de la página el 04 November 2015 a las 15h04
Powered by
PmWiki