Usuario
WPF implementación CRUD en 3 capas: crear informes

Pregunta
-
Hola foro: estoy implementando un proyecto WPF en 3 capas con conexión CRUD he intento crear un informe para poder imprimirlo y exportarlo a excell, etc. hasta ahora tengo lo siguiente:
en mi clase
Public Shared Function ObtenerTodos() As List(Of DietaEntity)
Dim lista As New List(Of DietaEntity)()
Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("defaultEconomato").ToString())
conn.Open()
Dim query As String = " SELECT * FROM dbo.DIETA
WHERE ( Baja = 1 )"
Dim cmd As New SqlCommand(query, conn)
cmd.CommandType = CommandType.Text
Dim reader As SqlDataReader = cmd.ExecuteReader()
Do While reader.Read()
Dim vldatos As New DietaEntity()
Dim fecha = CDate(reader("FechaFin"))
vldatos.Id = CInt(Math.Truncate(reader("Id")))
vldatos.str_ApellidosDeInterno = CStr(reader("str_Apellidos"))
vldatos.str_NombresDeInterno = CStr(reader("str_Nombres"))
vldatos.Diagnostico = CStr(reader("Diagnostico"))
vldatos.Dieta = CStr(reader("Dieta"))
vldatos.FechaInicio = CStr(reader("FechaInicio"))
vldatos.FechaFin = CStr(reader("FechaFin"))
vldatos.Estado = calcularFechaPasada(fecha)
vldatos.Baja = CStr(reader("Baja"))
lista.Add(vldatos)
Loop
End Using
Return lista
End Functionen mi formulario
<Grid>
<WindowsFormsHost>
<RV:ReportViewer Name="mostrar"/>
</WindowsFormsHost>
</Grid>mi code behing
Using conn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("defaultEconomato").ToString())
conn.Open()
Dim sql As String = "SELECT * FROM DIETA "
Dim da As SqlDataAdapter = New SqlDataAdapter(sql, conn)
Dim ds As New DataSet
da.Fill(ds)
' aqui es lo que me falta para unir los datos y mostrarlo
Dim tabla As New DataTable
mostrar.LocalReport.DataSources.Clear()
mostrar.LocalReport.DataSources.Add()
mostrar.LocalReport.ReportPath = "../../Report1.rdlc"
mostrar.Refresh()
End Using
Todas las respuestas
-
Buenas tardes, no es necesario utilizar un windowsformhost para utilizar los reportes, a menos que lo que desees es visualizarlo y nada mas, si quisieras imprimirlo directamente hay una clase para ello, en mi caso yo los uso y utilizando esa la clase me crea un documento en .pdf el cual puedo imprimir o guardar si es necesario
-
Por favor podrias darme un ejemplo
por otra parte, he logrado esto pero no aparece el report, porque no encuentra la ruta (lo que eta subrayado), mas si cuando lo pongo completa la ruta, este es el codigo:
Private Sub DisplayReport()
Try
Reporte.LocalReport.DataSources.Add(New ReportDataSource("DataSet1", DietaDAL.ObtenerTodos()))
Reporte.LocalReport.ReportPath = "E:\MAR-2022\PresentacionWPF-VB\Report1.rdlc"
'Reporte.LocalReport.ReportPath = "..\Report1.rdlc"
Reporte.RefreshReport()
Catch ex As Exception
Throw New Exception(ex.Message)
End Try
End Sub -
ya lo solucione, el codigo quedaria asi:
Private Sub DisplayReport()
Try
Reporte.Clear()
Reporte.LocalReport.DataSources.Add(New ReportDataSource("DataSet1", DietaDAL.ImprimirTodos()))
Reporte.LocalReport.ReportEmbeddedResource = "Reportes\Report1.rdlc"
Reporte.LocalReport.ReportPath = "Reportes\Report1.rdlc"
Reporte.Refresh()
Reporte.RefreshReport()
Catch ex As Exception
Throw New Exception(ex.Message)
End Try
End Sub