Ver Mensaje Individual
  #2  
Viejo 03/03/08, 13:34:40
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
Declaracion de variables
DATA gx_variant LIKE disvariant.
DATA g_repid LIKE sy-repid.
DATA g_save(1) TYPE c.
DATA g_variant LIKE disvariant.
DATA g_exit(1) TYPE c.



1. Declara tu parametro para disposición:
PARAMETERS: p_vari LIKE disvariant-variant.
2. Agrega el siguiente evento a tu programa.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM f4_for_variant.
PERFORM pai_of_selection_screen.

3. Evento Inicializacion.
INITIALIZATION.
* parametros para tratamiento de variantes
g_variant-report = sy-repid.
g_variant-username = sy-uname.
g_save = 'X'.
g_repid = sy-repid.


las subrutinas son:

FORM f4_for_variant.

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = g_variant
i_save = g_save
IMPORTING
e_exit = g_exit
es_variant = gx_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.

IF g_exit = space.
p_vari = gx_variant-variant.
ENDIF.

ENDIF.

ENDFORM. " FOR_VARIANT



FORM pai_of_selection_screen.

IF NOT p_vari IS INITIAL.

MOVE g_variant TO gx_variant.
MOVE p_vari TO gx_variant-variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant.
g_variant = gx_variant.

ELSE.

CLEAR g_variant.
g_variant-report = g_repid.

ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN
Responder Con Cita