Browse Source

Change PageBreak to new DataPageBuilder.cs

reports
Peter Forstmeier 13 years ago
parent
commit
0ea5b66e3e
  1. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs
  2. 35
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs
  3. 6
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs
  4. 7
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs

@ -98,6 +98,8 @@ namespace ICSharpCode.Reporting.ExportRenderer
static Size MeasureTextInWpf(ExportText exportText) static Size MeasureTextInWpf(ExportText exportText)
{ {
if (exportText.CanGrow) {
FormattedText ft = new FormattedText(exportText.Text, FormattedText ft = new FormattedText(exportText.Text,
CultureInfo.CurrentCulture, CultureInfo.CurrentCulture,
@ -119,6 +121,8 @@ namespace ICSharpCode.Reporting.ExportRenderer
Width = ft.WidthIncludingTrailingWhitespace, Width = ft.WidthIncludingTrailingWhitespace,
Height = ft.Height}; Height = ft.Height};
return ss; return ss;
}
return new Size(exportText.Size.Width,exportText.Size.Height);
} }

35
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs

@ -101,8 +101,19 @@ namespace ICSharpCode.Reporting.PageBuilder
BuildPageFooter(); BuildPageFooter();
} }
protected bool PageFull(IExportColumn column)
{
var rectToPrint = new Rectangle(column.Location,column.Size);
var rr = new Rectangle(new Point(column.Location.X + DetailsRectangle.Location.X,column.Location.Y + DetailsRectangle.Location.Y),
column.Size);
if (!DetailsRectangle.Contains(rr)) {
return true;
}
return false;
}
protected bool PageFull(List<IExportColumn> columns)
protected bool old_PageFull(List<IExportColumn> columns)
{ {
var rectToPrint = new Rectangle(columns[0].Location,columns[0].Size); var rectToPrint = new Rectangle(columns[0].Location,columns[0].Size);
var rr = new Rectangle(new Point(columns[0].Location.X + DetailsRectangle.Location.X,columns[0].Location.Y + DetailsRectangle.Location.Y), var rr = new Rectangle(new Point(columns[0].Location.X + DetailsRectangle.Location.X,columns[0].Location.Y + DetailsRectangle.Location.Y),
@ -115,22 +126,20 @@ namespace ICSharpCode.Reporting.PageBuilder
protected bool PageFull(IExportContainer row) { protected bool PageFull(IExportContainer row) {
var rectToPrint = new Rectangle(new Point(row.Location.X,row.Location.Y + DetailsRectangle.Location.Y), if (row.DisplayRectangle.Bottom > DetailEnds.Y) {
row.DesiredSize); return true;
if (!DetailsRectangle.Contains(rectToPrint)) {
return true;
} }
return false; return false;
} }
protected bool row_PageFull(IExportContainer row) { // protected bool row_PageFull(IExportContainer row) {
var rectToPrint = new Rectangle(new Point(row.Location.X,row.Location.Y + DetailsRectangle.Location.Y), // var rectToPrint = new Rectangle(new Point(row.Location.X,row.Location.Y + DetailsRectangle.Location.Y),
row.DesiredSize); // row.DesiredSize);
if (!DetailsRectangle.Contains(rectToPrint)) { // if (!DetailsRectangle.Contains(rectToPrint)) {
return true; // return true;
} // }
return false; // return false;
} // }
protected IExportContainer CreateSection(IReportContainer container,Point location) protected IExportContainer CreateSection(IReportContainer container,Point location)

6
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs

@ -62,7 +62,9 @@ namespace ICSharpCode.Reporting.PageBuilder
collectionSource.Fill(CurrentSection.Items); collectionSource.Fill(CurrentSection.Items);
var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection.Items); var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection.Items);
converter.SetParent(row,convertedItems); converter.SetParent(row,convertedItems);
if (PageFull(convertedItems)) { MeasureAndArrangeContainer(row);
// if (PageFull(convertedItems)) {
if (PageFull(row)) {
row.ExportedItems.AddRange(convertedItems); row.ExportedItems.AddRange(convertedItems);
rows.Add(row); rows.Add(row);
InsertRange(rows); InsertRange(rows);
@ -78,7 +80,7 @@ namespace ICSharpCode.Reporting.PageBuilder
} else { } else {
row.ExportedItems.AddRange(convertedItems); row.ExportedItems.AddRange(convertedItems);
rows.Add(row); rows.Add(row);
MeasureAndArrangeContainer(row); // MeasureAndArrangeContainer(row);
position = new Point(CurrentSection.Location.X,position.Y + row.DesiredSize.Height + 5); position = new Point(CurrentSection.Location.X,position.Y + row.DesiredSize.Height + 5);
} }
} }

7
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs

@ -97,6 +97,13 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory
} }
*/ */
[Test]
public void ReportContains_2_Pages () {
reportCreator.BuildExportList();
Assert.That(reportCreator.Pages.Count,Is.EqualTo(2));
}
[Test] [Test]
public void DetailContainsOneDataItem() { public void DetailContainsOneDataItem() {
reportCreator.BuildExportList(); reportCreator.BuildExportList();

Loading…
Cancel
Save