PDA

Ver la Versión Completa : Crear un matchcodes o ayuda de busquedas


Irua
09/05/08, 16:02:08
Hola quisiera crear un matchcodes con dos campos de una tabla Z, y se visualice de la forma anexa

gracias


:confused:

DavidXD_XD
09/05/08, 17:57:17
Hola, esa ayuda de busqyeda la puedes crear en la SE11, si pertenecen ambos campos a una misma tabla es mucho mas sencillo y crearias una ayuda de busqueda elemental, espero te ayude :D

isratol
12/05/08, 21:11:21
tambien puedes revisar en el elemento de datos, la pestaña de "Ambito de valores" ahi puedes agregar la tabla, o los valores que necesites... eso es mas simple...

ya si necesitas un matchcode mas complicado, si crealo desde la se11 como dice david..

Saludos..

Sil12
18/06/08, 17:59:19
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

cvargas
18/06/08, 19:25:56
Saludos

Necesito ayuda, tengo un ALV al cual tengo que colocarle un quiebre o agrupamiento. De que manera puedo hacer para realizar dicho reporte.
Alguien podria brindar un ejemplo.

Carlos

DavidXD_XD
18/06/08, 19:55:49
Hola, te refieres a mostrar subtotales???

cvargas
18/06/08, 20:30:45
Hola, te refieres a mostrar subtotales???

Claro, por ejemplo a agrupar las facturas por cliente

juan perez
factura 001-00000010 $ 1000.00
factura 001-00000011 $ 1000.00
total cliente 2000.00
pedro perez
factura 001-00000020 $ 2000.00
factura 001-00000021 $ 4000.00
total ciente $ 6000.00

Este diseño es algo similar a lo que me piden


Carlos

nachosds
19/06/08, 08:40:56
Claro, por ejemplo a agrupar las facturas por cliente

juan perez
factura 001-00000010 $ 1000.00
factura 001-00000011 $ 1000.00
total cliente 2000.00
pedro perez
factura 001-00000020 $ 2000.00
factura 001-00000021 $ 4000.00
total ciente $ 6000.00

Este diseño es algo similar a lo que me piden


Carlos


Muy buenas Carlos,
Para mostrar ese listado no seria necesario utilizar un ALV. Con Write podriamos mostrar ese listado de la siguiente manera:


sort it_tabla by nombre
LOOP AT it_tabla.

AT NEW nombre.
write:/ it_tabla-nombre.
write:/ 'factura' it_tabla-factura, '$' it_tabla-importe.

d_total = it_tabla-importe.

ENDAT.

write:/ 'factura' it_tabla-factura, '$' it_tabla-importe.

d_total = d_total + it_tabla-importe.

AT END OF nombre.
d_end = c_x.
ENDAT.

IF d_end = c_x.
write:/ 'total cliente' d_total.
uline.
ENDIF.

ENDLOOP.

Este codigo no he podido probarlo porque no tenemos la maquina operativa.
Si tienes alguna duda o ves algun error en el codigo, no dudes en preguntar.

Saludos!