Esta es una forma rápida y sencilla de lanzar un ALV en un popup o ventana emergente utilizando la clase CL_SALV_TABLE. Esta clase es muy útil pues permite generar listados ALV con solo llamar a dos métodos de al misma, pero lo mejor es que también tiene un método para poder lanzar el ALV como si fuese un popup o ventana emergente a través de un método llamado SET_SCREEN_POPUP.
Como hemos dicho, es muy sencillo manejar esta clase, solo necesitamos:
- Una tabla interna con la información del listado
- Una variable que instancie a la clase cl_salv_table.
Lo mejor, es ver el código, ya veréis como con 3 métodos creamos todo :
REPORT zzprueba_alv_popup. TYPES: BEGIN OF type_matnr, matnr TYPE mara-matnr, meins TYPE mara-meins, maktx TYPE makt-maktx, END OF type_matnr. * Tabla interna con los datos del listado ALV DATA tl_matnr TYPE STANDARD TABLE OF type_matnr. * Objeto de la clase CL_SALV_TABLE DATA obj_alv_table TYPE REF TO cl_salv_table. SELECT m~matnr m~meins t~maktx INTO CORRESPONDING FIELDS OF TABLE tl_matnr FROM mara AS m INNER JOIN makt AS t ON m~matnr EQ t~matnr WHERE t~spras EQ sy-langu. * Instanciamos la clase con la tabla que contiene los datos cl_salv_table=>factory( IMPORTING r_salv_table = obj_alv_table CHANGING t_table = tl_matnr ). * Caracteristicas del POPUP obj_alv_table->set_screen_popup( start_column = 1 end_column = 160 start_line = 1 end_line = 20 ). * Lanzamos el ALV obj_alv_table->display( ).
Resultado, un ALV en una ventana emergente o popup .
ALV dentro de un popup |
Si comentáis el método SET_SCREEN_POPUP el ALV sera a pantalla completa.
El mismo ALV a pantalla compelta |
Muy buen tutorial!
ResponderEliminarBuen aporte amigo sigue así.
ResponderEliminarAmigo, como puedo recuperar lo seleccionado ?
ResponderEliminarBuen aporte
ResponderEliminar¿Para cambiar el titulo de la ventana y no arrastre el titulo del report?
ResponderEliminarMuchas Gracias!
Saludos