diff --git a/ReportImp/ProBalance/ServicesOverviewReport.Designer.cs b/ReportImp/ProBalance/ServicesOverviewReport.Designer.cs index ff7952d4a..ed7ce48be 100644 --- a/ReportImp/ProBalance/ServicesOverviewReport.Designer.cs +++ b/ReportImp/ProBalance/ServicesOverviewReport.Designer.cs @@ -47,7 +47,6 @@ namespace ProBalance this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell(); this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell(); this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell(); - this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); this.formattingRuleStartDate = new DevExpress.XtraReports.UI.FormattingRule(); this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand(); this.xrLabel19 = new DevExpress.XtraReports.UI.XRLabel(); @@ -89,11 +88,15 @@ namespace ProBalance this.fieldAbrechenbareFLS = new DevExpress.XtraReports.UI.CalculatedField(); this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand(); this.fieldFls = new DevExpress.XtraReports.UI.CalculatedField(); + this.picSignature = new DevExpress.XtraReports.UI.XRPictureBox(); + this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell(); + this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); ((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); // // Detail @@ -115,7 +118,7 @@ namespace ProBalance this.xrTableServiceRecords1.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F); this.xrTableServiceRecords1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { this.xrTableRow2}); - this.xrTableServiceRecords1.SizeF = new System.Drawing.SizeF(675F, 25F); + this.xrTableServiceRecords1.SizeF = new System.Drawing.SizeF(701.9999F, 40F); this.xrTableServiceRecords1.StylePriority.UseBackColor = false; this.xrTableServiceRecords1.StylePriority.UseFont = false; this.xrTableServiceRecords1.StylePriority.UseTextAlignment = false; @@ -128,13 +131,14 @@ namespace ProBalance this.xrTableCell5, this.xrTableCell9, this.xrTableCell12, - this.xrTableCell1}); + this.xrTableCell1, + this.xrTableCell4}); this.xrTableRow2.Name = "xrTableRow2"; this.xrTableRow2.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 0, 0, 0, 100F); this.xrTableRow2.StylePriority.UseFont = false; this.xrTableRow2.StylePriority.UsePadding = false; this.xrTableRow2.StylePriority.UseTextAlignment = false; - this.xrTableRow2.Weight = 1.3888865341414827D; + this.xrTableRow2.Weight = 2.2222184546263724D; // // xrTableCell3 // @@ -144,7 +148,7 @@ namespace ProBalance this.xrTableCell3.StylePriority.UseTextAlignment = false; this.xrTableCell3.Text = "Datum"; this.xrTableCell3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell3.Weight = 0.24385918004234172D; + this.xrTableCell3.Weight = 0.18035419121208934D; // // xrTableCell5 // @@ -152,7 +156,7 @@ namespace ProBalance this.xrTableCell5.StylePriority.UseTextAlignment = false; this.xrTableCell5.Text = "Uhrzeit"; this.xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell5.Weight = 0.24385917767443521D; + this.xrTableCell5.Weight = 0.20437837032948236D; // // xrTableCell9 // @@ -162,7 +166,7 @@ namespace ProBalance this.xrTableCell9.StylePriority.UseTextAlignment = false; this.xrTableCell9.Text = "FLS"; this.xrTableCell9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell9.Weight = 0.17070142874705552D; + this.xrTableCell9.Weight = 0.12889592927439636D; // // xrTableCell12 // @@ -174,7 +178,7 @@ namespace ProBalance this.xrTableCell12.StylePriority.UseTextAlignment = false; this.xrTableCell12.Text = "Aktivität"; this.xrTableCell12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell12.Weight = 0.24385918172244711D; + this.xrTableCell12.Weight = 0.25401999333087238D; // // xrTableCell1 // @@ -182,7 +186,7 @@ namespace ProBalance this.xrTableCell1.StylePriority.UseTextAlignment = false; this.xrTableCell1.Text = "Zusammenfassung"; this.xrTableCell1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell1.Weight = 0.74377050242731724D; + this.xrTableCell1.Weight = 0.62742927090727874D; // // DetailReport // @@ -216,7 +220,7 @@ namespace ProBalance this.xrTable3.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F); this.xrTable3.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { this.xrTableRow6}); - this.xrTable3.SizeF = new System.Drawing.SizeF(675F, 25F); + this.xrTable3.SizeF = new System.Drawing.SizeF(701.9999F, 25F); this.xrTable3.StylePriority.UseFont = false; this.xrTable3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; // @@ -227,7 +231,8 @@ namespace ProBalance this.xrTableCell6, this.xrTableCell16, this.xrTableCell17, - this.xrTableCell2}); + this.xrTableCell2, + this.xrTableCell10}); this.xrTableRow6.Name = "xrTableRow6"; this.xrTableRow6.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 0, 0, 0, 100F); this.xrTableRow6.StylePriority.UsePadding = false; @@ -245,7 +250,7 @@ namespace ProBalance this.xrTableCell13.StylePriority.UseTextAlignment = false; this.xrTableCell13.Text = "xrTableCell13"; this.xrTableCell13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell13.Weight = 0.12626259853214011D; + this.xrTableCell13.Weight = 0.093381716534649092D; // // xrTableCell6 // @@ -255,7 +260,7 @@ namespace ProBalance this.xrTableCell6.StylePriority.UseTextAlignment = false; this.xrTableCell6.Text = "xrTableCell6"; this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell6.Weight = 0.12626260044423482D; + this.xrTableCell6.Weight = 0.10582073098133088D; // // xrTableCell16 // @@ -266,7 +271,7 @@ namespace ProBalance this.xrTableCell16.StylePriority.UsePadding = false; this.xrTableCell16.StylePriority.UseTextAlignment = false; this.xrTableCell16.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell16.Weight = 0.088383816638919477D; + this.xrTableCell16.Weight = 0.0667382465723723D; // // xrTableCell17 // @@ -278,7 +283,7 @@ namespace ProBalance this.xrTableCell17.StylePriority.UseTextAlignment = false; this.xrTableCell17.Text = "xrTableCell17"; this.xrTableCell17.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell17.Weight = 0.12626259646725738D; + this.xrTableCell17.Weight = 0.13152355421541917D; // // xrTableCell2 // @@ -288,11 +293,7 @@ namespace ProBalance this.xrTableCell2.StylePriority.UseTextAlignment = false; this.xrTableCell2.Text = "xrTableCell2"; this.xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell2.Weight = 0.38510092147302522D; - // - // bindingSource1 - // - this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO); + this.xrTableCell2.Weight = 0.32486311654019812D; // // formattingRuleStartDate // @@ -470,7 +471,7 @@ namespace ProBalance // // bottomMarginBand1 // - this.bottomMarginBand1.HeightF = 36.41669F; + this.bottomMarginBand1.HeightF = 36F; this.bottomMarginBand1.Name = "bottomMarginBand1"; // // ReportFooter @@ -481,7 +482,7 @@ namespace ProBalance this.xrLabel7, this.xrLabel6, this.xrLabel5}); - this.ReportFooter.HeightF = 144.6458F; + this.ReportFooter.HeightF = 144.6459F; this.ReportFooter.Name = "ReportFooter"; this.ReportFooter.StylePriority.UseFont = false; // @@ -496,7 +497,7 @@ namespace ProBalance this.xrTable2.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F); this.xrTable2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { this.xrTableRow3}); - this.xrTable2.SizeF = new System.Drawing.SizeF(675F, 25F); + this.xrTable2.SizeF = new System.Drawing.SizeF(701.9999F, 25F); this.xrTable2.StylePriority.UseFont = false; this.xrTable2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; // @@ -518,7 +519,7 @@ namespace ProBalance this.xrTableCell15.StylePriority.UseTextAlignment = false; this.xrTableCell15.Text = "gesamt FLS (h)"; this.xrTableCell15.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell15.Weight = 0.25252519897637493D; + this.xrTableCell15.Weight = 0.19920244794236022D; // // xrTableCell18 // @@ -529,14 +530,14 @@ namespace ProBalance this.xrTableCell18.StylePriority.UsePadding = false; this.xrTableCell18.StylePriority.UseTextAlignment = false; this.xrTableCell18.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell18.Weight = 0.088383816638919477D; + this.xrTableCell18.Weight = 0.0667382467001515D; // // xrTableCell20 // this.xrTableCell20.Name = "xrTableCell20"; this.xrTableCell20.StylePriority.UseTextAlignment = false; this.xrTableCell20.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell20.Weight = 0.51136351794028256D; + this.xrTableCell20.Weight = 0.6204226631907146D; // // xrTable1 // @@ -549,7 +550,7 @@ namespace ProBalance this.xrTable1.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F); this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { this.xrTableRow1}); - this.xrTable1.SizeF = new System.Drawing.SizeF(675F, 25F); + this.xrTable1.SizeF = new System.Drawing.SizeF(701.9999F, 25F); this.xrTable1.StylePriority.UseFont = false; this.xrTable1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; // @@ -571,7 +572,7 @@ namespace ProBalance this.xrTableCell7.StylePriority.UseTextAlignment = false; this.xrTableCell7.Text = "gesamt FLS (min)"; this.xrTableCell7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell7.Weight = 0.25252519897637493D; + this.xrTableCell7.Weight = 0.19920244794236022D; // // xrTableCell8 // @@ -582,19 +583,19 @@ namespace ProBalance this.xrTableCell8.StylePriority.UsePadding = false; this.xrTableCell8.StylePriority.UseTextAlignment = false; this.xrTableCell8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell8.Weight = 0.088383816638919477D; + this.xrTableCell8.Weight = 0.0667382467001515D; // // xrTableCell11 // this.xrTableCell11.Name = "xrTableCell11"; this.xrTableCell11.StylePriority.UseTextAlignment = false; this.xrTableCell11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; - this.xrTableCell11.Weight = 0.51136351794028256D; + this.xrTableCell11.Weight = 0.6204226631907146D; // // xrLabel7 // this.xrLabel7.Borders = DevExpress.XtraPrinting.BorderSide.Top; - this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(435.1247F, 126.6459F); + this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(462.1247F, 126.6459F); this.xrLabel7.Name = "xrLabel7"; this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrLabel7.SizeF = new System.Drawing.SizeF(239.8753F, 17.99996F); @@ -605,7 +606,7 @@ namespace ProBalance // xrLabel6 // this.xrLabel6.Borders = DevExpress.XtraPrinting.BorderSide.Top; - this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(180.2083F, 126.6459F); + this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(196.875F, 126.6459F); this.xrLabel6.Name = "xrLabel6"; this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); this.xrLabel6.SizeF = new System.Drawing.SizeF(242.396F, 17.99996F); @@ -667,7 +668,7 @@ namespace ProBalance this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { this.xrTableServiceRecords1}); this.GroupHeader1.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.GroupHeader1.HeightF = 25F; + this.GroupHeader1.HeightF = 40F; this.GroupHeader1.Name = "GroupHeader1"; this.GroupHeader1.RepeatEveryPage = true; this.GroupHeader1.StylePriority.UseFont = false; @@ -679,6 +680,40 @@ namespace ProBalance this.fieldFls.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal; this.fieldFls.Name = "fieldFls"; // + // picSignature + // + this.picSignature.Borders = DevExpress.XtraPrinting.BorderSide.None; + this.picSignature.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { + new DevExpress.XtraReports.UI.XRBinding("Tag", null, "Services.Signature")}); + this.picSignature.LocationFloat = new DevExpress.Utils.PointFloat(0F, 1.999982F); + this.picSignature.Name = "picSignature"; + this.picSignature.SizeF = new System.Drawing.SizeF(116.3749F, 23F); + this.picSignature.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage; + this.picSignature.StylePriority.UseBorders = false; + this.picSignature.BeforePrint += new System.Drawing.Printing.PrintEventHandler(this.picSignature_BeforePrint); + // + // xrTableCell4 + // + this.xrTableCell4.Name = "xrTableCell4"; + this.xrTableCell4.StylePriority.UseTextAlignment = false; + this.xrTableCell4.Text = "Unterschrift Klient/in"; + this.xrTableCell4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrTableCell4.Weight = 0.31681354618229524D; + // + // xrTableCell10 + // + this.xrTableCell10.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] { + this.picSignature}); + this.xrTableCell10.Name = "xrTableCell10"; + this.xrTableCell10.StylePriority.UseTextAlignment = false; + this.xrTableCell10.Text = "xrTableCell10"; + this.xrTableCell10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; + this.xrTableCell10.Weight = 0.16403602171699877D; + // + // bindingSource1 + // + this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO); + // // Stundenzettel // this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] { @@ -704,7 +739,7 @@ namespace ProBalance this.formattingRuleServiceDesc, this.formattingRuleCostBearer, this.formattingRuleEmployeeName}); - this.Margins = new System.Drawing.Printing.Margins(75, 75, 220, 36); + this.Margins = new System.Drawing.Printing.Margins(75, 50, 220, 36); this.PageHeight = 1169; this.PageWidth = 827; this.PaperKind = System.Drawing.Printing.PaperKind.A4; @@ -712,9 +747,9 @@ namespace ProBalance this.Version = "17.1"; ((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTable2)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this)).EndInit(); } @@ -780,5 +815,8 @@ namespace ProBalance private DevExpress.XtraReports.UI.XRTableCell xrTableCell7; private DevExpress.XtraReports.UI.XRTableCell xrTableCell8; private DevExpress.XtraReports.UI.XRTableCell xrTableCell11; + private DevExpress.XtraReports.UI.XRPictureBox picSignature; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell4; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell10; } } diff --git a/ReportImp/ProBalance/ServicesOverviewReport.cs b/ReportImp/ProBalance/ServicesOverviewReport.cs index dc0c55cea..278f58bba 100644 --- a/ReportImp/ProBalance/ServicesOverviewReport.cs +++ b/ReportImp/ProBalance/ServicesOverviewReport.cs @@ -1,6 +1,13 @@ +using System; using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Text.RegularExpressions; using BeWo.Report; using BeWo.Report.ReportObjects; +using BS.Shared.Core; +using DevExpress.XtraReports.UI; + namespace ProBalance { @@ -20,7 +27,11 @@ namespace ProBalance foreach (ServicesOverviewRO.ServiceDetail s in pRO.Services) { if (s.IsBillable) + { + ServicesOverviewRO.CreateSignatureString(s); servicesBillable.Add(s); + } + } pRO.Services = servicesBillable; @@ -28,5 +39,30 @@ namespace ProBalance this.bindingSource1.DataSource = pRO; } + private void picSignature_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) + { + XRPictureBox xrBox = sender as XRPictureBox; + //var test = this.GetCurrent + string base64String = xrBox.Tag as string; + if (!String.IsNullOrWhiteSpace(base64String)) + { + var base64Data = Regex.Match(base64String, @"data:image/(?.+?),(?.+)").Groups["data"].Value; + var binData = Convert.FromBase64String(base64Data); + Image img = ByteArrayToImage(binData); + xrBox.Image = Utils.CropImage(img); + } + else + { + xrBox.Image = null; + } + } + + public Image ByteArrayToImage(byte[] byteArrayIn) + { + using (var memoryStream = new MemoryStream(byteArrayIn)) + { + return Image.FromStream(memoryStream); + } + } } }