FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ayuda con Un Ejemplo Report Con ADO y GROUP
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Ayuda con Un Ejemplo Report Con ADO y GROUP
Posted: Tue Mar 09, 2010 09: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
Posts: 229
Joined: Sat Mar 18, 2006 03:42 PM
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Posted: Wed Mar 10, 2010 01: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
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Posted: Wed Mar 10, 2010 02: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
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Posted: Wed Mar 10, 2010 01: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
Posts: 229
Joined: Sat Mar 18, 2006 03:42 PM
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Posted: Wed Mar 10, 2010 02: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
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Posted: Wed Mar 10, 2010 03: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 (fw): Select all Collapse
   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
Posts: 229
Joined: Sat Mar 18, 2006 03:42 PM
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Posted: Wed Mar 10, 2010 04:45 PM
Ruben Darío

Code (fw): Select all Collapse
   
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 (fw): Select all Collapse
aoControl[1]:Report("Consumo por Tipo de Combustible ",,,,{7})

Eso es todo. Yo uso FW904

Saludos

Marcelo Jingo
Marcelo Jingo
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Posted: Wed Mar 10, 2010 05: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
Posts: 229
Joined: Sat Mar 18, 2006 03:42 PM
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Posted: Wed Mar 10, 2010 06: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
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Posted: Wed Mar 10, 2010 06:27 PM

Me Imagino que desde ahi lo puedes pasar a Excel

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 229
Joined: Sat Mar 18, 2006 03:42 PM
Re: Ayuda con Un Ejemplo Report Con ADO y GROUP
Posted: Wed Mar 10, 2010 08: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

Continue the discussion