IMPRIMIR GRAFICA ANTES QUE LAS COLUMNAS CON oReport

IMPRIMIR GRAFICA ANTES QUE LAS COLUMNAS CON oReport

Postby joseluisysturiz » Tue Aug 13, 2019 1:40 am

Saludos, con la ayuda del colega Armando Laguna

viewtopic.php?f=6&t=37611#p224906

HEADER oGraph:Print(oPrn,aPos[1],aPos[2],aSiz[1],aSiz[2]),

pude usar oReport para imprimir una grafica y sus data, la idea fue en el Header hacer la impresion de la grafica, si es pequeña es conveniente, pero en mi caso la necesito grande, a media pude lograrlo, digo a media porque la grafica me sale despues de la data y necesito lo contrario que salga antes de la data, es peticion del cliente, lo intente asi, pero no funciono, es primera ves que trabajo con oReport, como podria colocar la grafica antes que las columnas de data y si ajuro hay que colocarla dentro del Header.? saludos, gracias... :shock:

Code: Select all  Expand view

REPORT oRpt TITLE "tupisonuevo.com" ,;
      "Resumen ventas mensuales x grupo" ,;
      "Periodo 2019", " ", " ", " " CENTER ;//HEADER oGraph:Print( oPrn, aPos[1], aPos[2], aSiz[1], aSiz[2] ) ; // GRAFICA
   FOOTER "Página No: " + STR(oRpt:nPage, 3, 0) CENTER ;
   FONT oFont[1], oFont[2], oFont[3] ;
   TO DEVICE oPrn

[b]// COLOCARLA AQUI NO FUNCIONA, MUESTRA SOLO LA DATA...O A VECES LA MONTA ENCIMA...[/b]
   oGraph:Print( oPrn, aPos[1], aPos[2], aSiz[1], aSiz[2] )

// COLUMNAS DATA GRAFICA
   COLUMN TITLE "Grupo" LEFT DATA aGraph[nRow, 1] FONT 3 SIZE 15 GRID
      *
   COLUMN TITLE "Ene" RIGHT DATA aGraph[nRow, 2]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Feb" RIGHT DATA aGraph[nRow, 3]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Mar" RIGHT DATA aGraph[nRow, 4]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Abr" RIGHT DATA aGraph[nRow, 5]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "May" RIGHT DATA aGraph[nRow, 6]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Jun" RIGHT DATA aGraph[nRow, 7]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Jul" RIGHT DATA aGraph[nRow, 8]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Ago" RIGHT DATA aGraph[nRow, 9]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Sep" RIGHT DATA aGraph[nRow, 10] PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Oct" RIGHT DATA aGraph[nRow, 11] PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Nov" RIGHT DATA aGraph[nRow, 12] PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Dic" RIGHT DATA aGraph[nRow, 13] PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
      *
   COLUMN TITLE "Tot.M2" RIGHT DATA aGraph[nRow, 14] PICTURE oPi:nMo9 FONT 3 SIZE 10 TOTAL GRID

   END REPORT
 


Asi la tengo ahorita, necesito la grafica antes que las columnas de la data

[img]
Image
[/img]
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: IMPRIMIR GRAFICA ANTES QUE LAS COLUMNAS CON oReport

Postby armando.lagunas » Tue Aug 13, 2019 4:45 pm

la data la puedes mover hacia abajo colocando tantos títulos en blanco puedas y ubica el grafico entre el titulo que se imprime y la data que estará mas abajo.

prueba asi:

Code: Select all  Expand view

REPORT oRpt TITLE "tupisonuevo.com" ,;
      "Resumen ventas mensuales x grupo" ,;
      "Periodo 2019", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " " CENTER ;//HEADER oGraph:Print( oPrn, aPos[1], aPos[2], aSiz[1], aSiz[2] ) ; // GRAFICA
   FOOTER "Página No: " + STR(oRpt:nPage, 3, 0) CENTER ;
   FONT oFont[1], oFont[2], oFont[3] ;
   TO DEVICE oPrn
 


me comentas.

Saludos
SkyPe: armando.lagunas@hotmail.com
Mail: armando.lagunas@gmail.com
User avatar
armando.lagunas
 
