Extraño comportamiento con el tamaño de la gráfica

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Avatar de Usuario
Rufus
Mensajes: 7
Registrado: Dom Oct 18, 2015 3:22 pm

Extraño comportamiento con el tamaño de la gráfica

Mensaje por Rufus »

Buenas, me llamo Rufus soy programador y tengo un problema que espero me puedan orientar para resolverlo.

Bien, resulta que estoy desarrollando un script o macro para que en base a unos datos se genere una gráfica. El problema es que cuando genero una gráfica dinámicamente,
for example :

Código: Seleccionar todo

	graficas = Hoja.Charts
	Rect.X = celdaDesde.Position.X
	Rect.Y =  celdaDesde.Position.Y
	Rect.Width = ( celdaHasta.Position.X -  celdaDesde.Position.X )
	Rect.Height = ( celdaHasta.Position.Y -  celdaDesde.Position.Y )

...
...
	
	graficas.addNewByName("Grafica de prueba", Rect, Rangos(), True, True)
	grafica = graficas.getByName("Grafica de prueba").embeddedObject
	grafica.Diagram = grafica.createInstance("com.sun.star.chart.LineDiagram")
	grafica.Diagram.Wall.FillColor = RGB(255, 255, 255)
	grafica.Diagram.HasXAxisGrid = True
	grafica.Diagram.XMainGrid.LineColor = RGB(192, 192, 192)
	grafica.Diagram.HasYAxisGrid = True
	grafica.Diagram.YMainGrid.LineColor = RGB(192, 192, 192)
	grafica.Diagram.YAxis.Min = -100
	grafica.Diagram.YAxis.Max = 100

...
...
Se me genera una gráfica en el área indicado en Rect, pero el tamaño de la gráfica (no del área) se encuentra reducido.

Imagen

Lo divertido, es que si edito la gráfica esta se muestra como debería verse, ocupando todo el área.

Imagen

Buscando en foros y en la documentación del AOO no encuentro nada, ni se hace referencia a esto. Lo que si he encontrado una forma no programática de solucionarlo, y es ir directamente a Posición y Tamaño... en el menú contextual de la gráfica que se despliega al hacer clic derecho y darle en la opción de Tamaño más centímetros de los que aparece tanto en el ancho como en el alto. Pero lo que me interesaría sería poderlo hacerlo programáticamente o usar alguna propiedad o función de la gráfica que adaptara su tamaño al del área definido en Rect, tal como se aprecia en el código.
Última edición por Rufus el Mié Oct 21, 2015 12:55 pm, editado 1 vez en total.
Apache OpenOffice 4.1.1 en Windows 8
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Extraño comportamiento con el tamaño de la gráfica

Mensaje por mauricio »

______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
Rufus
Mensajes: 7
Registrado: Dom Oct 18, 2015 3:22 pm

Re: Extraño comportamiento con el tamaño de la gráfica

Mensaje por Rufus »

Gracias por la respuesta, pero como antes cité ya he leído la documentación y no he encontrado nada. Es más, parte del códgo fue extraído de un ejemplo de la documentación de AOO donde abordaba esto, crear gráficas.

Así como último he probado lo de redimensionar la gráfica como si se tratara de un shape, usando setSize() pero el resultado es el mismo, incluso me han ignorado los nuevos valores. En definitiva pienso que se trataría de un bug, de todas formas sigo abierto a nuevas propuestas y para salir de este callejón sin salida plantearé un nuevo diseño para el script, donde por lo menos ya esté creado la gráfica y luego la modifique... y si no, pues crear una aplicación Java y listo, nunca he visto con buenos ojos esto de usar el AOO para desarrollar aplicaciones.
Apache OpenOffice 4.1.1 en Windows 8
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Extraño comportamiento con el tamaño de la gráfica

Mensaje por fornelasa »

Para mi no se entiende la consulta, por ejemplo:
"que en base a unos datos se genere una gráfica"
¿qué datos, qué rango, en qué hoja ..... ?
Se manda un codigo que hay que intentar conectarlo con "algo" y obliga a analizarlo para hacer "algo".
Las imagenes enviadas no se ven ..... si es que son imagenes ..... bueno al menos en mi pc no se ven.

