IMPRIMIR GRAFICA ANTES QUE LAS COLUMNAS CON oReport

Post Reply
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

IMPRIMIR GRAFICA ANTES QUE LAS COLUMNAS CON oReport

Post by joseluisysturiz »

Saludos, con la ayuda del colega Armando Laguna

http://forums.fivetechsupport.com/viewt ... 11#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

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

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

Gracias a mi Dios ante todo!
User avatar
armando.lagunas
Posts: 340
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile
Contact:

Re: IMPRIMIR GRAFICA ANTES QUE LAS COLUMNAS CON oReport

Post by armando.lagunas »

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

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
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: IMPRIMIR GRAFICA ANTES QUE LAS COLUMNAS CON oReport

Post by joseluisysturiz »

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

   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
armando.lagunas
Posts: 340
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile
Contact:

Re: IMPRIMIR GRAFICA ANTES QUE LAS COLUMNAS CON oReport

Post by armando.lagunas »

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

...
...
   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
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: IMPRIMIR GRAFICA ANTES QUE LAS COLUMNAS CON oReport

Post by joseluisysturiz »

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

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

http://forums.fivetechsupport.com/viewt ... t=CellView

http://forums.fivetechsupport.com/viewt ... t=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

   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!
Post Reply