Ver Mensaje Individual
  #4  
Viejo 18/06/08, 17:59:19
Sil12 Sil12 is offline
Junior Member
 
Fecha de Ingreso: feb 2008
Mensajes: 14
Ayuda para búsqueda (Matchcode) por código

Hi!

Les pongo un ejemplo para crear una ayuda de búsqueda para un reporte.
*******DECLARACIÓN DE VARIABLES*********
DATA: BEGIN OF t_values OCCURS 0,
value(60) TYPE c.
DATA: END OF t_values.

DATA: BEGIN OF t_fields OCCURS 0.
INCLUDE STRUCTURE help_value.
DATA END OF t_fields.
DATA: valor(20) TYPE C.
DATA: BEGIN OF t_match OCCURS 0,
secre LIKE ZAC_CG_SEC-SECRE,
END OF t_match.

DATA: BEGIN OF S_CG,
FICTR LIKE ZAC_CG_SEC-FICTR.
DATA: END OF S_CG.
DATA: IT_CG LIKE S_CG OCCURS 0 WITH HEADER LINE.

*****EVENTO PARA QUE SE MUESTRE LA AYUDA *********
AT SELECTION-SCREEN ON VALUE-REQUEST FOR Secre-LOW.

REFRESH: t_values, t_fields.
CLEAR : t_values, t_fields.

t_fields-fieldname = 'SECRE'.
t_fields-tabname = 'ZAC_CG_SEC'.
t_fields-selectflag = 'X'.
APPEND t_fields. CLEAR t_fields.

SELECT *
INTO CORRESPONDING FIELDS OF TABLE t_match
FROM ZAC_CG_SEC.

SORT t_match by secre.
DELETE ADJACENT DUPLICATES FROM t_match.

LOOP AT t_match.
t_values-value = t_match-SECRE.
APPEND t_values.
ENDLOOP.

CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'
EXPORTING
* cucol = 20
* curow = 4
tabname = 'T_MATCH'
fieldname = 'secre'
IMPORTING
select_value = SECRE
TABLES
fields = t_fields
valuetab = t_values.

Y si lo necesitan para una dynpro pueden ponerlo todo en un FORM, como en el ejemplo.
******* EVENTO DEL DYNPRO DONDE SE ANEXA AL CAMPO.*******
PROCESS ON VALUE-REQUEST.
FIELD: R_ZACSC-MCKEY MODULE MATCH_CODE.

********MODULO DE DONDE SE LLAMA AL FORM.***************
MODULE MATCH_CODE INPUT.
PERFORM f4_for_mckey USING R_ZACSC-MCKEY.
ENDMODULE. " MATCH_CODE INPUT

********FORM DONDE SE CONSTRUYE LA AYUDA **************
FORM f4_for_mckey USING P_R_ZACSC_MCKEY.

DATA: BEGIN OF t_values OCCURS 0,
value(60) TYPE c.
DATA: END OF t_values.

DATA: BEGIN OF t_fields OCCURS 0.
INCLUDE STRUCTURE help_value.
DATA END OF t_fields.
DATA: valor(20) TYPE C.
DATA: BEGIN OF t_match OCCURS 0,
mckey LIKE ZACMC-MCKEY,
mcdmc LIKE ZACMC-MCDMC,
mcfal LIKE ZACMC-MCFAL,
mcfbj LIKE ZACMC-MCFBJ,
END OF t_match.

REFRESH: t_values, t_fields.
CLEAR : t_values, t_fields.

t_fields-fieldname = 'MCKEY'.
t_fields-tabname = 'ZACMC'.
t_fields-selectflag = 'X'.
APPEND t_fields. CLEAR t_fields.

t_fields-fieldname = 'MCDMC'.
t_fields-tabname = 'ZACMC'.
t_fields-selectflag = ''.
APPEND t_fields. CLEAR t_fields.

t_fields-fieldname = 'MCFAL'.
t_fields-tabname = 'ZACMC'.
t_fields-selectflag = ''.
APPEND t_fields. CLEAR t_fields.

t_fields-fieldname = 'MCFBJ'.
t_fields-tabname = 'ZACMC'.
t_fields-selectflag = ''.
APPEND t_fields. CLEAR t_fields.

SELECT *
INTO CORRESPONDING FIELDS OF TABLE t_match
FROM ZACMC
where MCSAC = 'APRM' OR MCSMO = 'MODM' AND MCFBJ >= sy-datum.

LOOP AT t_match.
t_values-value = t_match-MCKEY.
APPEND t_values.
t_values-value = t_match-MCDMC.
APPEND t_values.
t_values-value = t_match-MCFAL.
APPEND t_values.
t_values-value = t_match-MCFBJ.
APPEND t_values.
ENDLOOP.

CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'
EXPORTING
cucol = 20
curow = 4
tabname = 'T_MATCH'
fieldname = 'MCKEY'
IMPORTING
select_value = P_R_ZACSC_MCKEY
TABLES
fields = t_fields
valuetab = t_values.


ENDFORM. " f4_for_mckey
__________________
---

Responder Con Cita