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.
Lo divertido, es que si edito la gráfica esta se muestra como debería verse, ocupando todo el área.
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?