impresión de gráfica
Moderator: Rathinagiri
impresión de gráfica
Saludos a todos, quisiera saber si se puede dar un tamaño especifico a la gráfica que se imprime, porque en la ventana dónde se genera sé que si se puede, pero al imprimir ocupa mucha página y eso me preocupa porque es mucha tinta.
Gracias.
Gracias.
- Attachments
-
- grafica.png (30.81 KiB) Viewed 3386 times
- Pablo César
- Posts: 4059
- Joined: Wed Sep 08, 2010 1:18 pm
- Location: Curitiba - Brasil
Impresión de gráfica
La directiva de PRINT GRAPH nos lleva a la funcion PrintGraph donde justamente prepara las coordenadas para el tamaño del gráfico en el plano donde se lo desea. Y lo hace atravéz de aLocation := _HMG_SYSDATA [ 108 ] [ GetFormIndex (cWindowName ) ] en el archivo C:\hmg.3.3.1\SOURCE\Graph\h_graph.prg, después llama el PrintWindow con las coordenadas que fué conseguida en aLocation. Si hubiera forma de poder interactuar en esas coordenadas seria posible cumplir con tu necesidad. Talvez consigas si llamas el PrintWindow, haciendo tu própio funcion PrintGraph.
Por otro lado, cuando estás creando DRAW GRAPH para exibirlo en la pantalla, está usando atravez de la directiva la funcion GraphShow. Y es aqui donde el aLocation puede ser modificado partiendo de las coordenas guardadas en _HMG_SYSDATA [ 108 ]. Entonces es en la declaracion DRAW GRAPH que contiene los parametros (Row,Col,Width,Height). Estes ultimos 2 parametros es atravéz de la propiedad "TO" fijate: Aqui ves que fueron alterados los parametros (Row,Col,Width,Height) baseandote en el ejemplo C:\hmg.3.3.1\SAMPLES\Controls\Graph\GRAPH_04\demo.prg
Espero que hayas conseguido entender las explicacion. Tenemos todos en nuestras manos, basta hechar una miradita al source code del HMG.
Obs.: Siempre es bueno disponibilizar un código ejemplo. Es muy fustrante basearse en poquisima informacion cuando piden ayuda...
Por otro lado, cuando estás creando DRAW GRAPH para exibirlo en la pantalla, está usando atravez de la directiva la funcion GraphShow. Y es aqui donde el aLocation puede ser modificado partiendo de las coordenas guardadas en _HMG_SYSDATA [ 108 ]. Entonces es en la declaracion DRAW GRAPH que contiene los parametros (Row,Col,Width,Height). Estes ultimos 2 parametros es atravéz de la propiedad "TO" fijate: Aqui ves que fueron alterados los parametros (Row,Col,Width,Height) baseandote en el ejemplo C:\hmg.3.3.1\SAMPLES\Controls\Graph\GRAPH_04\demo.prg
Espero que hayas conseguido entender las explicacion. Tenemos todos en nuestras manos, basta hechar una miradita al source code del HMG.
Obs.: Siempre es bueno disponibilizar un código ejemplo. Es muy fustrante basearse en poquisima informacion cuando piden ayuda...

HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
-
- Posts: 1275
- Joined: Tue Sep 03, 2013 4:22 am
- Location: Tecámac, México
Re: Impresión de gráfica
+10Pablo César wrote:
Obs.: Siempre es bueno disponibilizar un código ejemplo. Es muy fustrante basearse en poquisima informacion cuando piden ayuda...
Re: impresión de gráfica
Saludos Pablo Cesar y Javier Tovar, claro que entendí, gracias; lo que muestra en ese código es lo primero que hice pero solo me modifica la imagen en la ventana m, y creame que, lo que después se me ocurrió fué hacer un saveform (BosTaurus del Dr. Claudio Soto) porque a parte necesito imprimir una tabulación. Y supuse mal, pense que con mostrar la imagen los iba a referir a... precisamente ese código GRAPH_4, mil disculpas. Es mi costubre y mi trabajo leer o investigar antes de preguntar, solo que no encontré algo que me llevará de forma inmediata a mi solución y apoyandome en la gran experiencia que tienen se me hizo fácil preguntar. Para mi esto es un excelente y maravilloso pasatiempo, no vivo de ello, Reitero mi disculpa si le quite mucho de su valioso tiempo. Bendiciones.
Re: impresión de gráfica
Gracias, por fin ya lo tengo, quedo el reporte a mi gusto
Saludos a todos.

