Page 1 of 1

Imprimir desde RMChart (Solucionado)

PostPosted: Wed Sep 23, 2009 1:14 am
by alvaro533
Buenas noches,

Estoy usando RMChart de Rainer Morgen, con la clase RMChartX de Oscar Lira, es decir, usando ActiveX con el ocx de RMChart. La verdad es que funciona fenomenal y es muy flexible. Las gráficas tienen una presentación muy buena, se pueden variar los valores y todos los parámetros en tiempo de ejecución.

Sin embargo no he conseguido imprimir una gráfica. Debería ser:

oChart:Draw2Printer()

Tampoco funciona Draw2File() ni Draw2Clipboard()

¿Alguien ha conseguido imprimir una gráfica? ¿Hay que cambiar algo?

Muchas gracias y un saludo,

Alvaro

Re: Imprimir desde RMChart (solucinado)

PostPosted: Wed Sep 23, 2009 11:04 am
by alvaro533
oChart:oControl:do("Draw2Clipboard")

Alvaro

Re: Imprimir desde RMChart (Solucionado)

PostPosted: Wed Sep 23, 2009 1:19 pm
by Patricio Avalos Aguirre
Hola Alvaro

podrias enviarme la clase y algunos ejemplos a mi correo
patricio_avalos_Aguirre@hotmail.com

desde ya muchas gracias

Re: Imprimir desde RMChart (Solucionado)

PostPosted: Wed Sep 23, 2009 4:21 pm
by alvaro533
Hola Patricio.

Es bastante sencillo,

Hay 2 formas de implementar RMChart

1. Usando ActiveX y el fichero .ocx que viene con RMChart
2. Usando la librería RMChart.dll y usando las funciones de la misma y creando las gráficas con código.

Yo he elegido lo primero y es lo que te describo a continuación:

La ventaja que tiene usar el ocx es que puedes crear la gráfica usando el diseñador “RMCdesigner.exe”. Es mucho más rápido y fácil que crear las gráficas desde código. Una vez que la tienes diseñada creas un fichero de extensión *.rmc que tienes que distribuir con tu aplicación. Desde la aplicación llamas al fichero .rmc y puedes cambiar en tiempo de ejecución los valores, los títulos y si quieres, las etiquetas, los colores y prácticamente todo.

Para instalar el rmcdesigner baja el programa RMChart de Rainer Morgen (yo he encontrado la aversión 4.12 aquí

http://rmchart.findmysoft.com/

La página original del programa ha desaparecido. Si alguien sabe la nueva dirección, o tiene una versión superior a la 4.12, por favor, que me lo diga.

Luego tienes que bajar el fichero “rmc4xhb.zip” de este foro.

De todo lo que viene, si usas la opción ocx sólo necesitas:

RMChartX.ch
Main.prg // ejemplo para usar la clase
TRmChart.prg // la clase original
RMChart.dll
RMChart.ocx

En tu proyecto necesitas añadir la clase TRmChart.prg

A tu cliente sólo le tienes que dar los ficheros *.rmc que hayas creado y además en el directorio de la aplicación tienes que crear una carpeta “RMChart” y meter allí os ficheros RMChart.dll y RMChart.ocx (también puedes meter allí los *.rmc). Si usas otra carpeta tienes que modificar la clase. (busca cOrigen := ".\RMChart\RMChart.dll")

En la clase he modificado esta línea
IF IsActiveX( "RMChart.RMChartX" ).and.file(GetSysDir() +"\RMChart.ocx").and.file(GetSysDir() + "\RMChart.dll")

Porque si se borran los ficheros Rmchart.ocx o rmchart.dll da un error, así se instalan de nuevo.

Y esta:

DEFAULT lAutoInstall := .t.


También conviene que compruebes que el fichero *.rmc existe antes de activar el control, ya si no da un error de Harbour.

Por último, si colocas la gráfica en un recurso, por algún motivo el tamaño lo pone mal, pero se corrige si haces:

oChart:oControl:nWidth := oChart:oControl:nWidth +1
oChart:oControl:nWidth := oChart:oControl:nWidth -1

después de activar el control

Yo he modificado la function ConfiguraChart() así

IF lAdjust
oChart:oControl:nWidth := oChart:oControl:nWidth +1
oChart:oControl:nWidth := oChart:oControl:nWidth -1
ENDIF

Y la llamo con lAdjust = .t.
No sé si habrá otra forma de solucionarlo.

Por último, imprimir una gráfica es
oChart:oControl:do("Draw2printer")

y crear un jpg es
oChart:oControl:do("Draw2file","prueba.jpg")

Un saludo,
Alvaro

Re: Imprimir desde RMChart (Solucionado)

PostPosted: Wed Sep 23, 2009 8:27 pm
by Patricio Avalos Aguirre
Muchas Gracias Alvaro, voy a probar

dejo un nuevo link para bajar

http://www.brothersoft.com/rmchart-download-35638.html