ALV Sin Layout

*

ALV * “SIN LAYOUT” *

1.- Hacer un REPORT, en el que añado un selection-screen identificando un nuevo número de pantalla,
p.e. 101.
SELECTION-SCREEN BEGIN OF SCREEN 101.
SELECT-OPTIONS:
p_fecha FOR SBOOK-FLDATE,
p_reserv FOR SBOOK-BOOKID.
SELECTION-SCREEN END OF SCREEN 101.

Y al principio de mi report pongo esta: TABLES

SBOOK.

2.- Añado una nueva DynPro (Pantalla), de tipo “Normal”, p.e. con código 300. Abrimos el
ScreenPainter (pulsando “Layout”) y añadimos un “CustomControl” grande de toda la pantalla, le
asignamos el nombre: “CC_SCR300” (en el “ScreenPainter” y en el report debemos darle el mismo nombre,
con las mismas Mayúsculas y minúsculas)
Al final de mi report, añado las líneas:
START-OF-SELECTION.
END-OF-SELECTION.
SET

SCREEN

300.

3.- Click en pantalla 300 y meto código PBO:
SELECT * INTO CORRESPONDING FIELDS
FROM SBOOK
WHERE FLDATE IN p_fecha AND
BOOKID IN p_reserv.

OF

TABLE


CREATE OBJECT obj_cont
EXPORTING
container_name =

cont.

CREATE OBJECT obj_grid
EXPORTING
i_parent = obj_cont.
*

PARA

TODA

LA

TABLA

SBOOK

CALL METHOD obj_grid->set_table_for_first_display
EXPORTING i_structure_name = 'SBOOK'
CHANGING it_outtab = it_sbook.

it_sbook

4. Creamos la Tx del Tipo “Program and selection screen (report transaction)” en Español “Programa e imagen de selección (transacción de report)“ . Hacemos doble click en “Module User_Command_0300” (modulo PAI) y añadimos el código: CASE okcode. LEAVE PROGRAM. Hacer doble click en “Module Status_0300” (modulo PBO). Haciendo doble click. variable para el ALV. SE DEBEN CREAR LAS TRANSACCIONES Y PONER DE PANTALLA DE INICIO LA 101 QUE ES LA “SELECTION-SCREEN” DONDE PEDIMOS LOS PARAMETROS. custom VALUE TO control. p. Descomentar la línea “SET PF-STATUS” y añadir un literal que identificará la barra de menús. 'CC_SCR300'. Seleccionamos la pantalla 300. declaramos en el Report: DATA: okcode TYPE sy-ucomm. WHEN 'ATRAS'.e. WHEN 'SALIR'.PREVIAMENTE. Por nomenclatura standard la llamaremos “okcode” u ok_code”. añado la definición de variables para el control de la/s pantallas. cl_gui_alv_grid.** MEJORA ** AÑADIR MENU EN PANTALLA RESULTADO (Screen 300). "obj_grid”.e. variable para el cont TYPE obj_grid scrfname TYPE REF cl_gui_custom_container. Podemos poner un texto. Añadimos la variable creada en el ”Element List” de la pantalla. "Te devuelve LEAVE TO a la "Salir del sel-screen CURRENT programa 101. p. El texto que pongamos será el que se asigne a la variable que se defina del tipo de la variable de sistema SYUCOMM. mismas MAYs o MINs que el nombre asignado en el “LayOut”. TRANSACTION. ponemos “ATRAS” en el icono “ “ (flecha blanca en circulo verde) y “SALIR” en el icono “ ” (equis blanca sobre círculo rojo). pantalla asociada a la Transacción. DATA it_sbook TYPE TABLE OF SBOOK. en el REPORT: DATA: obj_cont TYPE REF TO "cont”.e. ENDCASE. P. Seleccionamos la pantalla 300.. desplegando el menú “Teclas de Función” en los iconos que queramos. seleccionamos “Normal Screen” y nos aparece tres desplegables. ponemos “IF300”. Eso hará que se activen dichos iconos y se muestren en “su barra” de menú.

