impresión de gráfica

HMG en Español

Moderator: Rathinagiri

User avatar
Renegado
Posts: 88
Joined: Tue Mar 11, 2014 11:59 pm

impresión de gráfica

Post by Renegado »

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.
Attachments
grafica.png
grafica.png (30.81 KiB) Viewed 3385 times
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

Impresión de gráfica

Post by Pablo César »

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:
Screen1.png
Screen1.png (14.96 KiB) Viewed 3355 times
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
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Impresión de gráfica

Post by Javier Tovar »

Pablo César wrote:
Obs.: Siempre es bueno disponibilizar un código ejemplo. Es muy fustrante basearse en poquisima informacion cuando piden ayuda... :(
+10
User avatar
Renegado
Posts: 88
Joined: Tue Mar 11, 2014 11:59 pm

Re: impresión de gráfica

Post by Renegado »

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.
User avatar
Renegado
Posts: 88
Joined: Tue Mar 11, 2014 11:59 pm

Re: impresión de gráfica

Post by Renegado »

Gracias, por fin ya lo tengo, quedo el reporte a mi gusto :D Saludos a todos.
Attachments
grafica.png
grafica.png (24.03 KiB) Viewed 3265 times
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

Re: impresión de gráfica

Post by Pablo César »

Renegado wrote:Gracias, por fin ya lo tengo, quedo el reporte a mi gusto :D Saludos a todos.
Qué bueno! Puedes decirnos como los solucionaste ?
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: impresión de gráfica

Post by Javier Tovar »

Muy bien Renegado!

+1

Saludos
User avatar
Renegado
Posts: 88
Joined: Tue Mar 11, 2014 11:59 pm

Re: impresión de gráfica

Post by Renegado »

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.

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
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: impresión de gráfica

Post by Javier Tovar »

Buena idea!

Saludos
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

Re: impresión de gráfica

Post by Pablo César »

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.
Gracias por compartir ! Simples y funcional.

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">)
Y puede imprimir de forma distinta (en este caso menor el gráfico), pero en HMG, no existen estos parametros :(
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
Post Reply