Buenos días:
Estoy buscando la forma de enviar una cadena de caracteres (un trocito de texto) al encabezado de un informe a través de una macro. El motivo es que quiero utilizar este informe para mostrar resgistros filtrado de distintas formas, y debería incluir en la cabecera del informe qué es lo que intento mostrar en el informe. Por ejemplo ejemplo: 'bajas entre fechas', o 'altas entre fechas', etc. Otra opción sería crear distintos informes, pero al ser unas cinco formas de pedir la información que muestra, he pensado en la posibilidad de reutilizar el mismo informe.
Saludos y gracias por vuestra paciencia.
[RESUELTO] Macro que envíe texto a cabecera informe
[RESUELTO] Macro que envíe texto a cabecera informe
Última edición por pmartimor el Jue Mar 29, 2018 9:09 pm, editado 2 veces en total.
LibreOffice 5.1.0.3 en clientes Windows 10, 7, XP sobre BD MySql.
Re: Macro que envie texto a cabecera informe
Hola,
Puedes hacerlo al igual que cargas las fechas de otro hilo. Pones un combobox en el formulario cargado con los titulos del informe y solo debes seleccionr el que corresponda.
Saludos
Puedes hacerlo al igual que cargas las fechas de otro hilo. Pones un combobox en el formulario cargado con los titulos del informe y solo debes seleccionr el que corresponda.
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Re: Macro que envie texto a cabecera informe
Buenas!
He hecho una pequeña macro, y parece funcionar, aunque luego ya si gusta el resultado o no es otra cosa.
Lo que sí, tienes que abrir con el botón directamente en la macro, no con la macro genérica de abrir cualquier informe (he probado y así no parece funcionar, pero al lanzarla directamente desde macros, abre y modifica 'adecuadamente' el informe):
Un saludo!
He hecho una pequeña macro, y parece funcionar, aunque luego ya si gusta el resultado o no es otra cosa.
Lo que sí, tienes que abrir con el botón directamente en la macro, no con la macro genérica de abrir cualquier informe (he probado y así no parece funcionar, pero al lanzarla directamente desde macros, abre y modifica 'adecuadamente' el informe):
Código: Seleccionar todo
Sub InformeTexto
'--------------------------------------------------------------------
' 0 Declaramos las variables
Dim oInforme As Object, ocontroller
Dim oTexttable As Object, orow As Object, Fila
Dim Ntexttable as integer, i as integer, z as integer, Filas As Integer
'-----------------------------------------------------------------------
'1º Abrimos el informe, pasamos por todas las tablas
ocontroller = Thisdatabasedocument.currentController
if not ocontroller.isconnected then ocontroller.connect ' Mantenemos la conexión
oInforme = Thisdatabasedocument.reportdocuments.getbyname("infEntreFechasNac").open ' Abrimos el informe
oTexttable = oInforme.Texttables(0) ' La tabla que toca en cada paso del ciclo
oCell = oTextTable.getCellByPosition(0, 0) ' La celda sobre la que actuaremos
oText = oCell.Text ' Texto en el interior de la celda
oCurs = oText.createTextCursor() ' Generamos un cursor de texto
oCurs.gotoEND(True) ' Vamos hasta el final del texto, indicando que las acciones se aplican a todo el texto de la celda
oCurs.String= "Esta vez debe funcionar" ' Insertamos el texto
'----------------------------------------------------------------------------------------
' 3º Damos formato al texto seleccionado
oCurs.CharFontName = "Arial" ' Nombre de la fuente
oCurs.CharUnderline = com.sun.star.awt.FontUnderline.SINGLE ' Subrayado
oCurs.CharWeight = com.sun.star.awt.FontWeight.BOLD ' Negrita
oCurs.CharColor = RGB(255,0,255) ' Color del texto
oCurs.CharHeight = 12 ' Tamaño de la letra
oCurs.CharPosture = com.sun.star.awt.FontSlant.ITALIC ' Cursiva
oCurs.ParaAdjust = com.sun.star.style.ParagraphAdjust.LEFT ' Centrada
Fila = oTexttable.rows(0) ' La fila que toca (Primera en este caso)
oTexttable.getRows().getByIndex(i).IsAutoHeight = True ' Autoaltura
End sub
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Libreoffice 6.4.2, en Windows 10
Re: Macro que envie texto a cabecera informe
Gracias por vuestra rápida respuesta.
Las dos opciones funcionan.
Saludos cordiales.
Las dos opciones funcionan.
Saludos cordiales.
LibreOffice 5.1.0.3 en clientes Windows 10, 7, XP sobre BD MySql.