Me da vergüenza exponer código :smt009 porque seguro que hay formas mucho mejor de hacerlo y cada poco tiempo intento irlo mejorando, pero te pongo el código del botón ver de mi formulario de impresión genérico (utilizo un formulario genérico desde donde imprimo cualquier report, si lo necesito desde otro formulario, por ejemplo facturas, le paso los datos en vez de seleccionarlos mediante listas desplegables:
Código:
'---------------------------------------------------------------------------------------
' Procedimiento : cmdVer_Click
' Fecha y hora : 21/04/2004 17:36
' Autor : Jose Antonio Gonzalez-Diaz
' Proposito :
'---------------------------------------------------------------------------------------
'
Private Sub cmdVer_Click()
Dim strNombreReport As String
'Evita reentrada
If VSR.IsBusy Then Exit Sub
' Comprobar que hay un report seleccionado
If strFicheroReports <> "" And strReport <> "" Then
' Carga report del fichero XML
If blnMultiuso = True Then
strNombreReport = strReport
If intMultiuso = 1 Then
strReport = strReport + "Castellano"
ElseIf intMultiuso = 2 Then
strReport = strReport + "Catalan"
ElseIf intMultiuso = 3 Then
strReport = strReport + "Gallego"
ElseIf intMultiuso = 4 Then
strReport = strReport + "Euskera"
End If
End If
VSR.Load strFicheroReports, strReport
' Coge la cadena de seleccion
With VSR.DataSource
.ConnectionString = strConexion
.RecordSource = strFiltroTabla & " " & strFiltro
End With
' Pasa el focus al control vsprinter
'VP.SetFocus
' Prepara control de tiempo
t = Timer
MousePointer = 11
' Render del informe
On Error Resume Next
VSR.Render VP
If Err.Number <> 0 Then
MsgBox "Error " & Err.Number & vbCrLf & Err.Description
End If
'Indica el tiempo transcurrido
Call FinalMedidorTiempo
cmdPDF.Visible = True
cmdHTLM.Visible = True
strReport = strNombreReport
strNombreReport = ""
Else
Call FaltaDocumento
End If
End Sub Cada vez que genero un documento hago una nueva renderización y coge el select de la tabla especificada que ya está actualizada por lo que el report no necesita hacerlo.
Como especifidades puedes ver que evito la reentrada, el generar un report en el que no existas datos, genero reports en varios idiomas, a elegir por el usuario y tengo un boton para generar un PDF y un HTLM.
Voy a intentar ponerte la pantalla en el próximo mensaje.
Espero que te guste