xBrowse -> Footers Calculo de totales de esa columna??

xBrowse -> Footers Calculo de totales de esa columna??

Postby Ruben D. Fernandez » Fri Sep 28, 2007 1:12 am

Amigos:

Disculpen otra vez la lata con xBrowse...
necesito saber como calculo el total de cada columna de un xBrowse
para colocarla en los footers.

Muchas gracias.


Ruben Fernandez.
Ruben D. Fernandez
 
Posts: 189
Joined: Sun Jul 08, 2007 1:46 am
Location: Uruguay

Postby JoseLuis » Fri Sep 28, 2007 6:35 am

En este listbox, pongo los nombres de los conductores, la suma de los importes mensuales en cada columna, y en los footers, los totales por mes.
A ver si te sirve

Code: Select all  Expand view  RUN
  @ 30,0 LISTBOX oLbx FIELDS (aAlias[26])->Codigo,;
                               (aAlias[26])->Nombre,;
                               transform(((aAlias[26])->CO01+(aAlias[26])->CR01),Publicas:cPic),;
                               transform(((aAlias[26])->CO02+(aAlias[26])->CR02),Publicas:cPic),;
                transform(((aAlias[26])->CO03+(aAlias[26])->CR03),Publicas:cPic),;
                transform(((aAlias[26])->CO04+(aAlias[26])->CR04),Publicas:cPic),;
                transform(((aAlias[26])->CO05+(aAlias[26])->CR05),Publicas:cPic),;
                transform(((aAlias[26])->CO06+(aAlias[26])->CR06),Publicas:cPic),;
                transform(((aAlias[26])->CO07+(aAlias[26])->CR07),Publicas:cPic),;
                transform(((aAlias[26])->CO08+(aAlias[26])->CR08),Publicas:cPic),;
                transform(((aAlias[26])->CO09+(aAlias[26])->CR09),Publicas:cPic),;
                transform(((aAlias[26])->CO10+(aAlias[26])->CR10),Publicas:cPic),;
                               transform(((aAlias[26])->CO11+(aAlias[26])->CR11),Publicas:cPic),;
                transform(((aAlias[26])->CO12+(aAlias[26])->CR12),Publicas:cPic),;
                transform(((aAlias[26])->Tot),Publicas:cPic);
                               HEADER " Código ","Nombre"," Enero "," Febrero "," Marzo "," Abril "," Mayo "," Junio "," Julio "," Agosto "," Sepbre "," Octubre "," Novbre "," Dicbre "," Total ";
                               FIELDSIZES 35,200,52,52,52,52,52,52,52,52,52,52,52,52,52;
                               ALIAS aAlias[26];
                CURSOR oCurdedo;
                COLOR CLR_BLACK, nRGB(226,226,208) ;
                ON LEFT DBLCLICK  (iif(!(aAlias[26])->(eof()) .and. Publicas:cAccesoM,(cTitulo:="Modificación de Conductores ",Enconduc(cTitulo,"M",aAlias,aoDbf),oLbx:Refresh()),.T.));
                OF oDlg;
                PIXEL
   oLbx:nLineStyle := 1
   oLbx:nClrBackHead := RGB(248,191,36)
   oLbx:lDrawFooters:= .T.
   oLbx:aFooters := {"", "Total por Mes.....", Trans(Publicas:tMes[1],Publicas:cPic ), Trans(Publicas:tMes[2],Publicas:cPic ), Trans(Publicas:tMes[3],Publicas:cPic ), Trans(Publicas:tMes[4],Publicas:cPic ),;
                    Trans(Publicas:tMes[5],Publicas:cPic ), Trans(Publicas:tMes[6],Publicas:cPic ), Trans(Publicas:tMes[7],Publicas:cPic ), Trans(Publicas:tMes[8],Publicas:cPic ), ;
          Trans(Publicas:tMes[9],Publicas:cPic ), Trans(Publicas:tMes[10],Publicas:cPic ), Trans(Publicas:tMes[11],Publicas:cPic ), Trans(Publicas:tMes[12],Publicas:cPic ),Trans(Publicas:ntotal,Publicas:cPic )}
   oLbx:bKeyChar := { | nKey, nFlags | ;
              iif (nKey == 43 .or. nKey == 65 .or. nKey == 97,;
                          (Enconduc(cTitulo,"A",aAlias,aoDbf), oLbx:Refresh()), ),;
              iif (nKey == 66 .or. nKey == 98,;
                          (Borrar(aAlias[26],(aAlias[26])->nombre,'Conductor nombre: '),oLbx:UpStable(), oLbx:Refresh()), ),;
              iif (nKey == 77 .or. nKey == 109,  ;
                          (Enconduc(cTitulo,"M",aAlias,aoDbf),oLbx:Refresh() ), ) }
   oLbx:nClrPane:={||iIF((oLbx:cAlias)->(OrdKeyNo())%2==0,nRGB(242,247,252),nRGB(226,226,208))}
   oLbx:nClrfBack := RGB(196,229,244)//(3,187,85)
   oLbx:aJustify := {.T.,.F.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.}
   oLbx:aHJustify := {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}
   OlBX:nFooterStyle:=11


