[RESUELTO] Anclar un gráfico a una celda.

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[RESUELTO] Anclar un gráfico a una celda.

Notapor pppardo » Vie Mar 02, 2018 2:49 pm

Hola a todos.
Estoy intentando crear un gráfico basado en una hoja de cálculo Calc mediante macros y no he sido capaz de anclarlo a una celda.

¿Alguien que sepa cómo hacerlo?

Gracias
Última edición por pppardo el Mar Mar 13, 2018 9:10 am, editado 2 veces en total
Pepe Pardo
Open Office 4.1.3
Windows 7
pppardo
 
Mensajes: 6
Registrado: Vie Mar 02, 2018 2:35 pm

Re: Anclar un gráfico a una celda.

Notapor mauricio » Vie Mar 02, 2018 4:00 pm

Un gráfico es un elemento gráfico más de la hoja, usa la propiedad Anchor, requiere una celda como valor:
Código: Seleccionar todo   Expandir vistaContraer vista
   obj = ThisComponent.CurrentController.Selection.getByIndex(0)
   cell = ThisComponent.getCurrentController.getActiveSheet.getCellRangeByName("A1")
   obj.Anchor = cell

Tienes mucho información por acá:
https://wiki.openoffice.org/wiki/ES/Man ... osGraficos

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 5.4 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5590
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: Anclar un gráfico a una celda.

Notapor pppardo » Vie Mar 02, 2018 6:46 pm

Al decir gráfico quería decir Chart. Es decir diagramas estadísticos. De tarta, de barras etc. Eso vale también?
Pepe Pardo
Open Office 4.1.3
Windows 7
pppardo
 
Mensajes: 6
Registrado: Vie Mar 02, 2018 2:35 pm

Re: Anclar un gráfico a una celda.

Notapor mauricio » Vie Mar 02, 2018 6:51 pm

Reitero, un gráfico es un elemento más, ¿ya probaste?
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 5.4 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5590
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: Anclar un gráfico a una celda.

Notapor pppardo » Vie Mar 02, 2018 7:29 pm

En cuanto llegue a casa lo pruebo.
Gracias.
Pepe Pardo
Open Office 4.1.3
Windows 7
pppardo
 
Mensajes: 6
Registrado: Vie Mar 02, 2018 2:35 pm

Re: Anclar un gráfico a una celda.

Notapor pppardo » Lun Mar 05, 2018 12:21 pm

Vale, funciona. Mi problema ahora es que no tengo seleccionado nada. Tengo el objeto Chart pero no tengo el Shape. ¿Como puedo obtenerlo?


Código: Seleccionar todo   Expandir vistaContraer vista
oChart = thisComponent.Sheets(0).getCharts().getByName("Object 1")
oShape = ??
Pepe Pardo
Open Office 4.1.3
Windows 7
pppardo
 
Mensajes: 6
Registrado: Vie Mar 02, 2018 2:35 pm

Re: Anclar un gráfico a una celda.

Notapor mauricio » Lun Mar 05, 2018 4:37 pm

Si insertas el gráfico por macros, debes de tener tanto el Chart como el Shape, pero... "así sin ver", es difícil ayudarles...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 5.4 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5590
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: Anclar un gráfico a una celda.

Notapor pppardo » Lun Mar 05, 2018 4:56 pm

Sería tal que así:
Código: Seleccionar todo   Expandir vistaContraer vista
Sub GeneraDiagrama()
   Dim sName
   Dim oAddress
   Dim oCharts
   
   sName = "Diagrama"
   oAddress = thisComponent.Sheets(0).getCellRangeByName("A2:C10").getRangeAddress()
   oCharts = thisComponent.Sheets(0).getCharts()

   If NOT oCharts.hasByName(sName) Then
      oRect = createObject("com.sun.star.awt.Rectangle")
      oRect.X = 1000
      oRect.Y = 1000
      oRect.width = 10000
      oRect.Height= 5000
      oCharts.addNewByName(sName, oRect, Array(oAddress), False, True)
   End If
End Sub
Pepe Pardo
Open Office 4.1.3
Windows 7
pppardo
 
Mensajes: 6
Registrado: Vie Mar 02, 2018 2:35 pm

Re: Anclar un gráfico a una celda.

Notapor fornelasa » Lun Mar 05, 2018 7:33 pm

No sé si te he entendido al 100%, dices:
Anclar un gráfico a una celda.

Por ejemplo mover el grafico a la celda E1:
Saludos.
Adjuntos
anclarGrafico (2).ods
Gráfico
(14.7 KiB) 17 veces
lo 5.4.6 | aoo 4.1.5 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 2956
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Anclar un gráfico a una celda.

Notapor pppardo » Mié Mar 07, 2018 11:19 am

Gracias por responder.
Lo que has mandado lo que hace es establecer el gráfico en la misma posición que una celda pero no lo vincula. Con el anclaje (Botón derecho sobre el gráfico, Ancla, Al a celda) lo que hace es que se mueve con la celda. Se amplio las celdas el gráfico también se mueve.

He solucionado el problema a lo bruto. Buscando en todos los Shapes y mirando si se corresponde con el Chart.
Código: Seleccionar todo   Expandir vistaContraer vista
Sub anchorChart(oChart, oCelda) As Object

    oModelo = oChart.getEmbeddedObject()

    dP=thisComponent.Sheets(0).getDrawPage()
    cuenta = dP.count

    for i=0 to cuenta-1
       oPage = dP(i)
       If oPage.supportsService("com.sun.star.drawing.OLE2Shape") Then
         if EqualUnoObjects(oPage.Model, oModelo) then
             oPage.Anchor=oCelda
               Exit For
           End If
       End if
    next
End Function
Pepe Pardo
Open Office 4.1.3
Windows 7
pppardo
 
Mensajes: 6
Registrado: Vie Mar 02, 2018 2:35 pm

Re: Anclar un gráfico a una celda.

Notapor fornelasa » Jue Mar 08, 2018 9:44 pm

ummmm yo realmente al final no entendí.
Aquí un ejemplo de como anclar un gráfico a una celda con la macro que primeramente subiste.
Saludos.
Adjuntos
anclarGrafico.ods
Anclar gráfico.
(14.67 KiB) 12 veces
lo 5.4.6 | aoo 4.1.5 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 2956
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.


Volver a Macros y API UNO

¿Quién está conectado?

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