Posts: 346
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile

Re: IMPRIMIR GRAFICA ANTES QUE LAS COLUMNAS CON oReport

Postby joseluisysturiz » Tue Aug 13, 2019 8:16 pm

A.Laguna, crei era mas comodo de hacer, algo como decirle una coordenada y listo, asi que cuadre con el cliente y lo deje como esta...ahora hay un detalle...en todas las columnas coloque GRID y coloca la linea horizontal divisoria bajo los titulos, pero como hago para que me coloque lineas divisorias en cada fila-? es decir que se vea como una rejilla tipe excel o xbrowse, para que me de separacion de los valores o so puedo agregar una linea imaginaria para que separa las filas, por si acaso estoy usando tambien TOTAL saludos, gracias... :shock:

Code: Select all  Expand view

   REPORT oRpt TITLE "tupisonuevo.com" ,;
      "Resumen ventas mensuales x grupo" ,;
      "Periodo 2019", " ", " ", " " CENTER ;
   HEADER oGraph:Print( oPrn, aPos[1], aPos[2], aSiz[1], aSiz[2] ) ; // GRAFICA
   FOOTER "Página No: " + STR(oRpt:nPage, 3, 0) CENTER ;
   FONT oFont[1], oFont[2], oFont[3] ;
   TO DEVICE oPrn

// COLUMNAS DATA GRAFICA
   COLUMN TITLE "Grupo" LEFT DATA aGraph[nRow, 1] FONT 3 SIZE 15 GRID
   *
   COLUMN TITLE "Ene" RIGHT DATA aGraph[nRow, 2]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Feb" RIGHT DATA aGraph[nRow, 3]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Mar" RIGHT DATA aGraph[nRow, 4]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Abr" RIGHT DATA aGraph[nRow, 5]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "May" RIGHT DATA aGraph[nRow, 6]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Jun" RIGHT DATA aGraph[nRow, 7]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Jul" RIGHT DATA aGraph[nRow, 8]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Ago" RIGHT DATA aGraph[nRow, 9]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Sep" RIGHT DATA aGraph[nRow, 10] PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Oct" RIGHT DATA aGraph[nRow, 11] PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Nov" RIGHT DATA aGraph[nRow, 12] PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   COLUMN TITLE "Dic" RIGHT DATA aGraph[nRow, 13] PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL GRID
   *
   COLUMN TITLE "Tot.M2" RIGHT DATA aGraph[nRow, 14] PICTURE oPi:nMo9 FONT 3 SIZE 10 TOTAL GRID

   END REPORT
 
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: IMPRIMIR GRAFICA ANTES QUE LAS COLUMNAS CON oReport

Postby armando.lagunas » Wed Aug 14, 2019 4:34 pm

jose:

nunca se me habia ocurrido colocar filas y columnas como un excel, hay un metodo en la clase que es :Grid() sobre el reporte "no en la columna" y otro que dibuja lineas, prueba primero con oRpt:Grid

en la clase
Code: Select all  Expand view

...
...
   METHOD Line( nTop, nLeft, nBottom, nRight, nPen, nScale )
   METHOD Shadow( nHeight )
   METHOD Grid( nHeight, nRow, cChar )
   METHOD Separator( nPen, nRow)

   METHOD CellView() INLINE ::lJoin      := .t.,;
              ::lSeparator  := .t.,;
              ::lBoxOnTotal := .t.,;
              AEval( ::aColumns, {|val| val:lGrid := .t.} )
...
...

 


me fije en CellView(), puede que tambien te sirva

Saludos
SkyPe: armando.lagunas@hotmail.com
Mail: armando.lagunas@gmail.com
User avatar
armando.lagunas
 
Posts: 346
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile

Re: IMPRIMIR GRAFICA ANTES QUE LAS COLUMNAS CON oReport

Postby joseluisysturiz » Wed Aug 14, 2019 6:48 pm

armando.lagunas wrote:jose:

nunca se me habia ocurrido colocar filas y columnas como un excel, hay un metodo en la clase que es :Grid() sobre el reporte "no en la columna" y otro que dibuja lineas, prueba primero con oRpt:Grid

en la clase
Code: Select all  Expand view

