Browse Source

RowRendering Event is fired after the row is filled

pull/14/head
peterforstmeier 15 years ago
parent
commit
7534372eda
  1. 14
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs
  2. 34
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
  3. 19
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
  4. 10
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs

14
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs

@ -33,7 +33,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -33,7 +33,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
return Rectangle.Empty;
}
Console.WriteLine("layouter for container <{0}>",container.ToString());
Console.WriteLine("\tlayouter for container <{0}>",container.ToString());
Rectangle desiredContainerRectangle = new Rectangle (container.Location,container.Size);
@ -58,7 +58,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -58,7 +58,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
//
// Console.WriteLine("Diff {0} - {1} dif {2}",desiredContainerRectangle,r1,desiredContainerRectangle.Height - r1.Height);
}
Console.WriteLine(" Container : {0} - DesiredContainerRectangle {1} ",container.Size,desiredContainerRectangle.Size);
Console.WriteLine("\tContainer : {0} - DesiredContainerRectangle {1} ",container.Size,desiredContainerRectangle.Size);
return desiredContainerRectangle;
}
@ -72,7 +72,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -72,7 +72,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
throw new ArgumentNullException("section");
}
Console.WriteLine("layouter for section <{0}>",section.Name);
Console.WriteLine("\tlayouter for section <{0}>",section.Name);
IEnumerable<BaseReportItem> canGrowShrinkCollection = from bt in section.Items where bt.CanGrow == true select bt;
@ -86,18 +86,14 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -86,18 +86,14 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
Rectangle surroundingRec = FindSurroundingRectangle(graphics,canGrowShrinkCollection);
if (surroundingRec.Height > desiredSectionRectangle .Height) {
// desiredSectionRectangle = new Rectangle(section.Location.X,
// section .Location.Y,
// section .Size.Width,
// surroundingRec.Size.Height + GlobalValues.ControlMargins.Top + GlobalValues.ControlMargins.Bottom );
desiredSectionRectangle = new Rectangle(section.Location.X,
section .Location.Y,
section .Size.Width,
surroundingRec.Size.Height);
}
}
Console.WriteLine(" Section : {0} - DesiredContainerRectangle {1} ",section.Size,desiredSectionRectangle.Size);
Console.WriteLine("\tSection : {0} - DesiredContainerRectangle {1} ",section.Size,desiredSectionRectangle.Size);
return desiredSectionRectangle;
}

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

@ -78,6 +78,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -78,6 +78,7 @@ namespace ICSharpCode.Reports.Core.Exporter
if (row == null) {
throw new ArgumentException("row");
}
Console.WriteLine("\tFireRowRendering");
RowRenderEventArgs rrea = new RowRenderEventArgs(row,currentNavigator.Current);
EventHelper.Raise<RowRenderEventArgs>(RowRendering,this,rrea);
}
@ -85,6 +86,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -85,6 +86,7 @@ namespace ICSharpCode.Reports.Core.Exporter
protected void FireGroupHeaderRendering (GroupHeader groupHeader)
{
Console.WriteLine("\tFireGroupHeaderRendering");
GroupHeaderEventArgs ghea = new GroupHeaderEventArgs(groupHeader);
EventHelper.Raise<GroupHeaderEventArgs>(GroupHeaderRendering,this,ghea);
}
@ -92,6 +94,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -92,6 +94,7 @@ namespace ICSharpCode.Reports.Core.Exporter
protected void FireGroupFooterRendering (GroupFooter groupFooter)
{
Console.WriteLine("\tFireGroupFooterRendering");
GroupFooterEventArgs gfea = new GroupFooterEventArgs(groupFooter);
EventHelper.Raise<GroupFooterEventArgs>(GroupFooterRendering,this,gfea);
}
@ -137,9 +140,10 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -137,9 +140,10 @@ namespace ICSharpCode.Reports.Core.Exporter
{
var footers = BaseConverter.FindGroupFooter(container);
if (footers.Count > 0) {
FireGroupFooterRendering(footers[0]);
Size rowSize = footers[0].Size;
CurrentPosition = ConvertStandardRow(exporterCollection,section,(ISimpleContainer)footers[0]);
FireGroupFooterRendering(footers[0]);
footers[0].Size = rowSize;
}
}
@ -148,7 +152,6 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -148,7 +152,6 @@ namespace ICSharpCode.Reports.Core.Exporter
ISimpleContainer simpleContainer,IDataNavigator currentNavigator)
{
PrepareContainerForConverting(section,simpleContainer);
FireRowRendering(simpleContainer,currentNavigator);
Point curPos = ConvertContainer(mylist,simpleContainer,DefaultLeftPosition,CurrentPosition);
AfterConverting (mylist);
return curPos;
@ -244,6 +247,17 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -244,6 +247,17 @@ namespace ICSharpCode.Reports.Core.Exporter
}
protected Point ConvertStandardRow(ExporterCollection mylist, BaseSection section, ISimpleContainer simpleContainer)
{
var rowSize = simpleContainer.Size;
PrepareContainerForConverting(section,simpleContainer);
Point curPos = ConvertContainer(mylist,simpleContainer,DefaultLeftPosition,CurrentPosition);
AfterConverting (mylist);
simpleContainer.Size = rowSize;
return curPos;
}
protected void PrepareContainerForConverting(BaseSection section,ISimpleContainer simpleContainer)
{
FireSectionRendering(section);
@ -257,19 +271,6 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -257,19 +271,6 @@ namespace ICSharpCode.Reports.Core.Exporter
}
protected Point ConvertStandardRow(ExporterCollection mylist, BaseSection section, ISimpleContainer simpleContainer)
{
var rowSize = simpleContainer.Size;
FillRow(simpleContainer);
PrepareContainerForConverting(section,simpleContainer);
Point curPos = ConvertContainer(mylist,simpleContainer,DefaultLeftPosition,CurrentPosition);
AfterConverting (mylist);
simpleContainer.Size = rowSize;
return curPos;
}
public static Point ConvertContainer(ExporterCollection myList,ISimpleContainer container,int leftPos,Point curPos)
{
ExporterCollection ml = BaseConverter.ConvertItems (container, curPos);
@ -278,8 +279,9 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -278,8 +279,9 @@ namespace ICSharpCode.Reports.Core.Exporter
}
private void FillRow (ISimpleContainer row)
protected void FillRow (ISimpleContainer row)
{
Console.WriteLine("\tFillRow");
DataNavigator.Fill(row.Items);
}

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