“Es un numero... * * DATA: Tipos para el catalogo de campos PARA UNA TABLA INTERNA AÑADIR EL it_fieldcat TYPE lvc_t_fcat. De esta forma se refrescarán los datos.3. carrid LIKE sbook-carrid. En el “report” cambiamos/añadimos: TYPES: BEGIN OF it_tt_sbook.. it_tt_sbook. 5.-4. en vez de crear el contenedor y el grid cada vez que se visualice una nueva búsqueda.Cambiamos en el PBO de la pantalla resultado (en nuestro caso de la pantalla 300. 5. “Texto para “mouseover” en el campo-cabecera de la tabla wa_fieldcat-col_pos = 1. que es donde accedemos a BD).2.5. Además cambiaremos parámetros en la asignación de la tabla resultado al grid. Para ello modificamos el “REPORT” y el “PBO” de la pantalla que muestra los resultados de búsqueda. Después de hacer la query. en nuestro caso identificada como “300”.Cambiamos la variable it_sbook y la creamos con solo los campos de la tabla que queremos visualizar dando EL MISMO NOMBRE de los campos de columna de tabla a los del tipo que crearemos. Empieza por 1 APPEND wa_fieldcat TO it_fieldcat. BLOQUE PARA VERSION CON MENOS CAMPOS. CLEAR wa_fieldcat. DATA: it_sbook wa_sbook TYPE like STANDARD line of TABLE OF it_sbook. pondremos: . para crear la nueva tabla interna. “Nombre que se mostrará en el report (15-20 caract. wa_fieldcat TYPE lvc_s_fcat.** MEJORA ** FILTRAR CAMPOS EN EL GRID Para no sacar todos los campos de la tabla. 5. END OF it_tt_sbook. connid LIKE sbook-connid. “Nombre del campo de la tabla wa_fieldcat-reptext = 'CARRID'. marca la posición en el grid. añadimos el catalogo de campos y le ponemos como nombre de estructura nuestra tabla interna: CALL METHOD obj_grid->set_table_for_first_display EXPORTING i_structure_name = 'it_SBOOK' CHANGING it_outtab = it_sbook it_fieldcatalog = it_fieldcat. Donde pone “SELECT *” pondremos: “SELECT carrid connid fldate” Después de la “select” tenemos que crear el catalogo de campos a mostrar añadiremos por campo que queramos mostrar. la líneas: wa_fieldcat-fieldname = 'CARRID'.1. tenemos que realizar varios cambios..Modificamos la asignación al “grid” de visualización de datos de la siguiente manera. 5. fldate LIKE sbook-fldate.. + o -) wa_fieldcat-seltext = 'CARRID'.Añadimos en el “report” las siguientes líneas de código para poder crear el catalogo de campos.

= 'Fecha del Vuelo'.IF obj_cont IS INITIAL. ENDIF. wa_fieldcat-fieldname wa_fieldcat-reptext = wa_fieldcat-seltext wa_fieldcat-col_pos = APPEND wa_fieldcat TO = 'FLDATE'. CALL METHOD obj_grid->refresh_table_display . 3. = 'CARRID'. = 'Identificador de Conexión de Vuelo'. wa_fieldcat-fieldname wa_fieldcat-reptext = wa_fieldcat-seltext wa_fieldcat-col_pos = APPEND wa_fieldcat TO CLEAR wa_fieldcat. Si p. 'CONEXIÓN'.e. = 'Código de Compañía'. 'CÍA'. 'FECHA'. nombre y fecha en mi tabla de resultado (pantalla 300). … Añadir campos al catalogo… … create CONTENEDOR … … create GRID … Llamada: CALL METHOD obj_grid->set_table_for_first_display … ELSE. quisiera que sólo se mostraran: código de compañía. debería construir el catálogo de la siguiente manera: wa_fieldcat-fieldname wa_fieldcat-reptext = wa_fieldcat-seltext wa_fieldcat-col_pos = APPEND wa_fieldcat TO CLEAR wa_fieldcat. = 'CONNID'. it_fieldcat. 1. it_fieldcat. . 2. “obj_cont objeto de la clase “cl_gui_custom_container”. it_fieldcat.

Ejecutable). En el PAI de la 300 tenemos el código asociado para que salga del programa cuando se pulse “SALIR” o vuelva a la pantalla “101” cuando se pulse “ATRÁS”. al terminar su ejecución. para ello nuestro programas DEBE ser un report (tipo “1”. Pondremos como “Selection-Screen” “101”. EJEMPLO DE EJECUCIÓN . saltará a la “300” porque tenemos en “END OF SELECTION” el salto. . por lo que mostrará la pantalla de selección. Creamos una Tx del tipo “Programa y selection screen (report transaction)” (en Español: “Programa e imagen de selección (transacción de report)” ). que es el identificador que hemos dado a nuestra “Selection-Screen”.. ya que llamamos a la Tx creada que tiene como inicio la pantalla “101”.

Sign up to vote on this title
UsefulNot useful