91
Programación ABAP / Re: LAYOUT en pantalla de selección
« en: 20 de Mayo de 2008, 12:03:04 pm »
Lo primero que tienes que hacer es crearte la entrada en la Pantalla de Selección de esta manera:
Para ello utilizaremos el include aquí definido... Include ZALV
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
...
PARAMETERS: p_vari LIKE gs_variant-variant.
SELECTION-SCREEN END OF BLOCK b1.
Luego...
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM alv_f4 USING 'Z_TU_NOMBRE_REPORT'
p_vari.
Llamada al form... alv_f4
*____________________________________________________________Form Alv_F4
FORM alv_f4 USING p_repname LIKE sy-repid
p_variante LIKE disvariant-variant.
* Esta form devuelve un matchcode con las variantes existentes.
* Tan solo se tiene que poner si se quiere cargar una variante de
* visualización.
* Para poner esta form se tiene que poner:
**** at selection-screen on value-request for p_variante. *****
**** perform alv_f4 using (Nombreprograma) (Variable_variante). *****
variant-report = p_repname.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = variant
i_save = 'A'
IMPORTING
es_variant = variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
p_variante = variant-variant.
ENDIF.
ENDFORM. "alv_f4
Y antes de la llamada a la función ALV...
* Se asigna la variante de visualización
PERFORM asignar_variante USING 'Z_TU_NOMBRE_REPORT'
p_vari.
Llamada al form... asignar_variante
*______________________________________________________Asignar variante.
FORM asignar_variante USING p_repname LIKE sy-repid
p_variante LIKE disvariant-variant.
* Si se quiere visualizar una variante es obligatorio llamar a esta form
* No es suficiente con llamar a la función de matchcode, o a la form de
* verificación.
CLEAR variant.
variant-report = p_repname.
variant-variant = p_variante.
ENDFORM. "asignar_variante
Saludos.
Para ello utilizaremos el include aquí definido... Include ZALV
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
...
PARAMETERS: p_vari LIKE gs_variant-variant.
SELECTION-SCREEN END OF BLOCK b1.
Luego...
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM alv_f4 USING 'Z_TU_NOMBRE_REPORT'
p_vari.
Llamada al form... alv_f4
*____________________________________________________________Form Alv_F4
FORM alv_f4 USING p_repname LIKE sy-repid
p_variante LIKE disvariant-variant.
* Esta form devuelve un matchcode con las variantes existentes.
* Tan solo se tiene que poner si se quiere cargar una variante de
* visualización.
* Para poner esta form se tiene que poner:
**** at selection-screen on value-request for p_variante. *****
**** perform alv_f4 using (Nombreprograma) (Variable_variante). *****
variant-report = p_repname.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = variant
i_save = 'A'
IMPORTING
es_variant = variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
p_variante = variant-variant.
ENDIF.
ENDFORM. "alv_f4
Y antes de la llamada a la función ALV...
* Se asigna la variante de visualización
PERFORM asignar_variante USING 'Z_TU_NOMBRE_REPORT'
p_vari.
Llamada al form... asignar_variante
*______________________________________________________Asignar variante.
FORM asignar_variante USING p_repname LIKE sy-repid
p_variante LIKE disvariant-variant.
* Si se quiere visualizar una variante es obligatorio llamar a esta form
* No es suficiente con llamar a la función de matchcode, o a la form de
* verificación.
CLEAR variant.
variant-report = p_repname.
variant-variant = p_variante.
ENDFORM. "asignar_variante
Saludos.