Ahora voy a realizar un ejemplo de como mostrar un reporte de los datos contenidos en un archivo XML usando Linq. Para este ejemplo tengo un proyecto de formularios de windows llamado XmlExample, en el cual tengo un formulario diseñado como muestra la imagen.
En el proyecto XmlExample también debo crear la clase Categories.vb el cual se usará para diseñar el reporte.
Public Class Categories
Private _CategoryID As Integer = String.Empty
Private _CategoryName As String = String.Empty
Private _Description As String = String.Empty
Public Property CategoryID() As Integer
Get
Return _CategoryID
End Get
Set(ByVal value As Integer)
_CategoryID = value
End Set
End Property
Public Property CategoryName() As String
Get
Return _CategoryName
End Get
Set(ByVal value As String)
_CategoryName = value
End Set
End Property
Public Property Description() As String
Get
Return _Description
End Get
Set(ByVal value As String)
_Description = value
End Set
End Property
End Class
Agregamos un nuevo proyecto de CrystalReport
El Explorador de soluciones debe quedar asi:
En el Diseñador del reporte Seleccionamos el origen de datos.
Nos Situamos como muestra la imagen (nueva conexión de ADO.NET) y presionamos doble click.
En el proyecto XmlExample donde se encuentra el formulario de consulta agregamos la referencia del proyecto de CrystalReport que hemos agregado
Nos Situamos como muestra la imagen (nueva conexión de ADO.NET) y presionamos doble click.
Aparecerá una ventana donde debemos indicar que objeto deseamos usar, en nuestro caso debemos seleccionar la clase categories.vb que esta en el proyecto XmlExample y presionamos finalizar.
En el arbol de la derecha nos aparecera el orgien de datos con el cual procederemos a diseñar nuestro reporte.
En el proyecto XmlExample donde se encuentra el formulario de consulta agregamos la referencia del proyecto de CrystalReport que hemos agregado
En el formulario agregamos un boton para generar el reporte y un crystalreportView. En el boton ingresamos el siguiente código:
Dim lCategoriaXml As XDocument = XDocument.Load(txtUrl.Text)
Dim lCategorias = From lcategoria In lCategoriaXml.Descendants("Categoria") _
Select CategoryID = lcategoria.Element("CategoryID").Value, _
CategoryName = lcategoria.Element("CategoryName").Value, _
Description = lcategoria.Element("Description").Value
Dim crp As New XMLReport.RptCategories
crp.SetDataSource(lCategorias.ToList)
CrystalReportViewer1.ReportSource = crp
TabControl1.SelectedIndex = 1
No hay comentarios.:
Publicar un comentario