Browse Source

Add Container to Detail if no one exist

reports
Peter Forstmeier 13 years ago
parent
commit
cd93c5806d
  1. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs
  2. 11
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs
  3. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs
  4. 9
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs

@ -42,6 +42,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
public override void Visit(ExportContainer exportColumn) public override void Visit(ExportContainer exportColumn)
{ {
var canvas = (Canvas)documentCreator.CreateContainer(exportColumn); var canvas = (Canvas)documentCreator.CreateContainer(exportColumn);
CanvasHelper.SetPosition(canvas,new Point(exportColumn.Location.X,exportColumn.Location.Y));
UIElement = canvas; UIElement = canvas;
} }

11
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs

@ -68,7 +68,8 @@ namespace ICSharpCode.Reporting.Exporter
if (exportContainer != null) { if (exportContainer != null) {
if (exportContainer.Name =="ReportDetail") { if (exportContainer.Name =="ReportDetail") {
Console.WriteLine(item.Name); Console.WriteLine("Section {0}",item.Name);
exportContainer.BackColor = System.Drawing.Color.LightBlue;
} }
if (exportContainer.Name == "Row") { if (exportContainer.Name == "Row") {
@ -78,7 +79,7 @@ namespace ICSharpCode.Reporting.Exporter
if (parentCanvas == null) { if (parentCanvas == null) {
containerCanvas = CreateContainer(fixedPage,exportContainer); containerCanvas = CreateContainer(fixedPage,exportContainer);
Console.WriteLine("Section {0} at {1}",item.Name,CanvasHelper.GetPosition(containerCanvas)); Console.WriteLine("Section {0} at {1} size {2}",item.Name,CanvasHelper.GetPosition(containerCanvas),containerCanvas.DesiredSize);
fixedPage.Children.Add(containerCanvas); fixedPage.Children.Add(containerCanvas);
parentCanvas = containerCanvas; parentCanvas = containerCanvas;
} else { } else {
@ -87,7 +88,7 @@ namespace ICSharpCode.Reporting.Exporter
parentCanvas.Children.Add(containerCanvas); parentCanvas.Children.Add(containerCanvas);
} }
Console.WriteLine("canvas at {0}",CanvasHelper.GetPosition(containerCanvas)); // Console.WriteLine("canvas at {0}",CanvasHelper.GetPosition(containerCanvas));
foreach (var element in exportContainer.ExportedItems) { foreach (var element in exportContainer.ExportedItems) {
@ -95,7 +96,7 @@ namespace ICSharpCode.Reporting.Exporter
var singleItem = CreateSingleEntry(containerCanvas,element); var singleItem = CreateSingleEntry(containerCanvas,element);
Console.WriteLine("TEST {0} - {1}",CanvasHelper.GetPosition(singleItem),CanvasHelper.GetPosition(containerCanvas)); // Console.WriteLine("TEST {0} - {1}",CanvasHelper.GetPosition(singleItem),CanvasHelper.GetPosition(containerCanvas));
containerCanvas.Children.Add(singleItem); containerCanvas.Children.Add(singleItem);
} }
ShowContainerRecursive(parentCanvas,element); ShowContainerRecursive(parentCanvas,element);
@ -127,7 +128,7 @@ namespace ICSharpCode.Reporting.Exporter
v.Accept(visitor); v.Accept(visitor);
var c = visitor.UIElement; var c = visitor.UIElement;
Console.WriteLine("CreateSingleEntry after {0}",CanvasHelper.GetPosition(c)); // Console.WriteLine("CreateSingleEntry after {0}",CanvasHelper.GetPosition(c));
return c; return c;
} }

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs

@ -62,9 +62,6 @@ Console.WriteLine("CreateConvertedList {0}",reportContainer.Name);
foreach (var element in reportContainer.Items) { foreach (var element in reportContainer.Items) {
var exportColumn = ExportColumnFactory.CreateItem(element); var exportColumn = ExportColumnFactory.CreateItem(element);
exportColumn.Parent = exportContainer; exportColumn.Parent = exportContainer;
// exportColumn.Location = new Point(element.Location.X,element.Location.Y + exportContainer.Location.Y);
// exportColumn.Location = new Point(element.Location.X,element.Location.Y + position.Y);
// exportColumn.DesiredSize = Measure(exportColumn);
itemsList.Add(exportColumn); itemsList.Add(exportColumn);
} }
return itemsList; return itemsList;

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

@ -172,21 +172,21 @@ namespace ICSharpCode.Reporting.PageBuilder
void BuildDetail() void BuildDetail()
{ {
var converter = new ContainerConverter(base.Graphics, CurrentLocation); var converter = new ContainerConverter(base.Graphics, CurrentLocation);
var position = DetailStart; // var position = DetailStart;
CurrentSection = ReportModel.DetailSection; var position = new Point(DetailStart.X,1);
var collectionSource = new CollectionSource(List,ElementType,ReportModel.ReportSettings); var collectionSource = new CollectionSource(List,ElementType,ReportModel.ReportSettings);
CurrentSection = ReportModel.DetailSection;
IExportContainer detail = null; IExportContainer detail = null;
if(collectionSource.Count > 0) { if(collectionSource.Count > 0) {
collectionSource.Bind(); collectionSource.Bind();
detail = CreateDetail(DetailStart); detail = CreateDetail(DetailStart);
do { do {
var row = CreateContainerIfNotExist(CurrentSection,detail, position); var row = CreateContainerIfNotExist(CurrentSection,detail, position);
collectionSource.Fill(CurrentSection.Items); collectionSource.Fill(CurrentSection.Items);
var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection,row); var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection,row);
MeasureAndArrangeContainer(converter,row); MeasureAndArrangeContainer(converter,row);
@ -241,6 +241,7 @@ namespace ICSharpCode.Reporting.PageBuilder
{ {
var detail = CreateContainerForSection(startLocation); var detail = CreateContainerForSection(startLocation);
detail.Parent = CurrentPage; detail.Parent = CurrentPage;
detail.DesiredSize = new Size(detail.Size.Width,DetailEnds.Y - DetailStart.Y);
return detail; return detail;
} }

Loading…
Cancel
Save