Browse Source

RowRenderEvent fire on correct position

pull/14/head
peterforstmeier 15 years ago
parent
commit
765270af19
  1. 22
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
  2. 20
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
  3. 30
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs

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

@ -136,27 +136,18 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Grouping #region Grouping
protected void ConvertGroupFooter (BaseSection section,ISimpleContainer container,ExporterCollection exporterCollection) protected void ConvertGroupFooter (ISimpleContainer container,ExporterCollection exporterCollection)
{ {
var footers = BaseConverter.FindGroupFooter(container); var footers = BaseConverter.FindGroupFooter(container);
if (footers.Count > 0) { if (footers.Count > 0) {
Size rowSize = footers[0].Size; Size rowSize = footers[0].Size;
CurrentPosition = ConvertStandardRow(exporterCollection,section,(ISimpleContainer)footers[0]); CurrentPosition = ConvertStandardRow(exporterCollection,(ISimpleContainer)footers[0]);
FireGroupFooterRendering(footers[0]); FireGroupFooterRendering(footers[0]);
footers[0].Size = rowSize; footers[0].Size = rowSize;
} }
} }
protected Point ConvertGroupChilds(ExporterCollection mylist, BaseSection section,
ISimpleContainer simpleContainer)
{
PrepareContainerForConverting(section,simpleContainer);
Point curPos = ConvertContainer(mylist,simpleContainer,DefaultLeftPosition,CurrentPosition);
AfterConverting (mylist);
return curPos;
}
protected void PageBreakAfterGroupChange(BaseSection section,ExporterCollection exporterCollection) protected void PageBreakAfterGroupChange(BaseSection section,ExporterCollection exporterCollection)
{ {
@ -255,11 +246,11 @@ namespace ICSharpCode.Reports.Core.Exporter
} }
protected Point ConvertStandardRow(ExporterCollection mylist, BaseSection section, ISimpleContainer simpleContainer) protected Point ConvertStandardRow(ExporterCollection mylist, ISimpleContainer simpleContainer)
{ {
Console.WriteLine("\tConvertStandardRow"); Console.WriteLine("\tConvertStandardRow");
var rowSize = simpleContainer.Size; var rowSize = simpleContainer.Size;
// PrepareContainerForConverting(section,simpleContainer);
Point curPos = ConvertContainer(mylist,simpleContainer,DefaultLeftPosition,CurrentPosition); Point curPos = ConvertContainer(mylist,simpleContainer,DefaultLeftPosition,CurrentPosition);
AfterConverting (mylist); AfterConverting (mylist);
simpleContainer.Size = rowSize; simpleContainer.Size = rowSize;
@ -281,10 +272,11 @@ namespace ICSharpCode.Reports.Core.Exporter
} }
protected void FillRow (ISimpleContainer row) protected static void FillRow (ISimpleContainer row,IDataNavigator currentNavigator)
{ {
Console.WriteLine("\tFillRow"); Console.WriteLine("\tFillRow");
DataNavigator.Fill(row.Items); //DataNavigator.Fill(row.Items);
currentNavigator.Fill(row.Items);
} }

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

@ -100,17 +100,18 @@ namespace ICSharpCode.Reports.Core.Exporter
section.Size = base.RestoreSectionSize; section.Size = base.RestoreSectionSize;
section.Items[0].Size = groupSize; section.Items[0].Size = groupSize;
section.Items[1].Size = childSize; section.Items[1].Size = childSize;
Console.WriteLine("\tFillRow");
childNavigator.Fill(simpleContainer.Items); FillRow(simpleContainer,childNavigator);
base.CurrentPosition = ConvertGroupChilds (exporterCollection,section,simpleContainer); PrepareContainerForConverting(section,simpleContainer);
FireRowRendering(simpleContainer,childNavigator); FireRowRendering(simpleContainer,childNavigator);
base.CurrentPosition = ConvertStandardRow(exporterCollection,simpleContainer);
CheckForPageBreak(section,exporterCollection); CheckForPageBreak(section,exporterCollection);
Console.WriteLine("");
} }
while ( childNavigator.MoveNext()); while ( childNavigator.MoveNext());
// GroupFooter // GroupFooter
base.ConvertGroupFooter(section,section,exporterCollection); base.ConvertGroupFooter(section,exporterCollection);
base.PageBreakAfterGroupChange(section,exporterCollection); base.PageBreakAfterGroupChange(section,exporterCollection);
@ -122,10 +123,10 @@ namespace ICSharpCode.Reports.Core.Exporter
// No Grouping at all, the first item in section.items is the DetailRow // No Grouping at all, the first item in section.items is the DetailRow
Console.WriteLine(""); Console.WriteLine("");
Size containerSize = section.Items[0].Size; Size containerSize = section.Items[0].Size;
base.FillRow(simpleContainer); FillRow(simpleContainer,base.DataNavigator);
base.PrepareContainerForConverting(section,simpleContainer); base.PrepareContainerForConverting(section,simpleContainer);
FireRowRendering(simpleContainer,base.DataNavigator); FireRowRendering(simpleContainer,base.DataNavigator);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer); base.CurrentPosition = ConvertStandardRow (exporterCollection,simpleContainer);
// base.FireRowRendering(simpleContainer,base.DataNavigator); // base.FireRowRendering(simpleContainer,base.DataNavigator);
section.Size = base.RestoreSectionSize; section.Size = base.RestoreSectionSize;
section.Items[0].Size = containerSize; section.Items[0].Size = containerSize;
@ -186,10 +187,11 @@ namespace ICSharpCode.Reports.Core.Exporter
AfterConverting (list); AfterConverting (list);
retVal = new Point (DefaultLeftPosition,offset.Y + groupCollection[0].Size.Height + 20 + (3 *GlobalValues.GapBetweenContainer)); retVal = new Point (DefaultLeftPosition,offset.Y + groupCollection[0].Size.Height + 20 + (3 *GlobalValues.GapBetweenContainer));
} else { } else {
FillRow(groupedRows[0]); FillRow(groupedRows[0],base.DataNavigator);
rowSize = groupedRows[0].Size; rowSize = groupedRows[0].Size;
retVal = ConvertStandardRow(exportList,section,groupedRows[0]);
base.FireGroupHeaderRendering(groupedRows[0]); base.FireGroupHeaderRendering(groupedRows[0]);
retVal = ConvertStandardRow(exportList,groupedRows[0]);
groupedRows[0].Size = rowSize; groupedRows[0].Size = rowSize;
} }
return retVal; return retVal;

