TOTALIZAR UNA TABLA

TOTALIZAR UNA TABLA

Postby LuisPonce » Fri Mar 27, 2015 3:36 pm

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
LuisPonce
 
Posts: 192
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU

Re: TOTALIZAR UNA TABLA

Postby karinha » Fri Mar 27, 2015 6:22 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7351
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: TOTALIZAR UNA TABLA

Postby xmanuel » Sat Mar 28, 2015 12:27 pm

Luis puedes publicar la estructura de la dbf donde guardas la información?
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 756
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: TOTALIZAR UNA TABLA

Postby LuisPonce » Sun Mar 29, 2015 3:47 am

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 algunos campos

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 los campos 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: 192
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU

Re: TOTALIZAR UNA TABLA

Postby LuisPonce » Mon Mar 30, 2015 3:11 pm

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
User avatar
LuisPonce
 
Posts: 192
Joined: Tue Jul 01, 2008 6:34 pm
Location: PERU


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 37 guests