Imprimir desde RMChart (Solucionado)

Imprimir desde RMChart (Solucionado)

Postby alvaro533 » Wed Sep 23, 2009 1:14 am

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
Last edited by alvaro533 on Wed Sep 23, 2009 11:05 am, edited 1 time in total.
alvaro533
 
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España

Re: Imprimir desde RMChart (solucinado)

Postby alvaro533 » Wed Sep 23, 2009 11:04 am

oChart:oControl:do("Draw2Clipboard")

Alvaro
alvaro533
 
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España

Re: Imprimir desde RMChart (Solucionado)

Postby Patricio Avalos Aguirre » Wed Sep 23, 2009 1:19 pm

Hola Alvaro

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

desde ya muchas gracias
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Re: Imprimir desde RMChart (Solucionado)

Postby alvaro533 » Wed Sep 23, 2009 4:21 pm

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
alvaro533
 
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España

Re: Imprimir desde RMChart (Solucionado)

Postby Patricio Avalos Aguirre » Wed Sep 23, 2009 8:27 pm

Muchas Gracias Alvaro, voy a probar

dejo un nuevo link para bajar

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

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 45 guests