![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP El catálogo ALV automático, los logos, los encabezados y los status GUI
ABAP El catálogo ALV automático, los logos, los encabezados y los status GUI
![ABAP El catálogo ALV automático, los logos, los encabezados y los status GUI ABAP El catálogo ALV automático, los logos, los encabezados y los status GUI](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/422.jpg)
Catálogo ALV automático, logos, encabezados y status
1 Creación del catálogo en forma automática
Existen dos formas de crear el catálogo del ALV. La primera es en forma manual, ingresando campo por campo tal y como realizamos en el ejemplo de las lección 5. La segunda, es crear el catálogo de forma automática con la función REUSE_ALV_FIELDCATALOG_MERGE.
Si tomamos el ejemplo utilizado anteriormente, el código para la creación automática sería el siguiente:
<< imagen 1.1 >>
Pero para poder utilizar esta funcionalidad, será necesario modificar dos puntos del programa. El primero es la forma en la que se declara la ALV. Si creamos el catálogo en forma automática, debemos declarar la tabl ainterna utilizando LIKE y haciendo referencia a campos de una tabla base de datos existente. Esto sirve cuando queramos utilizar el ALV para mostrar datos de una tabla base de datos del sistema:
<< imagen 1.2 >>
La segunda modificación es relativa a la configuración del editor para que restrinja la cantidad de caracteres de ancho de la pantalla a 72 caracteres. Para hacer esto, accedemos a la ruta del menú: Utilidades >> Opciones >> Editor ABAP >> Editor, y allí marcamos la opción de Long. líneas compatib. descend.(72).
<< imagen 1.3 >>
2 Utilización de Logos y encabezados
El los ALV tipo Grid, podemos agregar logos y encabezados en los listados. Para ello, debemos declarar una tabla del tipo SLIS_T_LISTHEADER y una estructura del tipo SLIS_LISTHEADER.
<< imagen 2.1 >>
Antes de completar el catálogo, vamos a llenar la tabla TI_HEADER (de tipo slis_t_listheader) con el encabezado del reporte, el tipo de reporte y la fecha del sistema:
<< imagen 2.2 >>
Después agregamos en la llamada a la función del ALV el parámetro exporting I_CALLBACK_TOP_OF_PAGE informado con el literal 'TOP_OF_PAGE', que será el nombre de la subrutina que cargue el contenido del encabezado y el logo.
<< imagen 2.3 >>
A continuación creamos la subrutina TOP_OF_PAGE, que realizará una llamada a la función REUSE_ALV_COMMENTARY_WRITE que realiza la carga del encabezado que definimos en la tabla interna TI_HEADER, junto con el logo a utilizar 'ENJOYSAP_LOGO':
<< imagen 2.4 >>
Podemos ver los logos disponibles en el sistema, o cargar nuevos logos al sistema, a través de la transacción SE78.
Finalmente, al ejecutar el programa veremos lo siguiente:
<< imagen 2.5 >>
Audio: Otra posibilidad de la que disponemos para subir logos a SAP, a parte de la transacción SE78, es la transacción estándar OAER. Para subir un logo a SAP accedemos a la transacción OAER, y en la pantalla de selección completamos los parámetros de la siguiente forma: En el parámetro "nombre_clase" introducimos el texto "pictures", en el parámetro "tipo_de_clase" introducimos el texto "ot", en el parámetro "clave_del_objeto" introducimos el texto del nombre que se le quiera dar al logo, por ejempo: "LOGO_EMPRESA". Finalmente ejecutamos la transacción y en la siguiente pantalla seleccionamos "documento estándar", pinchamos sobre el icono de imagen (aquí verificamos que se pueden subir al sistema diferentes tipos de archivos) y visualizaremos una ventana de diálogo donde podremos seleccionar y subir el archivo desde nuestro pc al servidor para utilizarlo en el encabezado de un ALV. Si deseamos agregar la imagen a una orden de transporte, debemos acceder al menú "Documentos >> Transportar".
3 Utilización de Status GUIs
Para poder utilizar un Status GUI en un reporte ALV, vamos a agregar en la llamada a la función del ALV el parámetro exporting I_CALLBACK_PF_STATUS_SET informado con el literal 'PF_STATUS' que será el nombre de la subrutina que declare la utilización del Status GUI. También añadimos el parámetro exporting I_CALLBACK_USER_COMMAND informado con el literal 'USER_COMMAND' que será el nombre de la subrutina que se ejecute para capturar la acción realizada por el usuario.
<< imagen 3.1 >>
Definimos la subrutina PF_STATUS que se encargará de iniciar el valor del status:
<< imagen 3.2 >>
Vamos a crear en el status un botón adicional que tenga la descripción "Usuarios activos" y para el cual identificaremos su pulsación en el programa con el código 'USU_ACTI'.
También se agregará en las teclas de función (F03, F15 y F12) del estatus (Function Keys) los códigos para: navegar hacia atrás, volver a la pantalla principal y salir del programa.
Cuando creamos los bontones para las teclas de función, debemos recordar de establecer el valor "E" en el Tipo de función (Function Type), ya que en caso contrario no funcionarán como esperamos.
<< imagen 3.3 >>
<< imagen 3.4 >>
Finalmente agregamos la subrutina "USER_COMMAND" que capturará las acciones realizadas por el usuario.
<< imagen 3.5 >>
Si ejecutamos el reporte, veremos en el Status GUI el botón de "Usuarios activos", y al pulsarlo se procesará el código existente en la subrutina USER_COMMAND.
<< imagen 3.6 >>
 
 
 
Agradecimiento:
Ha agradecido este aporte: Ingrid Osorio
Favorito:
Está publicación ha sido agregada a sus favoritos por: Lorena Amoretti
Sobre el autor
Publicación académica de José Antonio Saavedra Rodríguez, en su ámbito de estudios para la Carrera Consultor ABAP.
José Antonio Saavedra Rodríguez
El Salvador - Legajo: SX28V
✒️Autor de: 166 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Avanzado
- Carrera Consultor en SAP SD Nivel Inicial