ACTUALIZAR VALOR DE FOOTER EN TSBROWSE

ACTUALIZAR VALOR DE FOOTER EN TSBROWSE

Postby EASYSOFT » Tue May 20, 2008 11:47 pm

Buenas noches amigos de foro

Quiero actualizar el footer de una columna que nunca edito es decir no puedo utilizar el preedit ni posedit, cargo el vector cada que presiono un boton y en ese momento quiero que se actualizar el footer e intentado de todo


ADD COLUMN TO BROWSE oBrw ARRAY ELEMENT 5 PICT "99,999,999.99" ;
HEADER oemtoansi("Saldo") WIDTH 100 ;
ALIGN DT_CENTER ;
MOVE DT_MOVE_DOWN;
COLORS CLR_RED,CLR_HGRAY;
FOOTER { || aSaldo += Sumasaldo( aTestData,oBrw,oDlg) }
// activando footers
oBrw:lFooting := .T.

oBrw:aColumns[ 2 ]:cFooting := "Saldo Total.."

* oBrw:Acolumns[ 5 ]:cFooting := { || LTrim( Transform( aSaldo, "#,###,###.##" ) ) }

* oBrw:aDefault := {0,0,0,0,{ || aSaldo:= Sumasaldo( aTestData,oBrw,oDlg),oBrw:DrawFooters(),0 } }

* oBrw:Acolumns[ 5 ]:cFooting := { || LTrim( Transform( aSaldo, "#,###,###.##" ) ),oBrw:DrawFooters() }

* FOOTER { | uVal | aSaldo += ( uVal - aSaldo ),Sumasaldo( aTestData,oBrw,oDlg) }

* FOOTER { || Ltrim( Str( aSaldo,9,2 )) }
Saludos
Oscar
Fwh 10.4, bcc55
EASYSOFT
 
Posts: 189
Joined: Sat Oct 22, 2005 1:17 pm
Location: Quito - Ecuador

Postby Joel Andujo » Wed May 21, 2008 12:15 am

Oscar intenta :

*--// Defino Footer
oBrw:aColumns[3]:cFooting:={ || tran( op:nTotCap,'9999,999.99') }

*--// Modifico variable y pinto de nuevo el Footer
op:nTotCap:=Suma()
oBrw4:DrawFooters()

Espero te sirva, saludos
Joel Andujo[/url]
User avatar
Joel Andujo
 
Posts: 131
Joined: Fri Oct 07, 2005 3:14 pm
Location: Cd. Obregón, Sonora, México

Postby EASYSOFT » Mon May 26, 2008 10:19 pm

Joel

Primero gracias por tu respuesta, lo he probado pero no me funciona lo estoy haciedo de esta manera.


ADD COLUMN TO BROWSE oBrw ARRAY ELEMENT 5 PICT "99,999,999.99" ;
HEADER oemtoansi("Saldo") WIDTH 100 ;
ALIGN DT_CENTER ;
MOVE DT_MOVE_DOWN;
COLORS CLR_RED,CLR_HGRAY
// activando footers
oBrw:lFooting := .T.
*--// Defino Footer
oBrw:aColumns[5]:cFooting:={ || tran( aSaldo,'9999,999.99') }

*--// Modifico variable y pinto de nuevo el Footer
*aSaldo := Sumasaldo( aTestData,Obrw,oDlg)
*oBrw:DrawFooters()



y el draw en la funcion por que en el browse de daun error


FUNCTION carga_mes(manio,oBrwp,aTestData,mcuenta)
local SetArray,j,mesdsc,mmes,asaldo

aTestData:= {}
DBSELECTAREA("tmeses")
ordSetfocus("imeses")
dbgotop()

DBSELECTAREA("ttotmens")
ordSetfocus("itotmen1")
dbgotop()
oBrwp:SetArray( aTestdata )
FOR J = 0 to 12
mmes := RTRIM(LTRIM(str(j,2)))
IF len(mmes) = 1
mmes := '0'+mmes
endif
DBSELECTAREA("tmeses")
ordSetfocus("imeses")
dbgotop()
dbseek(mmes)
mesdsc := tmeses->mesdesc
DBSELECTAREA("ttotmens")
ordSetfocus("itotmen1")
dbgotop()
dbseek(space(4)+mcuenta+manio+mmes)
aAdd(aTestdata,{mmes,mesdsc,ttotmens->tddebe,ttotmens->tdhaber,ttotmens->tddebe-ttotmens->tdhaber})
NEXT
aSaldo := 0.00
AEval( aTestData, {|aItem| asaldo += aItem[5] } )
*aSaldo := Sumasaldo( aTestData,Obrwp,oDlg)
?? aSaldo
oBrwp:DrawFooters()
oBrwp:SetArray( aTestdata )
oBrwp:ResetBarPos()
oBrwp:Refresh()

return nil


Si algo esta mal o hay otra manera agradeceria tu ayuda
Saludos
Oscar
Fwh 10.4, bcc55
EASYSOFT
 
Posts: 189
Joined: Sat Oct 22, 2005 1:17 pm
Location: Quito - Ecuador

Re: ACTUALIZAR VALOR DE FOOTER EN TSBROWSE

Postby mmercado » Tue May 27, 2008 2:12 am

EASYSOFT wrote:Quiero actualizar el footer de una columna que nunca edito es decir no puedo utilizar el preedit ni posedit
Puedes actualizar el footer de una columna desde la edición de otra(s), sobre todo si la edición de dicha(s) columna(s) afecta el valor del footer de la columna en cuestión.

EASYSOFT wrote: cargo el vector cada que presiono un boton y en ese momento quiero que se actualizar el footer e intentado de todo
También puedes actualizar el valor del footer desde una función ajena al browse, solamente tendrás que refrescar el footer con oBrw:DrawFooters() o con oBrw:Refresh()

EASYSOFT wrote:* oBrw:aDefault := {0,0,0,0,{ || aSaldo:= Sumasaldo( aTestData,oBrw,oDlg),oBrw:DrawFooters(),0 } }

* oBrw:Acolumns[ 5 ]:cFooting := { || LTrim( Transform( aSaldo, "#,###,###.##" ) ),oBrw:DrawFooters() }
El codeblock que asigna el valor al footer, debe devolver el dato correcto. Ya que estoy viendo que el codeblock que defines devuelve una referencia al mismo browse (oBrw:DrawFooters), quita esa instrucción del codeblock y llamala externamente aprovechando algún otro evento, preferentemente desde la(s) funcion(es) que modifica(n) el valor del footer.

Un abrazao.

Manuel Mercado.
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Postby EASYSOFT » Tue May 27, 2008 9:48 pm

Listo Funciono



Gracias Joel

Gracias Sr. Mercado
Saludos
Oscar
Fwh 10.4, bcc55
EASYSOFT
 
Posts: 189
Joined: Sat Oct 22, 2005 1:17 pm
Location: Quito - Ecuador


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 49 guests