FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TOTALIZAR UNA TABLA
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
TOTALIZAR UNA TABLA
Posted: Fri Mar 27, 2015 03: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
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: TOTALIZAR UNA TABLA
Posted: Fri Mar 27, 2015 06:22 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 817
Joined: Sun Jun 15, 2008 07:47 PM
Re: TOTALIZAR UNA TABLA
Posted: Sat Mar 28, 2015 12:27 PM

Luis puedes publicar la estructura de la dbf donde guardas la información?

______________________________________________________________________________

Sevilla - Andalucía
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
Re: TOTALIZAR UNA TABLA
Posted: Sun Mar 29, 2015 03: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
Posts: 196
Joined: Tue Jul 01, 2008 06:34 PM
Re: TOTALIZAR UNA TABLA
Posted: Mon Mar 30, 2015 03: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

Continue the discussion