Foro de programación ABAP
SAP / ABAP => Programación ABAP => Mensaje iniciado por: ale12 en 19 de Mayo de 2008, 11:34:23 am
-
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/)