Browse Source

Event's for GroupHeader (GroupHeaderRendering) and DetailRows (RowRendering)

pull/14/head
peterforstmeier 15 years ago
parent
commit
4931fee9b4
  1. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Events/PrintEventArgs.cs
  2. 54
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Events/SectionRenderEventArgs.cs
  3. 13
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
  4. 28
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
  5. 10
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
  6. 5
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs
  7. 18
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs
  8. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/IReportCreator.cs
  9. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IItemConverter.cs
  10. 20
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Events/PrintEventArgs.cs

@ -44,7 +44,7 @@ namespace ICSharpCode.Reports.Core { @@ -44,7 +44,7 @@ namespace ICSharpCode.Reports.Core {
}
/// <summary>
/// This Event is fiered after an Item is printed
/// This Event is fired after an Item is printed
/// </summary>
public class AfterPrintEventArgs : System.EventArgs {
PointF locationAfterPrint;

54
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Events/SectionRenderEventArgs.cs

@ -8,38 +8,50 @@ namespace ICSharpCode.Reports.Core { @@ -8,38 +8,50 @@ namespace ICSharpCode.Reports.Core {
/// Description of SectionRenderEventArgs.
/// </summary>
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;}
}
}

13
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs

@ -22,6 +22,8 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -22,6 +22,8 @@ namespace ICSharpCode.Reports.Core.Exporter
public event EventHandler<PageCreatedEventArgs> PageCreated;
public event EventHandler<SectionRenderEventArgs> SectionRendering;
public event EventHandler<GroupHeaderEventArgs> GroupHeaderRendering;
public event EventHandler<RowRenderEventArgs> RowRendering;
#region Constructor
@ -220,6 +222,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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 @@ -232,7 +235,17 @@ namespace ICSharpCode.Reports.Core.Exporter
}
protected void FireGroupHeaderEvent (GroupHeaderEventArgs ghea)
{
EventHelper.Raise<GroupHeaderEventArgs>(GroupHeaderRendering,this,ghea);
}
protected void FireRowRenderEvent (RowRenderEventArgs rrea)
{
EventHelper.Raise<RowRenderEventArgs>(RowRendering,this,rrea);
}
protected void FirePageCreated(ExporterPage page)
{
EventHelper.Raise<PageCreatedEventArgs>(PageCreated,this,

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

@ -32,8 +32,8 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -32,8 +32,8 @@ namespace ICSharpCode.Reports.Core.Exporter
public event EventHandler <NewPageEventArgs> PageFull;
public event EventHandler<SectionRenderEventArgs> SectionRendering;
public event EventHandler<GroupHeaderEventArgs> GroupHeaderRendering;
public event EventHandler<RowRenderEventArgs> RowRendering;
public BaseConverter(IDataNavigator dataNavigator,ExporterPage singlePage,
ILayouter layouter)
@ -74,6 +74,24 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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<RowRenderEventArgs>(RowRendering,this,rrea);
}
protected void FireGroupHeaderRendering (BaseGroupedRow groupHeader)
{
GroupHeaderEventArgs ghea = new GroupHeaderEventArgs(groupHeader);
EventHelper.Raise<GroupHeaderEventArgs>(GroupHeaderRendering,this,ghea);
}
protected void FireSectionRendering (BaseSection section)
{
@ -113,6 +131,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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 @@ -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 @@ -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);
}

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

@ -18,6 +18,8 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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 @@ -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 @@ -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 @@ -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;

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

@ -104,7 +104,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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 @@ -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 @@ -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;
}

18
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs

@ -116,6 +116,9 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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<NewPageEventArgs>(OnPageFull);
@ -131,10 +134,23 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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 ()

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/IReportCreator.cs

@ -15,5 +15,7 @@ namespace ICSharpCode.Reports.Core @@ -15,5 +15,7 @@ namespace ICSharpCode.Reports.Core
PagesCollection Pages{get;}
event EventHandler<PageCreatedEventArgs> PageCreated;
event EventHandler<SectionRenderEventArgs> SectionRendering;
event EventHandler<GroupHeaderEventArgs> GroupHeaderRendering;
event EventHandler<RowRenderEventArgs> RowRendering;
}
}

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IItemConverter.cs

@ -18,6 +18,7 @@ namespace ICSharpCode.Reports.Core.Interfaces @@ -18,6 +18,7 @@ namespace ICSharpCode.Reports.Core.Interfaces
{
event EventHandler <NewPageEventArgs> PageFull;
event EventHandler<SectionRenderEventArgs> SectionRendering;
SectionBounds SectionBounds {get;}
IDataNavigator DataNavigator {get;}
Rectangle ParentRectangle {get;}
@ -36,5 +37,7 @@ namespace ICSharpCode.Reports.Core.Interfaces @@ -36,5 +37,7 @@ namespace ICSharpCode.Reports.Core.Interfaces
{
ExporterCollection Convert (BaseReportItem parent,BaseReportItem item);
Point CurrentPosition {get;set;}
event EventHandler<GroupHeaderEventArgs> GroupHeaderRendering;
event EventHandler<RowRenderEventArgs> RowRendering;
}
}

20
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs

@ -166,6 +166,8 @@ namespace ICSharpCode.Reports.Core.ReportViewer @@ -166,6 +166,8 @@ namespace ICSharpCode.Reports.Core.ReportViewer
ILayouter layouter = new Layouter();
IReportCreator reportCreator = DataPageBuilder.CreateInstance(reportModel,data,layouter);
reportCreator.SectionRendering += new EventHandler<SectionRenderEventArgs>(PushPrinting);
reportCreator.GroupHeaderRendering += new EventHandler<GroupHeaderEventArgs>(GroupHeaderRendering);
reportCreator.RowRendering += new EventHandler<RowRenderEventArgs>(RowRendering);
reportCreator.PageCreated += OnPageCreated;
reportCreator.BuildExportList();
ShowCompleted();
@ -192,7 +194,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer @@ -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 @@ -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

Loading…
Cancel
Save