diff --git a/samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs b/samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs index 2e330fbaac..472c0b7a6f 100644 --- a/samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs +++ b/samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs @@ -97,7 +97,7 @@ namespace SharpReportSamples } - + private void RunStandardReport(string reportName) { string s = Path.GetFileNameWithoutExtension(reportName); @@ -106,7 +106,6 @@ namespace SharpReportSamples } else if (s == "NoConnectionReport") { this.RunProviderIndependent(reportName); } - else { ReportParameters parameters = ReportEngine.LoadParameters(reportName); @@ -114,11 +113,15 @@ namespace SharpReportSamples if ((parameters != null)&& (parameters.SqlParameters.Count > 0)){ parameters.SqlParameters[0].ParameterValue = "I'm the Parameter"; } - + this.previewControl1.PreviewLayoutChanged += delegate (object sender, EventArgs e) + { + this.RunStandardReport(reportName); + }; this.previewControl1.SetupAsynchron(reportName,parameters); } } + #region ProviderIndependent private void RunProviderIndependent (string reportName) { @@ -129,6 +132,10 @@ namespace SharpReportSamples parameters.ConnectionObject = con; parameters.SqlParameters[0].ParameterValue = "Provider Independent"; + this.previewControl1.PreviewLayoutChanged += delegate (object sender, EventArgs e) + { + this.RunProviderIndependent(reportName); + }; this.previewControl1.SetupAsynchron(reportName,parameters); } diff --git a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs index e82385fba6..28cb90bf1f 100644 --- a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs +++ b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs @@ -73,7 +73,6 @@ namespace ICSharpCode.Reports.Addin } - protected override void SaveToPrimary() { // throw new NotImplementedException(); diff --git a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs index 95f5a71a98..f3cff0e6b7 100644 --- a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs +++ b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs @@ -75,15 +75,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer #region Asyncron use of PageBuilder - private void SetupViewer (ReportModel reportModel) - { - this.pages = new PagesCollection(); - this.reportSettings = reportModel.ReportSettings; - this.cancelButton.Enabled = true; - this.AdjustDrawArea(); - } - - public void SetupAsynchron (string fileName,ReportParameters parameters) { if (String.IsNullOrEmpty(fileName)) { @@ -116,6 +107,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer this.bgw.RunWorkerAsync(reportModel); } + #region PushModel - IList public void SetupAsynchron (ReportModel reportModel,DataTable dataTable,ReportParameters parameters) { @@ -128,7 +120,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer SetupAsynchron (reportModel,DataManagerFactory.CreateDataManager(reportModel,dataTable)); } - public void SetupAsynchron (ReportModel reportModel,IDataManager dataManager) { if (reportModel == null) { @@ -137,13 +128,26 @@ namespace ICSharpCode.Reports.Core.ReportViewer if (dataManager == null) { throw new ArgumentNullException("dataManager"); } - this.dataManager = dataManager; + this.SetupViewer(reportModel); SetupWorker(); + + this.dataManager = dataManager; this.bgw.DoWork += new DoWorkEventHandler(PushPullWorker); this.bgw.RunWorkerAsync(reportModel); } + #endregion + + + private void SetupViewer (ReportModel reportModel) + { + this.pages = new PagesCollection(); + this.reportSettings = reportModel.ReportSettings; + this.cancelButton.Enabled = true; + this.AdjustDrawArea(); + } + private void SetupWorker () { @@ -159,20 +163,17 @@ namespace ICSharpCode.Reports.Core.ReportViewer private void FormSheetWorker(object sender,DoWorkEventArgs e) { - // Get the BackgroundWorker that raised this event. 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 @@ -180,7 +181,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { - if (e.Error != null) { throw new ReportException("error in background worker", e.Error); } @@ -234,7 +234,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer { RunDataReport(reportModel,data,worker,e); } - return null; } @@ -316,7 +315,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer updateControl = ShowCompleted; Invoke (updateControl); } - this.SetPages(); this.CheckEnable(); this.cancelButton.Enabled = false; @@ -324,7 +322,6 @@ namespace ICSharpCode.Reports.Core.ReportViewer this.pdfButton.Enabled = true; } - #endregion @@ -371,8 +368,11 @@ namespace ICSharpCode.Reports.Core.ReportViewer } } - EventHelper.Raise(this.PreviewLayoutChanged,this,e); + this.Invalidate(true); + this.Update(); + this.AdjustDrawArea(); + EventHelper.Raise(this.PreviewLayoutChanged,this,e); } @@ -448,11 +448,13 @@ namespace ICSharpCode.Reports.Core.ReportViewer private Bitmap CreateBitmap (ExporterPage page) { - System.Diagnostics.Trace.WriteLine("CreateBitmap"); Bitmap bm = new Bitmap(this.drawingPanel.ClientSize.Width,this.drawingPanel.ClientSize.Height,System.Drawing.Imaging.PixelFormat.Format24bppRgb); + using (Graphics gr = Graphics.FromImage(bm)) { // Reset Transform to org. Value + gr.Clear(System.Drawing.Color.White); + this.Invalidate(); gr.ScaleTransform(1F,1F); gr.Clear(this.drawingPanel.BackColor); gr.ScaleTransform(this.zoom,this.zoom);