ReportViewer con base de datos Sql Compact 4.0
Que tal amigos programadores, vamos a continuar del ejemplo mucho antes posteado:
http://jossm03.blogspot.com/2014/11/crear-y-conectar-base-de-datos.html
Ahora vamos al diseño de reporte
Le puse de nombre "Reporteproductos"
Agregamos de la paleta de controles del reporte una tabla y seguimos como la demuestran las imágenes
Con algo de creatividad nos quedaría el diseño algo así:
Por ultimo vamos a codificar:
En el form que contiene el reporte
Y es todo. Nos vemos en otra entrega!
Link: https://mega.nz/#!0IFFWZAb!tyG2mJ6m__HyWX5qnTuf5DEp53O69C5PpgdkIL1iwBg
http://jossm03.blogspot.com/2014/11/crear-y-conectar-base-de-datos.html
Ahora vamos a crear un Reporte ReportViewer para poder ya sea exportar o imprimir nuestra factura, nota de venta, etc.
Partiendo con la base de datos,... bueno en realidad tiene 2 datos nada mas, jeje!, Uds pueden agregar muchos mas.
Comencemos agregando un...Conjunto de datos
La imagen es copiada del post anterior pero igual sirve,
Seguimos, agregamos un tabla de datos(haciendo clic derecho en la pantalla vacía que se presenta al crear el conjunto de datos, mostrado arriba). Yo le puse de nombre" dataprod"
Luego creamos columnas con nombres igual a los nombres de los campos contenidos en la tabla de la base de datos sql compact 4.0. Nos debe quedar así:
Cerramos esta ventana y ya puede verse en la ventana del explorador como en la imagen
Bueno ahora si vamos agregar a nuestro proyecto un form nuevo para contener el reporte, pueden hacer eso o pueden embeberlo(incrustarlo) en el form principal, es su elección, y como ya les dije para que se vea este control deben usar net framework 3.5 en este proyecto.
Yo elegí un nuevo form(cuadro de dialogo), e incruste el reporviewer de la paleta de controles y aplique la propiedad Dock = Fill para que rellene todo el form. Miren como queda:
He colocado un nuevo boton para llamar a mi reporte.
Le puse de nombre "Reporteproductos"
Agregamos de la paleta de controles del reporte una tabla y seguimos como la demuestran las imágenes
Con algo de creatividad nos quedaría el diseño algo así:
Por ultimo vamos a codificar:
Public Class Form1 Imports Microsoft.Reporting.WinForms Public Class Form1 Dim fuente As New ReportDataSource Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnexam.Click Try Dim OpenFileDialog As New OpenFileDialog OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments OpenFileDialog.Filter = "Base de datos SqlServer Compact Edition 4.0 (*.sdf)|*.sdf|Todos los archivos (*.*)|*.*" If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then Dim FileName As String = OpenFileDialog.FileName lbldir.Text = FileName ' TODO: agregue código aquí para abrir el archivo. End If Catch ex As Exception MsgBox("error al abrir base de datos", vbCritical) End Try btnver.Enabled = True End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnver.Click cargar_productos() End Sub Sub cargar_productos() Try conectarse() Dim ds As New DataSet Dim dt As New DataTable Dim strSql As String = "SELECT nombre_producto, valor_producto FROM productos " Dim adp As New SqlServerCe.SqlCeDataAdapter(strSql, conn) adp.Fill(dt) DataGridView1.DataSource = dt ds.Tables.Add("tabla") adp.Fill(ds.Tables("tabla")) ''---------------------PREPARAR REPORTE-------------------- fuente.Name = "Productos" ' Nombre identico al que le di al dataset del report en tiempo de diseño fuente.Value = ds.Tables(0) ''---------------------PREPARAR REPORTE------------------ Catch ex As Exception ex.ToString() End Try conn.Close() End Sub Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click Reporte.ReportViewer1.LocalReport.DataSources.Clear() Reporte.ReportViewer1.LocalReport.DataSources.Add(fuente) Reporte.ReportViewer1.LocalReport.ReportEmbeddedResource = "conexDbsqLcompaq.Reportproductos.rdlc" 'exactamente como se llaman el proyecto y reporte Reporte.Show() End Sub End Class
En el form que contiene el reporte
Imports System.Windows.Forms Imports Microsoft.Reporting.WinForms Public Class Reporte Private Sub Reporte_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.ReportViewer1.RefreshReport() Me.ReportViewer1.SetDisplayMode(DisplayMode.PrintLayout) Me.ReportViewer1.ZoomMode = ZoomMode.Percent Me.ReportViewer1.ZoomPercent = 100 ' Me.ReportViewer1.RefreshReport() End Sub End ClassMi captura
Y es todo. Nos vemos en otra entrega!
Link: https://mega.nz/#!0IFFWZAb!tyG2mJ6m__HyWX5qnTuf5DEp53O69C5PpgdkIL1iwBg
Comentarios
Publicar un comentario