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...

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

Notapor Rufus » Dom Oct 18, 2015 3:53 pm

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   Expandir vistaContraer vista
   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
Rufus
 
Mensajes: 7
Registrado: Dom Oct 18, 2015 3:22 pm

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

Notapor mauricio » Dom Oct 18, 2015 5:42 pm

______________________________________________
"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
mauricio
 
Mensajes: 5867
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

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

Notapor Rufus » Dom Oct 18, 2015 7:25 pm

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
Rufus
 
Mensajes: 7
Registrado: Dom Oct 18, 2015 3:22 pm

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

Notapor fornelasa » Lun Oct 19, 2015 4:03 am

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
fornelasa
 
Mensajes: 3223
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

Notapor Rufus » Lun Oct 19, 2015 11:02 am

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
Rufus
 
Mensajes: 7
Registrado: Dom Oct 18, 2015 3:22 pm

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

Notapor mauricio » Lun Oct 19, 2015 3:34 pm

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
mauricio
 
Mensajes: 5867
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

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

Notapor fornelasa » Lun Oct 19, 2015 8:07 pm

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   Expandir vistaContraer vista
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
fornelasa
 
Mensajes: 3223
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

Notapor Rufus » Lun Oct 19, 2015 10:58 pm

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

Notapor Rufus » Lun Oct 19, 2015 11:02 pm

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
Rufus
 
Mensajes: 7
Registrado: Dom Oct 18, 2015 3:22 pm

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

Notapor mauricio » Lun Oct 19, 2015 11:05 pm

______________________________________________
"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
mauricio
 
Mensajes: 5867
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

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

Notapor fornelasa » Lun Oct 19, 2015 11:26 pm

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
fornelasa
 
Mensajes: 3223
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

Notapor mauricio » Mié Oct 21, 2015 6:10 pm

¿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
Avatar de Usuario
mauricio
 
Mensajes: 5867
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 8 invitados