Imprimir informe con botón desde el registro actual

Discute sobre las herramientas de la base de datos
Responder
Julian1958
Mensajes: 8
Registrado: Mar Nov 01, 2016 11:01 am

Imprimir informe con botón desde el registro actual

Mensaje por Julian1958 »

Hola...
He reabierto este tema por indicación de un moderador, para ver si me podéis ayudar.
He "diseñado" una base de datos para gestionar un gabinete de audiología. En principio el asunto va bien, sin mayores problemas, pero cuando quiero imprimir un informe desde el formulario "Form_Vista_Clientes" la cosa casca. A ver si abres ese formulario verás los datos del cliente (por cierto, como está copiado desde la base original dice que tiene una tabla que en principio no existe, ya que las he copiado y vuelto a crear y puesto como origen de los datos la de cleintes actual, así que la de visitas no sé de donde la saca), y un botón para ejecutar la consulta "Consulta_Clientes" y que imprima un informe con las visitas realizadas por el cliente cuyos datos están en pantalla.
En principio he fusilado la macro que se había puesto aquí hace tiempo, pero a mi no me va... Si alguien me puede echar una mano se lo agradezco.
Esta es la macro con indicacion de donde casca. Supongo que para alguien experimentado la cosa será sencilla, pero yo no lo soy.

Option Explicit

Sub ImprimirHistorial( Evento )
Dim oReporte As Object
Dim oConsulta As Object
Dim oCampoID As Object
Dim oForm As Object

'El formulario activo
oForm = Evento.Source.Model.Parent
'El campo con el Id
oCampoID = oForm.GetByName("Id_cliente") 'Aqui es donde "casca" diciendo No such element
'Debe ser mayor a cero
If oCampoID.BoundField.Int > 0 Then
'La consulta en la que se basa el reporte
oConsulta = ThisDatabaseDocument.DataSource.QueryDefinitions.getByName ("Consulta_Clientes" )
'Modificamos la consulta de modo que tome el registro actual
oConsulta.Command = "SELECT ""Id_cliente"", FROM ""Clientes"" WHERE ""Id_cliente"" = " & oCampoID.BoundField.Int
'El informe a mostrar
oReporte = ThisDatabaseDocument.ReportDocuments.getByName ("Rpt_Consulta_Visitas" )
'Mostramos el reporte
oReporte.Open
End If

End Sub



De verdad gracias por la ayuda que me podáis prestar...
Saludos
OpenOffice 4.2 en macOS 10.12.1
Julian1958
Mensajes: 8
Registrado: Mar Nov 01, 2016 11:01 am

Re: Imprimir informe con botón desde el registro actual

Mensaje por Julian1958 »

Como no podía ser de otra manera, iba a adjuntar la base (con datos ficticios) para que veáis lo que he hecho, pero olvide adjuntar el archivo. Aquí va.
Adjuntos
ejemplos.odb.zip
(42.45 KiB) Descargado 151 veces
OpenOffice 4.2 en macOS 10.12.1
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Imprimir informe con botón desde el registro actual

Mensaje por mauricio »

Hola...

No veo la macro en el archivo, puedes verificarlo?

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Imprimir informe con botón desde el registro actual

Mensaje por RMG »

Hola,

Como indica Mauricio no has puesto la macro en el ejemplo. Pero por lo que he visto el problema es el que te comentaba el es hilo antiguo.

En la macro el control se llama Id_cliente, en el formulario se llama fmtId_cliente, que no es lo mismo.

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)
Julian1958
Mensajes: 8
Registrado: Mar Nov 01, 2016 11:01 am

Re: Imprimir informe con botón desde el registro actual

Mensaje por Julian1958 »

Efectivamente faltaba la macro en el ejemplo. Ahora la he incluido. Estaba en "Mis macros" y no en la BdeD.
Adjuntos
ejemplos.odb.zip
(43.3 KiB) Descargado 154 veces
OpenOffice 4.2 en macOS 10.12.1
Julian1958
Mensajes: 8
Registrado: Mar Nov 01, 2016 11:01 am

Re: Imprimir informe con botón desde el registro actual

Mensaje por Julian1958 »

RMG escribió:Hola,

Como indica Mauricio no has puesto la macro en el ejemplo. Pero por lo que he visto el problema es el que te comentaba el es hilo antiguo.

En la macro el control se llama Id_cliente, en el formulario se llama fmtId_cliente, que no es lo mismo.

Saludos

Pues he cambiado Id_cliente por fmtld_cliente y el resultado es el mismo. Sigue cascando en el mismo sitio y por la misma razón.
OpenOffice 4.2 en macOS 10.12.1
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Imprimir informe con botón desde el registro actual

Mensaje por mauricio »

Tienes dos errores, el nombre del control es fmtId_cliente:

Código: Seleccionar todo

oCampoID = oForm.GetByName("fmtId_cliente")
el nombre de la consulta es: Consulta_Clientes

Código: Seleccionar todo

oConsulta = ThisDatabaseDocument.DataSource.QueryDefinitions.getByName ("Consulta_Clientes" )
pero hay otro error en el reporte que tienes que arreglar.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder