Footer xBrowse
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Footer xBrowse
Hola foro,
Quiero usar AGGR_COUNT para totalizar conteo en el footer de un xbrowse conforme al valor en mi arreglo, pero no doy como totalizar,
agrego una imagen de como quiero que quede, necesito contar unicamente las celdas con valor 1,2 y 4 y poder mostrar en el footer,
agrego una imagen de como quiero que sea,
http://www.subirimagenes.net/i/140121051741111303.jpg
gracias
saludos
Quiero usar AGGR_COUNT para totalizar conteo en el footer de un xbrowse conforme al valor en mi arreglo, pero no doy como totalizar,
agrego una imagen de como quiero que quede, necesito contar unicamente las celdas con valor 1,2 y 4 y poder mostrar en el footer,
agrego una imagen de como quiero que sea,
http://www.subirimagenes.net/i/140121051741111303.jpg
gracias
saludos
____________________
Paco
Paco
Re: Footer xBrowse
Paco en la versión de septiembre http://forums.fivetechsupport.com/viewt ... on#p119856 se agrego una nueva data "bSumCondition", me parece que por ahi van los tiros.
Trate de hacerlo funcionar pero me tira error.
Esto es lo que tengo hasta ahora:
Algo estoy haciendo mal pero todavía no lo registro.
Sigo intentando.
Abrazo.
Miguel
Trate de hacerlo funcionar pero me tira error.
Esto es lo que tengo hasta ahora:
Code: Select all
#include "FiveWin.ch"
#include "xbrowse.ch"
function main()
local oDlg, oBrw, oFont, oBold
local aDato := {}
local aHead := {"" ,"Dia 1","Dia 2","Dia 3","Dia 4","Dia 5","Dia 6","Dia 7" }
aDato:= { { "algo 1", 0 , 2 , 1 , 2 , 0 , 2 , 2 },;
{ "algo 2", 0 , 1 , 4 , 1 , 1 , 0 , 2 },;
{ "algo 3", 1 , 0 , 0 , 3 , 1 , 4 , 1 },;
{ "algo 4", 2 , 0 , 2 , 0 , 3 , 0 , 3 },;
{ "algo 5", 1 , 2 , 1 , 2 , 0 , 1 , 0 },;
{ "algo 6", 0 , 1 , 0 , 0 , 0 , 0 , 0 },;
{ "algo 7", 0 , 0 , 0 , 0 , 0 , 0 , 4 } }
DEFINE FONT oFont NAME 'TAHOMA' SIZE 0,-12
DEFINE FONT oBold NAME 'TAHOMA' SIZE 0,-12 BOLD
DEFINE DIALOG oDlg SIZE 400,300 PIXEL FONT oFont ;
TITLE 'Demo para Paco'
@ 10,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
AUTOCOLS ;
HEADERS " " , "Dia 1","Dia 2","Dia 3","Dia 4","Dia 5","Dia 6","Dia 7" ;
ARRAY aDato CELL LINES NOBORDER FASTEDIT FOOTERS
oBrw:SetArray(aDato)
AEval( oBrw:aCols, { |o| o:cEditPicture := '99', ;
o:nFooterType := AGGR_COUNT ,;
o:bSumCondition := {|| If(aDato[oBrw:aCols] == 1 .or. aDato[oBrw:aCols] == 2 .or. aDato[oBrw:aCols] == 4 , (oBrw:MakeTotals(),oBrw:RefreshFooters()) , ) } }, 2 )
oBrw:MakeTotals()
oBrw:CreateFromCode()
ACTIVATE DIALOG oDlg CENTERED
return nil
Sigo intentando.
Abrazo.
Miguel
Re: Footer xBrowse
Code: Select all
o:bSumCondition := {|| If(aDato[oBrw:aCols] == 1 .or. aDato[oBrw:aCols] == 2 .or. aDato[oBrw:aCols] == 4
A primera vista es lo que me ha parecido
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Re: Footer xBrowse
Miguel,
Este sistema es un poco viejo y lo compilo con 11.08, voy a actualizarlo para probar con una version mas nueva, pero por lo pronto, seguire haciendo otras pruebas.
Lo mas facil es crear un segundo arreglo con la condicion del primer arreglo y ponerlo en el cFooter, pero el caso es que utilizo un timer y cada minuto actualizo el array con los valors y estos pueden estar cambiando, ypense que seria menos codigo y mas rapido evaluar cada columna y que totalizara el xbrowse directamente sin tener que hacer yo la actualizacion del segundo arreglo y volver a cargar.
Seguire dandole.
Gracias Carlos y Miguel
Saludos
Este sistema es un poco viejo y lo compilo con 11.08, voy a actualizarlo para probar con una version mas nueva, pero por lo pronto, seguire haciendo otras pruebas.
Lo mas facil es crear un segundo arreglo con la condicion del primer arreglo y ponerlo en el cFooter, pero el caso es que utilizo un timer y cada minuto actualizo el array con los valors y estos pueden estar cambiando, ypense que seria menos codigo y mas rapido evaluar cada columna y que totalizara el xbrowse directamente sin tener que hacer yo la actualizacion del segundo arreglo y volver a cargar.
Seguire dandole.
Gracias Carlos y Miguel
Saludos
____________________
Paco
Paco
Re: Footer xBrowse
Si es verdad Cristobal, pero publique la ultima de las mil pruebas que hice.
Probé
y tampoco.
Para colmo no existe ningún ejemplo ni en el foro ni en Samples de Fivewin.
Igual sigo insistiendo, tiene que funcionar de alguna manera.
Gracias.
Abrazo.,
Miguel
Probé
Code: Select all
o:bSumCondition := {|| If(aDato[oBrw:nArrayAt] == 1 .or. aDato[oBrw:nArrayAt] == 2 .or. aDato[oBrw:nArrayAt] == 4
y tampoco.
Para colmo no existe ningún ejemplo ni en el foro ni en Samples de Fivewin.
Igual sigo insistiendo, tiene que funcionar de alguna manera.
Gracias.
Abrazo.,
Miguel
Re: Footer xBrowse
MiguelEl Loco wrote:Si es verdad Cristobal, pero publique la ultima de las mil pruebas que hice.
ProbéCode: Select all
o:bSumCondition := {|| If(aDato[oBrw:nArrayAt] == 1 .or. aDato[oBrw:nArrayAt] == 2 .or. aDato[oBrw:nArrayAt] == 4
y tampoco.
Para colmo no existe ningún ejemplo ni en el foro ni en Samples de Fivewin.
Igual sigo insistiendo, tiene que funcionar de alguna manera.
Gracias.
Abrazo.,
Miguel
Creo que un problema lo puedes tener en
Code: Select all
aDato[oBrw:nArrayAt] == .../...
Deberia ser, quizas, algo asi
Code: Select all
aDato[oBrw:nArrayAt][3] = ../...
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Re: Footer xBrowse
Cristobal,
creo que por ahi van los tiros, es un arreglo multi y habira que calcular con el narratat la posicion de cada row del arreglo
algo asi como : oBrw[nArrayAt,nCol] == 1 ....
Saludos
p.d. y perdon por lo de carlos, eres cristobal. se me chispotio.. jiji
creo que por ahi van los tiros, es un arreglo multi y habira que calcular con el narratat la posicion de cada row del arreglo
algo asi como : oBrw[nArrayAt,nCol] == 1 ....
Saludos
p.d. y perdon por lo de carlos, eres cristobal. se me chispotio.. jiji
____________________
Paco
Paco
Re: Footer xBrowse
Tenes razón Cristobal, que gil que soy.
Igualmente hay algo más que no engancho.
Sigo transpirando
Abrazos
Igualmente hay algo más que no engancho.
Sigo transpirando
Abrazos
Re: Footer xBrowse
Miguel, hay que tener en cuenta que al evaluar el codeblock, el primer parámetro es el valor y el segundo la columna
Es una idea, a ver si te puede servir
quizás algo asi funcione (no lo he probado)DATA bSumCondition // Maketotals aggregates if this condition is true, if codeblock is specified
// evaluated with uValue, oCol as parameters
Code: Select all
o:bSumCondition := {|uVal, oCol| If( uVal == 1 .or. uVal == 2 .or. uVal == 4 .../...
Last edited by cnavarro on Wed Jan 22, 2014 1:45 am, edited 1 time in total.
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: Footer xBrowse
FranciscoFrancisco Horta wrote:Cristobal,
creo que por ahi van los tiros, es un arreglo multi y habira que calcular con el narratat la posicion de cada row del arreglo
algo asi como : oBrw[nArrayAt,nCol] == 1 ....
Saludos
p.d. y perdon por lo de carlos, eres cristobal. se me chispotio.. jiji
No se si te he entendido bien, pero creo que no hace falta lo que comentas ya que el codeblock es una DATA de :aCols[ n ] en el que se desea obtener el total por lo que al evaluar el codeblock ya pasa la el objeto columna como 2 parametro y el valor de la posicion en el que se encuentra al recorrer el browse como 1 parametro.
Espero haberme explicado
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: Footer xBrowse
Troesma Cristobal, funciona perfecto !!!cnavarro wrote:Miguel, hay que tener en cuenta que al evaluar el codeblock, el primer parámetro es el valor y el segundo la columnaquizás algo asi funcione (no lo he probado)DATA bSumCondition // Maketotals aggregates if this condition is true, if codeblock is specified
// evaluated with uValue, oCol as parametersEs una idea, a ver si te puede servirCode: Select all
o:bSumCondition := {|uVal, oCol| If( uVal == 1 .or. uVal == 2 .or. uVal == 4 .../...
Si bien no era para mi sino para ayudar a Paco, me viene bien porque aprendi algo más. Gracias
Adjunto el ejemplo funcionando:
Code: Select all
#include "FiveWin.ch"
#include "xbrowse.ch"
function main()
local oDlg, oBrw, oFont, oBold
local aDato := {}
local aHead := {"" ,"Dia 1","Dia 2","Dia 3","Dia 4","Dia 5","Dia 6","Dia 7" }
aDato:= { { "algo 1", 0 , 2 , 1 , 2 , 0 , 2 , 2 },;
{ "algo 2", 0 , 1 , 4 , 1 , 1 , 0 , 2 },;
{ "algo 3", 1 , 0 , 0 , 3 , 1 , 4 , 1 },;
{ "algo 4", 2 , 0 , 2 , 0 , 3 , 0 , 3 },;
{ "algo 5", 1 , 2 , 1 , 2 , 0 , 1 , 0 },;
{ "algo 6", 0 , 1 , 0 , 0 , 0 , 0 , 0 },;
{ "algo 7", 0 , 0 , 0 , 0 , 0 , 0 , 4 } }
DEFINE FONT oFont NAME 'TAHOMA' SIZE 0,-12
DEFINE FONT oBold NAME 'TAHOMA' SIZE 0,-12 BOLD
DEFINE DIALOG oDlg SIZE 400,300 PIXEL FONT oFont ;
TITLE 'Demo para Paco'
@ 10,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
AUTOCOLS ;
HEADERS " " , "Dia 1","Dia 2","Dia 3","Dia 4","Dia 5","Dia 6","Dia 7" ;
ARRAY aDato CELL LINES NOBORDER FASTEDIT FOOTERS
oBrw:SetArray(aDato)
AEval( oBrw:aCols, { |o| o:cEditPicture := '99', ;
o:nFooterType := AGGR_COUNT ,; //AGGR_SUM ,;
o:bSumCondition := {|uVal, oCol| If( uVal == 1 .or. uVal == 2 .or. uVal == 4 , .t. , .f. ) } }, 2 )
oBrw:MakeTotals()
oBrw:CreateFromCode()
ACTIVATE DIALOG oDlg CENTERED //On Init gBrowse(oBrw:aArrayData)
return nil
Miguel
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Re: Footer xBrowse (solucionado)
Miguel y Cristobal,
Gracias por su ayuda.
Saludos
Gracias por su ayuda.
Saludos
____________________
Paco
Paco