Browse Source

Zooming in ReportViewer, ReportViewer.SetupAsyncron is now Obsolete, use RunReport

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@5473 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Peter Forstmeier 16 years ago
parent
commit
d41568da4b
  1. 19
      samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs
  2. 6
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs
  3. 502
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs

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

@ -115,9 +115,11 @@ namespace SharpReportSamples
} }
this.previewControl1.PreviewLayoutChanged += delegate (object sender, EventArgs e) this.previewControl1.PreviewLayoutChanged += delegate (object sender, EventArgs e)
{ {
System.Console.WriteLine("---------");
System.Console.WriteLine("from event");
this.RunStandardReport(reportName); this.RunStandardReport(reportName);
}; };
this.previewControl1.SetupAsynchron(reportName,parameters); this.previewControl1.RunReport(reportName,parameters);
} }
} }
@ -156,14 +158,21 @@ namespace SharpReportSamples
// Both variable declarations are valid // Both variable declarations are valid
ContributorCollection list = ContributorsReportData.CreateContributorsList(); ContributorCollection contributorCollection = ContributorsReportData.CreateContributorsList();
IDataManager dm = DataManager.CreateInstance(list,model.ReportSettings); IDataManager dataManager = DataManager.CreateInstance(contributorCollection,model.ReportSettings);
// 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.PreviewLayoutChanged += delegate (object sender, EventArgs e)
{
System.Console.WriteLine("---------");
System.Console.WriteLine("from event");
this.RunContributors(fileName);
};
this.previewControl1.RunReport(model,dataManager);
} }

6
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs

@ -66,7 +66,7 @@ namespace ICSharpCode.Reports.Addin.Commands
public override void Run() public override void Run()
{ {
base.Run(); base.Run();
base.ReportViewer.SetupAsynchron (base.Model,(ReportParameters)null); base.ReportViewer.RunReport (base.Model,(ReportParameters)null);
} }
} }
@ -82,7 +82,7 @@ namespace ICSharpCode.Reports.Addin.Commands
{ {
base.Run(); base.Run();
ICSharpCode.SharpDevelop.StatusBarService.SetMessage("Connect..."); ICSharpCode.SharpDevelop.StatusBarService.SetMessage("Connect...");
base.ReportViewer.SetupAsynchron(base.Model,(ReportParameters)null); base.ReportViewer.RunReport(base.Model,(ReportParameters)null);
} }
} }
@ -100,7 +100,7 @@ namespace ICSharpCode.Reports.Addin.Commands
cmd.Run(); cmd.Run();
System.Data.DataSet ds = cmd.DataSet; System.Data.DataSet ds = cmd.DataSet;
ICSharpCode.SharpDevelop.StatusBarService.SetMessage("Connect..."); ICSharpCode.SharpDevelop.StatusBarService.SetMessage("Connect...");
base.ReportViewer.SetupAsynchron(base.Model,ds.Tables[0],null); base.ReportViewer.RunReport(base.Model,ds.Tables[0],null);
} }
} }

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

