Browse Source

GroupFooter in ListLayout Reports

pull/14/head
peterforstmeier 15 years ago
parent
commit
05ba7d604f
  1. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportLayout/AbstractLayout.cs
  2. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseGroupeFooter.cs
  3. 10
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
  4. 14
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportLayout/AbstractLayout.cs

@ -185,7 +185,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
ICSharpCode.Reports.Core.GroupFooter groupFooter = new ICSharpCode.Reports.Core.GroupFooter(); ICSharpCode.Reports.Core.GroupFooter groupFooter = new ICSharpCode.Reports.Core.GroupFooter();
groupFooter.Location = footerLocation; groupFooter.Location = footerLocation;
groupFooter.Size = new Size (300,30); groupFooter.Size = new Size (300,30);
// groupFooter.Items.Add(dataItem);
return groupFooter; return groupFooter;
} }

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseGroupeFooter.cs

@ -13,10 +13,12 @@ namespace ICSharpCode.Reports.Core
/// <summary> /// <summary>
/// Description of BaseGroupeFooter. /// Description of BaseGroupeFooter.
/// </summary> /// </summary>
public class GroupFooter:BaseGroupItem public class GroupFooter:BaseGroupedRow
{ {
public GroupFooter() public GroupFooter()
{ {
} }
} }
} }

10
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs

@ -140,7 +140,7 @@ namespace ICSharpCode.Reports.Core.Exporter
protected bool PageBreakAfterGroupChange(ISimpleContainer container) protected bool PageBreakAfterGroupChange(ISimpleContainer container)
{ {
var groupedRows = BaseConverter.FindGroups(container); var groupedRows = BaseConverter.FindGroupHeader(container);
if (groupedRows.Count > 0) { if (groupedRows.Count > 0) {
var groupedRow = groupedRows[0]; var groupedRow = groupedRows[0];
return groupedRow.PageBreakOnGroupChange; return groupedRow.PageBreakOnGroupChange;
@ -149,12 +149,18 @@ namespace ICSharpCode.Reports.Core.Exporter
} }
protected static Collection<BaseGroupedRow> FindGroups (ISimpleContainer container) protected static Collection<BaseGroupedRow> FindGroupHeader (ISimpleContainer container)
{ {
return new Collection<BaseGroupedRow>(container.Items.OfType<BaseGroupedRow>().ToList()); return new Collection<BaseGroupedRow>(container.Items.OfType<BaseGroupedRow>().ToList());
} }
protected static Collection<GroupFooter> FindGroupFooter (ISimpleContainer container)
{
return new Collection<GroupFooter>(container.Items.OfType<GroupFooter>().ToList());
}
protected virtual Point ForcePageBreak(ExporterCollection exporterCollection, BaseSection section) protected virtual Point ForcePageBreak(ExporterCollection exporterCollection, BaseSection section)
{ {
BuildNewPage(exporterCollection,section); BuildNewPage(exporterCollection,section);

14
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs

@ -117,6 +117,18 @@ namespace ICSharpCode.Reports.Core.Exporter
} }
while ( childNavigator.MoveNext()); while ( childNavigator.MoveNext());
// GroupFooter
var footers = BaseConverter.FindGroupFooter(section);
if (footers.Count > 0) {
// base.FireGroupHeaderRendering(groupedRows[0]);
Size rowSize = footers[0].Size;
base.CurrentPosition = ConvertStandardRow(exporterCollection,section,(ISimpleContainer)footers[0],defaultLeftPos,base.CurrentPosition);
footers[0].Size = rowSize;
}
if (PageBreakAfterGroupChange(section) ) { if (PageBreakAfterGroupChange(section) ) {
if ( base.DataNavigator.HasMoreData) if ( base.DataNavigator.HasMoreData)
@ -177,7 +189,7 @@ namespace ICSharpCode.Reports.Core.Exporter
var retVal = Point.Empty; var retVal = Point.Empty;
var rowSize = Size.Empty; var rowSize = Size.Empty;
ReportItemCollection groupCollection = null; ReportItemCollection groupCollection = null;
var groupedRows = BaseConverter.FindGroups(section); var groupedRows = BaseConverter.FindGroupHeader(section);
if (groupedRows.Count == 0) { if (groupedRows.Count == 0) {
groupCollection = section.Items.ExtractGroupedColumns(); groupCollection = section.Items.ExtractGroupedColumns();
base.DataNavigator.Fill(groupCollection); base.DataNavigator.Fill(groupCollection);

Loading…
Cancel
Save