Browse Source

Show GroupHeader

reports
Peter Forstmeier 12 years ago
parent
commit
710f0cd61e
  1. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseRowItem.cs
  2. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs
  3. 54
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseRowItem.cs

@ -17,7 +17,6 @@ namespace ICSharpCode.Reporting.Items
public class GroupHeader :BaseRowItem public class GroupHeader :BaseRowItem
{ {
public GroupHeader() { public GroupHeader() {
Console.WriteLine("init groupHeader");
} }
} }
} }

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

@ -46,7 +46,6 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
var exportColumn = ExportColumnFactory.CreateItem(element); var exportColumn = ExportColumnFactory.CreateItem(element);
var ec = element as IReportContainer; var ec = element as IReportContainer;
if (ec != null) { if (ec != null) {
Console.WriteLine("Convert Recursive");
var l = CreateConvertedList(ec.Items); var l = CreateConvertedList(ec.Items);
((IExportContainer)exportColumn).ExportedItems.AddRange(l); ((IExportContainer)exportColumn).ExportedItems.AddRange(l);
} }

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

@ -16,6 +16,7 @@ using ICSharpCode.Reporting.DataManager.Listhandling;
using ICSharpCode.Reporting.Exporter.Visitors; using ICSharpCode.Reporting.Exporter.Visitors;
using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.PageBuilder.Converter; using ICSharpCode.Reporting.PageBuilder.Converter;
using ICSharpCode.Reporting.PageBuilder.ExportColumns; using ICSharpCode.Reporting.PageBuilder.ExportColumns;
@ -44,6 +45,8 @@ namespace ICSharpCode.Reporting.PageBuilder
RunExpressions(ReportModel.ReportSettings,DataSource); RunExpressions(ReportModel.ReportSettings,DataSource);
var formatVisitor = new FormatVisitor(); var formatVisitor = new FormatVisitor();
formatVisitor.Run(Pages); formatVisitor.Run(Pages);
var dv = new DebugVisitor();
dv.Run(Pages);
} }
@ -62,18 +65,61 @@ namespace ICSharpCode.Reporting.PageBuilder
void BuildGroupedDetails () { void BuildGroupedDetails () {
Console.WriteLine("report is grouped");
var exportRows = new List<IExportContainer>(); var exportRows = new List<IExportContainer>();
var converter = new ContainerConverter(base.Graphics, CurrentLocation); var converter = new ContainerConverter(base.Graphics, CurrentLocation);
var position = DetailStart; var position = DetailStart;
foreach (IGrouping<object, object> grouping in DataSource.GroupedList) { foreach (IGrouping<object, object> grouping in DataSource.GroupedList) {
Console.WriteLine ("groupkey {0} - {1}",grouping.Key,grouping.Count());
var groupHeader = (BaseRowItem)CurrentSection.Items.Where(p => p.GetType() == typeof(GroupHeader)).FirstOrDefault();
DataSource.Fill(groupHeader.Items,grouping.FirstOrDefault());
var sectionContainer = CreateContainerForSection(CurrentPage, position);
var headerRow = converter.ConvertToExportContainer(groupHeader);
headerRow.Location = new Point(headerRow.Location.X,groupHeader.Location.Y);
var headerItems = converter.CreateConvertedList(groupHeader.Items);
headerRow.ExportedItems.AddRange(headerItems);
sectionContainer.ExportedItems.Add(headerRow);
exportRows.Add(sectionContainer);
position = new Point(CurrentSection.Location.X, position.Y + sectionContainer.DesiredSize.Height + 1);
// position = new Point(position.X,headerRow.DisplayRectangle.Bottom + 2);
foreach (var current in grouping) { foreach (var current in grouping) {
Console.WriteLine("\t{0}",current.ToString());
}
DataSource.Fill(CurrentSection.Items,current);
/*
var ll = CurrentSection.Items.Where(p => p.GetType() == typeof(BaseDataItem));
var convertedItems = converter.CreateConvertedList(ll.ToList());
foreach (var element in convertedItems) {
element.Location = new Point(element.Location.X,position.Y);
}
// converter.SetParent(row, convertedItems);
*/
/*
if (PageFull(row)) {
InsertExportRows(exportRows);
exportRows.Clear();
PerformPageBreak();
position = DetailStart;
row.Location = position;
}
*/
/*
sectionContainer.ExportedItems.AddRange(convertedItems);
MeasureAndArrangeContainer(sectionContainer);
// row.ExportedItems.AddRange(convertedItems);
exportRows.Add(sectionContainer);
position = new Point(CurrentSection.Location.X, position.Y + convertedItems[0].DesiredSize.Height + 1);
// position = new Point(CurrentSection.Location.X, position.Y + sectionContainer.DesiredSize.Height + 1);
*/
}
} }
InsertExportRows(exportRows); InsertExportRows(exportRows);
} }

Loading…
Cancel
Save