فهرست منبع

Änderungen vom 17.10. übernommen!

Arne Diekmann 8 سال پیش
والد
کامیت
57d2009f94

+ 47 - 20
GreenTree.Nachtragsmanagement.Web/Controllers/AppendixController.cs

@@ -3,6 +3,7 @@ using DevExpress.XtraPrinting;
 using DevExpress.XtraReports.UI;
 using GreenTree.Nachtragsmanagement.Core;
 using GreenTree.Nachtragsmanagement.Core.Authentication;
+using GreenTree.Nachtragsmanagement.Core.Domain.Appendix;
 using GreenTree.Nachtragsmanagement.Services.Appendix;
 using GreenTree.Nachtragsmanagement.Services.Deviation;
 using GreenTree.Nachtragsmanagement.Services.Logging;
@@ -111,7 +112,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
         /// Export result for appendix grid
         /// </summary>
         [HttpPost]
-        public ActionResult ExportPartialAppendices(string displayMode, string exportformat, string exportType)
+        public ActionResult ExportPartialAppendices(string displayMode, string exportformat)
         {
             if (String.IsNullOrEmpty(displayMode))
                 return new EmptyResult();
@@ -135,6 +136,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
             {
                 var generator = new MVCReportGeneratonHelper();
 
+                generator.CustomizeColumn += new CustomizeColumnEventHandler(generator_CustomizeColumn);
                 generator.CustomizeColumnsCollection += new CustomizeColumnsCollectionEventHandler(generator_CustomizeColumnsCollection);
                 generator.CustomizeGroupColumnSummary += new CustomizeColumnGroupSummaryEventHandler(generator_CustomizeGroupColumnSummary);
                 generator.CustomizeTotalColumnSummary += new CustomizeColumnTotalSummaryEventHandler(generator_CustomizeTotalColumnSummary);
@@ -149,24 +151,21 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                         new PrintGridModel(report, "Appendix", "ExportPartialAppendices", "devGridViewAppendix"));
                 else if (displayMode == "export")
                 {
-                    if (exportType != "print")
+                    switch (exportformat.ToLower())
                     {
-                        switch (exportformat.ToLower())
-                        {
-                            case "xlsx":
-                                settings.TotalSummary["OfferingValue"].DisplayFormat = "{0:c2}";
-                                settings.TotalSummary["NegotiationValue"].DisplayFormat = "{0:c2}";
-                                settings.TotalSummary["Description"].DisplayFormat = "Anzahl = {0:n0}";
-                                return GridViewExtension.ExportToXlsx(settings, appendixModels);
-                            case "xls":
-                                settings.TotalSummary["OfferingValue"].DisplayFormat = "{0:c2}";
-                                settings.TotalSummary["NegotiationValue"].DisplayFormat = "{0:c2}";
-                                settings.TotalSummary["Description"].DisplayFormat = "Anzahl = {0:n0}";
-                                return GridViewExtension.ExportToXls(settings, appendixModels);
-                            case "pdf":
-                                generator.WritePdfToResponse(Response, "Nachtragsliste.pdf", DispositionTypeNames.Attachment.ToString());
-                                break;
-                        }
+                        case "xlsx":
+                            settings.TotalSummary["OfferingValue"].DisplayFormat = "{0:c2}";
+                            settings.TotalSummary["NegotiationValue"].DisplayFormat = "{0:c2}";
+                            settings.TotalSummary["Description"].DisplayFormat = "Anzahl = {0:n0}";
+                            return GridViewExtension.ExportToXlsx(settings, appendixModels);
+                        case "xls":
+                            settings.TotalSummary["OfferingValue"].DisplayFormat = "{0:c2}";
+                            settings.TotalSummary["NegotiationValue"].DisplayFormat = "{0:c2}";
+                            settings.TotalSummary["Description"].DisplayFormat = "Anzahl = {0:n0}";
+                            return GridViewExtension.ExportToXls(settings, appendixModels);
+                        case "pdf":
+                            report.Name = "Nachtragsliste";
+                            return DocumentViewerExtension.ExportTo(report);
                     }
                 }
 
@@ -176,6 +175,34 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                 return new EmptyResult();
         }
 
