Autor Tema: LAYOUT en pantalla de selección  (Leído 21808 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado ale12

  • Usuario Completo
  • ***
  • Mensajes: 92
    • Ver Perfil
LAYOUT en pantalla de selección
« 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.


Desconectado Carlos

  • Usuario Sr.
  • ****
  • Mensajes: 177
    • Ver Perfil
Re: LAYOUT en pantalla de selección
« Respuesta #1 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.


Desconectado dluis

  • Usuario Jr
  • **
  • Mensajes: 27
    • Ver Perfil
Re: LAYOUT en pantalla de selección
« Respuesta #2 en: 10 de Septiembre de 2008, 12:49:46 pm »
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?


Desconectado Carlos

  • Usuario Sr.
  • ****
  • Mensajes: 177
    • Ver Perfil
Re: LAYOUT en pantalla de selección
« Respuesta #3 en: 10 de Septiembre de 2008, 01:02:36 pm »
Se declara de esta forma...

Código: [Seleccionar]
  DATA: gs_variant              TYPE disvariant.

Desconectado ariasnaty

  • Novato
  • *
  • Mensajes: 3
    • Ver Perfil
Re:LAYOUT en pantalla de selección
« Respuesta #4 en: 25 de Abril de 2013, 07:28:09 pm »
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!

Desconectado Carlos

  • Usuario Sr.
  • ****
  • Mensajes: 177
    • Ver Perfil
Re:LAYOUT en pantalla de selección
« Respuesta #5 en: 26 de Abril de 2013, 09:12:29 am »
Hola,

Ese campo esta definido en este INCLUDE que puedes añadir al programa.

Aquí tienes el enlace... Include ZALV


Saludos

Desconectado ariasnaty

  • Novato
  • *
  • Mensajes: 3
    • Ver Perfil
Re:LAYOUT en pantalla de selección
« Respuesta #6 en: 26 de Abril de 2013, 02:59:35 pm »
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!!

Desconectado lcruz

  • Novato
  • *
  • Mensajes: 4
    • Ver Perfil
    • Abap facil para mi
Re:LAYOUT en pantalla de selección
« Respuesta #7 en: 08 de Mayo de 2013, 04:23:12 am »
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/