Página 1 de 1

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

Publicado: Dom Oct 18, 2015 3:53 pm
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.

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

Publicado: Dom Oct 18, 2015 5:42 pm
por mauricio

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

Publicado: Dom Oct 18, 2015 7:25 pm
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.

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

Publicado: Lun Oct 19, 2015 4:03 am
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.

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

Publicado: Lun Oct 19, 2015 11:02 am
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.

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

Publicado: Lun Oct 19, 2015 3:34 pm
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

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

Publicado: Lun Oct 19, 2015 8:07 pm
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

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

Publicado: Lun Oct 19, 2015 10:58 pm
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.

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

Publicado: Lun Oct 19, 2015 11:02 pm
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

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

Publicado: Lun Oct 19, 2015 11:05 pm
por mauricio

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

Publicado: Lun Oct 19, 2015 11:26 pm
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.

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

Publicado: Mié Oct 21, 2015 6:10 pm
por mauricio
¿Puedes anexar el archivo para verificar que efectivamente sea un bug?