Browse Source

PageBreakAfterGroupeChanged

pull/2/head
peterforstmeier 15 years ago
parent
commit
cecb9c30f1
  1. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs
  2. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs
  3. 44
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs

4
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); textItem.Text = evaluator.Evaluate(textItem.Text);
} }
} }
} catch (Exception e) { } catch (Exception) {
throw e; throw ;
} }
} }

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs

@ -45,7 +45,7 @@ namespace ICSharpCode.Reports.Core
public bool HasMoreData { public bool HasMoreData {
get { get {
if (this.CurrentRow < store.IndexList.Count +1 ){ if (this.CurrentRow < store.IndexList.Count -1 ){
// if (this.CurrentRow < this.Count -1 ){ // if (this.CurrentRow < this.Count -1 ){
return true; return true;
} else { } else {

44
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs

@ -80,7 +80,7 @@ namespace ICSharpCode.Reports.Core.Exporter
base.Evaluator.SinglePage.IDataNavigator = childNavigator; base.Evaluator.SinglePage.IDataNavigator = childNavigator;
// Convert Grouping Header // Convert Grouping Header
currentPosition = ConvertGroupHeader(exporterCollection,section,simpleContainer,defaultLeftPos,currentPosition); currentPosition = ConvertGroupHeader(exporterCollection,section,defaultLeftPos,currentPosition);
childNavigator.Reset(); childNavigator.Reset();
childNavigator.MoveNext(); childNavigator.MoveNext();
@ -97,24 +97,26 @@ namespace ICSharpCode.Reports.Core.Exporter
pageBreakRect = PrintHelper.CalculatePageBreakRectangle((BaseReportItem)section.Items[1],currentPosition); pageBreakRect = PrintHelper.CalculatePageBreakRectangle((BaseReportItem)section.Items[1],currentPosition);
if (PrintHelper.IsPageFull(pageBreakRect,base.SectionBounds )) { if (PrintHelper.IsPageFull(pageBreakRect,base.SectionBounds )) {
ForcePagePreak (exporterCollection,section); currentPosition = ForcePageBreak (exporterCollection,section);
// base.BuildNewPage(exporterCollection,section); // base.BuildNewPage(exporterCollection,section);
currentPosition = CalculateStartPosition (); // currentPosition = CalculateStartPosition ();
} }
} }
while ( childNavigator.MoveNext()); while ( childNavigator.MoveNext());
if (PageBreakAfterGroupChange(section) ) { if (PageBreakAfterGroupChange(section) ) {
var b = base.DataNavigator.HasMoreData;
Console.WriteLine("datanav {0}",b);
ForcePagePreak (exporterCollection,section);
Console.WriteLine ("PageBreakaftrer");
currentPosition = CalculateStartPosition (); if ( base.DataNavigator.HasMoreData)
{
currentPosition = ForcePageBreak (exporterCollection,section);
//currentPosition = CalculateStartPosition ();
}
} }
var groupedRow = new Collection<BaseGroupedRow>(section.Items.OfType<BaseGroupedRow>().ToList());
base.Evaluator.SinglePage.IDataNavigator = base.DataNavigator; base.Evaluator.SinglePage.IDataNavigator = base.DataNavigator;
} }
} }
@ -126,8 +128,8 @@ namespace ICSharpCode.Reports.Core.Exporter
pageBreakRect = PrintHelper.CalculatePageBreakRectangle((BaseReportItem)section.Items[0],currentPosition); pageBreakRect = PrintHelper.CalculatePageBreakRectangle((BaseReportItem)section.Items[0],currentPosition);
if (PrintHelper.IsPageFull(pageBreakRect,base.SectionBounds)) { if (PrintHelper.IsPageFull(pageBreakRect,base.SectionBounds)) {
ForcePagePreak (exporterCollection,section); currentPosition= ForcePageBreak (exporterCollection,section);
currentPosition = CalculateStartPosition(); // currentPosition = CalculateStartPosition();
} }
ShouldDrawBorder (section,exporterCollection); ShouldDrawBorder (section,exporterCollection);
@ -144,20 +146,21 @@ namespace ICSharpCode.Reports.Core.Exporter
} }
private Point ForcePageBreak(ExporterCollection exporterCollection, BaseSection section)
void ForcePagePreak(ExporterCollection exporterCollection, BaseSection section)
{ {
base.BuildNewPage(exporterCollection,section); base.BuildNewPage(exporterCollection,section);
return CalculateStartPosition();
} }
bool PageBreakAfterGroupChange(BaseSection section) private static bool PageBreakAfterGroupChange(BaseSection section)
{ {
var groupedRowCollection = new Collection<BaseGroupedRow>(section.Items.OfType<BaseGroupedRow>().ToList()); var groupedRowCollection = new Collection<BaseGroupedRow>(section.Items.OfType<BaseGroupedRow>().ToList());
var groupedRow = groupedRowCollection[0]; if (groupedRowCollection.Count > 0) {
Console.WriteLine(base.DataNavigator.HasMoreData); var groupedRow = groupedRowCollection[0];
return groupedRow.PageBreakOnGroupChange;
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; ReportItemCollection groupCollection = null;
var groupedRow = new Collection<BaseGroupedRow>(section.Items.OfType<BaseGroupedRow>().ToList()); var groupedRow = new Collection<BaseGroupedRow>(section.Items.OfType<BaseGroupedRow>().ToList());
if (groupedRow.Count == 0) { if (groupedRow.Count == 0) {
@ -213,7 +216,6 @@ namespace ICSharpCode.Reports.Core.Exporter
private void AfterConverting (BaseSection section,ExporterCollection mylist) private void AfterConverting (BaseSection section,ExporterCollection mylist)
{ {
StandardPrinter.EvaluateRow(base.Evaluator,mylist); StandardPrinter.EvaluateRow(base.Evaluator,mylist);
section.Items[0].Size = base.RestoreSize; section.Items[0].Size = base.RestoreSize;
section.SectionOffset += section.Size.Height + 3 * GlobalValues.GapBetweenContainer; section.SectionOffset += section.Size.Height + 3 * GlobalValues.GapBetweenContainer;
} }

Loading…
Cancel
Save