Agregar archivos de proyecto.
This commit is contained in:
136
GestionGrupoSanchoToro/Informes/Informes.vb
Normal file
136
GestionGrupoSanchoToro/Informes/Informes.vb
Normal file
@@ -0,0 +1,136 @@
|
||||
|
||||
Imports System.IO
|
||||
Imports bdGrupoSanchoToro
|
||||
Imports bdGrupoSanchoToro.db
|
||||
Imports DevExpress.Xpf.Core
|
||||
Imports DevExpress.XtraPrinting
|
||||
Imports DevExpress.XtraReports.UI
|
||||
Imports tsEFCore8.Extensiones
|
||||
Imports Microsoft.EntityFrameworkCore
|
||||
Imports System.Drawing.Printing
|
||||
Imports System.ComponentModel
|
||||
Imports DevExpress.Xpf.Printing
|
||||
Public Class Informes
|
||||
Private Shared NumeroCopias As Integer
|
||||
|
||||
|
||||
Friend Shared Sub ImprimirPlantilla(bd As tscGrupoSanchoToro, Plantilla As Byte(), Datasource As Object, ImpresoraPredeterminada As Boolean, Copias As Integer)
|
||||
Try
|
||||
|
||||
Dim xr As New XtraReport
|
||||
xr.LoadLayoutFromXml(New MemoryStream(Plantilla), True)
|
||||
ImprimeInforme(xr, ImpresoraPredeterminada, Copias, bd.AhoraMySql, Datasource)
|
||||
Catch ex As Exception
|
||||
DXMessageBox.Show(ex.Message, "Atención", MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Friend Shared Sub ImprimirPlantilla(bd As tscGrupoSanchoToro, idPlantilla As Integer, Datasource As Object, ImpresoraPredeterminada As Boolean, Copias As Integer)
|
||||
' Try
|
||||
|
||||
' If idPlantilla = 0 Then Throw New Exception("Seleccione primero la plantilla a imprimir")
|
||||
' Dim xr As New XtraReport
|
||||
|
||||
|
||||
' Dim pl = bd.plantillas.AsNoTracking.SingleOrDefault(Function(x) x.idPlantilla = idPlantilla)
|
||||
' 'Dim pl = bd.plantillas.Where(Function(x) x.idPlantilla = idPlantilla).First
|
||||
|
||||
' 'Dim pl As plantillas = (From p In bd.plantillas Where p.idPlantilla = idPlantilla).First
|
||||
' Dim s As String = System.Text.Encoding.UTF8.GetString(pl.idFicheroNavigation.Fichero)
|
||||
' Using sw As New StreamWriter(New MemoryStream())
|
||||
' sw.Write(s)
|
||||
' sw.Flush()
|
||||
' xr = XtraReport.FromStream(sw.BaseStream, True)
|
||||
' End Using
|
||||
' Try
|
||||
' Dim pr As DevExpress.XtraReports.Parameters.Parameter = (From p As DevExpress.XtraReports.Parameters.Parameter In xr.Parameters Where p.Name = "Fecha").First
|
||||
' pr.Value = bd.AhoraMySql
|
||||
' pr.Visible = False
|
||||
' Catch ex As Exception
|
||||
|
||||
' End Try
|
||||
' ' xr.DataSource = Datasource
|
||||
' ImprimeInforme(xr, ImpresoraPredeterminada, Copias, bd.AhoraMySql, Datasource)
|
||||
' Catch ex As Exception
|
||||
' DXMessageBox.Show(ex.Message, "Atención", MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
' End Try
|
||||
'End Sub
|
||||
Friend Shared Function GuardaInformeEnPdf(bd As tscGrupoSanchoToro, idPlantilla As Integer, Datasource As Object) As Byte()
|
||||
Try
|
||||
|
||||
If idPlantilla = 0 Then Throw New Exception("Seleccione primero la plantilla a imprimir")
|
||||
Dim xr As New XtraReport
|
||||
|
||||
|
||||
Dim pl = bd.plantillas.AsNoTracking.Where(Function(x) x.idPlantilla = idPlantilla).First
|
||||
|
||||
|
||||
|
||||
Dim s As String = System.Text.Encoding.UTF8.GetString(pl.idFicheroNavigation.Fichero)
|
||||
Using sw As New StreamWriter(New MemoryStream())
|
||||
sw.Write(s)
|
||||
sw.Flush()
|
||||
xr = XtraReport.FromStream(sw.BaseStream, True)
|
||||
End Using
|
||||
Try
|
||||
Dim pr As DevExpress.XtraReports.Parameters.Parameter = (From p As DevExpress.XtraReports.Parameters.Parameter In xr.Parameters Where p.Name = "Fecha").First
|
||||
pr.Value = bd.AhoraMySql
|
||||
pr.Visible = False
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
xr.DataSource = Datasource
|
||||
|
||||
Return GuardaInformeEnPdf(xr)
|
||||
Catch ex As Exception
|
||||
Throw New Exception(ex.Message, ex)
|
||||
'DXMessageBox.Show(ex.Message, "Atención", MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
|
||||
Friend Shared Sub ImprimeInforme(xr As XtraReport, ImpresoraPredeterminada As Boolean, Copias As Integer, Fecha As Date, Datos As Object)
|
||||
Try
|
||||
For Each pr In xr.Parameters
|
||||
pr.Visible = False
|
||||
If pr.Name = "Fecha" Then
|
||||
pr.Value = Fecha
|
||||
End If
|
||||
Next
|
||||
xr.DataSource = Datos
|
||||
xr.CreateDocument(True)
|
||||
If ImpresoraPredeterminada Then
|
||||
If Copias < 2 Then
|
||||
NumeroCopias = 1
|
||||
xr.Print()
|
||||
Else
|
||||
NumeroCopias = Copias
|
||||
AddHandler xr.PrintingSystem.StartPrint, AddressOf xr_StartPring
|
||||
xr.Print()
|
||||
End If
|
||||
Else
|
||||
PrintHelper.Print(xr)
|
||||
'xr.PrintDialog()
|
||||
End If
|
||||
Catch ex As Exception
|
||||
DXMessageBox.Show(ex.Message, "Error")
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Shared Sub xr_StartPring(sender As Object, e As PrintDocumentEventArgs)
|
||||
e.PrintDocument.PrinterSettings.Copies = NumeroCopias
|
||||
End Sub
|
||||
|
||||
Friend Shared Function GuardaInformeEnPdf(xr As XtraReport) As Byte()
|
||||
For Each pr In xr.Parameters
|
||||
pr.Visible = False
|
||||
Next
|
||||
xr.CreateDocument(True)
|
||||
Dim st As New MemoryStream
|
||||
xr.ExportToPdf(st)
|
||||
Return st.ToArray
|
||||
End Function
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user