Browse Source

SectionRenderEvent in ReportViewer

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@5387 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Peter Forstmeier 17 years ago
parent
commit
bf886d3689
  1. 26
      samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs
  2. 3
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs
  3. 22
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
  4. 14
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
  5. 5
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/Converters/RowConverter.cs
  6. 7
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs
  7. 1
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Interfaces/IItemConverter.cs
  8. 5
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs

26
samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs

@ -111,9 +111,7 @@ namespace SharpReportSamples
private void RunContributors (string fileName) private void RunContributors (string fileName)
{ {
ReportModel model = ReportEngine.LoadReportModel(fileName); ReportModel model = ReportEngine.LoadReportModel(fileName);
ReportEngine engine = new ReportEngine();
engine.SectionRendering += new EventHandler<SectionRenderEventArgs>(PushPrinting);
// Both variable declarations are valid // Both variable declarations are valid
ContributorCollection list = ContributorsReportData.CreateContributorsList(); ContributorCollection list = ContributorsReportData.CreateContributorsList();
@ -122,10 +120,15 @@ namespace SharpReportSamples
// List<Contributor> list = ContributorsReportData.CreateContributorsList(); // List<Contributor> list = ContributorsReportData.CreateContributorsList();
// IDataManager dm = DataManager.CreateInstance(list,model.ReportSettings); // IDataManager dm = DataManager.CreateInstance(list,model.ReportSettings);
this.previewControl1.SectionRendering += new EventHandler<SectionRenderEventArgs>(PushPrinting);
this.previewControl1.SetupAsynchron(model,dm); this.previewControl1.SetupAsynchron(model,dm);
} }
private void PushPrinting (object sender,SectionRenderEventArgs e) {
private void PushPrinting (object sender,SectionRenderEventArgs e)
{
switch (e.CurrentSection) { switch (e.CurrentSection) {
case GlobalEnums.ReportSection.ReportHeader: case GlobalEnums.ReportSection.ReportHeader:
@ -136,15 +139,14 @@ namespace SharpReportSamples
case GlobalEnums.ReportSection.ReportDetail: case GlobalEnums.ReportSection.ReportDetail:
BaseRowItem ri = e.Section.Items[0] as BaseRowItem; BaseRowItem ri = e.Section.Items[0] as BaseRowItem;
// if (ri != null) { if (ri != null) {
// BaseDataItem r = (BaseDataItem)ri.Items.Find("unbound1"); BaseDataItem r = (BaseDataItem)ri.Items.Find("unbound3");
// if (r != null) { if (r != null) {
// System.Console.WriteLine("ubound1"); r.DBValue = "xxxxxxx";
// }
// } }
// }
break;
break;
case GlobalEnums.ReportSection.ReportPageFooter: case GlobalEnums.ReportSection.ReportPageFooter:
break; break;

3
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs

@ -117,8 +117,7 @@ namespace ICSharpCode.Reports.Core
} }
} }
#region Debug Code #region Debug Code
///<summary> ///<summary>

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

@ -27,6 +27,7 @@ namespace ICSharpCode.Reports.Core.Exporter
private readonly object pageLock = new object(); private readonly object pageLock = new object();
private IExportItemsConverter exportItemsConverter; private IExportItemsConverter exportItemsConverter;
private ILayouter layouter; private ILayouter layouter;
public event EventHandler<PageCreatedEventArgs> PageCreated; public event EventHandler<PageCreatedEventArgs> PageCreated;
public event EventHandler<SectionRenderEventArgs> SectionRendering; public event EventHandler<SectionRenderEventArgs> SectionRendering;
@ -92,7 +93,7 @@ namespace ICSharpCode.Reports.Core.Exporter
protected void ConvertSection (BaseSection section,int currentRow) protected void ConvertSection (BaseSection section,int currentRow)
{ {
this.RenderEvent (section ,currentRow); this.FireSectionRenderEvent (section ,currentRow);
this.Convert(section); this.Convert(section);
} }
@ -218,18 +219,15 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Event's #region Event's
protected void RenderEvent (BaseSection section,int currentRow) protected void FireSectionRenderEvent (BaseSection section,int currentRow)
{ {
if (this.SectionRendering != null) { SectionRenderEventArgs ea =
new SectionRenderEventArgs(section,
SectionRenderEventArgs ea = pages.Count,
new SectionRenderEventArgs(section, currentRow,
pages.Count, (GlobalEnums.ReportSection)GlobalEnums.ReportSection.Parse(typeof(GlobalEnums.ReportSection),section.Name));
currentRow,
(GlobalEnums.ReportSection)GlobalEnums.ReportSection.Parse(typeof(GlobalEnums.ReportSection),section.Name)); EventHelper.Raise<SectionRenderEventArgs>(SectionRendering,this,ea);
this.SectionRendering (this,ea);
}
} }

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

