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 @@ -136,27 +136,18 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Grouping
protected void ConvertGroupFooter (BaseSection section,ISimpleContainer container,ExporterCollection exporterCollection)
protected void ConvertGroupFooter (ISimpleContainer container,ExporterCollection exporterCollection)
{
var footers = BaseConverter.FindGroupFooter(container);
if (footers.Count > 0) {
Size rowSize = footers[0].Size;
CurrentPosition = ConvertStandardRow(exporterCollection,section,(ISimpleContainer)footers[0]);
CurrentPosition = ConvertStandardRow(exporterCollection,(ISimpleContainer)footers[0]);
FireGroupFooterRendering(footers[0]);
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)
{
@ -255,11 +246,11 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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");
var rowSize = simpleContainer.Size;
// PrepareContainerForConverting(section,simpleContainer);
Point curPos = ConvertContainer(mylist,simpleContainer,DefaultLeftPosition,CurrentPosition);
AfterConverting (mylist);
simpleContainer.Size = rowSize;
@ -281,10 +272,11 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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");
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 @@ -100,17 +100,18 @@ namespace ICSharpCode.Reports.Core.Exporter
section.Size = base.RestoreSectionSize;
section.Items[0].Size = groupSize;
section.Items[1].Size = childSize;
Console.WriteLine("\tFillRow");
childNavigator.Fill(simpleContainer.Items);
base.CurrentPosition = ConvertGroupChilds (exporterCollection,section,simpleContainer);
FillRow(simpleContainer,childNavigator);
PrepareContainerForConverting(section,simpleContainer);
FireRowRendering(simpleContainer,childNavigator);
base.CurrentPosition = ConvertStandardRow(exporterCollection,simpleContainer);
CheckForPageBreak(section,exporterCollection);
Console.WriteLine("");
}
while ( childNavigator.MoveNext());
// GroupFooter
base.ConvertGroupFooter(section,section,exporterCollection);
base.ConvertGroupFooter(section,exporterCollection);
base.PageBreakAfterGroupChange(section,exporterCollection);
@ -122,10 +123,10 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -122,10 +123,10 @@ namespace ICSharpCode.Reports.Core.Exporter
// No Grouping at all, the first item in section.items is the DetailRow
Console.WriteLine("");
Size containerSize = section.Items[0].Size;
base.FillRow(simpleContainer);
FillRow(simpleContainer,base.DataNavigator);
base.PrepareContainerForConverting(section,simpleContainer);
FireRowRendering(simpleContainer,base.DataNavigator);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer);
base.CurrentPosition = ConvertStandardRow (exporterCollection,simpleContainer);
// base.FireRowRendering(simpleContainer,base.DataNavigator);
section.Size = base.RestoreSectionSize;
section.Items[0].Size = containerSize;
@ -186,10 +187,11 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -186,10 +187,11 @@ namespace ICSharpCode.Reports.Core.Exporter
AfterConverting (list);
retVal = new Point (DefaultLeftPosition,offset.Y + groupCollection[0].Size.Height + 20 + (3 *GlobalValues.GapBetweenContainer));
} else {
FillRow(groupedRows[0]);
FillRow(groupedRows[0],base.DataNavigator);
rowSize = groupedRows[0].Size;
retVal = ConvertStandardRow(exportList,section,groupedRows[0]);
base.FireGroupHeaderRendering(groupedRows[0]);
retVal = ConvertStandardRow(exportList,groupedRows[0]);
groupedRows[0].Size = rowSize;
}
return retVal;

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

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

Loading…
Cancel
Save