Page 1 of 1

Refresco de Footer en xbrowse

Posted: Thu May 17, 2007 3:56 pm
by dbzap
Como se hace ?

Lo despliego... pero no puedo actualizar el dato.

Saludos y gracias de antemano.

Posted: Thu May 17, 2007 4:54 pm
by carlos vargas
Recuerdo que tuve ese inconveniente con esa, clase lo que habia que hacer es pintar nuevamente el dato. :-(, lo que yo tenia era un proc que solo hacia el pintado del footer, por ello en cada cambio que ocurria, como eliminar o agregar una fila o editarla, llamaba a ese proc.


salu2
carlos vargas

Posted: Thu May 17, 2007 5:10 pm
by dbzap
Carlos
Lo hice asi, pero no me refresca, tienes algo de codigo para comparar ?
Gracias

Posted: Thu May 17, 2007 7:41 pm
by Antonio Linares
Julio,

Has probado con oBrowse:Refresh() ?

Posted: Thu May 17, 2007 8:05 pm
by dbzap
Maestro.
Eso fue lo primero que hice.
Luego vinieron los codigos de bloque, luego las funciones y luego EL FORO !!

yo lo declare algo asi como

oCol[1]:cFooter := Tran( nTotal, "9999,999,999" )

Saludos

PD: vi por ahi un "bStrFoot" ..... pero en la clase no existia...

Posted: Thu May 17, 2007 8:24 pm
by Antonio Linares
Julio,

Prueba con:

oCol[1]:cFooter := Tran( nTotal, "9999,999,999" )

oCol[1]:PaintFooter( oBrowse:nHeight - oBrowse:nFooterHeight, nil, oBrowse:nFooterHeight - 3 )

Posted: Thu May 17, 2007 8:26 pm
by AOKISANTOS
Julio, talvez te ajude!


uBrw:aCols[03]:cHeader := "Valor"
uBrw:aCols[03]:nWidth := 70
uBrw:aCols[03]:cEditPicture := "@E 999,999.99"
uBrw:aCols[03]:nDataStrAlign := AL_RIGHT
uBrw:aCols[03]:nHeadStrAlign := AL_RIGHT
uBrw:aCols[03]:nFootStrAlign := AL_RIGHT
uBrw:aCols[03]:bOnPostEdit := {|o,x| bStruc[uBrw:nArrayAt, 3 ] := x }
uBrw:aCols[03]:bStrData := {|| TRANS(bStruc[uBrw:nArrayAt, 3 ] ,"@E 999,999.99")}
uBrw:aCols[03]:bEditValue := {|| bStruc[uBrw:nArrayAt, 3 ] }
uBrw:aCols[03]:nEditType := EDIT_GET
uBrw:aCols[03]:bEditValid := {|oGet| Validando( oGet,uBrw ) }

**************************************
STATIC FUNCTION Validando( oGet,uBrw )
**************************************
local lValRet:=.T.,X,valtota1:=0,valtota2:=0
local bValid := oGet:bValid
local nVal := oGet:Value()
oGet:bValid := nil
oGet:bValid:=bValid
FOR X:=1 TO LEN(bStruc)
valtota1+=round(bStruc[x][3],2)
valtota2+=round(bStruc[x][6],2)
NEXT
uBrw:aCols[3]:cFooter:= trans(valtota1,"@E 999,999.99")
uBrw:aCols[6]:cFooter:= trans(valtota2,"@E 999,999.99")
uBrw:refresh()
RETURN lValRet

Fique com Deus
Aoki

Posted: Thu May 17, 2007 9:47 pm
by carlos vargas

Code: Select all

procedure Edit(lNuevo)
   ...
   BrwUpdFoot()
   oBrw:refresh()
return

Code: Select all

procedure BrwUpdFoot()
oBrw:aCol3]:cFooter:= transform(nTotal,"@E 999,999.99") 
return
aca tanto oBrw, como nTotal son variables accesibles desde todos los proc.

salu2
carlos vargas

Posted: Thu May 17, 2007 9:57 pm
by dbzap
ok, gracias
Lo revisare
Saludos

Posted: Fri May 18, 2007 5:32 pm
by dbzap
Funcionó como me señalaste.
Gracias.