Primero crea un método que te devuelva esos datos de la forma normal, como si lo fueras a enlazar a un DataGridView.
Código vb.net:
Ver originalPrivate Function MostrarDatos() As DataTable
Dim cn As New SqlConnection(conexion)
Dim cmd As New SqlCommand("MI_USP",cn)
cmd.Parameters.Add("@codigo",SqlDbType.VarChar,4).value = Me.TextBox1.Text
Dim da As New SqlDataAdapter(cmd)
Dim dt As New DataTable()
da.fill(dt)
return dt
End Function
Luego usar el método
SetDataSource de la clase
ReportDocument.
Código vb.net:
Ver originalDim rpt As New ReportDocument();
rpt.Load("C:\TU_reporte.rpt")
rpt.setDataSource(me. MostrarDatos) 'Esto asignará los datos al reporte sin mostrar la ventan a de parámetros del CR
Me.CrystalReportViewer1.ReportSource=rpt
Y eso sería todo, cualquier duda o error en el código me avisas.
PD: Puedes visitar un post de mi blog con código fuente de esto.
Mi blog