Informacion de interaccion en formas Impress

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
arivas_2005
Mensajes: 162
Registrado: Mié Nov 16, 2011 6:01 pm

Informacion de interaccion en formas Impress

Mensaje por arivas_2005 »

Saludos.

Necesito extraer la información que asignaron por medio de Presentación>interacción a cada una de las formas de una diapositiva. Averiguar:
Si es ir a objeto y luego saber a cual objeto va la accion.
Si es ir a documento y saber cual documento va la accion
Si es ir a programa y saber cual programa es el que se ejecutará
... etc
Cuento que he googleado y aun no encuentro sobre el tema.
Tengo la impresión de que temas como este casi no tienen aportes en la red. Así que solicito me puedan ayudar a resolver este dilema.

Suponiendo que propongo insertar tres formas a la diapositiva 1; luego, configurar las interacciones: una forma la configuran para ir al final de la presentación, otra forma la configuran para ir a la diapositiva 5 y otra para llamar una segunda presentación,... etc. Entonces lo que necesito es extraer la información de esas tres formas usando macro para establecer si la interacción fue aplicada apropiadamente (o sea como calificar la aplicación de interacciones).

Mis agradecimientos anticipados
Libreoffice 4.7
Puppy slacko 6 y windows 7
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Informacion de interaccion en formas Impress

Mensaje por mauricio »

Aquí en este foro puedes encontrar como recorrer cada forma. Después solo consultas su propiedad OnClik que te dará uno de los siguientes valores:
http://api.libreoffice.org/docs/idl/ref ... b2c5661d8f

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
arivas_2005
Mensajes: 162
Registrado: Mié Nov 16, 2011 6:01 pm

Re: Informacion de interaccion en formas Impress

Mensaje por arivas_2005 »

Gracias Mauricio
En base a su sugerencia, he logrado extraer la info de los shapes con interacción usando las lineas siguientes:

Código: Seleccionar todo

Inter0= ThisComponent.Drawpages.getByIndex(0)

valorclick=Inter0.getByIndex(0).onclick
destino=Inter0.getByIndex(0).Bookmark
No obstante, el valorclick me sale en número y no en letras. Curioseando con mri hay una columna titulada VALUE en la que sí se ve el nombre de la interacción elegida
(por hoy he construido una tabla de numeros e interacciones; 0 no hay, 1... etc)
mri
(Name) . . . (Value Type) . . . . . . . (Value)
OnClick .presentation.ClickAction FIRSTPAGE

Cömo se extrae ese value?

Pero, el problema que tengo es que cuando aplican la interacción a un objeto de la diapositiva, entonces Inter0.getByIndex(0).Bookmark[ muestra el nombre del objeto (y no indica en qué diapositiva). Cómo puedo saber en qué diapositiva está el objeto destino de la interacción

mri
(Name) . . (Value Type). . (Value)
Bookmark - string - - Object 2 <-- como saber en qué diapositiva está?


Nuevamente mis agradecimientos por el apoyo.
Libreoffice 4.7
Puppy slacko 6 y windows 7
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Informacion de interaccion en formas Impress

Mensaje por fornelasa »

arivas_2005 escribió:Necesito extraer la información que asignaron por medio de Presentación>interacción a cada una de las formas de una diapositiva
Parecería ser así, Ejemplo:

Código: Seleccionar todo

Sub Main
Dim valores()
valores = Array("Nada", "Página anterior", "Página siguiente", "Diapositiva inicial", "Diapositiva Final", "Etcetera")
oImpPage = ThisComponent.GetDrawPages
oSlide = oImpPage.getByName("page1")
nombre = oSlide.GetByIndex(0).Name
MsgBox "La forma " + nombre + " fue asignada a la ínteraccion " + valores(oSlide.GetByIndex(0).OnClick)
End Sub
Saludos, Federico.
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!
Responder