- Attachments
-
- grafica.png (24.03 KiB) Viewed 3266 times
- Pablo César
- Posts: 4059
- Joined: Wed Sep 08, 2010 1:18 pm
- Location: Curitiba - Brasil
Re: impresión de gráfica
Qué bueno! Puedes decirnos como los solucionaste ?Renegado wrote:Gracias, por fin ya lo tengo, quedo el reporte a mi gustoSaludos a todos.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
-
- Posts: 1275
- Joined: Tue Sep 03, 2013 4:22 am
- Location: Tecámac, México
Re: impresión de gráfica
Muy bien Renegado!
+1
Saludos
+1
Saludos
Re: impresión de gráfica
Claro, no fue gran cosa, solo grabé el área de la grafica:
en el código graph_04 coloqué esta linea
m.Capture((GetStartUpFolder() + "\grafica.bmp"),120,120,280,350)
y después solo llamé el archivo de imagen con el tamaño deseado en mi codigo de reporte.
en el código graph_04 coloqué esta linea
m.Capture((GetStartUpFolder() + "\grafica.bmp"),120,120,280,350)
y después solo llamé el archivo de imagen con el tamaño deseado en mi codigo de reporte.
Code: Select all
function showpie()
ERASE WINDOW m
DRAW GRAPH IN WINDOW m AT 120,120;
TO 450,400 ;
TITLE "Reporte de Asistencia" ;
TYPE PIE;
SERIES series1;
DEPTH 25;
SERIENAMES {"Alum. que nunca faltan","Alum. que a veces faltan","Alum. que faltan con frecuencia"};
COLORS {{128,0,128},{255,0,0},{0,255,0}};
3DVIEW;
SHOWXVALUES;
SHOWLEGENDS NOBORDER
m.Capture((GetStartUpFolder() + "\grafica.bmp"),120,120,280,350)
return nil
-
- Posts: 1275
- Joined: Tue Sep 03, 2013 4:22 am
- Location: Tecámac, México
Re: impresión de gráfica
Buena idea!
Saludos
Saludos
- Pablo César
- Posts: 4059
- Joined: Wed Sep 08, 2010 1:18 pm
- Location: Curitiba - Brasil
Re: impresión de gráfica
Gracias por compartir ! Simples y funcional.Renegado wrote:solo grabé el área de la grafica:
en el código graph_04 coloqué esta linea
m.Capture((GetStartUpFolder() + "\grafica.bmp"),120,120,280,350)
y después solo llamé el archivo de imagen con el tamaño deseado en mi codigo de reporte.
En Minigui Extended, el PRINT GRAPH tiene como pasar los parámetros:
Code: Select all
#xcommand PRINT GRAPH ;
IN WINDOW <window> ;
AT <nT>,<nL> ;
[ TO <nB>,<nR> ] ;
[ WIDTH <nW> ] ;
[ HEIGHT <nH> ] ;
[ TITLE <cTitle> ] ;
TYPE <nType> ;
SERIES <aSer> ;
YVALUES <aYVal> ;
DEPTH <nD> ;
[ BARWIDTH <nW> ] ;
[ BARSEPARATOR <nSep> ] ;
HVALUES <nRange> ;
SERIENAMES <aName> ;
COLORS <aColor> ;
[ <l3D : 3DVIEW> ] ;
[ <lGrid : SHOWGRID> ] ;
[ <lxGrid : SHOWXGRID> ] ;
[ <lyGrid : SHOWYGRID> ] ;
[ <lxVal : SHOWXVALUES> ] ;
[ <lyVal : SHOWYVALUES> ] ;
[ <lSLeg : SHOWLEGENDS> ] ;
[ <lViewVal : SHOWDATAVALUES> ] ;
[ DATAMASK <mask> ] ;
[ LEGENDSWIDTH <nLegendsWidth> ];
[ LIBRARY <clib> ] ;
=> ;
_GraphPrint(<"window">, ;
<nT>, ;
<nL>, ;
<nB>, ;
<nR>, ;
<nH>, ;
<nW>, ;
<aSer>, ;
<cTitle>, ;
<aYVal>, ;
<nD>, ;
<nW>, ;
<nSep>, ;
<nRange>, ;
<.l3D.>, ;
<.lGrid.>, ;
<.lxGrid.>, ;
<.lyGrid.>, ;
<.lxVal.>, ;
<.lyVal.>, ;
<.lSLeg.>, ;
<aName>, ;
<aColor>, ;
<nType>, ;
<.lViewVal.>, ;
<mask>, <nLegendsWidth>, 0, 0, <"clib">)

HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein