Imprimir informe con botón desde el registro actual
-
- Mensajes: 8
- Registrado: Mar Nov 01, 2016 11:01 am
Imprimir informe con botón desde el registro actual
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
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
-
- Mensajes: 8
- Registrado: Mar Nov 01, 2016 11:01 am
Re: Imprimir informe con botón desde el registro actual
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
Re: Imprimir informe con botón desde el registro actual
Hola...
No veo la macro en el archivo, puedes verificarlo?
Saludos
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
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: Imprimir informe con botón desde el registro actual
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
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)
-
- Mensajes: 8
- Registrado: Mar Nov 01, 2016 11:01 am
Re: Imprimir informe con botón desde el registro actual
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
-
- Mensajes: 8
- Registrado: Mar Nov 01, 2016 11:01 am
Re: Imprimir informe con botón desde el registro actual
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
Re: Imprimir informe con botón desde el registro actual
Tienes dos errores, el nombre del control es fmtId_cliente:
el nombre de la consulta es: Consulta_Clientes
pero hay otro error en el reporte que tienes que arreglar.
Saludos
Código: Seleccionar todo
oCampoID = oForm.GetByName("fmtId_cliente")
Código: Seleccionar todo
oConsulta = ThisDatabaseDocument.DataSource.QueryDefinitions.getByName ("Consulta_Clientes" )
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro