diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj index ba8c669d69..286fea4f51 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj @@ -143,6 +143,7 @@ + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Globals/DesignerHelper.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Globals/DesignerHelper.cs new file mode 100644 index 0000000000..c8f128eb97 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Globals/DesignerHelper.cs @@ -0,0 +1,37 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 19.09.2014 + * Time: 20:12 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.Addin.Globals +{ + /// + /// Description of DesignerHelper. + /// + public static class DesignerHelper + { + + public static int AlignCenter (int avaiableWidth, int itemWidth) { + if (avaiableWidth == 0) { + throw new ArgumentException("avaiableWidth"); + } + if (itemWidth == 0) { + throw new ArgumentException("itemWidth"); + } + return (avaiableWidth - itemWidth)/2; + } + + public static int AlignRight(int avaiableWidth, int itemWidth) { + if (avaiableWidth == 0) { + throw new ArgumentException("avaiableWidth"); + } + return avaiableWidth - itemWidth; + } + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ReportGenerator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ReportGenerator.cs index a44abbce69..0a83a44cd7 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ReportGenerator.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ReportGenerator.cs @@ -9,12 +9,13 @@ using System; using System.Collections.Generic; using System.Drawing; +using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Factories; using ICSharpCode.Reporting.Globals; using ICSharpCode.Reporting.Interfaces; -using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Items; +using ICSharpCode.Reporting.Addin.Globals; using ICSharpCode.Reporting.Addin.ReportWizard.ViewModels; namespace ICSharpCode.Reporting.Addin.ReportWizard @@ -44,12 +45,14 @@ namespace ICSharpCode.Reporting.Addin.ReportWizard } } + void CreateFormSheetReport(ReportWizardContext context) { ReportModel.ReportSettings = GenerateBaseSettings(context); CreateReportHeader(context); } + void CreateDataReport(ReportWizardContext context) { ReportModel.ReportSettings = GenerateBaseSettings(context); @@ -59,6 +62,7 @@ namespace ICSharpCode.Reporting.Addin.ReportWizard CreatePageFooter (); } + ReportSettings GenerateBaseSettings (ReportWizardContext context) { var pageOneContext = (PageOneContext)context.PageOneContext; var reportSettings = ReportModel.ReportSettings; @@ -71,7 +75,6 @@ namespace ICSharpCode.Reporting.Addin.ReportWizard } - void CreateDetailsSection(ReportWizardContext context){ var pushModelContext = (PushModelContext)context.PushModelContext; foreach (var element in pushModelContext.Items) { @@ -90,16 +93,15 @@ namespace ICSharpCode.Reporting.Addin.ReportWizard void CreateReportHeader(ReportWizardContext context){ var pageOneContext = (PageOneContext)context.PageOneContext; - var headerText = new BaseTextItem(); - - headerText.Text = String.IsNullOrEmpty(pageOneContext.ReportName) ? GlobalValues.DefaultReportName : pageOneContext.ReportName; + var centerLocation = DesignerHelper.AlignCenter(ReportModel.ReportSettings.PrintableWidth(),GlobalValues.PreferedSize.Width); + var headerText = new BaseTextItem(){ + Text = String.IsNullOrEmpty(pageOneContext.ReportName) ? GlobalValues.DefaultReportName : pageOneContext.ReportName, + Location = new Point(centerLocation,10) + }; - var xLoc = (ReportModel.ReportSettings.PrintableWidth() - headerText.Size.Width) / 2; - headerText.Location = new Point(xLoc,4); ReportModel.ReportHeader.Items.Add(headerText); - xLoc = ReportModel.ReportSettings.PrintableWidth() - GlobalValues.PreferedSize.Width - 20; - + var xLoc = DesignerHelper.AlignRight( ReportModel.ReportSettings.PrintableWidth(),GlobalValues.PreferedSize.Width) - 5; var dateText = new BaseTextItem(){ Text ="= Today.Today", Location = new Point(xLoc ,10) @@ -133,14 +135,17 @@ namespace ICSharpCode.Reporting.Addin.ReportWizard } + void CreatePageFooter() { + var lineNrField = new BaseTextItem() { Text = "='Page : ' + Globals!PageNumber + ' of ' + Globals!Pages + ' Page(s)'", Name = "LineNumber", - Location = new Point(300,10), Size = new Size (GlobalValues.PreferedSize.Width * 2,GlobalValues.PreferedSize.Height) }; + var xLoc = DesignerHelper.AlignRight( ReportModel.ReportSettings.PrintableWidth(),lineNrField.Size.Width) - 5; + lineNrField.Location = new Point(xLoc,10); ReportModel.PageFooter.Items.Add(lineNrField); } @@ -160,6 +165,7 @@ namespace ICSharpCode.Reporting.Addin.ReportWizard return poc.ReportType.Equals(ReportType.DataReport); } + public IReportModel ReportModel {get;private set;} } }