[RESUELTO] Cómo inserto una tabla en una posición del doc?

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

[RESUELTO] Cómo inserto una tabla en una posición del doc?

Notapor Weog » Lun Nov 13, 2017 5:38 pm

Hola.
Necesito saber cómo hago para insertar una tabla de datos en una posición específica de un documento. Para ello he indicado la posición con una etiqueta <<TLIQDATA>> en un documento que contiene varios párrafos con una estructura como esta:

" TITULO

Párrafo 1: xxxv ...

Párrafo 2: yyyyx....

Párrafo 3: zzzza....

«TLIQDATA»

Párrafo 4: ...."

El código que utilizo para insertar la tabla es el siguiente:

Código: Seleccionar todo   Expandir vistaContraer vista
loFandR.SearchString("«TLIQDATA»")

loCursor = loOpenDoc.text.CreateTextCursor()
loOpenDoc.text.insertString(loCursor, "Datos de la tabla a mostrar:. ", .f.)

objTable= loOpenDoc.createInstance( "com.sun.star.text.TextTable")
objTable.initialize(2, 4)
loCursor.text.insertTextContent(loCursor, objTable, .f.)

*'Get first row
objRows= objTable.getRows
objRow= objRows.getByIndex( 0)

*'Fill the first table row
_OpenOffice_insertIntoCell ("A1","FirstColumn", objTable )
_OpenOffice_insertIntoCell ("B1","SecondColumn", objTable )
_OpenOffice_insertIntoCell ("C1","ThirdColumn", objTable )
_OpenOffice_insertIntoCell ("D1","SUM", objTable )

objTable.getCellByName("A2").setValue(22.5)
objTable.getCellByName("B2").setValue(5615.3)
objTable.getCellByName("C2").setValue(-2315.7)
objTable.getCellByName("D2").setFormula ("sum ")


Pero el resultado es que la tabla la ubica al inicio del documento y no entre los párrafos 3 y 4 donde la necesito.

Me pueden ayudar por favor?
Última edición por fornelasa el Mar Nov 14, 2017 12:42 am, editado 2 veces en total
Razón: Marcar tema como [RESUELTO]
OpenOffice 4.1.4 en Windows Server 2012
Weog
 
Mensajes: 2
Registrado: Lun Nov 13, 2017 5:15 pm

Re: Cómo inserto una tabla en una posición específica del do

Notapor FJCC-ES » Lun Nov 13, 2017 6:44 pm

Código en BASIC
Código: Seleccionar todo   Expandir vistaContraer vista
loFandR = ThisComponent.createSearchDescriptor()
loFandR.SearchString = "«TLIQDATA»" 'era loFandR.SearchString("«TLIQDATA»")
oTexto = ThisComponent.findFirst(loFandR)

loCursor = ThisComponent.text.CreateTextCursorByRange(oTexto)

ThisComponent.text.insertString(loCursor, "Datos de la tabla a mostrar:. ", TRUE)

objTable= ThisComponent.createInstance( "com.sun.star.text.TextTable")
objTable.initialize(2, 4)
loCursor.text.insertTextContent(loCursor.End, objTable, FALSE)
FJCC-ES
 
Mensajes: 565
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Cómo inserto una tabla en una posición específica del do

Notapor Weog » Lun Nov 13, 2017 7:07 pm

Excelente! mil gracias por tu ayuda. me funciona perfecto.
OpenOffice 4.1.4 en Windows Server 2012
Weog
 
Mensajes: 2
Registrado: Lun Nov 13, 2017 5:15 pm


Volver a Macros y API UNO

¿Quién está conectado?

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