✒️ABAP El ALV Grid Control
ABAP El ALV Grid Control
Audio Uni 5_8
En nuestro reporte podemos querer excluir algunos botones estándar del menú ya que no son de utilidad, para ello deberemos completar una tabla interna del tipo ui_function y pasarla en el parámetro IT_TOOLBAR_EXCLUDING correspondiente al método SET_TABLE_FOR_FIRST_DISPLAY.
Los códigos de función de los botones que deseamos quitar de la barra, se pueden obtener inspeccionando las constantes de la clase CL_GUI_ALV_GRID en la SE24. Para ocultar la barra de herramientas entera podemos asignar X al campo NO_TOOLBAR del Layout
Audio 2
Cuando trabajamos con el control ALV_GRID_CONTROL, nos puede suceder que dado un requerimiento, sea conveniente utilizar una pantalla de selección, tal como la que creamos en los reportes clásicos, y luego en base a parámetros introducidos por el usuario, se llama mediante la sentencial CALL SCREEN a diferentes dynpros, el programa que estaríamos creando sería un híbrido entre un reporte clásico y un programa de diálogo, si nos encontramos en esa situación y realizamos un CALL SCREEN a la dynpro 0100, y deseamos que al presionar BACK del status en la dynpro, el programa regrese a la pantalla de selección, entonces dentro del código correspondiente al botón BACK, deberíamos ejecutar la sentencia LEAVE TO SCREEN 0, en lugar de LEAVE PROGRAM, ya que de lo contrario estaríamos abondonando el programa sin pasar por la pantalla de selección
Consulta Alumno:
Buenos días,
Puedo crear lo mismo del ejemplo pero con una tabla interna cuya estructura sea un tipo definido en el mismo programa??
Estoy intentando crear el ALV como lo muestra en el ejemplo pero al ejecutarlo me aparece el mensaje de error: "No es posible determinar un catalogo de campo".
Creo que esto se debe a que la estructura de la tabla interna debe ser del diccionario de datos.
Saludos.
Respuesta Instructor:
Hola Jessica, como estas?
No hay inconveniente con que crees ek ALV con una tabla interna definida en el mismo programa.
Veamos un ejemplo de ello (tene en cuenta que algunas de las definiciones pueden no existir en esta instalación de SAP):
TYPES: BEGIN OF ty_anlage_ctacto,
anlage(10) TYPE c,
vkont(12) TYPE c,
END OF ty_anlage_ctacto.
DATA: ti_anlage_ctacto TYPE TABLE OF ty_anlage_ctacto,
ti_catalogo1 TYPE lvc_t_fcat,
wa_layout1 TYPE lvc_s_layo.
* Recupero los datos que guardo en la tabla interna TI_ANLAGE_CTACTO.
IF container_obj_dynpro1 IS INITIAL.
CREATE OBJECT container_obj_dynpro1
EXPORTING
container_name = 'CONTENEDOR1'.
CREATE OBJECT ob_alv_dynpro1
EXPORTING
i_parent = container_obj_dynpro1.
ELSE.
CALL METHOD ob_alv_dynpro1->refresh_table_display.
ENDIF.
REFRESH ti_catalogo1.
CLEAR wa_catalogo1.
wa_catalogo1-tabname = 'TI_ANLAGE_CTACTO'.
wa_catalogo1-fieldname = 'VKONT'.
wa_catalogo1-col_pos = 1.
wa_catalogo1-coltext = 'Cuenta Contrato'.
wa_catalogo1-seltext = 'Cuenta Contrato'.
wa_catalogo1-reptext = 'Cuenta Contrato'.
wa_catalogo1-scrtext_s = 'Cuenta Contrato'.
wa_catalogo1-scrtext_m = 'Cuenta Contrato'.
wa_catalogo1-scrtext_l = 'Cuenta Contrato'.
wa_catalogo1-outputlen = '15'.
wa_catalogo1-just = 'C'.
APPEND wa_catalogo1 TO ti_catalogo1.
CLEAR wa_catalogo1.
wa_catalogo1-tabname = 'TI_ANLAGE_CTACTO'.
wa_catalogo1-fieldname = 'ANLAGE'.
wa_catalogo1-col_pos = 2.
wa_catalogo1-coltext = 'Instalación'.
wa_catalogo1-seltext = 'Instalación'.
wa_catalogo1-reptext = 'Instalación'.
wa_catalogo1-scrtext_s = 'Instalación'.
wa_catalogo1-scrtext_m = 'Instalación'.
wa_catalogo1-scrtext_l = 'Instalación'.
wa_catalogo1-outputlen = '15'.
wa_catalogo1-just = 'C'.
APPEND wa_catalogo1 TO ti_catalogo1.
CLEAR wa_layout1.
wa_layout1-zebra = 'X'.
wa_layout1-sel_mode = 'A'.
* Seleccione la/s Instalación/es a tratar
wa_layout1-grid_title = text-003.
wa_layout1-no_toolbar = c_x.
CALL METHOD ob_alv_dynpro1->set_table_for_first_display
EXPORTING
is_layout = wa_layout1
CHANGING
it_outtab = ti_anlage_ctacto
it_fieldcatalog = ti_catalogo1.
Cualquier consulta estoy para ayudarte.
Saludos Ezequiel
 
 
 
Sobre el autor
Publicación académica de Daniel Martinez Chaer, en su ámbito de estudios para la Carrera Consultor ABAP.
Daniel Martinez Chaer
Profesión: Analista Programador - Uruguay - Legajo: SK29Z
✒️Autor de: 76 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Con experiencia en sap fi y mm, migración desde sistema legacy, extracción de datos de la base oracle sap y generación de reportes.
Certificación Académica de Daniel Martinez