30
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs

@ -96,6 +96,15 @@ namespace ICSharpCode.Reports.Core.Exporter
childNavigator.Reset(); childNavigator.Reset();
childNavigator.MoveNext(); childNavigator.MoveNext();
/*
FillRow
PrepareContainerForConverting
Layouter for Container
FireRowRendering
eportViewer - RowRendering :
ConvertStandardRow
*/
//Convert children //Convert children
if (childNavigator != null) { if (childNavigator != null) {
do do
@ -104,9 +113,11 @@ namespace ICSharpCode.Reports.Core.Exporter
simpleContainer = table.Items[2] as ISimpleContainer; simpleContainer = table.Items[2] as ISimpleContainer;
containerSize = simpleContainer.Size; containerSize = simpleContainer.Size;
childNavigator.Fill(simpleContainer.Items); FillRow(simpleContainer,childNavigator);
PrepareContainerForConverting(section,simpleContainer);
FireRowRendering(simpleContainer,childNavigator);
base.CurrentPosition = ConvertGroupChilds (exporterCollection,section,simpleContainer); base.CurrentPosition = ConvertStandardRow(exporterCollection,simpleContainer);
simpleContainer.Size = containerSize; simpleContainer.Size = containerSize;
CheckForPageBreak(section,simpleContainer,headerRow,exporterCollection); CheckForPageBreak(section,simpleContainer,headerRow,exporterCollection);
@ -115,7 +126,7 @@ namespace ICSharpCode.Reports.Core.Exporter
while ( childNavigator.MoveNext()); while ( childNavigator.MoveNext());
// GroupFooter // GroupFooter
base.ConvertGroupFooter(section,table,exporterCollection); base.ConvertGroupFooter(table,exporterCollection);
base.PageBreakAfterGroupChange(section,exporterCollection); base.PageBreakAfterGroupChange(section,exporterCollection);
base.Evaluator.SinglePage.IDataNavigator = base.DataNavigator; base.Evaluator.SinglePage.IDataNavigator = base.DataNavigator;
@ -137,11 +148,12 @@ namespace ICSharpCode.Reports.Core.Exporter
Console.WriteLine(""); Console.WriteLine("");
PrintHelper.AdjustSectionLocation(section); PrintHelper.AdjustSectionLocation(section);
CheckForPageBreak(section,simpleContainer,headerRow,exporterCollection); CheckForPageBreak(section,simpleContainer,headerRow,exporterCollection);
FillRow(simpleContainer);
FillRow(simpleContainer,base.DataNavigator);
base.PrepareContainerForConverting(section,simpleContainer); base.PrepareContainerForConverting(section,simpleContainer);
FireRowRendering(simpleContainer,base.DataNavigator); FireRowRendering(simpleContainer,base.DataNavigator);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer); base.CurrentPosition = ConvertStandardRow (exporterCollection,simpleContainer);
// FireRowRendering(simpleContainer,base.DataNavigator);
simpleContainer.Size = containerSize; simpleContainer.Size = containerSize;
section.Size = base.RestoreSectionSize; section.Size = base.RestoreSectionSize;
Console.WriteLine(""); Console.WriteLine("");
@ -170,7 +182,7 @@ namespace ICSharpCode.Reports.Core.Exporter
{ {
base.CurrentPosition = ForcePageBreak(exporterCollection,section); base.CurrentPosition = ForcePageBreak(exporterCollection,section);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,headerRow); base.CurrentPosition = ConvertStandardRow (exporterCollection,headerRow);
} }
} }
@ -210,9 +222,11 @@ namespace ICSharpCode.Reports.Core.Exporter
} else { } else {
rowSize = groupedRow[0].Size; rowSize = groupedRow[0].Size;
FillRow(groupedRow[0],base.DataNavigator);
base.FireGroupHeaderRendering(groupedRow[0]); base.FireGroupHeaderRendering(groupedRow[0]);
retVal = ConvertStandardRow(exportList,section,groupedRow[0]); retVal = ConvertStandardRow(exportList,groupedRow[0]);
groupedRow[0].Size = rowSize; groupedRow[0].Size = rowSize;
} }
return retVal; return retVal;

Loading…
Cancel
Save