diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Events/PrintEventArgs.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Events/PrintEventArgs.cs
index bca24510e7..adbc141838 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Events/PrintEventArgs.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Events/PrintEventArgs.cs
@@ -44,7 +44,7 @@ namespace ICSharpCode.Reports.Core {
}
///
- /// This Event is fiered after an Item is printed
+ /// This Event is fired after an Item is printed
///
public class AfterPrintEventArgs : System.EventArgs {
PointF locationAfterPrint;
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Events/SectionRenderEventArgs.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Events/SectionRenderEventArgs.cs
index 68ccc0f2ef..24874fe12a 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Events/SectionRenderEventArgs.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Events/SectionRenderEventArgs.cs
@@ -8,38 +8,50 @@ namespace ICSharpCode.Reports.Core {
/// Description of SectionRenderEventArgs.
///
+
+ public class GroupHeaderEventArgs: EventArgs
+ {
+ public GroupHeaderEventArgs (BaseGroupedRow groupHeader)
+ {
+ GroupHeader = groupHeader;
+ }
+
+ public BaseGroupedRow GroupHeader {get; private set;}
+
+ }
+
+
+ public class RowRenderEventArgs : EventArgs
+ {
+ public RowRenderEventArgs (BaseRowItem row)
+ {
+ Row = row;
+ }
+
+ BaseRowItem Row {get;set;}
+ }
+
+
+
public class SectionRenderEventArgs:SectionEventArgs{
- private int pageNumber;
- private int rowNumber;
- private BaseSection currentSection;
+
public SectionRenderEventArgs(BaseSection section,
int pageNumber,int rowNumber,
BaseSection currentSection):base(section){
- this.pageNumber = pageNumber;
- this.currentSection = currentSection;
- this.rowNumber = rowNumber;
+ this.PageNumber = pageNumber;
+ this.CurrentSection = currentSection;
+ this.RowNumber = rowNumber;
}
- public int PageNumber {
- get {
- return pageNumber;
- }
- }
+ public int PageNumber {get; private set;}
- public int RowNumber {
- get {
- return rowNumber;
- }
- }
+ public int RowNumber {get; private set;}
- public BaseSection CurrentSection {
- get {
- return currentSection;
- }
- }
+ public BaseSection CurrentSection {get; private set;}
+
}
}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
index 2f6ccc2be3..4035720337 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
@@ -22,6 +22,8 @@ namespace ICSharpCode.Reports.Core.Exporter
public event EventHandler PageCreated;
public event EventHandler SectionRendering;
+ public event EventHandler GroupHeaderRendering;
+ public event EventHandler RowRendering;
#region Constructor
@@ -220,6 +222,7 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Event's
+
protected void FireSectionRenderEvent (BaseSection section,int currentRow)
{
SectionRenderEventArgs ea =
@@ -232,7 +235,17 @@ namespace ICSharpCode.Reports.Core.Exporter
}
+ protected void FireGroupHeaderEvent (GroupHeaderEventArgs ghea)
+ {
+ EventHelper.Raise(GroupHeaderRendering,this,ghea);
+
+ }
+ protected void FireRowRenderEvent (RowRenderEventArgs rrea)
+ {
+ EventHelper.Raise(RowRendering,this,rrea);
+ }
+
protected void FirePageCreated(ExporterPage page)
{
EventHelper.Raise(PageCreated,this,
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
index 864c7c2a39..545828d403 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
@@ -32,8 +32,8 @@ namespace ICSharpCode.Reports.Core.Exporter
public event EventHandler PageFull;
public event EventHandler SectionRendering;
-
-
+ public event EventHandler GroupHeaderRendering;
+ public event EventHandler RowRendering;
public BaseConverter(IDataNavigator dataNavigator,ExporterPage singlePage,
ILayouter layouter)
@@ -74,6 +74,24 @@ namespace ICSharpCode.Reports.Core.Exporter
#endregion
+ protected void FireRowRendering (ISimpleContainer detailRow)
+ {
+ BaseRowItem row = detailRow as BaseRowItem;
+ if (row == null) {
+ throw new ArgumentException("row");
+ }
+ RowRenderEventArgs rrea = new RowRenderEventArgs(row);
+ EventHelper.Raise(RowRendering,this,rrea);
+ }
+
+
+ protected void FireGroupHeaderRendering (BaseGroupedRow groupHeader)
+ {
+ GroupHeaderEventArgs ghea = new GroupHeaderEventArgs(groupHeader);
+ EventHelper.Raise(GroupHeaderRendering,this,ghea);
+ }
+
+
protected void FireSectionRendering (BaseSection section)
{
@@ -113,6 +131,7 @@ namespace ICSharpCode.Reports.Core.Exporter
protected Point ConvertGroupChilds(ExporterCollection mylist, BaseSection section, ISimpleContainer simpleContainer, int defaultLeftPos, Point currentPosition)
{
PrepareContainerForConverting(section,simpleContainer);
+ FireRowRendering(simpleContainer);
Point curPos = BaseConverter.BaseConvert(mylist,simpleContainer,defaultLeftPos,currentPosition);
AfterConverting (section,mylist);
return curPos;
@@ -155,6 +174,7 @@ namespace ICSharpCode.Reports.Core.Exporter
public Point CurrentPosition {get;set;}
#endregion
+
public Rectangle ParentRectangle {
get { return parentRectangle; }
}
@@ -202,9 +222,7 @@ namespace ICSharpCode.Reports.Core.Exporter
protected void PrepareContainerForConverting(BaseSection section,ISimpleContainer simpleContainer)
{
- if (section != null) {
- FireSectionRendering(section);
- }
+ FireSectionRendering(section);
LayoutRow(simpleContainer);
}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
index a09fb33aec..20efb8041e 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
@@ -18,6 +18,8 @@ namespace ICSharpCode.Reports.Core.Exporter
private BaseReportItem parent;
+
+
public GroupedRowConverter(IDataNavigator dataNavigator,
ExporterPage singlePage, ILayouter layouter):base(dataNavigator,singlePage,layouter)
{
@@ -102,13 +104,10 @@ namespace ICSharpCode.Reports.Core.Exporter
section.Items[0].Size = groupSize;
section.Items[1].Size = childSize;
-
childNavigator.Fill(simpleContainer.Items);
-// int p = base.CurrentPosition.Y;
base.CurrentPosition = ConvertGroupChilds (exporterCollection,section,
simpleContainer,defaultLeftPos,base.CurrentPosition);
-// Console.WriteLine (" childs delta {0} - container {1}",base.CurrentPosition.Y - p,simpleContainer.Size);
pageBreakRect = PrintHelper.CalculatePageBreakRectangle((BaseReportItem)section.Items[1],base.CurrentPosition);
@@ -134,11 +133,9 @@ namespace ICSharpCode.Reports.Core.Exporter
// No Grouping at all, the first item in section.items is the DetailRow
Size containerSize = section.Items[0].Size;
-// int p = base.CurrentPosition.Y;
-
+ base.FireRowRendering(simpleContainer);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer,defaultLeftPos,base.CurrentPosition);
-// Console.WriteLine ("delta {0} - container {1}",base.CurrentPosition.Y - p,simpleContainer.Size);
section.Size = base.RestoreSectionSize;
section.Items[0].Size = containerSize;
}
@@ -193,6 +190,7 @@ namespace ICSharpCode.Reports.Core.Exporter
AfterConverting (section,list);
retVal = new Point (leftPos,offset.Y + groupCollection[0].Size.Height + 20 + (3 *GlobalValues.GapBetweenContainer));
} else {
+ base.FireGroupHeaderRendering(groupedRows[0]);
rowSize = groupedRows[0].Size;
retVal = ConvertStandardRow(exportList,section,groupedRows[0],leftPos,offset);
groupedRows[0].Size = rowSize;
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs
index 912a7b7a93..80d9340b80 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs
@@ -104,7 +104,7 @@ namespace ICSharpCode.Reports.Core.Exporter
containerSize = simpleContainer.Size;
childNavigator.Fill(simpleContainer.Items);
-// int p = base.CurrentPosition.Y;
+
base.CurrentPosition = ConvertGroupChilds (exporterCollection,
section,
simpleContainer,defaultLeftPos,base.CurrentPosition);
@@ -158,9 +158,11 @@ namespace ICSharpCode.Reports.Core.Exporter
if (PrintHelper.IsPageFull(pageBreakRect,base.SectionBounds))
{
base.CurrentPosition = ForcePageBreak(exporterCollection,section);
+
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,headerRow,defaultLeftPos,base.CurrentPosition);
}
// int p = base.CurrentPosition.Y;
+ base.FireRowRendering(simpleContainer);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer,defaultLeftPos,base.CurrentPosition);
// Console.WriteLine ("delta {0} - container {1}",base.CurrentPosition.Y - p,simpleContainer.Size);
@@ -211,6 +213,7 @@ namespace ICSharpCode.Reports.Core.Exporter
} else {
rowSize = groupedRow[0].Size;
+ base.FireGroupHeaderRendering(groupedRow[0]);
retVal = ConvertStandardRow(exportList,section,groupedRow[0],leftPos,offset);
groupedRow[0].Size = rowSize;
}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs
index 9ba022bca7..2e9c872087 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs
@@ -116,6 +116,9 @@ namespace ICSharpCode.Reports.Core.Exporter
baseConverter.SectionRendering += OnSectionRendering;
+ baseConverter.GroupHeaderRendering += OnGroupHeaderRendering;
+ baseConverter.RowRendering += OnRowRendering;
+
baseConverter.Graphics = base.Graphics;
baseConverter.PageFull += new EventHandler(OnPageFull);
@@ -131,10 +134,23 @@ namespace ICSharpCode.Reports.Core.Exporter
void OnSectionRendering (object sender,SectionRenderEventArgs e)
{
+// Console.WriteLine("Datapagebuilder : OnSectionRendering");
base.FireSectionRenderEvent(e.Section,e.RowNumber);
}
+
+
+ void OnGroupHeaderRendering (object sender, GroupHeaderEventArgs ghea)
+ {
-
+// Console.WriteLine("Datapagebuilder : OnGroupHeaderRendering");
+ base.FireGroupHeaderEvent(ghea);
+ }
+
+ void OnRowRendering (object sender,RowRenderEventArgs rrea)
+ {
+// Console.WriteLine("Datapagebuilder : OnRowRendering");
+ base.FireRowRenderEvent(rrea);
+ }
#endregion
private void WritePages ()
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/IReportCreator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/IReportCreator.cs
index 3c1a68621f..1a00a11f2e 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/IReportCreator.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/IReportCreator.cs
@@ -15,5 +15,7 @@ namespace ICSharpCode.Reports.Core
PagesCollection Pages{get;}
event EventHandler PageCreated;
event EventHandler SectionRendering;
+ event EventHandler GroupHeaderRendering;
+ event EventHandler RowRendering;
}
}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IItemConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IItemConverter.cs
index f0b83acd81..02ec09e0c2 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IItemConverter.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IItemConverter.cs
@@ -18,6 +18,7 @@ namespace ICSharpCode.Reports.Core.Interfaces
{
event EventHandler PageFull;
event EventHandler SectionRendering;
+
SectionBounds SectionBounds {get;}
IDataNavigator DataNavigator {get;}
Rectangle ParentRectangle {get;}
@@ -36,5 +37,7 @@ namespace ICSharpCode.Reports.Core.Interfaces
{
ExporterCollection Convert (BaseReportItem parent,BaseReportItem item);
Point CurrentPosition {get;set;}
+ event EventHandler GroupHeaderRendering;
+ event EventHandler RowRendering;
}
}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs
index 950e9b8819..e807ead4cb 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs
@@ -166,6 +166,8 @@ namespace ICSharpCode.Reports.Core.ReportViewer
ILayouter layouter = new Layouter();
IReportCreator reportCreator = DataPageBuilder.CreateInstance(reportModel,data,layouter);
reportCreator.SectionRendering += new EventHandler(PushPrinting);
+ reportCreator.GroupHeaderRendering += new EventHandler(GroupHeaderRendering);
+ reportCreator.RowRendering += new EventHandler(RowRendering);
reportCreator.PageCreated += OnPageCreated;
reportCreator.BuildExportList();
ShowCompleted();
@@ -192,7 +194,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer
private void PushPrinting (object sender,SectionRenderEventArgs e)
{
string sectionName = e.Section.Name;
-
+ /*
if (sectionName == ReportSectionNames.ReportHeader) {
Console.WriteLine("PushPrinting :" + ReportSectionNames.ReportHeader);
}
@@ -216,6 +218,22 @@ namespace ICSharpCode.Reports.Core.ReportViewer
else{
throw new WrongSectionException(sectionName);
}
+ */
+ }
+
+
+ private void GroupHeaderRendering (object sender, GroupHeaderEventArgs ghea)
+ {
+ Console.WriteLine();
+ Console.WriteLine("ReportViewer - GroupHeaderRendering :");
+// BaseGroupedRow v = ghea.GroupHeader;
+// v.BackColor = System.Drawing.Color.Red;
+
+ }
+
+ private void RowRendering (object sender,RowRenderEventArgs rrea)
+ {
+ Console.WriteLine("ReportViewer - RowRendering :");
}
#endregion