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. 46
      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 @@ -265,8 +265,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
textItem.Text = evaluator.Evaluate(textItem.Text);
}
}
} catch (Exception e) {
throw e;
} catch (Exception) {
throw ;
}
}

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

@ -45,7 +45,7 @@ namespace ICSharpCode.Reports.Core @@ -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 {

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

@ -64,7 +64,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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 @@ -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 @@ -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<BaseGroupedRow>(section.Items.OfType<BaseGroupedRow>().ToList());
base.Evaluator.SinglePage.IDataNavigator = base.DataNavigator;
}
}
@ -126,8 +128,8 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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 @@ -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<BaseGroupedRow>(section.Items.OfType<BaseGroupedRow>().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 @@ -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<BaseGroupedRow>(section.Items.OfType<BaseGroupedRow>().ToList());
if (groupedRow.Count == 0) {
@ -213,7 +216,6 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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;
}

Loading…
Cancel
Save