@ -20,7 +20,6 @@ namespace ICSharpCode.Reports.Core.Exporter
public class BaseConverter:IBaseConverter public class BaseConverter:IBaseConverter
{ {
public event EventHandler <NewPageEventArgs> PageFull;
private BaseReportItem parentItem; private BaseReportItem parentItem;
private IDataNavigator dataNavigator; private IDataNavigator dataNavigator;
@ -30,6 +29,9 @@ namespace ICSharpCode.Reports.Core.Exporter
private IExportItemsConverter exportItemsConverter; private IExportItemsConverter exportItemsConverter;
private ILayouter layouter; private ILayouter layouter;
public event EventHandler <NewPageEventArgs> PageFull;
public event EventHandler<SectionRenderEventArgs> SectionRendering;
public BaseConverter(IDataNavigator dataNavigator,ExporterPage singlePage,IExportItemsConverter exportItemsConverter,ILayouter layouter) public BaseConverter(IDataNavigator dataNavigator,ExporterPage singlePage,IExportItemsConverter exportItemsConverter,ILayouter layouter)
{ {
@ -68,7 +70,17 @@ namespace ICSharpCode.Reports.Core.Exporter
} }
protected void FireSectionRendering (BaseSection section)
{
SectionRenderEventArgs srea = new SectionRenderEventArgs(section,
this.SinglePage.PageNumber,
this.dataNavigator.CurrentRow,
(GlobalEnums.ReportSection)GlobalEnums.ReportSection.Parse(typeof(GlobalEnums.ReportSection),section.Name));
EventHelper.Raise<SectionRenderEventArgs>(SectionRendering,this,srea);
}
protected ExporterCollection ConvertItems (BaseReportItem parent, protected ExporterCollection ConvertItems (BaseReportItem parent,
IContainerItem row,Point offset) IContainerItem row,Point offset)

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

@ -40,6 +40,7 @@ namespace ICSharpCode.Reports.Core.Exporter
throw new ArgumentNullException("item"); throw new ArgumentNullException("item");
} }
IContainerItem row = item as IContainerItem; IContainerItem row = item as IContainerItem;
PrintHelper.AdjustParent(parent,row.Items); PrintHelper.AdjustParent(parent,row.Items);
if (PrintHelper.IsTextOnlyRow(item as BaseRowItem)) { if (PrintHelper.IsTextOnlyRow(item as BaseRowItem)) {
return this.ConvertTextOnlyRow(parent, item); return this.ConvertTextOnlyRow(parent, item);
@ -62,9 +63,9 @@ namespace ICSharpCode.Reports.Core.Exporter
// //
section.Size = this.SectionBounds.DetailSectionRectangle.Size; section.Size = this.SectionBounds.DetailSectionRectangle.Size;
base.FireSectionRendering(section);
PrintHelper.SetLayoutForRow(base.Graphics,base.Layouter,row); PrintHelper.SetLayoutForRow(base.Graphics,base.Layouter,row);
mylist.AddRange(this.ConvertTextOnlyRow(parent,item)); mylist.AddRange(this.ConvertTextOnlyRow(parent,item));
section.SectionOffset += section.Size.Height + 2 * base.SinglePage.SectionBounds.Gap; section.SectionOffset += section.Size.Height + 2 * base.SinglePage.SectionBounds.Gap;
Rectangle r = new Rectangle(section.Location.X,section.SectionOffset, Rectangle r = new Rectangle(section.Location.X,section.SectionOffset,

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

@ -126,6 +126,7 @@ namespace ICSharpCode.Reports.Core.Exporter
IBaseConverter baseConverter = ConverterFactory.CreateConverter(item,dataNavigator, IBaseConverter baseConverter = ConverterFactory.CreateConverter(item,dataNavigator,
this.SinglePage,this.ExportItemsConverter, this.SinglePage,this.ExportItemsConverter,
base.Layouter); base.Layouter);
baseConverter.SectionRendering += OnSectionRendering;
baseConverter.Graphics = base.Graphics; baseConverter.Graphics = base.Graphics;
baseConverter.PageFull += new EventHandler<NewPageEventArgs>(OnPageFull); baseConverter.PageFull += new EventHandler<NewPageEventArgs>(OnPageFull);
convertedList = baseConverter.Convert(section,item); convertedList = baseConverter.Convert(section,item);
@ -134,6 +135,12 @@ namespace ICSharpCode.Reports.Core.Exporter
} }
} }
void OnSectionRendering (object sender,SectionRenderEventArgs e)
{
base.FireSectionRenderEvent(e.Section,e.RowNumber);
}
#endregion #endregion

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

@ -20,6 +20,7 @@ namespace ICSharpCode.Reports.Core.Interfaces
{ {
ExporterCollection Convert (BaseReportItem parent,BaseReportItem item); ExporterCollection Convert (BaseReportItem parent,BaseReportItem item);
event EventHandler <NewPageEventArgs> PageFull; event EventHandler <NewPageEventArgs> PageFull;
event EventHandler<SectionRenderEventArgs> SectionRendering;
SectionBounds SectionBounds {get;} SectionBounds SectionBounds {get;}
IDataNavigator DataNavigator {get;} IDataNavigator DataNavigator {get;}
Rectangle ParentRectangle {get;} Rectangle ParentRectangle {get;}

5
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs

@ -26,6 +26,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer
public partial class PreviewControl public partial class PreviewControl
{ {
public event EventHandler <EventArgs> PreviewLayoutChanged; public event EventHandler <EventArgs> PreviewLayoutChanged;
public event EventHandler<SectionRenderEventArgs> SectionRendering;
private float zoom; private float zoom;
@ -259,9 +260,11 @@ namespace ICSharpCode.Reports.Core.ReportViewer
private void PushPrinting (object sender, SectionRenderEventArgs e ) { private void PushPrinting (object sender, SectionRenderEventArgs e ) {
Console.WriteLine ("ReportViewer - SectionRenderEventargs from {0} with {1} items ",e.Section.Name,e.Section.Items.Count); Console.WriteLine ("ReportViewer - SectionRenderEventargs from <{0}> with {1} items ",e.Section.Name,e.Section.Items.Count);
EventHelper.Raise<SectionRenderEventArgs>(SectionRendering,this,e);
} }
void ShowCompleted() void ShowCompleted()
{ {
if (this.InvokeRequired) { if (this.InvokeRequired) {

Loading…
Cancel
Save