[RESUELTO] Exportar formulario a pdf con nombe de un campo

Discute sobre las herramientas de la base de datos
Responder
elbudoka
Mensajes: 4
Registrado: Mar Jun 26, 2018 11:48 am

[RESUELTO] Exportar formulario a pdf con nombe de un campo

Mensaje por elbudoka »

Buenos días:
Tengo un formulario en BASE que obtiene datos de una tabla (Equipo, Marca, Modelo) y necesito crear un botón y asociarle una macro para exportarlo a pdf con el nombre de archivo de valor "Equipo". El formulario tiene un botón de búsqueda por Equipo que devuelve los demás valores. ¿Qué tendría que modificar en el código?

Código: Seleccionar todo

sub PDF
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/temp/Form.pdf"
args1(1).Name = "FilterName"
args1(1).Value = "writer_pdf_Export"

dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1())

end sub

Sub sInicio(Event As Object)
	With ThisDatabaseDocument.CurrentController
		If Not .IsConnected Then .Connect
	End With
	ThisDatabaseDocument.FormDocuments.GetByName("Formulario").Open
End Sub

Sub BotonBusquedaEquipo(Event As Object)
   Dim Form As Object
   Form=Event.Source.Model.Parent
   Form.Filter="UPPER(""Equipo"") LIKE '%" & UCase(InputBox("Introduzca equipo a buscar:","Búsqueda por equipo","")) & "%'"
   Form.Reload
End Sub


Function fNoRegistrosFormulario(Form As Object) As Integer
   Dim vNoR As Integer
   Dim oClonRS As Object
   oClonRS=Form.CreateResultSet()
   If oClonRS.Last Then
      vNoR=oClonRS.Row + 1
   Else
      vNoR=0
   End If
   fNoRegistrosFormulario=vNoR
End Function

Muchas gracias
Última edición por elbudoka el Lun Jul 02, 2018 10:03 am, editado 2 veces en total.
OpenOffice 4.1.1, Windows 7
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Exportar formulario a pdf con nombe de un campo

Mensaje por RMG »

Hola,

A lo que entiendo que necesitas, que obtener el nombre del Equipo para asignarselo al nombre del archivo pdf. Esto creo que te puede valer. Si no es así, lo mejor es que muestres un pequeño ejemplo de como lo tienes hecho.

Código: Seleccionar todo

Global sEquipo As String

Sub BotonBusquedaEquipo(Event As Object)
   Dim Form As Object
   Form=Event.Source.Model.Parent
   sEquipo = InputBox("Introduzca equipo a buscar:","Búsqueda por equipo","")
   Form.Filter="UPPER(""Equipo"") LIKE '%" & UCase(sEquipo) & "%'"
   Form.Reload
End Sub

sub PDF
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/temp/" & sEquipo &".pdf"
args1(1).Name = "FilterName"
args1(1).Value = "writer_pdf_Export"

dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1())

end sub
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)
elbudoka
Mensajes: 4
Registrado: Mar Jun 26, 2018 11:48 am

Re: Exportar formulario a pdf con nombe de un campo

Mensaje por elbudoka »

Hola RMG,
Gracias por tu aportación.
No obstante, como lo has resuelto devuelve el valor que se ha introducido en el campo búsqueda (que podría ser incompleto ya que se puede hacer una búsqueda parcial) no el valor del campo que se muestra en el formulario después de hacer la búsqueda. En el ejemplo adjunto, si buscara por Equipo "1" devolvería el valor Equipo "11", no obstante lo exportaría como 1.pdf.

https://we.tl/bBQBWcEUGf

¿Sería posible que lo exportara con el valor que devuelve la búsqueda del campo Equipo?

Muchas gracias
OpenOffice 4.1.1, Windows 7
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Exportar formulario a pdf con nombe de un campo

Mensaje por RMG »

Hola,

En ese caso, lo que debe hacer la variable global es tomar el valor del control después de filtrar.

Código: Seleccionar todo

Sub BotonBusquedaEquipo(Event As Object)
   Dim Form As Object
   Form=Event.Source.Model.Parent
   Form.Filter="UPPER(""Equipo"") LIKE '%" & UCase(InputBox("Introduzca equipo a buscar:","Búsqueda por equipo","")) & "%'"
   Form.Reload
   sEquipo = Form.fmtEquipo.BoundField.Value
End Sub
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)
elbudoka
Mensajes: 4
Registrado: Mar Jun 26, 2018 11:48 am

Re: Exportar formulario a pdf con nombe de un campo

Mensaje por elbudoka »

Gracias RMG.
He intentado replicar el comando para obtener otro valor del formulario ("Marca") y concaternarlo al nombre del pdf pero no he tenido éxito.
¿Me lo podría indicar?
Muchas gracias
OpenOffice 4.1.1, Windows 7
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Exportar formulario a pdf con nombe de un campo

Mensaje por RMG »

Hola,

El control no es "Marca", es "txtMarca". Prueba con eso, a mi si me funciona.

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)
elbudoka
Mensajes: 4
Registrado: Mar Jun 26, 2018 11:48 am

Re: Exportar formulario a pdf con nombe de un campo

Mensaje por elbudoka »

Resuelto, muchas gracias RMG.
OpenOffice 4.1.1, Windows 7
Responder