...
...
   METHOD Line( nTop, nLeft, nBottom, nRight, nPen, nScale )
   METHOD Shadow( nHeight )
   METHOD Grid( nHeight, nRow, cChar )
   METHOD Separator( nPen, nRow)

   METHOD CellView() INLINE ::lJoin      := .t.,;
              ::lSeparator  := .t.,;
              ::lBoxOnTotal := .t.,;
              AEval( ::aColumns, {|val| val:lGrid := .t.} )
...
...

 


me fije en CellView(), puede que tambien te sirva

Saludos


Armando, gracias por tu gran ayuda, quite el GRIP de las columnas y con CellView() se resolvio lo que me faltaba en la impresion de la tabla de data y la grafica... aqui estabe el tema

Lo comico es que revisando en otros temas resulta que utilice esta clase hace como 10 años atras, y ni me acordaba, como llevo años usando FR, no recordaba que habia usado REPORT y TPRINT, mis disculpas...

viewtopic.php?f=6&t=31107&start=0&hilit=CellView

viewtopic.php?f=6&t=13552&start=0&hilit=cellview

OJO: aunque en el preview no se ven todas las lineas pintadas, en la impresion si salen,
muchas gracias por tu experiencia compartida, saludos...gracias... :shock:

Code: Select all  Expand view

   REPORT oRpt TITLE "tupisonuevo.com" ,;
      "Resumen ventas mensuales x grupo" ,;
      "Periodo 2019", " ", " ", " " CENTER ;
   HEADER oGraph:Print( oPrn, aPos[1], aPos[2], aSiz[1], aSiz[2] ) ; // COLOCO GRAFICA EN POS x,y
   FOOTER "Página No: " + STR(oRpt:nPage, 3, 0) CENTER ; // PIE DE PAGINA
   FONT oFont[1], oFont[2], oFont[3] ; // SE CREA UN ARRAY CON LOS TIPOS DE FUENTES A USAR EN REPORT
   TO DEVICE oPrn

// COLUMNAS DATA GRAFICA
   COLUMN TITLE "Grupos" LEFT DATA aGraph[nRow, 1] FONT 3 SIZE 15
   *
   COLUMN TITLE "Ene" RIGHT DATA aGraph[nRow, 2]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL
   COLUMN TITLE "Feb" RIGHT DATA aGraph[nRow, 3]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL
   COLUMN TITLE "Mar" RIGHT DATA aGraph[nRow, 4]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL
   COLUMN TITLE "Abr" RIGHT DATA aGraph[nRow, 5]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL
   COLUMN TITLE "May" RIGHT DATA aGraph[nRow, 6]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL
   COLUMN TITLE "Jun" RIGHT DATA aGraph[nRow, 7]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL
   COLUMN TITLE "Jul" RIGHT DATA aGraph[nRow, 8]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL
   COLUMN TITLE "Ago" RIGHT DATA aGraph[nRow, 9]  PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL
   COLUMN TITLE "Sep" RIGHT DATA aGraph[nRow, 10] PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL
   COLUMN TITLE "Oct" RIGHT DATA aGraph[nRow, 11] PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL
   COLUMN TITLE "Nov" RIGHT DATA aGraph[nRow, 12] PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL
   COLUMN TITLE "Dic" RIGHT DATA aGraph[nRow, 13] PICTURE oPi:nMo8 FONT 3 SIZE 7 TOTAL
   *
   COLUMN TITLE "Tot.M2" RIGHT DATA aGraph[nRow, 14] PICTURE oPi:nMo9 FONT 3 SIZE 10 TOTAL

   END REPORT

   IF oRpt:lCreated // SI SE CREA EL REPORT HACER ESTO...
      oRpt:bWhile := { || nRow <= Len(aGraph) } // 12/08/2019
      oRpt:bSkip := { | | nRow++ } // 12/08/2019
      oRpt:oTitle:aFont[1] := {|| 2 } // TIPO DE LETRA 2 PARA TITULO 1
      oRpt:CellView() // CREA REJILLA EN LAS COLUMNAS TIPO EXCEL - 14/08/2019
      oRpt:Stabilize()
   ENDIF

   ACTIVATE REPORT oRpt
 
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

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