[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...
Responder
Weog
Mensajes: 2
Registrado: Lun Nov 13, 2017 5:15 pm

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

Mensaje por Weog »

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

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
FJCC-ES
Mensajes: 873
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

Mensaje por FJCC-ES »

Código en BASIC

Código: Seleccionar todo

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

Mensaje por Weog »

Excelente! mil gracias por tu ayuda. me funciona perfecto.
OpenOffice 4.1.4 en Windows Server 2012
Responder