Ayuda con Un Ejemplo Report Con ADO y GROUP

Ayuda con Un Ejemplo Report Con ADO y GROUP

Postby ruben Dario » Tue Mar 09, 2010 9:34 pm

Por fa alguien tiene un ejemplo aplicando ADO manejando la funcion GROUP ON
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Ayuda con Un Ejemplo Report Con ADO y GROUP

Postby sjingo » Wed Mar 10, 2010 1:11 am

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
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Ayuda con Un Ejemplo Report Con ADO y GROUP

Postby Armando » Wed Mar 10, 2010 2:54 am

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
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
User avatar
Armando
 
Posts: 3230
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Ayuda con Un Ejemplo Report Con ADO y GROUP

Postby nageswaragunupudi » Wed Mar 10, 2010 1:22 pm

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 }.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10656
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Ayuda con Un Ejemplo Report Con ADO y GROUP

Postby sjingo » Wed Mar 10, 2010 2:09 pm

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
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Ayuda con Un Ejemplo Report Con ADO y GROUP

Postby ruben Dario » Wed Mar 10, 2010 3:53 pm

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.

Code: Select all  Expand view  RUN

   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() )
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Ayuda con Un Ejemplo Report Con ADO y GROUP

Postby sjingo » Wed Mar 10, 2010 4:45 pm

Ruben Darío

Code: Select all  Expand view  RUN
 
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 view  RUN

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
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Ayuda con Un Ejemplo Report Con ADO y GROUP

Postby ruben Dario » Wed Mar 10, 2010 5:36 pm

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
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Ayuda con Un Ejemplo Report Con ADO y GROUP

Postby sjingo » Wed Mar 10, 2010 6:08 pm

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
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Ayuda con Un Ejemplo Report Con ADO y GROUP

Postby ruben Dario » Wed Mar 10, 2010 6:27 pm

Me Imagino que desde ahi lo puedes pasar a Excel
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Ayuda con Un Ejemplo Report Con ADO y GROUP

Postby sjingo » Wed Mar 10, 2010 8:28 pm

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
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot], wmormar and 69 guests