Saludos

Jose Luis
JoseLuis
 
Posts: 428
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby Ruben D. Fernandez » Fri Sep 28, 2007 12:44 pm

Gracias Jose Luis...

Pero... lo quiero hacer con xbrowse.

Saludos

Ruben Fernandez.
Ruben D. Fernandez
 
Posts: 189
Joined: Sun Jul 08, 2007 1:46 am
Location: Uruguay

Postby Biel EA6DD » Fri Sep 28, 2007 1:40 pm

Con xBrowse, cFooter es un valor estatico, al igual que cHeader.

Yo añadi un data a la clase TXBrwColumn, el data bStrFooter, que contiene un codeblock que nos debe retornar lo que queremos visualizar en el pie de la columna.

Hay que modificar el metodo PaintFooter, y en la linea donde asigna valor a cFooter cambiarla por la siguiente.

Code: Select all  Expand view  RUN
cFooter := IF(::bStrFooter==NIL,::cFooter,Eval( ::bStrFooter ))  //Biel


El codigo para definir la columna
Code: Select all  Expand view  RUN
      oCol:=oBrw:AddCol()
      oCol:bStrData:= {|| oDbf:Campo }
      oCol:cHeader := 'Cabecera'
      oCol:bStrFooter:={||VisTot()}

Espero te sirva por lo menos como aproximacion para hacer lo que quieres.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Postby Ruben D. Fernandez » Fri Sep 28, 2007 3:12 pm

Gracias Biel...


Quedo trabajando en ello.

Saludos

Ruben Fernandez.
Ruben D. Fernandez
 
Posts: 189
Joined: Sun Jul 08, 2007 1:46 am
Location: Uruguay

Postby pymsoft » Mon Oct 15, 2007 2:41 pm

Buenisimo, se podrá implementar en la clase original de FWH? asi no tenemos que modificarla en cada actualizacion.


Gracias
Pedro Gonzalez
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Postby Biel EA6DD » Mon Oct 15, 2007 2:51 pm

Contento de que os haya servido.
Como todos mis aportes al foro, esta a disposicón de Antonio para ser incluido en la clase original.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Postby pymsoft » Mon Oct 15, 2007 2:51 pm

El tema es que usando una ventana child, los footers quedan muy abajo y no se ven. Alguna idea de como subirlos?
Pedro Gonzalez
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Postby pymsoft » Mon Oct 15, 2007 3:06 pm

Ejemplo en la segunda ventana que está debajo:
Los footers estàn, pero no se ven...

Image
By pymsoft at 2007-10-15
Pedro Gonzalez
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Postby Biel EA6DD » Mon Oct 15, 2007 3:17 pm

Hola Pedro,
No he podido revisar el codigo fuente, me pillas que me estoy yendo de vacaciones unos dias a Barcelona. De todas formas, los footer, cuando hay valor en ellos, siempre debieran estar visibles.
Image
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Postby pymsoft » Mon Oct 15, 2007 3:50 pm

Gracias por tu tiempo, veo que a ti te funciona, se ve que hago algo mal.


Saludos y buenas vacaciones.
Pedro Gonzalez
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Postby pymsoft » Mon Oct 15, 2007 4:03 pm

Bueno, ahora funciona.

lo unico que hice, fue poner uno de los footers como texto fijo

oCol:cFooter := "Totali:"

y ahora muestra todos.
Pedro Gonzalez
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Postby pymsoft » Thu Nov 22, 2007 1:59 pm

Antonio,


Se podrán implementar las modificaciones hechas por Biel para xbrowse, asi no hay que modificar la clase cada vez que actualizamos?


gracias


P.D. Hice las modificaciones en la xbrowse incluida en FWH0711 para poder poner los footers, pero no me muestra el estilo 2007, por lo que supongo que lo que descargué es anterior a las librerias que me enviaste mas tarde.
Pedro Gonzalez
User avatar
pymsoft
 
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia

Postby Antonio Linares » Thu Nov 22, 2007 8:31 pm

Biel,

> Yo añadi un data a la clase TXBrwColumn, el data bStrFooter, que contiene un codeblock que nos debe retornar lo que queremos visualizar en el pie de la columna.

Implementado como bFooter, gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 103 guests