@ -96,14 +96,16 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -96,14 +96,16 @@ namespace ICSharpCode.Reports.Core.Exporter
StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
do
{
Console.WriteLine("");
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,childNavigator);
base.CurrentPosition = ConvertGroupChilds (exporterCollection,section,simpleContainer,childNavigator);
FireRowRendering(simpleContainer,childNavigator);
CheckForPageBreak(section,exporterCollection);
Console.WriteLine("");
}
while ( childNavigator.MoveNext());
@ -118,13 +120,15 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -118,13 +120,15 @@ namespace ICSharpCode.Reports.Core.Exporter
else
{
// No Grouping at all, the first item in section.items is the DetailRow
Console.WriteLine("");
Size containerSize = section.Items[0].Size;
base.FireRowRendering(simpleContainer,base.DataNavigator);
base.FillRow(simpleContainer);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer);
base.FireRowRendering(simpleContainer,base.DataNavigator);
section.Size = base.RestoreSectionSize;
section.Items[0].Size = containerSize;
Console.WriteLine("");
}
CheckForPageBreak (section,exporterCollection);
ShouldDrawBorder (section,exporterCollection);
@ -181,9 +185,10 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -181,9 +185,10 @@ namespace ICSharpCode.Reports.Core.Exporter
AfterConverting (list);
retVal = new Point (DefaultLeftPosition,offset.Y + groupCollection[0].Size.Height + 20 + (3 *GlobalValues.GapBetweenContainer));
} else {
base.FireGroupHeaderRendering(groupedRows[0]);
FillRow(groupedRows[0]);
rowSize = groupedRows[0].Size;
retVal = ConvertStandardRow(exportList,section,groupedRows[0]);
base.FireGroupHeaderRendering(groupedRows[0]);
groupedRows[0].Size = rowSize;
}
return retVal;

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

@ -131,18 +131,22 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -131,18 +131,22 @@ namespace ICSharpCode.Reports.Core.Exporter
simpleContainer = table.Items[1] as ISimpleContainer;
base.SaveSectionSize(section.Size);
containerSize = simpleContainer.Size;
Console.WriteLine("datasection - NO grouping");
do {
Console.WriteLine("");
PrintHelper.AdjustSectionLocation(section);
CheckForPageBreak(section,simpleContainer,headerRow,exporterCollection);
base.FireRowRendering(simpleContainer,base.DataNavigator);
FillRow(simpleContainer);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer);
FireRowRendering(simpleContainer,base.DataNavigator);
simpleContainer.Size = containerSize;
section.Size = base.RestoreSectionSize;
Console.WriteLine("");
}
while (base.DataNavigator.MoveNext());
Console.WriteLine("");
Console.WriteLine("END of datasection - NO grouping");
base.DataNavigator.Reset();
base.DataNavigator.MoveNext();
SectionBounds.ReportFooterRectangle = new Rectangle(SectionBounds.ReportFooterRectangle.Left,

Loading…
Cancel
Save