|
|
|
@ -37,12 +37,13 @@ namespace ICSharpCode.Reporting.PageBuilder |
|
|
|
public override void BuildExportList() |
|
|
|
public override void BuildExportList() |
|
|
|
{ |
|
|
|
{ |
|
|
|
CreateDataSource(); |
|
|
|
CreateDataSource(); |
|
|
|
|
|
|
|
SetupExpressionRunner(ReportModel.ReportSettings,DataSource); |
|
|
|
base.BuildExportList(); |
|
|
|
base.BuildExportList(); |
|
|
|
BuildDetail(); |
|
|
|
BuildDetail(); |
|
|
|
BuildReportFooter(); |
|
|
|
BuildReportFooter(); |
|
|
|
AddPage(CurrentPage); |
|
|
|
AddPage(CurrentPage); |
|
|
|
UpdatePageInfo(); |
|
|
|
UpdatePageInfo(); |
|
|
|
RunExpressions(ReportModel.ReportSettings,DataSource); |
|
|
|
ExpressionRunner.Run(); |
|
|
|
var formatVisitor = new FormatVisitor(); |
|
|
|
var formatVisitor = new FormatVisitor(); |
|
|
|
formatVisitor.Run(Pages); |
|
|
|
formatVisitor.Run(Pages); |
|
|
|
var dv = new DebugVisitor(); |
|
|
|
var dv = new DebugVisitor(); |
|
|
|
@ -77,6 +78,7 @@ namespace ICSharpCode.Reporting.PageBuilder |
|
|
|
DataSource.Fill(groupHeader.Items,grouping.FirstOrDefault()); |
|
|
|
DataSource.Fill(groupHeader.Items,grouping.FirstOrDefault()); |
|
|
|
|
|
|
|
|
|
|
|
var headerRow = converter.ConvertToExportContainer(groupHeader); |
|
|
|
var headerRow = converter.ConvertToExportContainer(groupHeader); |
|
|
|
|
|
|
|
|
|
|
|
headerRow.Location = new Point(headerRow.Location.X,groupHeader.Location.Y); |
|
|
|
headerRow.Location = new Point(headerRow.Location.X,groupHeader.Location.Y); |
|
|
|
|
|
|
|
|
|
|
|
var headerItems = converter.CreateConvertedList(groupHeader.Items); |
|
|
|
var headerItems = converter.CreateConvertedList(groupHeader.Items); |
|
|
|
@ -86,6 +88,8 @@ namespace ICSharpCode.Reporting.PageBuilder |
|
|
|
|
|
|
|
|
|
|
|
sectionContainer.ExportedItems.Add(headerRow); |
|
|
|
sectionContainer.ExportedItems.Add(headerRow); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EvaluateExpressionsInGroups(sectionContainer,grouping); |
|
|
|
|
|
|
|
|
|
|
|
pagePosition = new Point(CurrentSection.Location.X, pagePosition.Y + sectionContainer.DesiredSize.Height + 1); |
|
|
|
pagePosition = new Point(CurrentSection.Location.X, pagePosition.Y + sectionContainer.DesiredSize.Height + 1); |
|
|
|
|
|
|
|
|
|
|
|
// Set Position Child Elements
|
|
|
|
// Set Position Child Elements
|
|
|
|
@ -119,6 +123,13 @@ namespace ICSharpCode.Reporting.PageBuilder |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void EvaluateExpressionsInGroups(ExportContainer sectionContainer, IGrouping<object, object> grouping) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
ExpressionRunner.Visitor.SetCurrentDataSource(grouping); |
|
|
|
|
|
|
|
ExpressionRunner.Visitor.Visit(sectionContainer); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void BuildSortedDetails(IContainerConverter converter,Point startPosition){ |
|
|
|
void BuildSortedDetails(IContainerConverter converter,Point startPosition){ |
|
|
|
|
|
|
|
|
|
|
|
var exportRows = new List<IExportContainer>(); |
|
|
|
var exportRows = new List<IExportContainer>(); |
|
|
|
|