+        /// <summary>
+        /// Customize specific fields
+        /// </summary>
+        /// <param name="source"></param>
+        /// <param name="e"></param>
+        private void generator_CustomizeColumn(object source, ControlCustomizationEventArgs e)
+        {
+            if (e.FieldName == "StateDescription")
+                e.Owner.BeforePrint += generator_BeforePrint;
+        }
+
+        /// <summary>
+        /// Customize printed controls
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void generator_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
+        {
+            var allStates = ViewData["AllStates"] as List<State>;
+            var stateDescription = ((XRControl)sender).Report.GetCurrentColumnValue<string>("StateDescription");
+
+            var state = allStates
+                .FirstOrDefault(s => s.Description == stateDescription);
+
+            if (state != null)
+                ((XRControl)sender).BackColor = ColorTranslator.FromHtml(state.HexColor);
+        }
+
         /// <summary>
         /// Customize created columns
         /// </summary>
@@ -185,10 +212,10 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
             {
                 if (column.FieldName == "CustomNumber") { column.ColumnWidth = 30; }
                 if (column.FieldName == "SiteDescription") { column.ColumnWidth = 60; }
-                if (column.FieldName == "DeviationDescription") { column.ColumnWidth = 50; }
+                if (column.FieldName == "DeviationDescription") { column.ColumnWidth = 40; }
                 if (column.FieldName == "RelationOfferingToNegotiation") { column.ColumnWidth = 70; }
                 if (column.FieldName == "RelationOfferingToDeviations") { column.ColumnWidth = 80; }
-                if (column.FieldName == "StateDescription") { column.ColumnWidth = 60; }
+                if (column.FieldName == "StateDescription") { column.ColumnWidth = 70; }
                 if (column.FieldName == "Comment") { column.IsVisible = false; column.IsDetail = true; }
             }
         }

+ 18 - 21
GreenTree.Nachtragsmanagement.Web/Controllers/DeviationController.cs

@@ -112,7 +112,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
         /// Export result for deviation grid
         /// </summary>
         [HttpPost]
-        public ActionResult ExportPartialDeviations(string displayMode, string exportformat, string exportType)
+        public ActionResult ExportPartialDeviations(string displayMode, string exportformat)
         {
             if (String.IsNullOrEmpty(displayMode))
                 return new EmptyResult();
@@ -150,27 +150,24 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                         new PrintGridModel(report, "Deviation", "ExportPartialDeviations", "devGridViewDeviation"));
                 else if (displayMode == "export")
                 {
-                    if (exportType != "print")
+                    switch (exportformat.ToLower())
                     {
-                        switch (exportformat.ToLower())
-                        {
-                            case "xlsx":
-                                settings.TotalSummary["Value"].DisplayFormat = "{0:c2}";
-                                settings.TotalSummary["Percentage"].DisplayFormat = "{0:p0}";
-                                settings.TotalSummary["PercentageValue"].DisplayFormat = "{0:c2}";
-                                settings.TotalSummary["DaysReceiptToAppendixOffering"].DisplayFormat = "Schnitt = {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["SiteDescription"].DisplayFormat = "Anzahl = {0:n0}";
-                                return GridViewExtension.ExportToXls(settings, deviationModels);
-                            case "pdf":
-                                generator.WritePdfToResponse(Response, "VA-Liste.pdf", DispositionTypeNames.Attachment.ToString());
-                                break;
-                        }
+                        case "xlsx":
+                            settings.TotalSummary["Value"].DisplayFormat = "{0:c2}";
+                            settings.TotalSummary["Percentage"].DisplayFormat = "{0:p0}";
+                            settings.TotalSummary["PercentageValue"].DisplayFormat = "{0:c2}";
+                            settings.TotalSummary["DaysReceiptToAppendixOffering"].DisplayFormat = "Schnitt = {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["SiteDescription"].DisplayFormat = "Anzahl = {0:n0}";
+                            return GridViewExtension.ExportToXls(settings, deviationModels);
+                        case "pdf":
+                            report.Name = "VA-Liste";
+                            return DocumentViewerExtension.ExportTo(report);
                     }
                 }
 

+ 9 - 12
GreenTree.Nachtragsmanagement.Web/Controllers/MiscController.cs

@@ -356,7 +356,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
         /// Export result for misc grid
         /// </summary>
         [HttpPost]