Digo, si lo sabemos hacer en Java y hacerlo con AOO nos parece "ridiculo" ..... entonces?

Sugiero explicar claramente la consulta y enviar el archivo ejemplo.

Saludos.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
Rufus
Mensajes: 7
Registrado: Dom Oct 18, 2015 3:22 pm

Re: Extraño comportamiento con el tamaño de la gráfica

Mensaje por Rufus »

fornelasa escribió:Para mi no se entiende la consulta, por ejemplo:
"que en base a unos datos se genere una gráfica"
¿qué datos, qué rango, en qué hoja ..... ?
Se manda un codigo que hay que intentar conectarlo con "algo" y obliga a analizarlo para hacer "algo".
Las imagenes enviadas no se ven ..... si es que son imagenes ..... bueno al menos en mi pc no se ven.

Digo, si lo sabemos hacer en Java y hacerlo con AOO nos parece "ridiculo" ..... entonces?

Sugiero explicar claramente la consulta y enviar el archivo ejemplo.

Saludos.
"Yo no tengo la culpa de verte caerrrrrr..." (bromas aparte) mire señor fornelasa, estoy de acuerdo con usted en que las imágenes hubieran resuelto bastante, pues son una forma sencilla (sin palabras) de explicar cual es el problema que tengo. Por desgracia, por política de este foro no se han mostrado, algo que no reprocho ya que son medidas de seguridad. Pero por otra parte está muy bien explicado y el código mostrado es suficiente para saber que se trata de hacer. El rango de celdas es innecesario, si quieres te lo puedes inventar tú mismo, pero luego imagina que el resultado es un área que recubre esas celdas, lo cual apreciarás por medio de los nodos o puntos que delimitan el área en color verde (definido por medio de Rect) y la gráfica en su interior, que se muestra en un tamaño muchísimo más reducido (en mi caso) y que sólo se ajusta al área al editar la gráfica desde el editor.

Si no me permiten enviar una imagen dudo que me permitan incluir una URL para descargar la imagen, pero lo intentaré.

http://imgur.com/7vV9QX5

http://imgur.com/hwHQBbp

o

imgur . com/7vV9QX5

imgur . com/hwHQBbp

Puedo desarrollar el script como una aplicación en Java sin problema o en cualquier lenguaje de programación o tecnología programada, por algo soy programador, pero ello no implica que entienda o comprenda la plataforma donde realizaré el trabajo, pues para eso tengo que dedicarle algo de tiempo para estudiarla, leyendo documentación técnica por ejemplo. Si he recurrido aquí, es porque se trata del foro oficial de AOO (versión española) y es donde mejor pueden orientarme con algo que no encuentro en la documentación (que he repetido ya tres veces con esta). La decisión de hacerlo con AOO no depende de mi, depende del cliente, si profesionalmente te dedicas a la programación seguro que lo entiendes, yo sólo soy un mercenario hago lo que me piden, ahora tendré que reportar e informar del problema que acontece y propondré hacerlo de otra forma o pedirle al cliente que lo pruebe en su equipo para comprobar si se trata de algún bug con binomio Windows 8 + AOO 4.1.1.
Apache OpenOffice 4.1.1 en Windows 8
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Extraño comportamiento con el tamaño de la gráfica

Mensaje por mauricio »

Hola compañero...

si se te solicito un archivo de ejemplo, es precisamente porque no esta suficientemente claro, además, es mucho más sencillo solo ayudarte a verificar que se reproduce el problema en nuestros equipos o decirte que esta mal en el mismo...

Salvo el tamaño, puedes agregar sin problemas imágenes a los temas, como puedes verificarlo en más de uno aquí mismo.

reitero, un archivo de ejemplo es mucho mejor.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Extraño comportamiento con el tamaño de la gráfica

Mensaje por fornelasa »

En lo que llega el archivo ejemplo, si es que llega (digo, en vez de decir tanta burrada se pudo utilizar ese tiempo para aclarar el tema con el archivo ejemplo).

He realizado pruebas por aca y efectivamente el grafico se reduce demasiado solo al "principio", se compone si se sale de la aplicacion (en este caso Calc) y se vuelve a entrar, algo similar a lo comentado por aqui:

https://forum.openoffice.org/es/forum/v ... B1o#p36663

