You are on page 1of 4

*&---------------------------------------------------------------------*

*& Report ZAH_PROGRAMAALV


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZAH_PROGRAMAALV
NO STANDARD PAGE HEADING.
TABLES: ZPROGRAMAS.
*=====================================================*
* DECLARACION DE TYPE-POOLS *
*=====================================================*
TYPE-POOLS: SLIS.
*=====================================================*
* DECLARACION DE TYPES *
*=====================================================*
TYPES: BEGIN OF TY_PROGRAMAS,
ID_PROG TYPE ZPROGRAMAS-ID_PROG,
NOM_PROG TYPE ZPROGRAMAS-NOM_PROG,
NOMBRE TYPE ZLENGUAJES_PROG-NOMBRE,
ENTORNO TYPE ZLENGUAJES_PROG-ENTORNO,
CONEX_SAP TYPE ZLENGUAJES_PROG-CONEX_SAP,
END OF TY_PROGRAMAS.
*=====================================================*
* Selection screen *
*=====================================================*
SELECTION-SCREEN BEGIN OF BLOCK DATA WITH FRAME.
SELECT-OPTIONS:
S_IDPROG FOR ZPROGRAMAS-ID_PROG.
SELECTION-SCREEN END OF BLOCK DATA.
*=====================================================*
* START-OF-SELECTION *
*=====================================================*
START-OF-SELECTION.
PERFORM OBTENER_DATOS.
*&----------------------------------------------------*
*& Form OBTENER_DATOS *
*&----------------------------------------------------*
FORM OBTENER_DATOS.
SELECT ID_PROG NOM_PROG NOMBRE ENTORNO CONEX_SAP
INTO TABLE T_PROGRAMAS
FROM ( ZPROGRAMAS INNER JOIN ZLENGUAJES_PROG
ON ZPROGRAMAS~ID EQ ZLENGUAJES_PROG~ID )
WHERE ID_PROG IN S_IDPROG.
ENDFORM. " OBTENER_DATOS
*=====================================================*
* DECLARACION DE TABLAS INTERNAS *
*=====================================================*
DATA: T_PROGRAMAS TYPE STANDARD TABLE OF TY_PROGRAMAS,
I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
I_SORT_ALV TYPE SLIS_T_SORTINFO_ALV,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
*=====================================================*
* DECLARACION DE VARIABLES *
*=====================================================*
DATA: G_PROGRAM TYPE SY-REPID,
G_TITULO TYPE SY-TITLE,
G_REPID TYPE SY-REPID,
GS_SORT TYPE SLIS_T_SORTINFO_ALV.
*=====================================================*
* END-OF-SELECTION *
*=====================================================*
END-OF-SELECTION.
*=====================================================*
* END-OF-SELECTION *
*=====================================================*
END-OF-SELECTION.
PERFORM INIT_LAYOUT.
PERFORM FORMATEAR_DATOS_ALV_DET USING I_FIELDCAT[].
PERFORM BUILD_SORT.
PERFORM F_GENERAR_LISTA_ALV.
FORM INIT_LAYOUT.
GS_LAYOUT-ZEBRA = 'X'.
ENDFORM. " INIT_LAYOUT
FORM BUILD_SORT.
APPEND INITIAL LINE TO GS_SORT
ASSIGNING <FS_SORT>.
<FS_SORT>-SPOS = 1.
<FS_SORT>-FIELDNAME = 'ID_PROG'.
<FS_SORT>-UP = 'X'.
ENDFORM. " BUILD_SORT
FORM FORMATEAR_DATOS_ALV_DET USING
T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'T_PROGRAMAS'.
L_FIELDCAT-FIELDNAME = 'ID_PROG'.
L_FIELDCAT-SELTEXT_L = 'Id'.
L_FIELDCAT-COL_POS = 1.
L_FIELDCAT-OUTPUTLEN = 5.
APPEND L_FIELDCAT TO T_FIELDCAT.
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'T_PROGRAMAS'.
L_FIELDCAT-FIELDNAME = 'NOM_PROG'.
L_FIELDCAT-SELTEXT_L = 'Nombre Programa'.
L_FIELDCAT-COL_POS = 2.
L_FIELDCAT-OUTPUTLEN = 15.
APPEND L_FIELDCAT TO T_FIELDCAT.
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'T_PROGRAMAS'.
L_FIELDCAT-FIELDNAME = 'NOMBRE'.
L_FIELDCAT-SELTEXT_L = 'Nombre Lenguaje'.
L_FIELDCAT-COL_POS = 3.
L_FIELDCAT-OUTPUTLEN = 15.
APPEND L_FIELDCAT TO T_FIELDCAT.
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'T_PROGRAMAS'.
L_FIELDCAT-FIELDNAME = 'ENTORNO'.
L_FIELDCAT-SELTEXT_L = 'Entorno'.
L_FIELDCAT-COL_POS = 4.
L_FIELDCAT-OUTPUTLEN = 10.
APPEND L_FIELDCAT TO T_FIELDCAT.
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'T_PROGRAMAS'.
L_FIELDCAT-FIELDNAME = 'CONEX_SAP'.
L_FIELDCAT-SELTEXT_L = 'Conexión con SAP'.
L_FIELDCAT-COL_POS = 5.
L_FIELDCAT-OUTPUTLEN = 15.
APPEND L_FIELDCAT TO T_FIELDCAT.
ENDFORM. "FORMATEAR_DATOS_ALV_DET
FORM F_GENERAR_LISTA_ALV.
G_PROGRAM = SY-REPID.
G_TITULO = 'Lista de Programas'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_PROGRAM
I_GRID_TITLE = G_TITULO
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = I_FIELDCAT
IT_SORT = GS_SORT[]
TABLES
T_OUTTAB = T_PROGRAMAS
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
ENDFORM. " F_GENERAR_LISTA_ALV

