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 02/04/09, 19:49:25
Avatar de stormshadow
stormshadow stormshadow is offline
Senior Member
 
Fecha de Ingreso: jun 2008
Mensajes: 117
Sentencia collect

Buen dia foro, bueno pues me gustaría saber si alguién me podría explicar como se usa esta sentencia, el collect, lo que pasa es que necesito sumar unas cantidades de una tabla interna, y le he intentado de varias maneras y no me suma
Bueno pues desde ya muchas gracias.
__________________
"Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein
Responder Con Cita
  #2  
Viejo 02/04/09, 19:57:23
zonanet zonanet is offline
Senior Member
 
Fecha de Ingreso: mar 2007
Localización: Durango, Dgo. México
Mensajes: 195
puedes intentar de esta manera:

loop at tabla_interna.
collect tabla_interna.
endloop.


pero para que funcione tienes que tener en cuenta que la tabla interna tiene que estar ordenada y va a sumar SOLO los registros que tengan campos char iguales ejemplo

casa 150 x
casa 300 x
casa 200 y

te da como resultado
casa 450 x
casa 300 y


espero que te sirva esta información.


Saludos
Responder Con Cita
  #3  
Viejo 02/04/09, 20:09:13
Avatar de stormshadow
stormshadow stormshadow is offline
Senior Member
 
Fecha de Ingreso: jun 2008
Mensajes: 117
si hermano si me sirvió, thanks, oye pero algo que ví es, debugueando la suma de el total de la columna que yo quiero, la hace en el primer indice, o sea va iterando mi tabla y toda la suma la va haciendo en el indice que te menciono, si yo quiziera sacarlo a otra variable, como lo podría hacer? o si quiziera sacar esa suma de que manera lo haría?
__________________
"Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein
Responder Con Cita
  #4  
Viejo 02/04/09, 20:14:38
zonanet zonanet is offline
Senior Member
 
Fecha de Ingreso: mar 2007
Localización: Durango, Dgo. México
Mensajes: 195
puede ser algo así:

loop at tabla_interna into work_area.
variable = varible + work_area-campo.
endloop.

variable2 = variable.
free variable.


lo que haces aquí es sumar el campo que quieres y pasarlo a otra variable, lo del free es porque cada vez que se ejecute ese loop (por un enter por ejemplo) te lo incrementa, así te aseguras de sólo obtener la suma de los registros que tiene tu tabla interna.
Responder Con Cita
  #5  
Viejo 02/04/09, 20:24:40
Avatar de stormshadow
stormshadow stormshadow is offline
Senior Member
 
Fecha de Ingreso: jun 2008
Mensajes: 117
Pero a final de cuentas, allí ya no entra el collect o si? eso ya sería como un contador o no? lo que pasa es que no quiero utilizar un contador
__________________
"Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein
Responder Con Cita
  #6  
Viejo 03/04/09, 00:16:11
Belerophonte Belerophonte is offline
Junior Member
 
Fecha de Ingreso: mar 2007
Mensajes: 11
Smile Collect

El collect funciona no con un campo "clave", pero debes tener la precaucion de:

- poner todos los campos "clave" los primeros de la tabla interna, p ej: el nº de factura, la fecha, etc y los ultimos campos de la tabla interna sería los campos a sumarizar.

- hacer un sort de la tabla interna antes de recorrerla y hacer el collect. debes ordenar los registros de la tabla interna con el mismo patron que quieras que luego te sumarize los campos.

es muy engorroso y muy caprichoso, si te sirve podrias sumarizar desde el SELECT con la sentencia SUM al pasarlo a tu tabla interna


SELECT CONNID COUNT( * ) SUM( LUGGWEIGHT )
INTO (CONNID, COUNT, SUM)
FROM SBOOK
WHERE
CARRID = 'LH ' AND
FLDATE = '19950228'
GROUP BY CONNID.
WRITE: / CONNID, COUNT, SUM, AVG.
ENDSELECT.

Suerte!!!
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 20:43:55.


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