Hola,
como se crea en la pantalla de selección el campo que posibilite la indicación del LAYOUT creado por usuario, para poder meterle en una variante.
Muchas gracias.
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 (http://www.abap.es/foro/index.php?topic=5.msg6)
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.
Hola, estoy probando lo que estáis comentando y me da un error:
The field "GS_VARIANT" is unknown, but there is a field with the...
¿Como se declara ese campo?
Se declara de esta forma...
DATA: gs_variant TYPE disvariant.
Hola Carlos, como estas?
Estoy tratando de agregar un layout para seleccionar en un programa, copie el codigo que pasaste pero tengo errores.
El programa me muestra: Field "VARIANT-REPORT" is unknown. It is neither in one of the
specified tables nor defined by a "DATA" statement. .
Me podes ayudar con esto?
Gracias y saludos!
Hola,
Ese campo esta definido en este INCLUDE que puedes añadir al programa.
Aquí tienes el enlace... Include ZALV (http://www.abap.es/foro/index.php?topic=5.msg6)
Saludos
Carlos, defini el campo pero sigue sin funcionar.
Es mucha molestia que te pase el codigo para ver que le pasa?, tengo el parametro de seleccion y elijo la variante pero cuando ejecuto el programa, la variante no pasa al AVL y no la toma.
Gracias!!
Hola, puedes encontrar un ejemplo explicado y descargable desde este enlace
http://abap.facilparami.com/2013/05/definir-layout-disposicion-desde-los-parametros-del-reporte-en-abap/ (http://abap.facilparami.com/2013/05/definir-layout-disposicion-desde-los-parametros-del-reporte-en-abap/)