Dentro de las temáticas a explicar en el cursillo, también están, como no, los informes. Para ello quieren utilizar CrystalReport, el que viene ya embebido en el Visual Studio.
Una vez que nos hallamos creado un informe con crystal (en este caso lo cree con ODBC como forma de conexión y con el nombre de MiReport.rpt, que a su vez, al crearlo desde el visual studio, genera una clase llamada igual que el report MiReport.vb), la forma de poner dicho report en nuestro formulario es la siguiente:
Dim MiCristal As New MiReport
Dim Log As New CrystalDecisions.Shared.TableLogOnInfo
Log.ConnectionInfo.ServerName = "Servidoir/ODBC"
Log.ConnectionInfo.UserID = "Usuario"
Log.ConnectionInfo.Password = "Password"
Log.ConnectionInfo.DatabaseName = "BBDD"
MiCristal.Database.Tables(0).ApplyLogOnInfo(Log)
If txtCodigo.Text.Trim <> "" Then
MiCristal.RecordSelectionFormula = "{tusuarios.codigo}='" & txtCodigo.Text.Trim & "'"
End If
Me.crvUsuarios.ReportSource = MiCristal
¿Que es lo que hemos hecho?
Primero instanciamos el report (a traves del vb que comentamos antes) que hemos creado:
Dim MiCristal As New MiReport
Luego le damos los parámetros de conexión:
Dim Log As New CrystalDecisions.Shared.TableLogOnInfo
Log.ConnectionInfo.ServerName = "NombreServidor"
Log.ConnectionInfo.UserID = "Usuario"
Log.ConnectionInfo.Password = "Password"
Log.ConnectionInfo.DatabaseName = "BBDD"
[!] En nuestro ejemplo, en vez del nombre del servidor pondremos el nombre del ODBC que nos hemos creado, pues hemos construido el report con dicho ODBC como conexión a la BBDD.
Le aplicamos a nuestro report dichos parámetros de conexión:
MiCristal.Database.Tables(0).ApplyLogOnInfo(Log)
Ahora, si queremos, le pasamos filtros al report, de cara a limitar los registros a sacar:
If txtCodigo.Text.Trim <> "" Then
MiCristal.RecordSelectionFormula = "{tusuarios.codigo}='" & txtCodigo.Text.Trim & "'"
End If
De esta forma, si no meto nada en la txt del código me sacaría a todos los usuarios dados de alta en la tabla.
Y ya por último solo tenemos que decirle al visualizador de crystal que hemos puesto en nuestro formulario qué crystal debe cargar en su interior:
Me.crvUsuarios.ReportSource = MiCristal
Y de esta forma tendríamos el informe requerido dentro de nuestro formulario.