'''''''''''''''''''''''''''''''''''''''''''''''''''''

REPORT ZDUMMY_PRIMER_PROGRAMA
NO STANDARD PAGE HEADING.
*=====================================================*
* DECLARACION DE TABLES *
*=====================================================*
TABLES: ZPROGRAMAS.
*=====================================================*
* DECLARACION DE TYPES *
*=====================================================*
TYPES: BEGIN OF TY_PROGRAMAS,
NOMBRE TYPE ZLENGUAJES_PROG-NOMBRE,
ENTORNO TYPE ZLENGUAJES_PROG-ENTORNO,
NOM_PROG TYPE ZPROGRAMAS-NOM_PROG,
END OF TY_PROGRAMAS.
*=====================================================*
* DECLARACION DE VARIABLES *
*=====================================================*
DATA: T_PROGRAMAS TYPE STANDARD TABLE
OF TY_PROGRAMAS.
*=====================================================*
* FIELD-SYMBOLS *
*=====================================================*
FIELD-SYMBOLS: <FS_PROGRAMAS> LIKE LINE
OF T_PROGRAMAS.
*=====================================================*
* SELECTION-SCREEN *
*=====================================================*
SELECTION-SCREEN BEGIN OF BLOCK PRG
WITH FRAME TITLE TEXT-T01.
SELECT-OPTIONS:
S_ID FOR ZPROGRAMAS-ID.
SELECTION-SCREEN END OF BLOCK PRG.
*=====================================================*
* START-OF-SELECTION *
*=====================================================*
START-OF-SELECTION.
SELECT NOMBRE ENTORNO NOM_PROG
INTO TABLE T_PROGRAMAS
FROM ( ZLENGUAJES_PROG INNER JOIN ZPROGRAMAS
ON ZLENGUAJES_PROG~ID = ZPROGRAMAS~ID )
WHERE ZPROGRAMAS~ID IN S_ID.
WRITE:/1 'Lenguaje',17 'Entorno',33 'Programa'.
WRITE:/ SY-ULINE(45).
LOOP AT T_PROGRAMAS
ASSIGNING <FS_PROGRAMAS>.
WRITE:/ <FS_PROGRAMAS>-NOMBRE,<FS_PROGRAMAS>-ENTORNO,
<FS_PROGRAMAS>-NOM_PROG.
ENDLOOP.

You might also like