From 3ca992e0430edec82b9f9bd1c1b8e68e5f0fb075 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Fri, 1 Dec 2023 08:57:19 +0100 Subject: [PATCH] =?UTF-8?q?reportged=C3=B6ns?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reports/ReportCreator.vb | 18 ++- .../Reports/ReportItem.vb | 1 + .../Reports/ReportSource.vb | 1 - .../Reports/rptEnvelopeHistory.Designer.vb | 129 ++++++++++++------ EnvelopeGenerator.Test/frmReportViewer.vb | 5 +- 5 files changed, 107 insertions(+), 47 deletions(-) diff --git a/EnvelopeGenerator.Common/Reports/ReportCreator.vb b/EnvelopeGenerator.Common/Reports/ReportCreator.vb index a6eafe26..09fe32c4 100644 --- a/EnvelopeGenerator.Common/Reports/ReportCreator.vb +++ b/EnvelopeGenerator.Common/Reports/ReportCreator.vb @@ -2,8 +2,15 @@ Imports DevExpress.XtraPrinting Public Class ReportCreator - Public Shared Async Function CreateReport(pEnvelope As Envelope, pReportItems As List(Of ReportItem)) As Task(Of Byte()) - Dim oSource As New ReportSource With {.Items = pReportItems, .Envelope = pEnvelope} + Private Envelope As Envelope + + Public Sub New(pEnvelope As Envelope) + Envelope = pEnvelope + End Sub + + Public Async Function CreateReport(pReportItems As List(Of ReportItem)) As Task(Of Byte()) + Dim oItems = pReportItems.Select(AddressOf MergeEnvelope).ToList() + Dim oSource As New ReportSource With {.Items = oItems} Dim oReport As New rptEnvelopeHistory() With {.DataSource = oSource, .DataMember = "Items"} Await oReport.CreateDocumentAsync() @@ -13,4 +20,11 @@ Public Class ReportCreator Return oStream.ToArray() End Using End Function + + Private Function MergeEnvelope(pItem As ReportItem) As ReportItem + If pItem.Envelope Is Nothing Then + pItem.Envelope = Envelope + End If + Return pItem + End Function End Class diff --git a/EnvelopeGenerator.Common/Reports/ReportItem.vb b/EnvelopeGenerator.Common/Reports/ReportItem.vb index ff0c09d2..6257913e 100644 --- a/EnvelopeGenerator.Common/Reports/ReportItem.vb +++ b/EnvelopeGenerator.Common/Reports/ReportItem.vb @@ -1,5 +1,6 @@ Public Class ReportItem + Public Property Envelope As Envelope Public Property EnvelopeId As Integer Public Property EnvelopeTitle As String Public Property EnvelopeSubject As String diff --git a/EnvelopeGenerator.Common/Reports/ReportSource.vb b/EnvelopeGenerator.Common/Reports/ReportSource.vb index c93fb580..56fa87eb 100644 --- a/EnvelopeGenerator.Common/Reports/ReportSource.vb +++ b/EnvelopeGenerator.Common/Reports/ReportSource.vb @@ -1,4 +1,3 @@ Public Class ReportSource Public Property Items As List(Of ReportItem) - Public Property Envelope As Envelope End Class diff --git a/EnvelopeGenerator.Common/Reports/rptEnvelopeHistory.Designer.vb b/EnvelopeGenerator.Common/Reports/rptEnvelopeHistory.Designer.vb index 05b7fa73..778a96f1 100644 --- a/EnvelopeGenerator.Common/Reports/rptEnvelopeHistory.Designer.vb +++ b/EnvelopeGenerator.Common/Reports/rptEnvelopeHistory.Designer.vb @@ -22,17 +22,17 @@ Partial Public Class rptEnvelopeHistory Me.components = New System.ComponentModel.Container() Me.TopMargin = New DevExpress.XtraReports.UI.TopMarginBand() Me.BottomMargin = New DevExpress.XtraReports.UI.BottomMarginBand() - Me.ReportHeader = New DevExpress.XtraReports.UI.ReportHeaderBand() - Me.GroupHeader1 = New DevExpress.XtraReports.UI.GroupHeaderBand() - Me.Detail = New DevExpress.XtraReports.UI.DetailBand() Me.pageInfo1 = New DevExpress.XtraReports.UI.XRPageInfo() Me.pageInfo2 = New DevExpress.XtraReports.UI.XRPageInfo() + Me.ReportHeader = New DevExpress.XtraReports.UI.ReportHeaderBand() Me.label1 = New DevExpress.XtraReports.UI.XRLabel() + Me.GroupHeader1 = New DevExpress.XtraReports.UI.GroupHeaderBand() Me.table1 = New DevExpress.XtraReports.UI.XRTable() Me.tableRow1 = New DevExpress.XtraReports.UI.XRTableRow() Me.tableCell1 = New DevExpress.XtraReports.UI.XRTableCell() Me.tableCell2 = New DevExpress.XtraReports.UI.XRTableCell() Me.tableCell3 = New DevExpress.XtraReports.UI.XRTableCell() + Me.Detail = New DevExpress.XtraReports.UI.DetailBand() Me.table2 = New DevExpress.XtraReports.UI.XRTable() Me.tableRow2 = New DevExpress.XtraReports.UI.XRTableRow() Me.tableCell4 = New DevExpress.XtraReports.UI.XRTableCell() @@ -43,8 +43,11 @@ Partial Public Class rptEnvelopeHistory Me.DetailData1 = New DevExpress.XtraReports.UI.XRControlStyle() Me.DetailData3_Odd = New DevExpress.XtraReports.UI.XRControlStyle() Me.PageInfo = New DevExpress.XtraReports.UI.XRControlStyle() - Me.XrLabel1 = New DevExpress.XtraReports.UI.XRLabel() + Me.XrLabel2 = New DevExpress.XtraReports.UI.XRLabel() + Me.XrLabel3 = New DevExpress.XtraReports.UI.XRLabel() Me.ObjectDataSource1 = New DevExpress.DataAccess.ObjectBinding.ObjectDataSource(Me.components) + Me.XrLabel4 = New DevExpress.XtraReports.UI.XRLabel() + Me.XrLabel1 = New DevExpress.XtraReports.UI.XRLabel() CType(Me.table1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.table2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.ObjectDataSource1, System.ComponentModel.ISupportInitialize).BeginInit() @@ -57,61 +60,55 @@ Partial Public Class rptEnvelopeHistory ' 'BottomMargin ' - Me.BottomMargin.Controls.AddRange(New DevExpress.XtraReports.UI.XRControl() {Me.pageInfo1, Me.pageInfo2}) + Me.BottomMargin.Controls.AddRange(New DevExpress.XtraReports.UI.XRControl() {Me.XrLabel1, Me.pageInfo1, Me.pageInfo2}) Me.BottomMargin.Dpi = 254.0! Me.BottomMargin.Name = "BottomMargin" ' - 'ReportHeader - ' - Me.ReportHeader.Controls.AddRange(New DevExpress.XtraReports.UI.XRControl() {Me.XrLabel1, Me.label1}) - Me.ReportHeader.Dpi = 254.0! - Me.ReportHeader.HeightF = 236.0459! - Me.ReportHeader.Name = "ReportHeader" - ' - 'GroupHeader1 - ' - Me.GroupHeader1.Controls.AddRange(New DevExpress.XtraReports.UI.XRControl() {Me.table1}) - Me.GroupHeader1.Dpi = 254.0! - Me.GroupHeader1.GroupUnion = DevExpress.XtraReports.UI.GroupUnion.WithFirstDetail - Me.GroupHeader1.HeightF = 71.12! - Me.GroupHeader1.Name = "GroupHeader1" - ' - 'Detail - ' - Me.Detail.Controls.AddRange(New DevExpress.XtraReports.UI.XRControl() {Me.table2}) - Me.Detail.Dpi = 254.0! - Me.Detail.HeightF = 63.42! - Me.Detail.HierarchyPrintOptions.Indent = 50.8! - Me.Detail.Name = "Detail" - ' 'pageInfo1 ' Me.pageInfo1.Dpi = 254.0! Me.pageInfo1.LocationFloat = New DevExpress.Utils.PointFloat(0!, 0!) Me.pageInfo1.Name = "pageInfo1" Me.pageInfo1.PageInfo = DevExpress.XtraPrinting.PageInfo.DateTime - Me.pageInfo1.SizeF = New System.Drawing.SizeF(796.0!, 58.0!) + Me.pageInfo1.SizeF = New System.Drawing.SizeF(470.5625!, 58.0!) Me.pageInfo1.StyleName = "PageInfo" ' 'pageInfo2 ' Me.pageInfo2.Dpi = 254.0! - Me.pageInfo2.LocationFloat = New DevExpress.Utils.PointFloat(796.0!, 0!) + Me.pageInfo2.LocationFloat = New DevExpress.Utils.PointFloat(1166.417!, 0!) Me.pageInfo2.Name = "pageInfo2" - Me.pageInfo2.SizeF = New System.Drawing.SizeF(1104.0!, 58.0!) + Me.pageInfo2.SizeF = New System.Drawing.SizeF(733.5833!, 58.0!) Me.pageInfo2.StyleName = "PageInfo" Me.pageInfo2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight Me.pageInfo2.TextFormatString = "Seite {0} von {1}" ' + 'ReportHeader + ' + Me.ReportHeader.Controls.AddRange(New DevExpress.XtraReports.UI.XRControl() {Me.XrLabel4, Me.XrLabel3, Me.XrLabel2, Me.label1}) + Me.ReportHeader.Dpi = 254.0! + Me.ReportHeader.HeightF = 293.2334! + Me.ReportHeader.Name = "ReportHeader" + ' 'label1 ' Me.label1.Dpi = 254.0! Me.label1.LocationFloat = New DevExpress.Utils.PointFloat(0!, 0!) Me.label1.Name = "label1" + Me.label1.Padding = New DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 254.0!) Me.label1.SizeF = New System.Drawing.SizeF(1900.0!, 61.4536!) Me.label1.StyleName = "Title" + Me.label1.StylePriority.UsePadding = False Me.label1.Text = "Signierungs Zertifikat" ' + 'GroupHeader1 + ' + Me.GroupHeader1.Controls.AddRange(New DevExpress.XtraReports.UI.XRControl() {Me.table1}) + Me.GroupHeader1.Dpi = 254.0! + Me.GroupHeader1.GroupUnion = DevExpress.XtraReports.UI.GroupUnion.WithFirstDetail + Me.GroupHeader1.HeightF = 71.12! + Me.GroupHeader1.Name = "GroupHeader1" + ' 'table1 ' Me.table1.Dpi = 254.0! @@ -153,6 +150,14 @@ Partial Public Class rptEnvelopeHistory Me.tableCell3.Text = "Datum" Me.tableCell3.Weight = 0.25860160582871317R ' + 'Detail + ' + Me.Detail.Controls.AddRange(New DevExpress.XtraReports.UI.XRControl() {Me.table2}) + Me.Detail.Dpi = 254.0! + Me.Detail.HeightF = 63.42! + Me.Detail.HierarchyPrintOptions.Indent = 50.8! + Me.Detail.Name = "Detail" + ' 'table2 ' Me.table2.Dpi = 254.0! @@ -248,16 +253,29 @@ Partial Public Class rptEnvelopeHistory Me.PageInfo.Name = "PageInfo" Me.PageInfo.Padding = New DevExpress.XtraPrinting.PaddingInfo(15, 15, 0, 0, 254.0!) ' - 'XrLabel1 - ' - Me.XrLabel1.Dpi = 254.0! - Me.XrLabel1.ExpressionBindings.AddRange(New DevExpress.XtraReports.UI.ExpressionBinding() {New DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[EnvelopeSubject]")}) - Me.XrLabel1.LocationFloat = New DevExpress.Utils.PointFloat(0!, 159.105!) - Me.XrLabel1.Multiline = True - Me.XrLabel1.Name = "XrLabel1" - Me.XrLabel1.Padding = New DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254.0!) - Me.XrLabel1.SizeF = New System.Drawing.SizeF(857.25!, 76.94083!) - Me.XrLabel1.Text = "XrLabel1" + 'XrLabel2 + ' + Me.XrLabel2.Dpi = 254.0! + Me.XrLabel2.ExpressionBindings.AddRange(New DevExpress.XtraReports.UI.ExpressionBinding() {New DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[Envelope].[User].[FullName]")}) + Me.XrLabel2.LocationFloat = New DevExpress.Utils.PointFloat(0!, 139.8528!) + Me.XrLabel2.Multiline = True + Me.XrLabel2.Name = "XrLabel2" + Me.XrLabel2.Padding = New DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 254.0!) + Me.XrLabel2.SizeF = New System.Drawing.SizeF(857.2501!, 51.94089!) + Me.XrLabel2.StylePriority.UsePadding = False + Me.XrLabel2.Text = "XrLabel1" + ' + 'XrLabel3 + ' + Me.XrLabel3.Dpi = 254.0! + Me.XrLabel3.ExpressionBindings.AddRange(New DevExpress.XtraReports.UI.ExpressionBinding() {New DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[Envelope].[User].[Email]")}) + Me.XrLabel3.LocationFloat = New DevExpress.Utils.PointFloat(0!, 191.7937!) + Me.XrLabel3.Multiline = True + Me.XrLabel3.Name = "XrLabel3" + Me.XrLabel3.Padding = New DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 254.0!) + Me.XrLabel3.SizeF = New System.Drawing.SizeF(857.2501!, 51.94089!) + Me.XrLabel3.StylePriority.UsePadding = False + Me.XrLabel3.Text = "XrLabel1" ' 'ObjectDataSource1 ' @@ -265,6 +283,32 @@ Partial Public Class rptEnvelopeHistory Me.ObjectDataSource1.DataSource = GetType(EnvelopeGenerator.Common.ReportSource) Me.ObjectDataSource1.Name = "ObjectDataSource1" ' + 'XrLabel4 + ' + Me.XrLabel4.Dpi = 254.0! + Me.XrLabel4.Font = New System.Drawing.Font("Arial", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.XrLabel4.LocationFloat = New DevExpress.Utils.PointFloat(0!, 87.9119!) + Me.XrLabel4.Name = "XrLabel4" + Me.XrLabel4.Padding = New DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 254.0!) + Me.XrLabel4.SizeF = New System.Drawing.SizeF(426.2708!, 51.94094!) + Me.XrLabel4.StyleName = "Title" + Me.XrLabel4.StylePriority.UseFont = False + Me.XrLabel4.StylePriority.UsePadding = False + Me.XrLabel4.Text = "Ersteller:" + ' + 'XrLabel1 + ' + Me.XrLabel1.Dpi = 254.0! + Me.XrLabel1.Font = New System.Drawing.Font("Arial", 8.25!, System.Drawing.FontStyle.Bold) + Me.XrLabel1.LocationFloat = New DevExpress.Utils.PointFloat(470.5626!, 0!) + Me.XrLabel1.Name = "XrLabel1" + Me.XrLabel1.Padding = New DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 254.0!) + Me.XrLabel1.SizeF = New System.Drawing.SizeF(695.8539!, 58.0!) + Me.XrLabel1.StyleName = "Title" + Me.XrLabel1.StylePriority.UseFont = False + Me.XrLabel1.StylePriority.UsePadding = False + Me.XrLabel1.Text = "Erstellt mit SignFlow" + ' 'rptEnvelopeHistory ' Me.Bands.AddRange(New DevExpress.XtraReports.UI.Band() {Me.TopMargin, Me.BottomMargin, Me.ReportHeader, Me.GroupHeader1, Me.Detail}) @@ -311,5 +355,8 @@ Partial Public Class rptEnvelopeHistory Friend WithEvents DetailData1 As DevExpress.XtraReports.UI.XRControlStyle Friend WithEvents DetailData3_Odd As DevExpress.XtraReports.UI.XRControlStyle Friend WithEvents PageInfo As DevExpress.XtraReports.UI.XRControlStyle + Friend WithEvents XrLabel3 As DevExpress.XtraReports.UI.XRLabel + Friend WithEvents XrLabel2 As DevExpress.XtraReports.UI.XRLabel + Friend WithEvents XrLabel4 As DevExpress.XtraReports.UI.XRLabel Friend WithEvents XrLabel1 As DevExpress.XtraReports.UI.XRLabel End Class diff --git a/EnvelopeGenerator.Test/frmReportViewer.vb b/EnvelopeGenerator.Test/frmReportViewer.vb index 23b0e76d..911b787e 100644 --- a/EnvelopeGenerator.Test/frmReportViewer.vb +++ b/EnvelopeGenerator.Test/frmReportViewer.vb @@ -34,9 +34,8 @@ Public Class frmReportViewer EnvelopeModel = New EnvelopeModel(oState) Dim oEnvelope = EnvelopeModel.GetById(oEnvelopeId) - - - Dim oBuffer = Await ReportCreator.CreateReport(oEnvelope, oItems) + Dim oCreator As New ReportCreator(oEnvelope) + Dim oBuffer = Await oCreator.CreateReport(oItems) Using oStream As New IO.MemoryStream(oBuffer) PdfViewer1.LoadDocument(oStream)