jump to navigation

Crear Match Code en tiempo de ejecucion para una Dynpro julio 17, 2008

Posted by gstortoni in Match Code.
Tags: , , , , ,
trackback

Esta es una forma bastante util e interesante para crear ayudas de busquedas en tiempo de ejecucion, en mi caso lo he usado en una Dynpro, ustedes veran que uso le dan.

En una Dynpro:
Primero que todo, hay que agregar dentro de la logica de proceso, luego del PAI, lo siguiente:

process on value-request.
field campo_que_necesitamos module module_match.

Una vez que tengamos escrito esto en la logica de proceso de la Dynpro, tenemos que crear el Module, hacemos doble click y ustedes deciden donde crearlo, por mi parte lo cree en el programa control.

Primero necesitamos los ingredientes:

databegin of list_of_fields occurs 10,
fieldname like dd03l-fieldname,
end of list_of_fields.

dataindice like sy-tabix,
fieldname like dd03l-fieldname,
fields like help_value occurs 10 with header line,
shrinkfields like dynpread occurs 0 with header line,
dynpfields like dynpread occurs 0 with header line.

databegin of ti_almacen occurs 0,
lgort like t001l-lgort,
lgobe like t001l-lgobe,
end of ti_almacen_dest.

En mi caso quiero mostrar los almacenes y su descripcion para un Centro dado.
Para ello, manualmente recojo los campos de la tabla y los almaceno en una TI.

select lgort lgobe
into
corresponding fields of table ti_almacen
from t001l
where werks eq
‘2000’
.


Luego Hay que definir la estructura de la ayuda de busqueda.

list_of_fields-fieldname = ‘T001L-LGORT’.
append list_of_fields.

list_of_fields-fieldname = ‘T001L-LGOBE’.
append list_of_fields.

Defino el campo que quiero que quede en la pantalla cuando haya hecho doble clic sobre mi Match Code

fieldname = ‘LGORT’.

call function ‘TRANSFER_NAMES_TO_FIELDS’
exporting
selectfield        = fieldname
tables
fieldsfields
namelist           = list_of_fields

exceptions
wrong_format_given = 01.

Esta es la funcion que hace toda la maravilla

call function ‘HELP_VALUES_GET_NO_DD_NAME’
exporting
selectfield  = fieldname
titel  = ‘Almacen de destino’
use_user_selections = ‘S’

importing
ind = indice

tables
fieldsfields
full_table  = ti_almacen
user_sel_fields = shrinkfields

exceptions
full_table_empty  = 01
no_tablestructure_given = 02
no_tablefields_in_dictionary = 03
more_than_one_selectfield = 04
no_electfield = 05.


Ahora solo queda recorrer la tabla e indicar cual fue el indice que el usuario ha seleccionado.
read table ti_almacen index indice.

Con esto, paso el valor de la seleccion en este caso el LGORT a mi campo en pantalla
move ti_almacen-lgort to fld_almacen.

Y eso es todo, queda solo activar y disfrutar de una ayuda de busqueda sencilla. pero Muy efectiva

About these ads

Comentarios»

1. Vladimir Andrade - noviembre 7, 2008

me parece interesante voy a intentarlo, muchas gracias.

saludos.
Torrescano


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: