diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs index cb4df1f483..8eec0e3799 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs @@ -265,8 +265,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing textItem.Text = evaluator.Evaluate(textItem.Text); } } - } catch (Exception e) { - throw e; + } catch (Exception) { + throw ; } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs index 9f5616968e..5c9aab5257 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs @@ -45,7 +45,7 @@ namespace ICSharpCode.Reports.Core public bool HasMoreData { get { - if (this.CurrentRow < store.IndexList.Count +1 ){ + if (this.CurrentRow < store.IndexList.Count -1 ){ // if (this.CurrentRow < this.Count -1 ){ return true; } else { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs index 5298079dce..0de0b6fb77 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs @@ -64,7 +64,7 @@ namespace ICSharpCode.Reports.Core.Exporter int defaultLeftPos = parent.Location.X; Rectangle pageBreakRect = Rectangle.Empty; - + do { PrintHelper.AdjustSectionLocation (section); @@ -80,7 +80,7 @@ namespace ICSharpCode.Reports.Core.Exporter base.Evaluator.SinglePage.IDataNavigator = childNavigator; // Convert Grouping Header - currentPosition = ConvertGroupHeader(exporterCollection,section,simpleContainer,defaultLeftPos,currentPosition); + currentPosition = ConvertGroupHeader(exporterCollection,section,defaultLeftPos,currentPosition); childNavigator.Reset(); childNavigator.MoveNext(); @@ -97,24 +97,26 @@ namespace ICSharpCode.Reports.Core.Exporter pageBreakRect = PrintHelper.CalculatePageBreakRectangle((BaseReportItem)section.Items[1],currentPosition); if (PrintHelper.IsPageFull(pageBreakRect,base.SectionBounds )) { - ForcePagePreak (exporterCollection,section); + currentPosition = ForcePageBreak (exporterCollection,section); // base.BuildNewPage(exporterCollection,section); - currentPosition = CalculateStartPosition (); +// currentPosition = CalculateStartPosition (); } } while ( childNavigator.MoveNext()); + + if (PageBreakAfterGroupChange(section) ) { - var b = base.DataNavigator.HasMoreData; - Console.WriteLine("datanav {0}",b); - ForcePagePreak (exporterCollection,section); - Console.WriteLine ("PageBreakaftrer"); + + if ( base.DataNavigator.HasMoreData) + { + currentPosition = ForcePageBreak (exporterCollection,section); + //currentPosition = CalculateStartPosition (); - currentPosition = CalculateStartPosition (); + } } - var groupedRow = new Collection(section.Items.OfType().ToList()); base.Evaluator.SinglePage.IDataNavigator = base.DataNavigator; } } @@ -126,8 +128,8 @@ namespace ICSharpCode.Reports.Core.Exporter pageBreakRect = PrintHelper.CalculatePageBreakRectangle((BaseReportItem)section.Items[0],currentPosition); if (PrintHelper.IsPageFull(pageBreakRect,base.SectionBounds)) { - ForcePagePreak (exporterCollection,section); - currentPosition = CalculateStartPosition(); + currentPosition= ForcePageBreak (exporterCollection,section); +// currentPosition = CalculateStartPosition(); } ShouldDrawBorder (section,exporterCollection); @@ -144,20 +146,21 @@ namespace ICSharpCode.Reports.Core.Exporter } - - void ForcePagePreak(ExporterCollection exporterCollection, BaseSection section) + private Point ForcePageBreak(ExporterCollection exporterCollection, BaseSection section) { base.BuildNewPage(exporterCollection,section); + return CalculateStartPosition(); } - bool PageBreakAfterGroupChange(BaseSection section) + private static bool PageBreakAfterGroupChange(BaseSection section) { var groupedRowCollection = new Collection(section.Items.OfType().ToList()); - var groupedRow = groupedRowCollection[0]; - Console.WriteLine(base.DataNavigator.HasMoreData); - - return groupedRow.PageBreakOnGroupChange; + if (groupedRowCollection.Count > 0) { + var groupedRow = groupedRowCollection[0]; + return groupedRow.PageBreakOnGroupChange; + } + return false; } @@ -167,9 +170,9 @@ namespace ICSharpCode.Reports.Core.Exporter } - private Point ConvertGroupHeader(ExporterCollection exportList,BaseSection section,ISimpleContainer simpleContainer,int leftPos,Point offset) + private Point ConvertGroupHeader(ExporterCollection exportList,BaseSection section,int leftPos,Point offset) { - Point retVal = Point.Empty; + var retVal = Point.Empty; ReportItemCollection groupCollection = null; var groupedRow = new Collection(section.Items.OfType().ToList()); if (groupedRow.Count == 0) { @@ -213,7 +216,6 @@ namespace ICSharpCode.Reports.Core.Exporter private void AfterConverting (BaseSection section,ExporterCollection mylist) { StandardPrinter.EvaluateRow(base.Evaluator,mylist); - section.Items[0].Size = base.RestoreSize; section.SectionOffset += section.Size.Height + 3 * GlobalValues.GapBetweenContainer; }