Visual Basic.NET - Crystal Report - vb.NET - Query dinámica

 
Vista:

Crystal Report - vb.NET - Query dinámica

Publicado por Marco (3 intervenciones) el 22/01/2009 13:54:46
Hola a todos. Tengo un problema y decidí recurrír a este foro para ver si alguien puede
ayudarme. El problema es el siguiente:
Tengo un formulario que muestra una grilla con un listado de ventas. La grilla está enlazada a un TableAdapter que ejecuta un proc almacenado llamado 'sp_general'. Este sp tiene la particularidad de que arma y ejecuta una consulta dinámica. Es decir que recibe como parámetros el SELECT, el FROM y el WHERE. A estos tres parámetros los paso desde vb.NET como string. El SELECT y EL FROM siempre son los mismos, lo que varia es el WHERE.
Porque lo hago así? porque el listado de ventas que devuelve el sp, puede filtrarse por 1, 2 o hasta 5 campos. El where puede variar mucho. Es por eso que necesito armar el where en tiempo de ejecución.
Bueno, pero este no es el problema, solo el escenario. Hasta acá todo bien, anda perfecto, la grilla me muestra lo que quiero.

Ahora, debajo de la grilla hay un botón que debería mostrarme en un reporte de CRYSTAL REPORT el listado de ventas. El problema, es que cuando arrastro el sp_general al reporte, este no me dá la posibilidad de luego arrastrar las columnas que quiero mostrar, lo cual es lógico porque se trata de una consulta dinámica y los campos del SELECT están embebidos en un parámetro de tipo string.
Existe alguna manera de hacer esto??
puedo crear en el reporte campos vacíos y luego en tiempo de ejecución asociar estos campos con la consulta? así los hago para asociar las columnas de la grilla con los campos que me devuelve la consulta. en tiempo de ejecución y por código. con eso ningún problema.

Les escribo el código que pongo en el botón que debería abrir el reporte para que sirva como
referencia de lo que estoy haciendo.

Dim ds As New ds_mssoft

Dim strReportPath As String
Dim rptDocument As New CrystalDecisions.CrystalReports.Engine.ReportDocument

strReportPath = "C:Making StylesMSSMSScr_listado_ventas.rpt"

'el parámetro filtro depende de los filtros que decida aplicar el usuario.
Me.Sp_sel_GeneralTableAdapter.Fill(Me.Ds_mssoft.sp_sel_General, _
"campos", _
"tabla", _
"filtro", )

rptDocument.Load(strReportPath)
rptDocument.SetDataSource(Ds_mssoft)

Form_contenedor_reportes.crv_visor1.ReportSource = rptDocument

Form_contenedor_reportes.Show()

desde ya muchas gracias a todos los que lean esto, aún cuando no puedan ayudarme. Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder