MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 03/06/10, 16:03:06
andresf02 andresf02 is offline
Senior Member
 
Fecha de Ingreso: nov 2009
Mensajes: 190
Problema con AT NEW y AT END OF - Urgente pls

buenos Dias

Tengo el siquiente codigo que me esta presentando problemas con el "AT END OF" especificamente:

*****************************************************
SORT it_tabcont BY carac04.
LOOP AT it_tabcont INTO wa_tabcont.

AT NEW carac04.
CLEAR wa_variedad.
sum_prop = 0.
sum_arre = 0.
sum_part = 0.
sum_mdir = 0.
sum_prov = 0.
sum_area = 0.
wa_variedad-varied = wa_tabcont-carac04.
ENDAT.

IF wa_tabcont-carac18 EQ 'PROPIA'.
sum_prop = sum_prop + wa_tabcont-carac02.
ELSEIF wa_tabcont-carac18 EQ 'ARRENDAMIENTO'.
sum_arre = sum_arre + wa_tabcont-carac02.
ELSEIF wa_tabcont-carac18 EQ 'CUENTAS EN PARTICIPACION'.
sum_part = sum_part + wa_tabcont-carac02.
ELSE.
sum_prov = sum_prov + wa_tabcont-carac02.
ENDIF.

AT END OF carac04.
wa_variedad-propia = sum_prop.
wa_variedad-arrend = sum_arre.
wa_variedad-partic = sum_part.
wa_variedad-mdirect = sum_prop + sum_arre + sum_part.
wa_variedad-proveed = sum_prov.
wa_variedad-tot_an = wa_variedad-mdirect + wa_variedad-proveed.
APPEND wa_variedad TO it_variedad.
ENDAT.
ENDLOOP.
****************************************************

La tabla interna it_tabcont tiene datos de esta manera:
--------------------------------------------------------------
Linea..Objeto.........CARAC02...CARAC04........CARAC18
--------------------------------------------------------------
1.......1044-040.......6.58.......CC 84-75.......ARRENDAMIENTO
2.......2050-052.......2.00.......CC 84-75.......ARRENDAMIENTO
3.......1043-011.......1.32.......CC 84-75.......ARRENDAMIENTO
4.......1043-010.......1.16.......CC 84-75.......ARRENDAMIENTO
5.......1040-011.......1.16.......CC 90-00.......PROPIA
6.......1040-010.......6.16.......CC 90-00.......PROPIA
7.......2286-112.......8.63.......CC 90-00.......PROVEEDORES
8.......2053-010.......1.48.......CC 70-02.......ARRENDAMIENTO
***************************************************


El problema esta en que al leer el primer registro, el carac04 = CC 84-75. Por ser el primero, obviamente entra en el AT NEW carac04. Pero, tambien esta entrando al AT END OF carac04 y NO deberia entrar ya que el siguiente registro a leer tendria el mismo valor CC 84-75.


Lo que quiero al final es obtener para cada CARAC04, cual es el valor total (CARAC02) para ARRENDAMIENTO, para PROPIA y para PROVEEDORES


Ojala me puedan ayudar ya que he trabajado con los AT NEW y AT END OF en casos similares pero solo hasta ahora no me sigue la logica.


Gracias!
Responder Con Cita
  #2  
Viejo 03/06/10, 18:22:53
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
Para esos comportamientos extraños, es mejor seguir la recomendación que está la misma ayuda de AT.

Y es que los campos por cuales usas AT deberían ser los primeros de tu tabla interna.
Responder Con Cita
  #3  
Viejo 03/06/10, 18:59:09
andresf02 andresf02 is offline
Senior Member
 
Fecha de Ingreso: nov 2009
Mensajes: 190
Mauricio,

Muchisimas gracias por "darme la luz" en este problema, efectivamente, era como tu decias, al no ser la columna CARAC04 la pirmera de la tabla, genera comportamientos extraños en el AT NEW y AT END.

Apenas la deje como la primera columna, funcionó perfecto.



De nuevo gracias!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 16:02:58.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web