SetDataSource de Crystal

13/04/2005 - 16:45 por Jonathan Prieto | Informe spam
Buenas tardes, mi error es el siguiente:

Tengo un informe de Crystal en un proyecto de vb.net. La conexión la cree
contra la tabla de una bd. A la vez tengo un DataSet que cargo con esa misma
tabla, que lo muestro en un DataGrid. Mi idea es realizar cambios en el
DataGrid (que a la vez los está haciendo en el DataSet) y sin actualizar la
BD, mostrarle los datos del DataSet en el informe, y lo que he hecho es
justo antes de lanzar el informe asignarle el DataSource:

Informe.SetDataSource(dataSetOrigen.Tables("TablaNiveles"))

En teoría una cosa tan fácil como ésta debería funcionar perfectamente, de
hecho no me da ningún error, pero el informe muestra siempre los datos que
hay actualmente en la tabla de la BD no en la tabla del DataSet.

Alguna idea?
Gracias
Jonathan Prieto
 

Leer las respuestas

#1 J. Carlos Herrrero
13/04/2005 - 20:29 | Informe spam
Hola:

Cuando creas el fichero con extension rpt
el Origen de Datos tiene que ser un DataSet (Ejemplo: DataSet1.xsd)
Este es el codigo que uso en un form que es comun
para cualquier fichero rpt

Private Sub frmResultado_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim lsQuery As String
lsQuery = Global.msQuery & " " & Global.msWhere
Try
loSqlConnection = New SqlConnection(Global.msCadenaConexion)
loSqlDataAdapter = New SqlDataAdapter(lsQuery, loSqlConnection)
loDataSet = New DataSet
loSqlDataAdapter.Fill(loDataSet, Global.msTabla)
Me.rdInforme.Load(Global.msPath) 'Donde esta el rpt
Me.rdInforme.SetDataSource(loDataSet)
Me.crvInforme.ReportSource = Me.rdInforme
Catch Exp As Exception
MsgBox(Exp.Message, MsgBoxStyle.Critical, "frmResultado_Load")
End Try
End Sub

rdInforme-Es un ReportDocument
crvInforme-Es un CrystalReportViewer

Otra forma es con SelectionFormula

Espero que te sirva
Un saludo desde Bilbo:
Carlos

"Jonathan Prieto" escribió en el mensaje
news:
Buenas tardes, mi error es el siguiente:

Tengo un informe de Crystal en un proyecto de vb.net. La conexión la cree
contra la tabla de una bd. A la vez tengo un DataSet que cargo con esa
misma
tabla, que lo muestro en un DataGrid. Mi idea es realizar cambios en el
DataGrid (que a la vez los está haciendo en el DataSet) y sin actualizar
la
BD, mostrarle los datos del DataSet en el informe, y lo que he hecho es
justo antes de lanzar el informe asignarle el DataSource:

Informe.SetDataSource(dataSetOrigen.Tables("TablaNiveles"))

En teoría una cosa tan fácil como ésta debería funcionar perfectamente, de
hecho no me da ningún error, pero el informe muestra siempre los datos que
hay actualmente en la tabla de la BD no en la tabla del DataSet.

Alguna idea?
Gracias
Jonathan Prieto


Preguntas similares