Ayuda con Un Ejemplo Report Con ADO y GROUP
- ruben Dario
- Posts: 1070
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
Ayuda con Un Ejemplo Report Con ADO y GROUP
Por fa alguien tiene un ejemplo aplicando ADO manejando la funcion GROUP ON
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Ruben
En estos momentos también me estoy peleando con los reportes, con listados básicos no he tenido ningún problema pues lo hago mediante el método ::Report( cTitle, lPreview, lModal, bSetUp, aGroupBy ) de la Clase XBrowse y no me he preocupado de los recorridos del recordset ni nada, ya está automatizado. Como puedes darte cuenta el método tiene un parámetro aGroupBy, no lo he probado y no sé como aplicarlo, pero si alguién más nos da una mano pienso que debe funcionar.
Saludos
Marcelo Jingo
En estos momentos también me estoy peleando con los reportes, con listados básicos no he tenido ningún problema pues lo hago mediante el método ::Report( cTitle, lPreview, lModal, bSetUp, aGroupBy ) de la Clase XBrowse y no me he preocupado de los recorridos del recordset ni nada, ya está automatizado. Como puedes darte cuenta el método tiene un parámetro aGroupBy, no lo he probado y no sé como aplicarlo, pero si alguién más nos da una mano pienso que debe funcionar.
Saludos
Marcelo Jingo
Marcelo Jingo
- Armando
- Posts: 3271
- Joined: Fri Oct 07, 2005 8:20 pm
- Location: Toluca, México
- Been thanked: 2 times
- Contact:
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Amigos:
Cuando me enfrente a esos problemas y dada la premura de tiempo tuve que hacer los cortes vía código puro, obviamente se requiere que los datos vengan ordenados.
Despues de solventado el problema no me he dado a la tarea de investigar más sobre la clase xBrowse.
Si les interesa mi alternativa de solución podemos entrar en el tema.
Saludos
Cuando me enfrente a esos problemas y dada la premura de tiempo tuve que hacer los cortes vía código puro, obviamente se requiere que los datos vengan ordenados.
Despues de solventado el problema no me he dado a la tarea de investigar más sobre la clase xBrowse.
Si les interesa mi alternativa de solución podemos entrar en el tema.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
If the browse is sorted on the first column, aGroupBy can be 1 or { 1 }.
If the browse is sorted on first and second columns, aGroupBy can be { 1, 2 }.
If the browse is sorted on first and second columns, aGroupBy can be { 1, 2 }.
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Probé con el parámetro en oBrw:Report() que mencioné, siguiendo la explicación del amigo G.N. Rao, y funciona perfecto, bien puede ir el número de la columna o el nombre de la columna así: {oBrw:nombrecolumna}, y el reporte se imprime por grupos y totalizado. La columna debe estar previamente ordenada.
Ahora sólo hace falta preguntarle a Rubén si usa XBrowse y le satisface la solución.
Saludos
Marcelo Jingo
Ahora sólo hace falta preguntarle a Rubén si usa XBrowse y le satisface la solución.
Saludos
Marcelo Jingo
Marcelo Jingo
- ruben Dario
- Posts: 1070
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Si tambien Uso xbrowse, ME gustaria si me puedes mostar un codigo completo para analizarlo con xbrowse y report.
Este es el codigo de report que tengo pero me funciona para DBF pero no Con ADO, manejo Mysql.
Este es el codigo de report que tengo pero me funciona para DBF pero no Con ADO, manejo Mysql.
Code: Select all | Expand
REPORT oReport ;
TITLE "REGISTRO REFERENCIAS ",;
OemtoAnsi("");
FONT oFon1,;
oFon2,;
oFon3 ;
PEN oPen1,;
oPen2 ;
HEADER " Fecha : "+dtoc(date()),;
"Hora : "+time(),;
"Pagina: "+strzero(oReport:nPage,3),;
memvar->X_TPAQU;
RIGHT ;
FOOTER OemtoAnsi(memvar->X_SIGLA );
PREVIEW //TO DEVICE oPrn PREVIEW
COLUMN TITLE "Sta","Item" DATA {||iif(oDatos:Fields("status"):Value=1,"Si","No")}, oDatos:Fields("consec"):Value ;
FONT 1 SIZE 6 //SHADOW GRID 1 hace la raya vertical
COLUMN TITLE "Item","Codprod" DATA oDatos:Fields("consec"):Value,oDatos:Fields("codprod"):Value;
FONT 1 SIZE 12 //SHADOW GRID 1 hace la raya vertical
COLUMN TITLE "Referencia","Simbolo" DATA oDatos:Fields("simbolo"):Value,oDatos:Fields("referencia"):Value;
FONT 1 SIZE 20 //SHADOW GRID 1 hace la raya vertical
COLUMN TITLE "Largo/Alt","Ancho.B.Menor" DATA oDatos:Fields("largo"):Value, ;
oDatos:Fields("ancho"):Value FONT 1 SIZE 8
COLUMN TITLE "Ancho/B.Menor","Solapa" DATA TRANSFORM(oDatos:Fields("ancho_m"):Value,"999.99") ,;
TRANSFORM(oDatos:Fields("solapa"):Value,"999.99") FONT 1 SIZE 10
COLUMN TITLE "Fuelle.F","Fuelle.L" DATA TRANSFORM(oDatos:Fields("fuel_f"):Value,"999.99"), ;
TRANSFORM(oDatos:Fields("fuel_l"):Value,"999.99") FONT 1 SIZE 6
COLUMN TITLE "Metros","Peso/Mil" DATA TRANSFORM(oDatos:Fields("metros"):Value,"999.99"), ;
TRANSFORM(oDatos:Fields("kilmil"):Value,"99.9999") FONT 1 SIZE 6
GROUP ON oDatos:Fields("codprov"):Value
END REPORT
oReport:bSkip := { || (nLinea++, oDatos:MoveNext())}
endif
ACTIVATE REPORT oReport ON ENDPAGE oReport:lPageTotal:= .f. ;
ON STARTGROUP( oReport:NewLine(),;
oReport:EndLine(),;
oReport:Say(0,"CLIENTE : " +codprov+"-"+ALLTRIM(codprov),4,,oReport:nRow),;
oReport:NewLine(),;
oReport:EndLine() )
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Ruben Darío
Por cada cambio en los valores del total se debe actualizarlo con una función propia para que refresque la variable ntotal.
Para el reporte simplemente desde un boton ejecuto el metodo ::report(), indicando en el ultimo parametro la columna por que se va a realizar el group.
Eso es todo. Yo uso FW904
Saludos
Marcelo Jingo
Code: Select all | Expand
ntotal:=0
aoControl[1] := TXBrowse():New( oWdestino )
aoControl[1]:nleft:=columna
aoControl[1]:ntop:=fila
aoControl[1]:nright:=300
aoControl[1]:lFooter := .t.
aoControl[1]:SetAdo(oRs,,.t.) //activa la autoordenacion
aoControl[1]:CreateFromCode()
aoControl[1]:acols[7]:lTotal := .t. //para totalizar cols a report y/o excel
aoControl[1]:acols[7]:bFooter = {|| TRANSFORM(nTotal,"9,999,999,999.99") }
aoControl[1]:acols[7]:nFootStrAlign := 1
Por cada cambio en los valores del total se debe actualizarlo con una función propia para que refresque la variable ntotal.
Para el reporte simplemente desde un boton ejecuto el metodo ::report(), indicando en el ultimo parametro la columna por que se va a realizar el group.
Code: Select all | Expand
aoControl[1]:Report("Consumo por Tipo de Combustible ",,,,{7})
Eso es todo. Yo uso FW904
Saludos
Marcelo Jingo
Last edited by sjingo on Wed Mar 10, 2010 6:10 pm, edited 1 time in total.
Marcelo Jingo
- ruben Dario
- Posts: 1070
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Marcelo
aoControl[1]:Report("Consumo por Tipo de Combustible ",,,,{aoControl7})
o Ques es ... ",,,,{aoControl7})
en este caso {aoControl})
Te Pregunto como lo Hace a Excel
Ceo Que GROUP es totalizar mas o menos el Ejemplo
Lo Que quiero Hacer es generar un Reporte y Hacer Rompimiento por Cliente Utlizando ADO.
En Report Existe esta Funcion GROUP ON
Tu lo has Manejado de estra manera. Peron COn ADO porque con DBF si me funciona
aoControl[1]:Report("Consumo por Tipo de Combustible ",,,,{aoControl7})
o Ques es ... ",,,,{aoControl7})
en este caso {aoControl})
Te Pregunto como lo Hace a Excel
Ceo Que GROUP es totalizar mas o menos el Ejemplo
Lo Que quiero Hacer es generar un Reporte y Hacer Rompimiento por Cliente Utlizando ADO.
En Report Existe esta Funcion GROUP ON
Tu lo has Manejado de estra manera. Peron COn ADO porque con DBF si me funciona
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Ups, perdon
es
aoControl[1]:Report("Consumo por Tipo de Combustible ",,,,{7})
es decir el numero de columna por el que se va ha realizar el group
Marcelo Jingo
es
aoControl[1]:Report("Consumo por Tipo de Combustible ",,,,{7})
es decir el numero de columna por el que se va ha realizar el group
Marcelo Jingo
Marcelo Jingo
- ruben Dario
- Posts: 1070
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
En teoría debería ser así, porque XBrowse tiene el método toExcel(). Lo acabo de probar haciendo:
oBrw:ToExcel()
Pero obtengo el error
Error description: Error 1853788/0 S_OK: _FORMULAR1C1
Args:
[ 1] = C =SUBTOTALES(9;R2C9:R6C9
Debe ser algun problema al generar la fórmula de sumatoria. A lo mejor Antonio L. pueda indicar la causa.
De todas formas personalmente para pasar a Excel prefiero usar mi propio código, pero de poder se puede.
Saludos
Marcelo Jingo
oBrw:ToExcel()
Pero obtengo el error
Error description: Error 1853788/0 S_OK: _FORMULAR1C1
Args:
[ 1] = C =SUBTOTALES(9;R2C9:R6C9
Debe ser algun problema al generar la fórmula de sumatoria. A lo mejor Antonio L. pueda indicar la causa.
De todas formas personalmente para pasar a Excel prefiero usar mi propio código, pero de poder se puede.
Saludos
Marcelo Jingo
Marcelo Jingo