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 29/06/17, 21:15:01
Cyane Cyane is offline
Junior Member
 
Fecha de Ingreso: jun 2017
Mensajes: 1
Sumar campo de una misma fila

Tengo una tabla interna tipo field symbol, y quiero sumar los campos de una misma fila.

total l campo1 l campo2 l campo3
10 l 3 l 5 l 2
15 l 4 l 8 l 3
7 l 4 l 1 l 2

Un saludo y gracias
__________________
blue
Responder Con Cita
  #2  
Viejo 30/06/17, 07:53:37
mialma mialma is offline
Junior Member
 
Fecha de Ingreso: mar 2008
Mensajes: 19
Ejemplo

Ahi va un ejemplo de como puedes hacerlo:

REPORT suma.

types : begin of tipo,
total type i,
campo1 type i,
campo2 type i,
campo3 type i,
end of tipo.

data linea type tipo.
data tabla type table of tipo.

field-symbols <fst_tabla> type any table.
field-symbols <fsl_tabla> type any.
field-symbols <total> type any.
field-symbols <numero> type any .



linea-campo1 = 3.
linea-campo2 = 5.
linea-campo3 = 2.
append linea to tabla.

linea-campo1 = 4.
linea-campo2 = 8.
linea-campo3 = 3.
append linea to tabla.

linea-campo1 = 4.
linea-campo2 = 1.
linea-campo3 = 2.
append linea to tabla.

assign tabla[] to <fst_tabla>.

loop at <fst_tabla> assigning <fsl_tabla>.
assign ('<fsl_tabla>-total') to <total>.
assign ('<fsl_tabla>-campo1') to <numero>.
move <numero> to <total> .
assign ('<fsl_tabla>-campo2') to <numero>.
<total> = <total> + <numero> .
assign ('<fsl_tabla>-campo3') to <numero>.
<total> = <total> + <numero> .
endloop.

loop at <fst_tabla> assigning <fsl_tabla>.
assign ('<fsl_tabla>-total') to <total>.
write :/ <total>.
endloop.
Responder Con Cita
  #3  
Viejo 08/08/17, 21:58:59
Avatar de MetalGod
MetalGod MetalGod is offline
Senior Member
 
Fecha de Ingreso: jun 2012
Localización: Tandil - Argentina
Mensajes: 110
Hola, buenas tardes.

Estoy buscando exactamente lo mismo.

La unica diferencia es que las columas se arman de forma dinamica, asique no se de antemano que columnas son las que tengo que sumar, asique por ejemplo cuando haces

<fsl_tabla>-campo2

donde dice campo 2, deberi hacerlo dinamico, armando ese nombre en tiempo de ejecucion.

Esto es porque en la pantalla de seleccion me indican un rango que representa los meses por ejemlo del 3 al 6, solo tengo que dejar la sumatoria de los meses 1, 2, 3, 4, 5 y 6, o se si se entiende. Si o bueno, su tulucion me re sirve igual, aunque tenga que hacer 12 asignaciones, pero solo van a ser validas las de los meses que correspondan.

Muchas gracias.
Responder Con Cita
  #4  
Viejo 09/08/17, 08:13:32
mialma mialma is offline
Junior Member
 
Fecha de Ingreso: mar 2008
Mensajes: 19
Cuando...

Buenas,

Si no sabes el nombre del campo previamente, cuando haces el assign puedes hacer algo tal que :

data : lv_campo(80), lv_nom_campo(40).
lv_nom_campo = 'NomCampo'.

concatenate '<fsl_tabla>-' lv_nom_campo to lv_campo.
assign (lv_campo) to <campo1>.

Salu2
Responder Con Cita
  #5  
Viejo 10/08/17, 19:17:11
Avatar de MetalGod
MetalGod MetalGod is offline
Senior Member
 
Fecha de Ingreso: jun 2012
Localización: Tandil - Argentina
Mensajes: 110
Gracias, justo lo habia resuelto de esa manera.

Muchas 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 20:43:30.


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