Para la comunidad en general , si ponemos datos en C3:D7 esta macro funciona correctamente con el inconveniente de tal vez la reducción al "inicio" ....pero luego se compone .....

Código: Seleccionar todo

Sub Grafico()
	Dim Compo as Object
	Dim oSheet as Object
	Dim oRange As Object
	Dim Rectangulo As New com.sun.star.awt.Rectangle
	Dim rDireccion(0) As New com.sun.star.table.CellRangeAddress
	document   = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	dim args1(0) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "ToPoint"
	args1(0).Value = "C3:D7"
	dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
		Compo=ThisComponent
		oTitle="Grafica ejemplo"
		Rectangulo.Height = 9000 
		Rectangulo.Width = 16000 
		Rectangulo.x = 11800  
		Rectangulo.y =50  
		oRange=Compo.getCurrentSelection.getRangeAddress
		oSheet=Compo.CurrentSelection.getSpreadsheet
		Grafs=oSheet.Charts
		rDireccion(0).sheet = oRange.Sheet
		rDireccion(0).StartColumn = oRange.StartColumn
		rDireccion(0).EndColumn = oRange.EndColumn
		rDireccion(0).StartRow = oRange.StartRow
		rDireccion(0).EndRow = oRange.EndRow	
		if Grafs.hasByName(oTitle) Then
			Grafs.RemoveByName(oTitle)
		end if
		Grafs.addNewByName(oTitle,Rectangulo,rDireccion(),True,True)
		grafico_Line=Grafs.getByName(oTitle).embeddedObject
		grafico_Line.HasMainTitle = True
		grafico_Line.Title.String = oTitle
		grafico_Line.diagram.HasXAxisTitle = true
		grafico_Line.diagram.XAxisTitle.String = "Datos"
		grafico_Line.diagram.HasYAxisTitle = true
		grafico_Line.diagram.YAxisTitle.String = "Importes"
		grafico_Line.diagram = grafico_Line.createInstance("com.sun.star.chart.LineDiagram")	
End Sub
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
Rufus
Mensajes: 7
Registrado: Dom Oct 18, 2015 3:22 pm

Re: Extraño comportamiento con el tamaño de la gráfica

Mensaje por Rufus »

Bueno chicos, gracias a todos, al final se trata de un bug tal como indica el señor fornelasa, por lo que ya se ha ideado otro sistema para acometer el script, usando una gráfica estática, ya creada, espero no llevarme más sorpresas con AOO, la cual me parece una gran herramienta, fruto de mucha colaboración desinteresada. Saludos y si queréis cerramos el hilo, aunque no con el mensaje de solucionado.
Apache OpenOffice 4.1.1 en Windows 8
Avatar de Usuario
Rufus
Mensajes: 7
Registrado: Dom Oct 18, 2015 3:22 pm

Re: Extraño comportamiento con el tamaño de la gráfica

Mensaje por Rufus »

Así es, al final os quedaréis con las ganas de ver el código, el fichero que nunca llegará muahahaha por tema de confidencialidad no es posible, sorry
Apache OpenOffice 4.1.1 en Windows 8
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Extraño comportamiento con el tamaño de la gráfica

Mensaje por mauricio »

______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Extraño comportamiento con el tamaño de la gráfica

Mensaje por fornelasa »

al final se trata de un bug tal como indica el señor fornelasa,
Bueno yo dije "hay que ver el archivo ejemplo" y dije
si ponemos datos en C3:D7 esta macro funciona correctamente con el inconveniente de tal vez la reducción al "inicio" ....pero luego se compone .....
Si tenemos un rango de datos por ejemplo C3:D7 y la macro no hace referencia a dicho rango se produce el grafico pequeño debido a que con el codigo se genera un grafico vacio que da origen al grafico pequeño. Solución: que la macro haga referencia al rango C3:D7 para que de ahi tome los datos a graficar, yo solo así he logrado reproducir tal error, de ahi en fuera considero que funciona correctamente.

Tambien no dudo que sea un bug pero para confirmarlo al 100% es necesario ver el archivo ejemplo

Saludos.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Extraño comportamiento con el tamaño de la gráfica

Mensaje por mauricio »

¿Puedes anexar el archivo para verificar que efectivamente sea un bug?
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder