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 Class
Mi capturaY es todo. Nos vemos en otra entrega!
Link: https://mega.nz/#!0IFFWZAb!tyG2mJ6m__HyWX5qnTuf5DEp53O69C5PpgdkIL1iwBg











Comentarios
Publicar un comentario