Envio de Parámetros Discretos de VB A Crystalreports
Envio de Parámetros Discretos de VB A Crystalreports
Envio de Parámetros Discretos de VB A Crystalreports
enero 24, 2011ka0stjDeja un comentarioIr a los comentarios Hola colegas, la siguiente informacin que quiero compartir con ustedes es el envio de parmetros discretos desde una aplicacin de VB.NET a un reporte de Crystal Reports. Lo mencionado anteriormente puede tener diversos usos, en mi caso yo lo utilic para evitar esa pantalla propia de Crystal Reports de captura de parmetros discretos. Ahora bien entremos a lo que nos interesa, lo primero que tenemos es un nuevo proyecto:
Agregamos 2 labels, 2 textbox, y un botn. Los textbox los nombramos como tbPrimerParametro y tbSegundoParametro, el botn como btnReporte. La apariencia debe ser similar a la siguiente:
Agregamos el nmero de parmetros discretos que queremos enviar a nuestro reporte, para este ejemplo solo agregamos 2. Para ello en Field Explorer, Parameter Field damos botn derecho, new.
En la pantalla que nos mostrar nos pide que asignemos un nombre, un prompting text, un value type (tipo de dato) y mas abajo seleccionamos Discrete value(s) y damos Ok. Una vez creados nuestros parmetros discretos los colocamos en la seccin Page Header.
Agregamos un nuevo Form el cual sera en que contendr nuestro ReportViewer y lo nombramos como MiReporte.
Abrimos nuestro Form MiReporte y agregamos un elemento CrystalReportViewer de nuestra barra Toolbox quedando algo similar a lo siguiente.
Hasta ahora ya agregamos todo lo necesario hablando de la parte grfica de nuestra pequea aplicacin, solo resta agregar el cdigo necesario para darle el funcionamiento. Seleccionamos el form que contiene los textbox y presionamos F7 para dejar la vista de diseo e ir al cdigo y agregamos lo siguiente:
Imports CrystalDecisions.Shared
Creamos las siguientes variables. Ojo los nombres de los parmetros discretos que aqu asignemos deben ser los mismos que fueron creados en el reporte.
Dim Parametros As ParameterFields = New ParameterFields() Dim PrimerParametro As ParameterField = New ParameterField() Dim SegundoParametro As ParameterField = New ParameterField() Dim myDiscreteValue1 As ParameterDiscreteValue = New ParameterDiscreteValue() Dim myDiscreteValue As ParameterDiscreteValue = New ParameterDiscreteValue()
info.SetDataSource(MiDataSetDatos)
MiReporte.CrystalReportViewer1.ReportSource = info
End Sub
myDiscreteValue1.Value = Me.tbPrimerParametro.Text
myDiscreteValue.Value = Me.tbSegundoParametro.Text
PrimerParametro.CurrentValues.Add(myDiscreteValue1)
SegundoParametro.CurrentValues.Add(myDiscreteValue)
Parametros.Add(PrimerParametro)
Parametros.Add(SegundoParametro)
MiReporte.CrystalReportViewer1.ParameterFieldInfo = Parametros
LlenarReporte()
MiReporte.ShowDialog()
Ahora bien, solo resta probar nuestra aplicacin. El resultado es algo similar a lo siguiente: