TOTALIZAR UNA TABLA

Post Reply
User avatar
LuisPonce
Posts: 190
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU
Contact:

TOTALIZAR UNA TABLA

Post by LuisPonce »

Hola Amigos

Necesito totalizar una tabla ya ordenada por un campo fecha que tiene el nombre "DIA", el tema es que la cantidad de campos numericos que deseo totalizar es variable, pueden ser varias columnas llamadas "CANTIDAD_X" ejemplo: FIELDS CANTIDAD_A, CANTIDAD_B, CANTIDAD_C, CANTIDAD_D........, entonces esto lo defino con una Array aCampos:={"CANTIDAD_A","CANTIDAD_B", "CANTIDAD_C", "CANTIDAD_D"} de la siguiente forma NO funciona:

TOTAL TO &cFile ON DIA FIELDS aCampos
TOTAL TO &cFile ON DIA FIELDS &aCampos
TOTAL TO &cFile ON DIA FIELDS &aCampos.

Unicamente funciona asi:

TOTAL TO &cFile ON DIA FIELDS CANTIDAD_A,CANTIDAD_B, CANTIDAD_C, CANTIDAD_D

Me da el resultado que espero, la suma de CANTIDAD_X por DIA, una linea por dia.

dia 1: 25 10 10 3
dia 2: 10 10 15 3
dia 3: 40 20 15 3
dia 4: 25 10 20 3

Pero como la cantidad de campos es variable, cuando no existe uno de los "CANTIDAD_X" me da error

entonces encontre lo siguiente:

__dbtotal(cFile,"DIA",aCampos )

probe tambien

__dbtotal(cFile,DIA,aCampos )
__dbtotal(cFile,"DIA",aCampos )
__dbtotal(cFile,"FIELDNAME->DIA",aCampos )
__dbtotal(cFile,FIELDNAME->DIA,aCampos )

cKey:="DIA"

__dbtotal(cFile,cKey,aCampos )
__dbtotal(cFile,&cKey,aCampos )
__dbtotal(cFile,&cKey.,aCampos )

y me da un resultado inesperado, las columnas de aCampos totalizadas pero todo agrupado en el primer DIA, una sola linea

dia 1: 100 50 60 12

Mi pregunta es:

Como puedo darle parametros al comando SET TOTAL o cual es la sintaxis correcta de __DbTotal()

Gracias
Luis Ponce
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: TOTALIZAR UNA TABLA

Post by karinha »

João Santos - São Paulo - Brasil
xmanuel
Posts: 613
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

Re: TOTALIZAR UNA TABLA

Post by xmanuel »

Luis puedes publicar la estructura de la dbf donde guardas la información?
______________________________________________________________________________
Sevilla - Andalucía
User avatar
LuisPonce
Posts: 190
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU
Contact:

Re: TOTALIZAR UNA TABLA

Post by LuisPonce »

Gracias Karinha, Gracias Manuel

En realidad es una estructura variable, la base es esta:

CARGO,Carácter,2
TIKET,Carácter,11
DIA,Fecha,8
CANTIDAD,Númerico,12,4
IMPORTE,Númerico,12,2
BSEIMP,Númerico,12,2
IGV,Númerico,12,2
TURNO,Carácter,1

a esta estructura, antes de ser creada la tabla, agrego _

CANTIDAD_A,Númerico,12,4
CANTIDAD_B,Númerico,12,4
CANTIDAD_C,Númerico,12,4
OTROS,Númerico,12,4

dependiendo del tipo de producto vendido

es por eso que _ a totalizar puede ser uno o varios (CANTIDAD_A,CANTIDAD_B....)

con el comando TOTAL ON ..... no puedo hacerlo, pero al parecer con el __DbTotal() si es posible, x que puedo pasarle parametros.
Luis Ponce
User avatar
LuisPonce
Posts: 190
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU
Contact:

Re: TOTALIZAR UNA TABLA

Post by LuisPonce »

Gracias por los los aportes.

Encontré la solución y la comparto:

__dbtotal(cFile,ArchivoOrdenado->(FIELDNAME(3)),aCampos )

Tomé el campo "DIA", señalando el área y por su posición en la estructura, y Funciono!!!!

Obtuve el resultado que esperaba.

dia 1: 25 10 10 3
dia 2: 10 10 15 3
dia 3: 40 20 15 3
dia 4: 25 10 20 3

TOTAL: 100 50 60 12
Luis Ponce
Post Reply