-        public ActionResult ExportPartialLogs(string displayMode, string exportformat, string exportType)
+        public ActionResult ExportPartialLogs(string displayMode, string exportformat)
         {
             if (String.IsNullOrEmpty(displayMode))
                 return new EmptyResult();
@@ -392,18 +392,15 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                         new PrintGridModel(report, "Misc", "ExportPartialLogs", "devGridViewLog"));
                 else if (displayMode == "export")
                 {
-                    if (exportType != "print")
+                    switch (exportformat.ToLower())
                     {
-                        switch (exportformat.ToLower())
-                        {
-                            case "xlsx":
-                                return GridViewExtension.ExportToXlsx(settings, logModels);
-                            case "xls":
-                                return GridViewExtension.ExportToXls(settings, logModels);
-                            case "pdf":
-                                generator.WritePdfToResponse(Response, "Logliste.pdf", DispositionTypeNames.Attachment.ToString());
-                                break;
-                        }
+                        case "xlsx":
+                            return GridViewExtension.ExportToXlsx(settings, logModels);
+                        case "xls":
+                            return GridViewExtension.ExportToXls(settings, logModels);
+                        case "pdf":
+                            report.Name = "Logliste";
+                            return DocumentViewerExtension.ExportTo(report);
                     }
                 }
 

+ 13 - 16
GreenTree.Nachtragsmanagement.Web/Controllers/SiteController.cs

@@ -133,7 +133,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
         /// Export result for site grid
         /// </summary>
         [HttpPost]
-        public ActionResult ExportPartialSites(string displayMode, string exportformat, string exportType)
+        public ActionResult ExportPartialSites(string displayMode, string exportformat)
         {
             if (String.IsNullOrEmpty(displayMode))
                 return new EmptyResult();
@@ -171,22 +171,19 @@ namespace GreenTree.Nachtragsmanagement.Web.Controllers
                         new PrintGridModel(report, "Site", "ExportPartialSites", "devGridViewSite"));
                 else if (displayMode == "export")
                 {
-                    if (exportType != "print")
+                    switch (exportformat.ToLower())
                     {
-                        switch (exportformat.ToLower())
-                        {
-                            case "xlsx":
-                                settings.TotalSummary["DeviationValue"].DisplayFormat = "{0:c2}";
-                                settings.TotalSummary["Description"].DisplayFormat = "Anzahl = {0:n0}";
-                                return GridViewExtension.ExportToXlsx(settings, siteModels);
-                            case "xls":
-                                settings.TotalSummary["DeviationValue"].DisplayFormat = "{0:c2}";
-                                settings.TotalSummary["Description"].DisplayFormat = "Anzahl = {0:n0}";
-                                return GridViewExtension.ExportToXls(settings, siteModels);
-                            case "pdf":
-                                generator.WritePdfToResponse(Response, "Baustellenliste.pdf", DispositionTypeNames.Attachment.ToString());
-                                break;
-                        }
+                        case "xlsx":
+                            settings.TotalSummary["DeviationValue"].DisplayFormat = "{0:c2}";
+                            settings.TotalSummary["Description"].DisplayFormat = "Anzahl = {0:n0}";
+                            return GridViewExtension.ExportToXlsx(settings, siteModels);
+                        case "xls":
+                            settings.TotalSummary["DeviationValue"].DisplayFormat = "{0:c2}";
+                            settings.TotalSummary["Description"].DisplayFormat = "Anzahl = {0:n0}";
+                            return GridViewExtension.ExportToXls(settings, siteModels);
+                        case "pdf":
+                            report.Name = "Baustellenliste";
+                            return DocumentViewerExtension.ExportTo(report);
                     }
                 }
 

+ 24 - 2
GreenTree.Nachtragsmanagement.Web/Extensions/GridViewSettingsHelper.cs

@@ -110,13 +110,15 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
             {
                 column.Caption = "Kostenstelle";
                 column.FieldName = "CustomNumber";
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
                 column.MinWidth = 100;
-                column.Width = new Unit(8, UnitType.Percentage);
+                column.Width = new Unit(8, UnitType.Percentage);                
             });
             s.Columns.Add(column =>
             {
                 column.Caption = "Bauvorhaben";
                 column.FieldName = "Description";
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
                 column.Width = new Unit(20, UnitType.Percentage);
             });
             s.Columns.Add(column =>
@@ -342,6 +344,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "CustomNumber";
                 column.MinWidth = 50;
                 column.Width = new Unit(60, UnitType.Pixel);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
                 column.Settings.SortMode = DevExpress.XtraGrid.ColumnSortMode.Custom;
             });
             s.Columns.Add(column =>
@@ -350,6 +353,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "Description";
                 column.MinWidth = 220;
                 column.Width = new Unit(250, UnitType.Pixel);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -357,6 +361,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "SiteDescription";
                 column.MinWidth = 120;
                 column.Width = new Unit(130, UnitType.Pixel);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -364,6 +369,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "AppendixDescription";
                 column.MinWidth = 100;
                 column.Width = new Unit(100, UnitType.Pixel);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -413,6 +419,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "StatusDescription";
                 column.MinWidth = 110;
                 column.Width = new Unit(120, UnitType.Pixel);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -427,6 +434,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "KindDescription";
                 column.MinWidth = 140;
                 column.Width = new Unit(140, UnitType.Pixel);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -485,7 +493,10 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 }
 
                 if (e.SummaryProcess == CustomSummaryProcess.Finalize)
