Enlazar Dataset a Crystal Report

10/06/2005 - 23:11 por Peque | Informe spam
Hola a todos

Actualmente me encuentro desarrollando una aplicación en VB NET y he llegado
a la parte de realizar los reportes de la misma, estoy un poco o un mucho
atorada en lo siguiente: tengo un datagrid que obviamente esta enlazado a un
dataset, en el dataset tengo los datos de dos tablas y por lo tanto creo una
relacion dentro del dataset, despues de realizar esto, procedo a anexarle dos
columnas en el dataset ("Col1", "Col2"," Col3"), los datos en las columnas 1
y 2 serán capturados por el usuario y la tercera columna agregada será
calculada automaticamente.una vez editado cada registro del datagrid
quiero enviar el dataset actualizado a un reporte en crystal, mi pregunta es
como muestro en el reporte las columnas agregadas al dataset (Col1, Col2,
Col3)?.ojala me puedan ayudar con estoles muestro el codigo que
utilizo para hacer lo que les acabo de explicar:


daSp = New SqlDataAdapter
dsSp = New Data.DataSet

Try
'Llamo a un store procedure con parametros para obtener los
primeros
'datos
cmd1 = New SqlCommand("sp_Datos1", dbConnection)
cmd1.CommandType = Data.CommandType.StoredProcedure

prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
prm1.Value() = dtpStart.Value 'Fecha seleccionada x usuario

prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
prm2.Value() = dtpEnd.Value 'Fecha seleccionada x usuario

daSp.SelectCommand = cmd1
daSp.Fill(dsSp, "Tabla1")

'Llamo a un segundo store procedure con parametros para obtener
los segundos datos

cmd1 = New SqlCommand("sp_Datos2", dbConnection)
cmd1.CommandType = Data.CommandType.StoredProcedure

prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
prm1.Value() = dtpStart.Value

prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
prm2.Value() = dtpEnd.Value

daSp.SelectCommand = cmd1
daSp.Fill(dsSp, "Tabla2")

'Agrego relacion a dataset dsSp
Dim parentcol As Data.DataColumn
Dim childcol As Data.DataColumn
parentcol = dsSp.Tables("Tabla1").Columns("IDCampo")
childcol = dsSp.Tables("Tabla2").Columns("IDCampo")
rel1 = New Data.DataRelation("Datos Relacionados", parentcol,
childcol)
dsSp.Relations.Add(rel1)

'Agrego columnas para que el usuario complemente la informacion
mostrada
' En tabla1 de dataset
dsSp.Tables("Tabla1").Columns.Add("Col1", GetType(String))

'En tabla2 de dataset
dsSp.Tables("Tabla2").Columns.Add("Col2", GetType (Integer))
dsSp.Tables("Tabla2").Columns.Add("Col3", GetType(Integer))
dsSp.Tables("LeadSheetDetail").Columns.Add("Total",
GetType(Integer), "Col2 + Col3")

Espero de su muy valiosa ayuda porque la verdad ya perdi mucho tiempo en
encontrar la manera de como hacerle...

Saludos desde Mexico.
 

Leer las respuestas

#1 Julio Casal
12/06/2005 - 08:42 | Informe spam
Te recomiendo que uses datasets tipificados, es decir, creados en tiempo de
diseño, no de ejecución. A ese dataset déjale ya agregada todas las columnas
que vayas a usar, incluyendo las que va a ingresar el usuario y la columna
calculada. Con ese dataset trabaja en Crystal. Luego, ya en ejecución, solo
preocúpate por agregar los datos que ingresa el usuario a las columnas
adecuadas que ya dejaste listas desde antes.

Espero haya podido ayudarte.

Saludos.

Julio Casal
Developer Senior .Net
MCP
Angel Intelligent


"Peque" wrote:

Hola a todos

Actualmente me encuentro desarrollando una aplicación en VB NET y he llegado
a la parte de realizar los reportes de la misma, estoy un poco o un mucho
atorada en lo siguiente: tengo un datagrid que obviamente esta enlazado a un
dataset, en el dataset tengo los datos de dos tablas y por lo tanto creo una
relacion dentro del dataset, despues de realizar esto, procedo a anexarle dos
columnas en el dataset ("Col1", "Col2"," Col3"), los datos en las columnas 1
y 2 serán capturados por el usuario y la tercera columna agregada será
calculada automaticamente.una vez editado cada registro del datagrid
quiero enviar el dataset actualizado a un reporte en crystal, mi pregunta es
como muestro en el reporte las columnas agregadas al dataset (Col1, Col2,
Col3)?.ojala me puedan ayudar con estoles muestro el codigo que
utilizo para hacer lo que les acabo de explicar:


daSp = New SqlDataAdapter
dsSp = New Data.DataSet

Try
'Llamo a un store procedure con parametros para obtener los
primeros
'datos
cmd1 = New SqlCommand("sp_Datos1", dbConnection)
cmd1.CommandType = Data.CommandType.StoredProcedure

prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
prm1.Value() = dtpStart.Value 'Fecha seleccionada x usuario

prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
prm2.Value() = dtpEnd.Value 'Fecha seleccionada x usuario

daSp.SelectCommand = cmd1
daSp.Fill(dsSp, "Tabla1")

'Llamo a un segundo store procedure con parametros para obtener
los segundos datos

cmd1 = New SqlCommand("sp_Datos2", dbConnection)
cmd1.CommandType = Data.CommandType.StoredProcedure

prm1 = cmd1.Parameters.Add("@StartDate", Data.SqlDbType.DateTime)
prm1.Value() = dtpStart.Value

prm2 = cmd1.Parameters.Add("@EndDate", Data.SqlDbType.DateTime)
prm2.Value() = dtpEnd.Value

daSp.SelectCommand = cmd1
daSp.Fill(dsSp, "Tabla2")

'Agrego relacion a dataset dsSp
Dim parentcol As Data.DataColumn
Dim childcol As Data.DataColumn
parentcol = dsSp.Tables("Tabla1").Columns("IDCampo")
childcol = dsSp.Tables("Tabla2").Columns("IDCampo")
rel1 = New Data.DataRelation("Datos Relacionados", parentcol,
childcol)
dsSp.Relations.Add(rel1)

'Agrego columnas para que el usuario complemente la informacion
mostrada
' En tabla1 de dataset
dsSp.Tables("Tabla1").Columns.Add("Col1", GetType(String))

'En tabla2 de dataset
dsSp.Tables("Tabla2").Columns.Add("Col2", GetType (Integer))
dsSp.Tables("Tabla2").Columns.Add("Col3", GetType(Integer))
dsSp.Tables("LeadSheetDetail").Columns.Add("Total",
GetType(Integer), "Col2 + Col3")

Espero de su muy valiosa ayuda porque la verdad ya perdi mucho tiempo en
encontrar la manera de como hacerle...

Saludos desde Mexico.


Preguntas similares