✒️ABAP Los status GUI y los títulos
ABAP Los status GUI y los títulos
STATUS GUI Y TITULOS
STATUS GUI : Coponente independiente de los programas ABAP, que se utiliza para proporcionarle al usuario un apmlio rengo de funciones en la pantalla de los programas.
Esta compuesto por barras de menus, barras de herramientas estandar, barras de herramientas de aplicaciones y la configuracion de teclas de funcion.
Acceder a la SE80, sobre el nombre del programa hacemos boton derecho CREAR/STATUS GUI, luego se abre una ventana ingresamos el nombre del status gui que sera 0100, una descripcion y presinamos continuar.
Luego veremos a la derecha de la pantalla, los componentes del status gui:
Barra de menus, barra de pulsadores, teclas de función.
Vamos a barra de pulsadores y en el priemr item en vlanco escribimos el código de función correspondiente a la ejecucion del botón de usuarios activos, que sera USU_ACTI y presinamos enter.
Asignamos un texto de función. Seleccionamos texto estático.
En una ventana llenamos los datos referentes al nuevo botón.
Codigo de función: el nombre del boton.
texto de funcion: texto que se muestra a la derecha del icono del boton.
nombre icono: icono a visualizar se selecciona de una variedad de iconos con F4.texto info: nombre de ayuda del botón, al dejar el puntero del mouse encima del botón.
Asignamos tecla de función al botón. ej: shift - F1.
Presionamos enter sobre el código usu_acti y damos el campo icon text el texto que se visualice dentro del botón en la pantalla de salida.
Luego hacemos lo mismo con el boton usuarios inactivos, cuyo código será USU_INACTI luego activamos.
Vamos a introducir el código del reprote para poder utilizar el nuevo status gui.
1. declarar la utilización del status. Esto lo haremos mendiante la sentencia SRT PF-STATUS.
ej;
START-OF-SELECTION.
SET PF-SATATUS '0100'.
WRITE 'SELECCIONE ALGUNA DE LAS OPCIONES DEL REPORTE'.
2. Para capturar cual boton presiono el usuario, utilizaremos el evento AT USER-COMMAND con la variable del
sistema SY-UCOMM que contendrá eñ código de función correspondiente al botón presionado.
las subrutinas USARIOS_ACTIVOS y USUARIOS_INACTIVOS realizan la selección e impresión de los correspondientes registros de la tabla ZTABLA_USUARIOS.
ej:
AT USER-COMMAND
IF SY-UCOMM = 'USU_ACTI'.
PERFORM USUARIOS_ACTIVOS.
ELSEIF SY-UCOMM = 'USU_INACTI'.
PERFORM USUARIOS_INACTIVOS.
ENDIF.
Finalmente activamos.
Mediante la transacción estandar SE41 se pueden copiar status gui de un programa ABAP a otro.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREACION DE TITULOS
SE80 sobre el programa hacemos boton derecho crear/titulos gui, en la siguiente centana asignamos un nombre de titulo y su descripción.
Luego crearemos el totulo 0200 para los usuarios inactivos y el titulo 0300 para la primer pantalla
del reporte, finalmente presionamos el botón Titulos (todos) y activamos.
Para declarar la utilizacion de los titulos en el reporte, usamos la sentencia SET TITLE tal como vemos aqui:
START-OF-SELECTION.
SET PF-STATUS '0100'.
SET TITLEBAR '0300'.
WRITE 'SELECCIONES ALGUNA DE LAS DOS OPCIONES DEL REPORTE'.
AT USER-COMMAND.
IF SY-UCOMM = 'USU_ACTI'.
SET TITLEBAR '0100'.
PERFORM USUARIOS_ACTIVOS.
ELSEIF SY-UCOMM = 'USU_INACTI'.
SET TITLEBAR '0200'.
PERFORM USUARIOS_INACTIVOS.
ENDIF.
CÓDIGO DEL PROGRAMA
*&---------------------------------------------------------------------* *& Report ZPRUEBA_EST_USUARIOS *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zprueba_est_usuarios NO STANDARD PAGE HEADING. * Variables DATA: ti_usuarios TYPE STANDARD TABLE OF ztabla_usuarios, wa_usuarios LIKE LINE OF ti_usuarios. *---------------------------------------------------------------------* START-OF-SELECTION. *---------------------------------------------------------------------* SET PF-STATUS '0100'. SET TITLEBAR '0300'. WRITE 'Seleccione alguna de las dos opciones del Reporte'. *---------------------------------------------------------------------* AT USER-COMMAND. *---------------------------------------------------------------------* IF sy-ucomm = 'USU_ACTI'. SET TITLEBAR '0100'. * Seleccion de datos Activos PERFORM usuarios_activos. ELSEIF sy-ucomm = 'USU_INACTI'. SET TITLEBAR '0200'. * Seleccion de datos Inactivos PERFORM usuarios_inactivos. ENDIF. *&---------------------------------------------------------------------* *& Form IMPRIMIR_USUARIO *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM imprimir_usuario . FORMAT COLOR 2 INTENSIFIED. LOOP AT ti_usuarios INTO wa_usuarios. WRITE 1(50) sy-uline. WRITE:/1(1) sy-vline, 2(18) 'DNI', 21(1) sy-vline, 22 wa_usuarios-dni, 50(1) sy-vline. WRITE:/1(1) sy-vline, 2(18) 'Nombre y Apellido', 21(1) sy-vline, 22 wa_usuarios-nombre_ape, 50(1) sy-vline. WRITE:/1(1) sy-vline, 2(18) 'Estado usuario', 21(1) sy-vline, 22 wa_usuarios-estado_usu, 50(1) sy-vline. WRITE:/1(1) sy-vline, 2(18) 'Dirección', 21(1) sy-vline, 22 wa_usuarios-direccion, 50(1) sy-vline. WRITE:/1(1) sy-vline, 2(18) 'Codigo postal', 21(1) sy-vline, 22 wa_usuarios-codigo_postal, 50(1) sy-vline. WRITE:/1(1) sy-vline, 2(18) 'Fecha Nacimiento', 21(1) sy-vline, 22 wa_usuarios-f_nacimiento, 50(1) sy-vline. WRITE:/1(1) sy-vline, 2(18) 'Estado Civil', 21(1) sy-vline, 22 wa_usuarios-estado_civil, 50(1) sy-vline. ENDLOOP. WRITE 1(50) sy-uline. ENDFORM. " IMPRIMIR_USUARIO *&---------------------------------------------------------------------* *& Form USUARIOS_ACTIVOS *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM usuarios_activos . CLEAR ti_usuarios. REFRESH ti_usuarios. SELECT * FROM ztabla_usuarios INTO TABLE ti_usuarios WHERE estado_usu EQ 'A'. IF sy-subrc EQ 0. PERFORM imprimir_usuario. ELSE. MESSAGE e000(z_prueba) WITH 'No existen usuarios activos'. ENDIF. ENDFORM. " USUARIOS_ACTIVOS *&---------------------------------------------------------------------* *& Form USUARIOS_INACTIVOS *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM usuarios_inactivos . CLEAR ti_usuarios. REFRESH ti_usuarios. SELECT * FROM ztabla_usuarios INTO TABLE ti_usuarios WHERE estado_usu EQ 'I'. IF sy-subrc EQ 0. PERFORM imprimir_usuario. ELSE. MESSAGE e000(z_prueba) WITH 'No existen usuarios inactivos'. ENDIF. ENDFORM. " USUARIOS_INACTIVOS
 
 
 
Sobre el autor
Publicación académica de Oscar Guillermo Rodriguez Villate, en su ámbito de estudios para la Carrera Consultor ABAP.
Oscar Guillermo Rodriguez Villate
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WM49P
✒️Autor de: 103 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Oscar Rodriguez