-                    e.TotalValue = totalDaysReceiptToAppendixOfferingSum / totalDaysReceiptToAppendixOfferingCount;
+                    if (totalDaysReceiptToAppendixOfferingSum == 0 || totalDaysReceiptToAppendixOfferingCount == 0)
+                        e.TotalValue = 0;
+                    else
+                        e.TotalValue = totalDaysReceiptToAppendixOfferingSum / totalDaysReceiptToAppendixOfferingCount;
             };
 
             s.TotalSummary.Add(new ASPxSummaryItem
@@ -660,6 +671,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.MinWidth = 80;
                 column.Width = new Unit(80, UnitType.Pixel);
                 column.Settings.SortMode = DevExpress.XtraGrid.ColumnSortMode.Custom;
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -667,6 +679,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "Description";
                 column.MinWidth = 200;
                 column.Width = new Unit(14, UnitType.Percentage);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -674,6 +687,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "SiteDescription";
                 column.MinWidth = 150;
                 column.Width = new Unit(10, UnitType.Percentage);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -681,6 +695,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "SiteCustomNumber";
                 column.MinWidth = 120;
                 column.Width = new Unit(120, UnitType.Pixel);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -739,6 +754,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "StateDescription";
                 column.MinWidth = 100;
                 column.Width = new Unit(100, UnitType.Pixel);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -1098,6 +1114,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "LogLevelDescription";
                 column.MinWidth = 100;
                 column.Width = new Unit(8, UnitType.Percentage);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -1105,6 +1122,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "ShortMessage";
                 column.MinWidth = 150;
                 column.Width = new Unit(12, UnitType.Percentage);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -1131,6 +1149,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "IpAddress";
                 column.MinWidth = 130;
                 column.Width = new Unit(10, UnitType.Percentage);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -1138,6 +1157,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "UserDescription";
                 column.MinWidth = 130;
                 column.Width = new Unit(10, UnitType.Percentage);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -1145,6 +1165,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "EntityType";
                 column.MinWidth = 100;
                 column.Width = new Unit(8, UnitType.Percentage);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {
@@ -1152,6 +1173,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 column.FieldName = "EntityId";
                 column.MinWidth = 100;
                 column.Width = new Unit(8, UnitType.Percentage);
+                column.SettingsHeaderFilter.Mode = GridHeaderFilterMode.CheckedList;
             });
             s.Columns.Add(column =>
             {

+ 61 - 40
GreenTree.Nachtragsmanagement.Web/Extensions/MVCxGridViewGeneratorHelper.cs

@@ -51,7 +51,6 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
 
                 InitStyles();
                 InitReportTitle(title);
-                InitPageFooter();
                 InitDataSource(model);
                 InitDetailsAndPageHeader(gridViewState);
                 InitDetailReports(gridViewState);
@@ -59,6 +58,7 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 InitGroupHeaders(gridViewState);
                 InitFilters(gridViewState);
                 InitTotalSummaries(gridViewState);
+                InitPageFooter();
 
                 return report;
             }
@@ -159,45 +159,6 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 });
             }
 
-            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)
             {
                 report.DataSource = model;
@@ -486,6 +447,66 @@ namespace GreenTree.Nachtragsmanagement.Web.Extensions
                 }
             }
 
