Pārlūkot izejas kodu

Änderungen vom 12.10. abgeschlossen!

Arne Diekmann 8 gadi atpakaļ
vecāks
revīzija
de4a4649c5

+ 1 - 1
GreenTree.Nachtragsmanagement.Web/Controllers/AppendixController.cs

@@ -139,7 +139,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                 generator.CustomizeGroupColumnSummary += new CustomizeColumnGroupSummaryEventHandler(generator_CustomizeGroupColumnSummary);
                 generator.CustomizeTotalColumnSummary += new CustomizeColumnTotalSummaryEventHandler(generator_CustomizeTotalColumnSummary);
 
-                var report = generator.GenerateMVCReport(gridViewState, appendixModels);
+                var report = generator.GenerateMVCReport(gridViewState, appendixModels, "Nachtragsliste");
 
                 if (displayMode == "popup")
                     return PartialView("~/Views/Shared/_PrintPopupPartial.cshtml",

+ 5 - 5
GreenTree.Nachtragsmanagement.Web/Controllers/DeviationController.cs

@@ -140,7 +140,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                 generator.CustomizeGroupColumnSummary += new CustomizeColumnGroupSummaryEventHandler(generator_CustomizeGroupColumnSummary);
                 generator.CustomizeTotalColumnSummary += new CustomizeColumnTotalSummaryEventHandler(generator_CustomizeTotalColumnSummary);
 
-                var report = generator.GenerateMVCReport(gridViewState, deviationModels);
+                var report = generator.GenerateMVCReport(gridViewState, deviationModels, "Vertragsabweichungsliste");
 
                 if (displayMode == "popup")
                     return PartialView("~/Views/Shared/_PrintPopupPartial.cshtml",
@@ -159,13 +159,13 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                                 settings.TotalSummary["Percentage"].DisplayFormat = "{0:p0}";
                                 settings.TotalSummary["PercentageValue"].DisplayFormat = "{0:c2}";
                                 settings.TotalSummary["DaysReceiptToAppendixOffering"].DisplayFormat = "Schnitt = {0:n0}";
-                                settings.TotalSummary["Description"].DisplayFormat = "Anzahl = {0:n0}";
+                                settings.TotalSummary["SiteDescription"].DisplayFormat = "Anzahl = {0:n0}";
                                 return GridViewExtension.ExportToXlsx(settings, deviationModels);
                             case "xls":
                                 settings.TotalSummary["Value"].DisplayFormat = "{0:c2}";
                                 settings.TotalSummary["Percentage"].DisplayFormat = "{0:p0}";
                                 settings.TotalSummary["DaysReceiptToAppendixOffering"].DisplayFormat = "Schnitt = {0:n0}";
-                                settings.TotalSummary["Description"].DisplayFormat = "Anzahl = {0:n0}";
+                                settings.TotalSummary["SiteDescription"].DisplayFormat = "Anzahl = {0:n0}";
                                 return GridViewExtension.ExportToXls(settings, deviationModels);
                             case "pdf":
                                 generator.WritePdfToResponse(Response, "VA-Liste.pdf", DispositionTypeNames.Attachment.ToString());
@@ -200,11 +200,11 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
         /// </summary>
         private void generator_CustomizeGroupColumnSummary(object source, ColumnSummaryCreationEventArgs e)
         {
+            if (e.FieldName == "SiteDescription") { e.Summary.FormatString = "Alle = {0:n0}"; }
             if (e.FieldName == "Value") { e.Summary.FormatString = "Schätzung ∑ = {0:c2}"; }
             if (e.FieldName == "Percentage") { e.Summary.FormatString = "Bew. Ø = {0:p0}"; }
             if (e.FieldName == "PercentageValue") { e.Summary.FormatString = "S. Bew. ∑ = {0:c2}"; }
             if (e.FieldName == "DaysReceiptToAppendixOffering") { e.Summary.FormatString = "Tage VA-NT = {0:n0}"; }
-            if (e.FieldName == "Description") { e.Summary.FormatString = "Alle = {0:n0}"; }
         }
 
         /// <summary>
@@ -212,11 +212,11 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
         /// </summary>
         private void generator_CustomizeTotalColumnSummary(object source, ColumnSummaryCreationEventArgs e)
         {
+            if (e.FieldName == "SiteDescription") { e.Summary.FormatString = "Alle = {0:n0}"; }
             if (e.FieldName == "Value") { e.Summary.FormatString = "{0:c2}"; }
             if (e.FieldName == "Percentage") { e.Summary.FormatString = "{0:p0}"; }
             if (e.FieldName == "PercentageValue") { e.Summary.FormatString = "{0:c2}"; }
             if (e.FieldName == "DaysReceiptToAppendixOffering") { e.Summary.FormatString = "{0:n0}"; }
-            if (e.FieldName == "Description") { e.Summary.FormatString = "Alle = {0:n0}"; }
         }
 
         /// <summary>

+ 1 - 1
GreenTree.Nachtragsmanagement.Web/Controllers/MiscController.cs

@@ -382,7 +382,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
 
                 generator.CustomizeColumnsCollection += new CustomizeColumnsCollectionEventHandler(logGenerator_CustomizeColumnsCollection);
 
-                var report = generator.GenerateMVCReport(gridViewState, logModels);
+                var report = generator.GenerateMVCReport(gridViewState, logModels, "Logliste");
 
                 if (displayMode == "popup")
                     return PartialView("~/Views/Shared/_PrintPopupPartial.cshtml",

+ 1 - 1
GreenTree.Nachtragsmanagement.Web/Controllers/SiteController.cs

@@ -161,7 +161,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                 generator.CustomizeGroupColumnSummary += new CustomizeColumnGroupSummaryEventHandler(generator_CustomizeGroupColumnSummary);
                 generator.CustomizeTotalColumnSummary += new CustomizeColumnTotalSummaryEventHandler(generator_CustomizeTotalColumnSummary);
 
-                var report = generator.GenerateMVCReport(gridViewState, siteModels);
+                var report = generator.GenerateMVCReport(gridViewState, siteModels, "Baustellenliste");
 
                 if (displayMode == "popup")
                     return PartialView("~/Views/Shared/_PrintPopupPartial.cshtml",

+ 8 - 9
GreenTree.Nachtragsmanagement.Web/Extensions/GridViewSettingsHelper.cs

@@ -491,13 +491,13 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
             s.TotalSummary.Add(new ASPxSummaryItem
             {
                 SummaryType = DevExpress.Data.SummaryItemType.Count,
-                FieldName = "Description",
+                FieldName = "SiteDescription",
                 DisplayFormat = "Anzahl<br/><i>{0:n0}</i>"
             });
             s.GroupSummary.Add(new ASPxSummaryItem
             {
                 SummaryType = DevExpress.Data.SummaryItemType.Count,
-                FieldName = "Description",
+                FieldName = "SiteDescription",
                 DisplayFormat = "Anzahl = {0:n0}"
             });
 
@@ -571,15 +571,14 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
 
             s.CustomColumnSort = (sender, e) =>
             {
-                if (e.Column.Name.Equals("CustomNumber", StringComparison.InvariantCultureIgnoreCase))
-                {
-                    int.TryParse(e.GetRow1Value("CustomNumber").ToString(), out int rowVal1);
-                    int.TryParse(e.GetRow2Value("CustomNumber").ToString(), out int rowVal2);
+                if (e.Column.FieldName != "CustomNumber") return;
 
-                    e.Result = (rowVal1).CompareTo(rowVal2);
+                int.TryParse(e.GetRow1Value("CustomNumber").ToString(), out int rowVal1);
+                int.TryParse(e.GetRow2Value("CustomNumber").ToString(), out int rowVal2);
 
-                    e.Handled = true;
-                }
+                e.Result = (rowVal1).CompareTo(rowVal2);
+
+                e.Handled = true;
             };
 
             s.ClientSideEvents.BeginCallback = "function (s, e) { e.customArgs['scrollHeight'] = [ gridScrollHeight ]; }";

+ 76 - 3
GreenTree.Nachtragsmanagement.Web/Extensions/MVCxGridViewGeneratorHelper.cs

@@ -1,7 +1,10 @@
-using DevExpress.Data;
+using Autofac;
+using DevExpress.Data;
 using DevExpress.XtraEditors.Controls;
 using DevExpress.XtraPrinting;
 using DevExpress.XtraReports.UI;
+using GreenTree.Nachtragsmanagement.Core;
+using GreenTree.Nachtragsmanagement.Core.Authentication;
 using System;
 using System.Collections;
 using System.Collections.Generic;
@@ -37,7 +40,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
             public event CustomizeColumnTotalSummaryEventHandler CustomizeTotalColumnSummary;
             public event CustomizeColumnGroupSummaryEventHandler CustomizeGroupColumnSummary;
 
-            public XtraReport GenerateMVCReport(MVCxGridViewState gridViewState, object model)
+            public XtraReport GenerateMVCReport(MVCxGridViewState gridViewState, object model, string title)
             {
                 report = new XtraReport
                 {
@@ -47,6 +50,8 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 };
 
                 InitStyles();
+                InitReportTitle(title);
+                InitPageFooter();
                 InitDataSource(model);
                 InitDetailsAndPageHeader(gridViewState);
                 InitDetailReports(gridViewState);
@@ -60,6 +65,14 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
 
             private void InitStyles()
             {
+                report.StyleSheet.Add(new XRControlStyle
+                {
+                    Name = "Title",
+                    Borders = DevExpress.XtraPrinting.BorderSide.None,
+                    Font = new Font(report.Font.FontFamily, 24f, FontStyle.Regular),
+                    ForeColor = Color.FromArgb(35, 133, 160)
+                });
+
                 report.StyleSheet.Add(new XRControlStyle
                 {
                     Name = "OddRow",
@@ -123,6 +136,66 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                               DevExpress.XtraPrinting.BorderSide.Left | 
                               DevExpress.XtraPrinting.BorderSide.Right
                 });
+
+                report.StyleSheet.Add(new XRControlStyle
+                {
+                    Name = "FooterRow",
+                    Font = new Font(report.Font, FontStyle.Italic)
+                });
+            }
+
+            private void InitReportTitle(string title)
+            {
+                report.Bands.Add(new ReportHeaderBand
+                {
+                    HeightF = 32f
+                });
+
+                report.Bands[BandKind.ReportHeader].Controls.Add(new XRLabel
+                {
+                    Text = title,
+                    StyleName = "Title",
+                    WidthF = (report.PageWidth - (report.Margins.Left + report.Margins.Right))
+                });
+            }
+
+            private void InitPageFooter()
+            {
+                var userHelper = Singleton<IContainer>.Instance.Resolve<IUserHelper>();
+                var user = userHelper.FromCookies();
+
+                report.Bands.Add(new PageFooterBand
+                {
+                    HeightF = 18f
+                });
+
+                var footerTable = new XRTable
+                {
+                    WidthF = (report.PageWidth - (report.Margins.Left + report.Margins.Right)),
+                    Borders = DevExpress.XtraPrinting.BorderSide.Top,
+                    StyleName = "FooterRow"
+                };
+
+                var footerRow = new XRTableRow
+                {
+                    Cells =
+                    {
+                        new XRTableCell
+                        {
+                            TextAlignment = TextAlignment.MiddleLeft,
+                            Text = DateTime.Now.ToString("dd.MM.yyyy - HH:mm \"Uhr\"")
+                        },
+                        new XRTableCell
+                        {
+                            TextAlignment = TextAlignment.MiddleRight,
+                            Text = String.Format("{0}, {1}", user.Lastname, user.Forename)
+                        }
+                    }
+                };
+
+                footerTable.Rows.Add(footerRow);
+
+                report.Bands[BandKind.PageFooter].Controls.Add(footerTable);
             }
 
             private void InitDataSource(object model)
@@ -389,7 +462,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
 
                     if (col == null) continue;
 
-                    if (!detailsInfo.Contains(col)) return;
+                    if (!detailsInfo.Contains(col)) continue;
 
                     var label = new XRLabel
                     {

+ 2 - 1
GreenTree.Nachtragsmanagement.Web/Views/Deviations/_DeviationAssignPartial.cshtml

@@ -55,12 +55,13 @@
 			t.SetItemTemplateContent(c =>
 			{
 				var id = Convert.ToInt32(DataBinder.Eval(c.DataItem, "Id"));
+				var customNumber = Convert.ToInt32(DataBinder.Eval(c.DataItem, "CustomNumber"));
 				var description = DataBinder.Eval(c.DataItem, "Description").ToString();
 
 				if (id == -1)
 					ViewContext.Writer.Write(description);
 				else
-					ViewContext.Writer.Write("NT - {0} - {1}", id, description);
+					ViewContext.Writer.Write("NT - {0} - {1}", customNumber, description);
 			});
 			t.ControlStyle.Border.BorderStyle = BorderStyle.None;
 		}).BindList(Model).Render();