SAP/Abap Foro::
07 de Septiembre de 2010, 05:45:39 *
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: Descarga nuestra barra de herramientas, gratis.
 
   Inicio   Ayuda Buscar Ingresar Registrarse  

cvosoft
Páginas: [1]
  Imprimir  
Autor Tema: LAYOUT en pantalla de selección  (Leído 1089 veces)
0 Usuarios y 2 Visitantes están viendo este tema.
ale12
Usuario Completo
***
Mensajes: 77


Ver Perfil
« en: 19 de Mayo de 2008, 11:34:23 »

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.

En línea
Carlos
Usuario Sr.
****
Mensajes: 136


Ver Perfil
« Respuesta #1 en: 20 de Mayo de 2008, 12:03:04 »

Lo primero que tienes que hacer es crearte la entrada en la Pantalla de Selección de esta manera:
Código:
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...
Código:
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.

  PERFORM alv_f4 USING 'Z_TU_NOMBRE_REPORT'
                        p_vari.

Llamada al form... alv_f4
Código:
*____________________________________________________________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...
Código:
* Se asigna la variante de visualización
  PERFORM asignar_variante USING 'Z_TU_NOMBRE_REPORT'
                                 p_vari.

Llamada al form... asignar_variante
Código:
*______________________________________________________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.

En línea
dluis
Usuario Jr
**
Mensajes: 21


Ver Perfil
« Respuesta #2 en: 10 de Septiembre de 2008, 12:49:46 »

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?

En línea
Carlos
Usuario Sr.
****
Mensajes: 136


Ver Perfil
« Respuesta #3 en: 10 de Septiembre de 2008, 01:02:36 »

Se declara de esta forma...

Código:
  DATA: gs_variant              TYPE disvariant.
En línea
Páginas: [1]
  Imprimir  
 
Ir a:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.3 | SMF © 2006-2007, Simple Machines LLC XHTML 1.0 válido! CSS válido!