+            private void InitPageFooter()
+            {
+                var userHelper = Singleton<IContainer>.Instance.Resolve<IUserHelper>();
+                var user = userHelper.FromCookies();
+
+                report.Bands.Add(new PageFooterBand
+                {
+                    HeightF = 23f
+                });
+
+                var footerTable = new XRTable
+                {
+                    WidthF = (report.PageWidth - (report.Margins.Left + report.Margins.Right)),
+                    HeightF = 23f,
+                    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\"  |"),
+                            WidthF = 145f,
+                            HeightF = 23f
+                        },
+                        new XRTableCell
+                        {                            
+                            Controls =
+                            {
+                                new XRPageInfo
+                                {
+                                    TextAlignment = TextAlignment.MiddleLeft,
+                                    Format = "Seite {0} von {1}",
+                                    PageInfo = PageInfo.NumberOfTotal,
+                                    StartPageNumber = 1,
+                                    Padding = 5,
+                                    HeightF = 23f
+                                }
+                            },
+                            WidthF = 100f,
+                            HeightF = 23f
+                        },
+                        new XRTableCell
+                        {
+                            TextAlignment = TextAlignment.MiddleRight,
+                            Text = String.Format("{0}, {1}", user.Lastname, user.Forename),
+                            WidthF = (report.PageWidth - (report.Margins.Left + report.Margins.Right)) - 230
+                        }
+                    }
+                };
+
+                footerTable.Rows.Add(footerRow);
+
+                report.Bands[BandKind.PageFooter].Controls.Add(footerTable);
+            }
+
             private List<MVCxColumnInfo> GetColumnsInfo(MVCxGridViewState gridViewState, int pagewidth)
             {
                 var columns = new List<MVCxColumnInfo>();

+ 0 - 16
GreenTree.Nachtragsmanagement.Web/Views/Home/Index.cshtml

@@ -32,7 +32,6 @@
 	var eventListeners = [];
 
 	var exportFormat = "pdf";
-	var exportType = "download";
 
 	@foreach (var g in Model.AvailableFunctions)
 	{
@@ -249,21 +248,6 @@
 		event.stopPropagation();
 	}
 
-	function exportToolbarItemClick(s, e) {
-		if (!s || !e) return;
-		if (e.item.name == "PrintReport" || e.item.name == "PrintPage") {
-			exportType = "print";
-			var iframe = $("#devDocumentViewerReportGrid_Splitter_Viewer_ContentFrame");
-			var html = iframe.contents().find("html").html();
-			var w = window.open();
-			w.document.write(html);
-			w.print();
-			w.close();
-		} else if (e.item.name == "SaveToWindow" || e.item.name == "SaveToDisk") {
-			exportType = "download";
-		}
-	}
-
 	function customizeExportToolbar(baseName) {
 		var controls = ASPxClientControl.GetControlCollection();
 		var formatComboBox = ASPxClientComboBox.Cast(controls.GetByName(baseName + "_Splitter_Toolbar_Menu_ITCNT11_SaveFormat"));

+ 1 - 2
GreenTree.Nachtragsmanagement.Web/Views/Shared/_PrintDocumentViewerPartial.cshtml

@@ -20,6 +20,5 @@
 	};
 	t.ToolbarMode = DocumentViewerToolbarMode.StandardToolbar;
 	t.ClientSideEvents.Init = "function (s, e) { customizeExportToolbar('" + t.Name + "'); }";
-	t.ClientSideEvents.ToolbarItemClick = "function (s, e) { exportToolbarItemClick(s, e); }";
-	t.ClientSideEvents.BeforeExportRequest = "function (s, e) { e.customArgs['exportFormat'] = exportFormat; e.customArgs['exportType'] = exportType; }";
+	t.ClientSideEvents.BeforeExportRequest = "function (s, e) { e.customArgs['exportFormat'] = exportFormat; }";
 }).GetHtml()

+ 4 - 3
GreenTree.Nachtragsmanagement.Web/Views/Sites/_SiteEditTreePartial.cshtml

@@ -23,7 +23,9 @@
 		column.SetHeaderCaptionTemplateContent(c =>
 		{
 			ViewContext.Writer.Write(
-				"<a href=\"#\" onclick=\"addAppendixToSite(" + Model.Id + ")\">Neuer Nachtrag</a><br />");
+				"<a href=\"#\" onclick=\"addAppendixToSite(" + Model.Id + ")\">Neuer NT</a>&nbsp;&nbsp;&#47;&nbsp;&nbsp;");
+			ViewContext.Writer.Write(
+				"<a href=\"#\" onclick=\"addDeviationToSite(" + Model.Id + ")\">Neue VA</a>");
 		});
 		column.SetDataCellTemplateContent(c =>
 		{
@@ -31,8 +33,7 @@
 
 			if (treeKey == "a_0")
 			{
-				ViewContext.Writer.Write(
-					"<a href=\"#\" onclick=\"addDeviationToSite(" + Model.Id + ")\">Neue VA</a><br />");
+
 			}
 			else if (treeKey.StartsWith("d"))
 			{