FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour wbrowse suma de columas
Posts: 189
Joined: Sun Jul 08, 2007 01:46 AM
wbrowse suma de columas
Posted: Sat Aug 04, 2007 11:05 PM

Amigos:

Es posible con el browse de HDC sumar una columna y colocar
el resultado en el footer?, que cambie segun se inserta o borran registros

Muchas gracias
Saludos

Ruben Fernandez

Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
wbrowse suma de columas
Posted: Sun Aug 05, 2007 02:11 AM

Ruben, por supuesto que se puede, mira aqui no es captura, pero se hace igual..

http://hyperupload.com/download/02c9ddd ... s.JPG.html
salu2
paco

____________________

Paco
Posts: 189
Joined: Sun Jul 08, 2007 01:46 AM
wbrowse suma de columas
Posted: Sun Aug 05, 2007 12:32 PM

Gracias Paco:

El asunto es como se hace...

Saludos y Gracias

Ruben Fernandez.,

Posts: 840
Joined: Thu Oct 13, 2005 07:05 PM
wbrowse suma de columas
Posted: Sun Aug 05, 2007 02:55 PM
Es muy simple:

Un "footer" es un arreglo de cadenas de caracteres:

oBrw:aFooters := {"Sumas",TRANSFORM(suma(),"99999"), .....}

La magia consiste en recalcular los footers cada vez que haces una insercion o un borrado en la tabla.


La cosa sale mas rapido si haces bloques de codigo en lo footers:

oLbx2:aFooters := {"Sumas:",;
                              Transform(EVAL({|| SumaSal(aSaldos,2,oLbx2)}),"999,999,999.99"),;
                              Transform(EVAL({|| SumaSal(aSaldos,3,oLbx2)}),"999,999,999.99"),;
                              Transform(EVAL({|| SumaSal(aSaldos,4,oLbx2)}),"999,999,999.99"),;
                              Transform(EVAL({|| SumaSal(aSaldos,5,oLbx2)}),"999,999,999.99")}


y la funcion SumaSal():

FUNCTION SumaSal(aArreglo,nCol,oBrw)
   LOCAL nSuma := 0
   AEVAL(aArreglo,{|x,y| nSuma += EVAL(x[nCol])},1,oBrw:nAt)
RETURN (nSuma)


Y listo, mas simple ni hacer limonada
Saludos

R.F.
Posts: 189
Joined: Sun Jul 08, 2007 01:46 AM
wbrowse suma de columas
Posted: Sun Aug 05, 2007 03:14 PM

Gracias Maestro Rene

Saludos

Ruben Fernandez.

Continue the discussion