@ -43,9 +43,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer
#region Constructor #region Constructor
private System.ComponentModel.BackgroundWorker bgw;
public PreviewControl(){ public PreviewControl(){
// //
// The InitializeComponent() call is required for Windows Forms designer support. // The InitializeComponent() call is required for Windows Forms designer support.
@ -72,45 +69,86 @@ namespace ICSharpCode.Reports.Core.ReportViewer
#endregion #endregion
public void RunReport (string fileName,ReportParameters parameters)
{
if (String.IsNullOrEmpty(fileName)) {
throw new ArgumentNullException("fileName");
}
ReportModel m = ReportEngine.LoadReportModel(fileName);
this.SetupAsynchron(m,parameters);
}
#region Asyncron use of PageBuilder [Obsolete("Use RunReport (string fileName,ReportParameters parameters)" )]
public void SetupAsynchron (string fileName,ReportParameters parameters) public void SetupAsynchron (string fileName,ReportParameters parameters)
{ {
if (String.IsNullOrEmpty(fileName)) { if (String.IsNullOrEmpty(fileName)) {
throw new ArgumentNullException("fileName"); throw new ArgumentNullException("fileName");
} }
ReportModel m = ReportEngine.LoadReportModel(fileName); ReportModel m = ReportEngine.LoadReportModel(fileName);
this.SetupAsynchron(m,parameters); // this.SetupAsynchron(m,parameters);
RunReport(m,parameters);
} }
/// <summary>
/// For internal use only public void RunReport (ReportModel reportModel,ReportParameters parameters)
/// </summary> {
/// <param name="reportModel"></param> if (reportModel == null) {
throw new ArgumentNullException("reportModel");
}
System.Console.WriteLine("RunReport");
this.SetupViewer(reportModel);
if (reportModel.DataModel == GlobalEnums.PushPullModel.FormSheet) {
RunFormSheet(reportModel);
} else {
ReportEngine.CheckForParameters(reportModel,parameters);
this.dataManager = DataManagerFactory.CreateDataManager(reportModel,parameters);
RunDataReport (reportModel,dataManager);
}
}
[Obsolete("Use RunReport (reportModel,parameters)")]
public void SetupAsynchron (ReportModel reportModel,ReportParameters parameters) public void SetupAsynchron (ReportModel reportModel,ReportParameters parameters)
{ {
RunReport (reportModel,parameters);
/*
if (reportModel == null) { if (reportModel == null) {
throw new ArgumentNullException("reportModel"); throw new ArgumentNullException("reportModel");
} }
this.SetupViewer(reportModel); this.SetupViewer(reportModel);
this.SetupWorker();
if (reportModel.DataModel == GlobalEnums.PushPullModel.FormSheet) { if (reportModel.DataModel == GlobalEnums.PushPullModel.FormSheet) {
this.bgw.DoWork += new DoWorkEventHandler(FormSheetWorker); RunFormSheet(reportModel);
} else { } else {
ReportEngine.CheckForParameters(reportModel,parameters); ReportEngine.CheckForParameters(reportModel,parameters);
this.dataManager = DataManagerFactory.CreateDataManager(reportModel,parameters); this.dataManager = DataManagerFactory.CreateDataManager(reportModel,parameters);
this.bgw.DoWork += new DoWorkEventHandler(PushPullWorker); RunDataReport (reportModel,dataManager);
} }
this.bgw.RunWorkerAsync(reportModel); */
} }
#region PushModel - IList
public void RunReport (ReportModel reportModel,DataTable dataTable,ReportParameters parameters)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
}
if (dataTable == null) {
throw new ArgumentNullException("dataTable");
}
RunReport (reportModel,DataManagerFactory.CreateDataManager(reportModel,dataTable));
}
[Obsolete("Use RunReport(reportModel,dataTable,parameters)")]
public void SetupAsynchron (ReportModel reportModel,DataTable dataTable,ReportParameters parameters) public void SetupAsynchron (ReportModel reportModel,DataTable dataTable,ReportParameters parameters)
{ {
RunReport(reportModel,dataTable,parameters);
/*
if (reportModel == null) { if (reportModel == null) {
throw new ArgumentNullException("reportModel"); throw new ArgumentNullException("reportModel");
} }
@ -118,9 +156,11 @@ namespace ICSharpCode.Reports.Core.ReportViewer
throw new ArgumentNullException("dataTable"); throw new ArgumentNullException("dataTable");
} }
SetupAsynchron (reportModel,DataManagerFactory.CreateDataManager(reportModel,dataTable)); SetupAsynchron (reportModel,DataManagerFactory.CreateDataManager(reportModel,dataTable));
*/
} }
public void SetupAsynchron (ReportModel reportModel,IDataManager dataManager)
public void RunReport (ReportModel reportModel,IDataManager dataManager)
{ {
if (reportModel == null) { if (reportModel == null) {
throw new ArgumentNullException("reportModel"); throw new ArgumentNullException("reportModel");
@ -130,141 +170,68 @@ namespace ICSharpCode.Reports.Core.ReportViewer
} }
this.SetupViewer(reportModel); this.SetupViewer(reportModel);
SetupWorker();
this.dataManager = dataManager; this.dataManager = dataManager;
this.bgw.DoWork += new DoWorkEventHandler(PushPullWorker); RunDataReport(reportModel,dataManager);
this.bgw.RunWorkerAsync(reportModel);
} }
#endregion
private void SetupViewer (ReportModel reportModel) [Obsolete("Use RunReport(reportModel,dataManager)")]
public void SetupAsynchron (ReportModel reportModel,IDataManager dataManager)
{ {
this.pages = new PagesCollection(); RunReport(reportModel,dataManager);
this.reportSettings = reportModel.ReportSettings; /*
this.cancelButton.Enabled = true; if (reportModel == null) {
this.AdjustDrawArea(); throw new ArgumentNullException("reportModel");
} }
if (dataManager == null) {
throw new ArgumentNullException("dataManager");
private void SetupWorker ()
{
this.bgw = new BackgroundWorker();
this.bgw.WorkerReportsProgress = true;
this.bgw.WorkerSupportsCancellation = true;
this.bgw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(BackgroundWorker_RunWorkerCompleted);
this.bgw.ProgressChanged += new ProgressChangedEventHandler(BackgroundWorker_ProgressChanged);
} }
this.SetupViewer(reportModel);
#region Worker this.dataManager = dataManager;
RunDataReport(reportModel,dataManager);
private void FormSheetWorker(object sender,DoWorkEventArgs e) */
{
BackgroundWorker worker = sender as BackgroundWorker;
e.Result = RunFormSheet((ReportModel)e.Argument,worker,e);
} }
#region Rendering
private void PushPullWorker(object sender,DoWorkEventArgs e) private void RunFormSheet (ReportModel reportModel)
{ {
BackgroundWorker worker = sender as BackgroundWorker;
e.Result = RunDataReport((ReportModel)e.Argument,this.dataManager,worker,e);
}
#endregion Layouter layouter = new Layouter();
IReportCreator reportCreator = FormPageBuilder.CreateInstance(reportModel,layouter);
reportCreator.PageCreated += OnPageCreated;
#region WorkerEvents reportCreator.BuildExportList();
ShowCompleted ();
private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null) {
throw new ReportException("error in background worker", e.Error);
}
if (this.Pages.Count > 0) {
this.pageNumber = 0;
this.ShowSelectedPage();
}
this.ShowCompleted();
} }
private void BackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) private void RunDataReport (ReportModel reportModel,IDataManager data)
{ {
this.pageNumber = e.ProgressPercentage; ILayouter layouter = new Layouter();
this.ShowSelectedPage(); IReportCreator reportCreator = DataPageBuilder.CreateInstance(reportModel,data,layouter);
reportCreator.SectionRendering += new EventHandler<SectionRenderEventArgs>(PushPrinting);
reportCreator.PageCreated += OnPageCreated;
reportCreator.BuildExportList();
ShowCompleted();
} }
#endregion #endregion
#region Worker
private object RunFormSheet (ReportModel reportModel,BackgroundWorker worker, DoWorkEventArgs e) #region Events from worker
{
if (worker.CancellationPending)
{
e.Cancel = true;
}
else
{
Layouter layouter = new Layouter();
IReportCreator inst = FormPageBuilder.CreateInstance(reportModel,layouter);
inst.PageCreated += delegate (Object sender,PageCreatedEventArgs ee) {
worker.ReportProgress(inst.Pages.Count);
this.Pages.Add(ee.SinglePage);
};
inst.BuildExportList();
return inst.Pages.Count;
}
return null;
}
private object RunPushData (ReportModel reportModel,IDataManager data,BackgroundWorker worker,DoWorkEventArgs e)
{
if (worker.CancellationPending)
{
e.Cancel = true;
}
else
{
RunDataReport(reportModel,data,worker,e);
}
return null;
}
private object RunDataReport (ReportModel reportModel,IDataManager data,BackgroundWorker worker,DoWorkEventArgs e) private void OnPageCreated (object sender, PageCreatedEventArgs e)
{ {
if (worker.CancellationPending) System.Console.WriteLine("OnPageCreatd {0}",this.Pages.Count);
{ this.Pages.Add(e.SinglePage);
e.Cancel = true; if (this.Pages.Count == 1) {
ShowSelectedPage();
this.pageNumber = 0;
} }
else
{
ILayouter layouter = new Layouter();
IReportCreator reportCreator = DataPageBuilder.CreateInstance(reportModel,data,layouter);
//testcode to handle sectionrenderevent
reportCreator.SectionRendering += new EventHandler<SectionRenderEventArgs>(PushPrinting);
reportCreator.PageCreated += delegate (Object sender,PageCreatedEventArgs ee) {
worker.ReportProgress(reportCreator.Pages.Count);
this.Pages.Add(ee.SinglePage);
};
reportCreator.BuildExportList();
return reportCreator.Pages.Count;
} }
return null;
}
#endregion
#region Events from worker
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);
@ -308,22 +275,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer
#endregion #endregion
void ShowCompleted()
{
if (this.InvokeRequired) {
invokeDelegate updateControl = delegate(){};
updateControl = ShowCompleted;
Invoke (updateControl);
}
this.SetPages();
this.CheckEnable();
this.cancelButton.Enabled = false;
this.printButton.Enabled = true;
this.pdfButton.Enabled = true;
}
#endregion
private void AdjustDrawArea() private void AdjustDrawArea()
{ {
@ -338,6 +289,33 @@ namespace ICSharpCode.Reports.Core.ReportViewer
} }
} }
#region setup
private void SetupViewer (ReportModel reportModel)
{
this.pages = new PagesCollection();
this.reportSettings = reportModel.ReportSettings;
this.cancelButton.Enabled = true;
this.AdjustDrawArea();
}
private void ShowCompleted()
{
if (this.InvokeRequired) {
invokeDelegate updateControl = delegate(){};
updateControl = ShowCompleted;
Invoke (updateControl);
}
this.SetPages();
this.CheckEnable();
this.cancelButton.Enabled = false;
this.printButton.Enabled = true;
this.pdfButton.Enabled = true;
this.UpdateToolStrip();
}
#endregion
#region ToolStrip #region ToolStrip
@ -370,7 +348,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer
this.Invalidate(true); this.Invalidate(true);
this.Update(); this.Update();
this.AdjustDrawArea(); this.AdjustDrawArea();
EventHelper.Raise<EventArgs>(this.PreviewLayoutChanged,this,e); EventHelper.Raise<EventArgs>(this.PreviewLayoutChanged,this,e);
} }
@ -435,6 +412,27 @@ namespace ICSharpCode.Reports.Core.ReportViewer
#region Drawing #region Drawing
private void ShowSelectedPage ()
{
if (this.InvokeRequired) {
invokeDelegate updateControl = delegate(){};
updateControl = ShowSelectedPage;
Invoke (updateControl);
}
if (this.pageNumber < this.pages.Count) {
ExporterPage sp = pages[this.pageNumber];
if (this.bitmap != null) {
this.bitmap.Dispose();
}
this.bitmap = this.CreateBitmap(sp);
this.Invalidate(true);
this.Update();
}
this.UpdateToolStrip();
}
private void DrawingPanelPaint(object sender, PaintEventArgs e) private void DrawingPanelPaint(object sender, PaintEventArgs e)
{ {
e.Graphics.Clear(this.drawingPanel.BackColor); e.Graphics.Clear(this.drawingPanel.BackColor);
@ -443,8 +441,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer
} }
} }
#endregion
private Bitmap CreateBitmap (ExporterPage page) private Bitmap CreateBitmap (ExporterPage page)
{ {
@ -453,8 +449,8 @@ namespace ICSharpCode.Reports.Core.ReportViewer
using (Graphics gr = Graphics.FromImage(bm)) { using (Graphics gr = Graphics.FromImage(bm)) {
// Reset Transform to org. Value // Reset Transform to org. Value
gr.Clear(System.Drawing.Color.White); gr.Clear(this.drawingPanel.BackColor);
this.Invalidate(); // this.Invalidate();
gr.ScaleTransform(1F,1F); gr.ScaleTransform(1F,1F);
gr.Clear(this.drawingPanel.BackColor); gr.Clear(this.drawingPanel.BackColor);
gr.ScaleTransform(this.zoom,this.zoom); gr.ScaleTransform(this.zoom,this.zoom);
@ -470,27 +466,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer
return bm; return bm;
} }
#endregion
private void ShowSelectedPage ()
{
if (this.InvokeRequired) {
invokeDelegate updateControl = delegate(){};
updateControl = ShowSelectedPage;
Invoke (updateControl);
}
if (this.pageNumber < this.pages.Count) {
ExporterPage sp = pages[this.pageNumber];
if (this.bitmap != null) {
this.bitmap.Dispose();
}
this.bitmap = this.CreateBitmap(sp);
this.Invalidate(true);
this.Update();
}
this.UpdateToolStrip();
}
#region PageNavigation #region PageNavigation
@ -560,7 +536,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer
private void StopButtonClick(object sender, System.EventArgs e) private void StopButtonClick(object sender, System.EventArgs e)
{ {
this.bgw.CancelAsync(); // this.bgw.CancelAsync();
this.cancelButton.Enabled = false; this.cancelButton.Enabled = false;
} }
@ -606,7 +582,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer
#endregion #endregion
private void SetPages () private void SetPages ()
{ {
this.pageNumber = 0; this.pageNumber = 0;
@ -632,5 +607,198 @@ namespace ICSharpCode.Reports.Core.ReportViewer
Localize(); Localize();
} }
} }
#region Asyncron use of PageBuilder
/*
public void SetupAsynchron (string fileName,ReportParameters parameters)
{
if (String.IsNullOrEmpty(fileName)) {
throw new ArgumentNullException("fileName");
}
ReportModel m = ReportEngine.LoadReportModel(fileName);
this.SetupAsynchron(m,parameters);
}
*/
/// <summary>
/// For internal use only
/// </summary>
/// <param name="reportModel"></param>
/*
public void SetupAsynchron (ReportModel reportModel,ReportParameters parameters)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
}
this.SetupViewer(reportModel);
this.SetupWorker();
if (reportModel.DataModel == GlobalEnums.PushPullModel.FormSheet) {
this.bgw.DoWork += new DoWorkEventHandler(FormSheetWorker);
} else {
ReportEngine.CheckForParameters(reportModel,parameters);
this.dataManager = DataManagerFactory.CreateDataManager(reportModel,parameters);
this.bgw.DoWork += new DoWorkEventHandler(PushPullWorker);
}
this.bgw.RunWorkerAsync(reportModel);
}
*/
#region PushModel - IList
/*
public void SetupAsynchron (ReportModel reportModel,DataTable dataTable,ReportParameters parameters)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
}
if (dataTable == null) {
throw new ArgumentNullException("dataTable");
}
SetupAsynchron (reportModel,DataManagerFactory.CreateDataManager(reportModel,dataTable));
}
public void SetupAsynchron (ReportModel reportModel,IDataManager dataManager)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
}
if (dataManager == null) {
throw new ArgumentNullException("dataManager");
}
this.SetupViewer(reportModel);
SetupWorker();
this.dataManager = dataManager;
this.bgw.DoWork += new DoWorkEventHandler(PushPullWorker);
this.bgw.RunWorkerAsync(reportModel);
}
*/
#endregion
/*
private void SetupWorker ()
{
this.bgw = new BackgroundWorker();
this.bgw.WorkerReportsProgress = true;
this.bgw.WorkerSupportsCancellation = true;
this.bgw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(BackgroundWorker_RunWorkerCompleted);
this.bgw.ProgressChanged += new ProgressChangedEventHandler(BackgroundWorker_ProgressChanged);
}
*/
#region Worker
/*
private void FormSheetWorker(object sender,DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
e.Result = RunFormSheet((ReportModel)e.Argument,worker,e);
}
*/
/*
private void PushPullWorker(object sender,DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
e.Result = RunDataReport((ReportModel)e.Argument,this.dataManager,worker,e);
}
*/
#endregion
#region WorkerEvents
/*
private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
System.Console.WriteLine("BackgroundWorker_RunWorkerCompleted");
if (e.Error != null) {
throw new ReportException("error in background worker", e.Error);
}
if (this.Pages.Count > 0) {
this.pageNumber = 0;
this.ShowSelectedPage();
}
this.ShowCompleted();
}
*/
/*
private void BackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
this.pageNumber = e.ProgressPercentage;
this.ShowSelectedPage();
}
*/
#endregion
#region Worker
/*
private object RunFormSheet (ReportModel reportModel,BackgroundWorker worker, DoWorkEventArgs e)
{
if (worker.CancellationPending)
{
e.Cancel = true;
}
else
{
Layouter layouter = new Layouter();
IReportCreator inst = FormPageBuilder.CreateInstance(reportModel,layouter);
inst.PageCreated += delegate (Object sender,PageCreatedEventArgs ee) {
worker.ReportProgress(inst.Pages.Count);
this.Pages.Add(ee.SinglePage);
};
inst.BuildExportList();
return inst.Pages.Count;
}
return null;
}
private object RunPushData (ReportModel reportModel,IDataManager data,BackgroundWorker worker,DoWorkEventArgs e)
{
if (worker.CancellationPending)
{
e.Cancel = true;
}
else
{
RunDataReport(reportModel,data,worker,e);
}
return null;
}
*/
/*
private object RunDataReport (ReportModel reportModel,IDataManager data,BackgroundWorker worker,DoWorkEventArgs e)
{
if (worker.CancellationPending)
{
e.Cancel = true;
}
else
{
ILayouter layouter = new Layouter();
IReportCreator reportCreator = DataPageBuilder.CreateInstance(reportModel,data,layouter);
//testcode to handle sectionrenderevent
reportCreator.SectionRendering += new EventHandler<SectionRenderEventArgs>(PushPrinting);
reportCreator.PageCreated += delegate (Object sender,PageCreatedEventArgs ee) {
worker.ReportProgress(reportCreator.Pages.Count);
this.Pages.Add(ee.SinglePage);
};
reportCreator.BuildExportList();
return reportCreator.Pages.Count;
}
return null;
}
*/
#endregion
#endregion
} }
} }

Loading…
Cancel
Save