|
#1
|
||||
|
||||
ayuda para filtrar duplicados
HOla, estoy ordenando una tabla interna t_print_new para mostrar en un catalogo ALV que ya esta ordenado...
LOOP AT T_PRINT WHERE LGART EQ '/151'. MOVE: T_PRINT-PERNR TO T_PRINT_NEW-PERNR, T_PRINT-ENAME TO T_PRINT_NEW-ENAME, T_PRINT-ICNUM TO T_PRINT_NEW-ICNUM, T_PRINT-LGART TO T_PRINT_NEW-CC_BASE, T_PRINT-LGTXT TO T_PRINT_NEW-LGTXT_1, T_PRINT-BETRG TO T_PRINT_NEW-BASE_IMP. ** IF T_PRINT_NEW-PERNR eq WA_FIELD-SELTEXT_L. ELSE. APPEND T_PRINT_NEW. ENDIF. LOOP AT T_PRINT WHERE LGART EQ '/401'. MOVE: T_PRINT-PERNR TO T_PRINT_NEW-PERNR, T_PRINT-ENAME TO T_PRINT_NEW-ENAME, T_PRINT-ICNUM TO T_PRINT_NEW-ICNUM, T_PRINT-LGART TO T_PRINT_NEW-CC_MONTO_RET, T_PRINT-LGTXT TO T_PRINT_NEW-LGTXT_2, T_PRINT-BETRG TO T_PRINT_NEW-MONTO_RET. APPEND T_PRINT_NEW. ENDLOOP. ENDLOOP. APPEND T_PRINT_NEW. *respaldo para eliminar duplicados *delete t_print_new where base_imp eq '0'. *delete t_print_new where monto_ret eq '0'. DELETE ADJACENT DUPLICATES FROM T_PRINT_NEW COMPARING PERNR ENAME ICNUM CC_BASE CC_MONTO_RET LGTXT_1 LGTXT_2 BASE_IMP MONTO_RET. lo que me interesa es que no se dupliquen ya que el append agrega una nueva linea .. ejemplo de la tabla original: ficha - codigo - monto 160001 /151 12 160001 /401 10 y yo estoy mostrando de manera ordenada en una sola linea. ficha - codigo1 - descripcion_codigo1 - monto1 - codigo2 - descripción_codigo2 - monto2 el resultado esta representado en el archivo Dibujo.jpg -como puedo capturar el valor de la ficha para hacer el filtrado.?cual seria la mejor practica para esta situación.con el wa_ no va.. Gracias por su ayuda.. |
#2
|
|||
|
|||
No te acabo de entender. Si lo que quieres hacer es que las líneas /151 y las /401 estén juntas lo que tienes que hacer en el segundo select es leer la tabla interna t_print_new y hacer un modify en lugar de un append.
Saludos |
#3
|
||||
|
||||
solucionado...
loop at t_print where lgart eq '/151'.
move: t_print-pernr to t_print_new-pernr, t_print-ename to t_print_new-ename, t_print-icnum to t_print_new-icnum, t_print-lgart to t_print_new-cc_base, t_print-lgtxt to t_print_new-lgtxt_1, t_print-betrg to t_print_new-base_imp. endloop. loop at t_print where lgart eq '/401'. move: t_print-pernr to t_print_new-pernr, t_print-ename to t_print_new-ename, t_print-icnum to t_print_new-icnum, t_print-lgart to t_print_new-cc_monto_ret, t_print-lgtxt to t_print_new-lgtxt_2, t_print-betrg to t_print_new-monto_ret. sort t_print_new. delete adjacent duplicates from t_print_new comparing cc_monto_ret. endloop. append t_print_new. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|