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

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

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

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

@ -27,6 +27,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -27,6 +27,7 @@ namespace ICSharpCode.Reports.Core.Exporter
private readonly object pageLock = new object();
private IExportItemsConverter exportItemsConverter;
private ILayouter layouter;
public event EventHandler<PageCreatedEventArgs> PageCreated;
public event EventHandler<SectionRenderEventArgs> SectionRendering;
@ -92,7 +93,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -92,7 +93,7 @@ namespace ICSharpCode.Reports.Core.Exporter
protected void ConvertSection (BaseSection section,int currentRow)
{
this.RenderEvent (section ,currentRow);
this.FireSectionRenderEvent (section ,currentRow);
this.Convert(section);
}
@ -218,18 +219,15 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -218,18 +219,15 @@ namespace ICSharpCode.Reports.Core.Exporter
#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,
pages.Count,
currentRow,
(GlobalEnums.ReportSection)GlobalEnums.ReportSection.Parse(typeof(GlobalEnums.ReportSection),section.Name));
this.SectionRendering (this,ea);
}
SectionRenderEventArgs ea =
new SectionRenderEventArgs(section,
pages.Count,
currentRow,
(GlobalEnums.ReportSection)GlobalEnums.ReportSection.Parse(typeof(GlobalEnums.ReportSection),section.Name));
EventHelper.Raise<SectionRenderEventArgs>(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 @@ -20,7 +20,6 @@ namespace ICSharpCode.Reports.Core.Exporter
public class BaseConverter:IBaseConverter
{
public event EventHandler <NewPageEventArgs> PageFull;
private BaseReportItem parentItem;
private IDataNavigator dataNavigator;
@ -30,6 +29,9 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -30,6 +29,9 @@ namespace ICSharpCode.Reports.Core.Exporter
private IExportItemsConverter exportItemsConverter;
private ILayouter layouter;
public event EventHandler <NewPageEventArgs> PageFull;
public event EventHandler<SectionRenderEventArgs> SectionRendering;
public BaseConverter(IDataNavigator dataNavigator,ExporterPage singlePage,IExportItemsConverter exportItemsConverter,ILayouter layouter)
{
@ -68,7 +70,17 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -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,
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 @@ -40,6 +40,7 @@ namespace ICSharpCode.Reports.Core.Exporter
throw new ArgumentNullException("item");
}
IContainerItem row = item as IContainerItem;
PrintHelper.AdjustParent(parent,row.Items);
if (PrintHelper.IsTextOnlyRow(item as BaseRowItem)) {
return this.ConvertTextOnlyRow(parent, item);
@ -62,9 +63,9 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -62,9 +63,9 @@ namespace ICSharpCode.Reports.Core.Exporter
//
section.Size = this.SectionBounds.DetailSectionRectangle.Size;
base.FireSectionRendering(section);
PrintHelper.SetLayoutForRow(base.Graphics,base.Layouter,row);
mylist.AddRange(this.ConvertTextOnlyRow(parent,item));
section.SectionOffset += section.Size.Height + 2 * base.SinglePage.SectionBounds.Gap;
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 @@ -126,6 +126,7 @@ namespace ICSharpCode.Reports.Core.Exporter
IBaseConverter baseConverter = ConverterFactory.CreateConverter(item,dataNavigator,
this.SinglePage,this.ExportItemsConverter,
base.Layouter);
baseConverter.SectionRendering += OnSectionRendering;
baseConverter.Graphics = base.Graphics;
baseConverter.PageFull += new EventHandler<NewPageEventArgs>(OnPageFull);
convertedList = baseConverter.Convert(section,item);
@ -134,6 +135,12 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -134,6 +135,12 @@ namespace ICSharpCode.Reports.Core.Exporter
}
}
void OnSectionRendering (object sender,SectionRenderEventArgs e)
{
base.FireSectionRenderEvent(e.Section,e.RowNumber);
}
#endregion

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

@ -20,6 +20,7 @@ namespace ICSharpCode.Reports.Core.Interfaces @@ -20,6 +20,7 @@ namespace ICSharpCode.Reports.Core.Interfaces
{
ExporterCollection Convert (BaseReportItem parent,BaseReportItem item);
event EventHandler <NewPageEventArgs> PageFull;
event EventHandler<SectionRenderEventArgs> SectionRendering;
SectionBounds SectionBounds {get;}
IDataNavigator DataNavigator {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 @@ -26,6 +26,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer
public partial class PreviewControl
{
public event EventHandler <EventArgs> PreviewLayoutChanged;
public event EventHandler<SectionRenderEventArgs> SectionRendering;
private float zoom;
@ -259,9 +260,11 @@ namespace ICSharpCode.Reports.Core.ReportViewer @@ -259,9 +260,11 @@ namespace ICSharpCode.Reports.Core.ReportViewer
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()
{
if (this.InvokeRequired) {

Loading…
Cancel
Save