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 @@ -98,6 +98,8 @@ namespace ICSharpCode.Reporting.ExportRenderer
static Size MeasureTextInWpf(ExportText exportText)
{
if (exportText.CanGrow) {
FormattedText ft = new FormattedText(exportText.Text,
CultureInfo.CurrentCulture,
@ -119,6 +121,8 @@ namespace ICSharpCode.Reporting.ExportRenderer @@ -119,6 +121,8 @@ namespace ICSharpCode.Reporting.ExportRenderer
Width = ft.WidthIncludingTrailingWhitespace,
Height = ft.Height};
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 @@ -101,8 +101,19 @@ namespace ICSharpCode.Reporting.PageBuilder
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 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 @@ -115,22 +126,20 @@ namespace ICSharpCode.Reporting.PageBuilder
protected bool PageFull(IExportContainer row) {
var rectToPrint = new Rectangle(new Point(row.Location.X,row.Location.Y + DetailsRectangle.Location.Y),
row.DesiredSize);
if (!DetailsRectangle.Contains(rectToPrint)) {
return true;
if (row.DisplayRectangle.Bottom > DetailEnds.Y) {
return true;
}
return false;
}
protected bool row_PageFull(IExportContainer row) {
var rectToPrint = new Rectangle(new Point(row.Location.X,row.Location.Y + DetailsRectangle.Location.Y),
row.DesiredSize);
if (!DetailsRectangle.Contains(rectToPrint)) {
return true;
}
return false;
}
// protected bool row_PageFull(IExportContainer row) {
// var rectToPrint = new Rectangle(new Point(row.Location.X,row.Location.Y + DetailsRectangle.Location.Y),
// row.DesiredSize);
// if (!DetailsRectangle.Contains(rectToPrint)) {
// return true;
// }
// return false;
// }
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 @@ -62,7 +62,9 @@ namespace ICSharpCode.Reporting.PageBuilder
collectionSource.Fill(CurrentSection.Items);
var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection.Items);
converter.SetParent(row,convertedItems);
if (PageFull(convertedItems)) {
MeasureAndArrangeContainer(row);
// if (PageFull(convertedItems)) {
if (PageFull(row)) {
row.ExportedItems.AddRange(convertedItems);
rows.Add(row);
InsertRange(rows);
@ -78,7 +80,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -78,7 +80,7 @@ namespace ICSharpCode.Reporting.PageBuilder
} else {
row.ExportedItems.AddRange(convertedItems);
rows.Add(row);
MeasureAndArrangeContainer(row);
// MeasureAndArrangeContainer(row);
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 @@ -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]
public void DetailContainsOneDataItem() {
reportCreator.BuildExportList();

Loading…
Cancel
Save