Buscar en este blog

Chris Gerdes: The future race car -- 150mph, and no driver

Se ha producido un error en este gadget.

martes, 9 de septiembre de 2008

Matchcode personalizado

Ejemplo para hacer una búsqueda a alguna tabla y el resultado lo guardamos en una tabla interna que se la pasamos a la función F4IF_INT_TABLE_VALUE_REQUEST que nos va a mostrar la ayuda de búsqueda.

*--- en el ejemplo busco un listado de las distintas clasificaciones de los materiales.

*-- Tipos de datos para matchcode
TYPES:
BEGIN OF E_MATCH, "Esta tabla nos devuelve la ayuda
SHLPNAME LIKE DDSHRETVAL-SHLPNAME,
FIELDNAME LIKE DDSHRETVAL-FIELDNAME,
RECORDPOS LIKE DDSHRETVAL-RECORDPOS,
FIELDVAL LIKE DDSHRETVAL-FIELDVAL,
RETFIELD LIKE DDSHRETVAL-RETFIELD,
END OF E_MATCH.

*-- Tablas internas para matchcode
data:
"Tabla donde se guardan los resultados de la consulta
BEGIN OF gt_class_help OCCURS 0,
class type klah-class,
end of gt_class_help,

gt_class_match type TABLE OF e_match.

"P_class-low es un Select Option que esta debidamente declarado.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_class-low.

select DISTINCT class from klah
into table gt_class_help.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'CLASS'
WINDOW_TITLE = 'Clasificacion de Material'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = gt_class_help
RETURN_TAB = gt_class_match[]
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.