diff --git a/src/AddIns/Misc/SharpReport/SharpReport/Designer/SideTab/BuildDesignerTab.cs b/src/AddIns/Misc/SharpReport/SharpReport/Designer/SideTab/BuildDesignerTab.cs new file mode 100644 index 0000000000..11c960761b --- /dev/null +++ b/src/AddIns/Misc/SharpReport/SharpReport/Designer/SideTab/BuildDesignerTab.cs @@ -0,0 +1,42 @@ +/* + * Erstellt mit SharpDevelop. + * Benutzer: Forstmeier Helmut + * Datum: 24.10.2006 + * Zeit: 22:50 + * + * Sie können diese Vorlage unter Extras > Optionen > Codeerstellung > Standardheader ändern. + */ + +using System; +using System.Windows.Forms; + +namespace SharpReport +{ + /// + /// Description of BuildTabControl. + /// + public class BuildDesignerTab + { + public static TabControl BuildTabControl () { + TabControl tabControl = new TabControl(); + // Designer Tap + TabPage designerPage = new TabPage(); + + //Standart Preview page + //create only the TabPage, no Controls are added + TabPage previewPage = new TabPage(); + + // ReportViewer + TabPage reportViewerPage = new TabPage(); + + tabControl.TabPages.Add (designerPage); + tabControl.TabPages.Add (previewPage); + tabControl.TabPages.Add(reportViewerPage); + + tabControl.Alignment = TabAlignment.Bottom; + tabControl.Dock = DockStyle.Fill; + return tabControl; + } + + } +} diff --git a/src/AddIns/Misc/SharpReport/SharpReport/SharpReport.csproj b/src/AddIns/Misc/SharpReport/SharpReport/SharpReport.csproj index 242590c5db..49f9ed8e19 100644 --- a/src/AddIns/Misc/SharpReport/SharpReport/SharpReport.csproj +++ b/src/AddIns/Misc/SharpReport/SharpReport/SharpReport.csproj @@ -95,6 +95,7 @@ + diff --git a/src/AddIns/Misc/SharpReport/SharpReport/SharpReportManager.cs b/src/AddIns/Misc/SharpReport/SharpReport/SharpReportManager.cs index 60bc46e0d4..7604ccdafe 100644 --- a/src/AddIns/Misc/SharpReport/SharpReport/SharpReportManager.cs +++ b/src/AddIns/Misc/SharpReport/SharpReport/SharpReportManager.cs @@ -280,8 +280,11 @@ namespace SharpReport{ /// Valid Filename with .xml or .sdr Extension public void LoadFromFile(string fileName){ + SharpReport.Visitors.LoadReportVisitor loadVisitor = new SharpReport.Visitors.LoadReportVisitor(fileName); + //TODO Thsi methiod takes aprox 2 secounds this.baseDesignerControl.Accept(loadVisitor); + this.baseDesignerControl.ReportModel.ReportSettings.FileName = fileName; reportModel = this.baseDesignerControl.ReportModel; } @@ -346,6 +349,8 @@ namespace SharpReport{ get { if (this.baseDesignerControl == null) { this.baseDesignerControl = new BaseDesignerControl(); + this.baseDesignerControl.ReportControl.AutoScroll = true; + this.baseDesignerControl.Dock = DockStyle.Fill; } return this.baseDesignerControl; } diff --git a/src/AddIns/Misc/SharpReport/SharpReportAddin/Commands/ViewCommands.cs b/src/AddIns/Misc/SharpReport/SharpReportAddin/Commands/ViewCommands.cs index 2b9529f554..247d483507 100644 --- a/src/AddIns/Misc/SharpReport/SharpReportAddin/Commands/ViewCommands.cs +++ b/src/AddIns/Misc/SharpReport/SharpReportAddin/Commands/ViewCommands.cs @@ -8,9 +8,11 @@ */ using System; - +using System.Windows.Forms; +using System.Globalization; using ICSharpCode.Core; using ICSharpCode.SharpDevelop.Gui; +using SharpReportCore; namespace SharpReportAddin.Commands{ @@ -32,4 +34,29 @@ namespace SharpReportAddin.Commands{ } } } + + + public class DataSetFromXSDCommand:AbstractCommand{ + System.Data.DataSet ds; + public override void Run() + { + using (OpenFileDialog openFileDialog = new OpenFileDialog()){ + openFileDialog.Filter = GlobalValues.XsdFileFilter; + openFileDialog.DefaultExt = GlobalValues.XsdExtension; + openFileDialog.AddExtension = true; + if(openFileDialog.ShowDialog() == DialogResult.OK){ + if (openFileDialog.FileName.Length > 0) { + this.ds = new System.Data.DataSet(); + this.ds.ReadXml (openFileDialog.FileName); + this.ds.Locale = CultureInfo.InvariantCulture; + } + } + } + } + + public System.Data.DataSet DataSet { + get { return ds; } + } + + } } diff --git a/src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportView.cs b/src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportView.cs index 08ee0a6bd4..7411cd02d8 100644 --- a/src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportView.cs +++ b/src/AddIns/Misc/SharpReport/SharpReportAddin/SharpReportView.cs @@ -32,9 +32,9 @@ namespace SharpReportAddin{ private SharpReportManager reportManager; private BaseDesignerControl designerControl; + private SharpReportCore.ReportViewer.PreviewControl reportViewer; private TabControl tabControl; - private TabPage designerPage; - private TabPage previewPage; + // SideBar private AxSideTab sideTabItem = null; @@ -48,8 +48,10 @@ namespace SharpReportAddin{ void InitView() { try { reportManager = new SharpReportManager(); + panel = new Panel(); panel.AutoScroll = true; + panel.Dock = DockStyle.Fill; CreateTabControl(); SharpReportView.BuildToolBarItems(); if (PropertyPad.Grid != null) { @@ -85,7 +87,20 @@ namespace SharpReportAddin{ #endregion + #region Control + private BaseDesignerControl CreateDesignerControl() { + BaseDesignerControl ctrl = reportManager.BaseDesignControl; + ctrl.SuspendLayout(); + ctrl.ReportControl.Width = ctrl.ReportModel.ReportSettings.PageSettings.Bounds.Width; + ctrl.ReportControl.ObjectSelected +=new EventHandler (OnObjectSelected); + ctrl.ReportControl.DesignViewChanged += new ItemDragDropEventHandler (OnItemDragDrop); + ctrl.DesignerDirty += new System.ComponentModel.PropertyChangedEventHandler (OnPropertyChanged); + ctrl.ResumeLayout(); + return ctrl; + } + + #endregion #region SideBar Handling @@ -141,7 +156,7 @@ namespace SharpReportAddin{ } } sb.Refresh(); - } + } } @@ -164,80 +179,89 @@ namespace SharpReportAddin{ #endregion - - #region Control + #region TabControl including Events void CreateTabControl() { - tabControl = new TabControl(); - tabControl.SelectedIndexChanged += new EventHandler (OnTabPageChanged); - - designerPage = new TabPage(); - designerControl = CreateDesignerControl(); - designerPage.Controls.Add (designerControl); - //create only the TabPage, no Controls are added - previewPage = new TabPage (); - tabControl.TabPages.Add (designerPage); - tabControl.TabPages.Add (previewPage); + this.tabControl = BuildDesignerTab.BuildTabControl(); - tabControl.Alignment = TabAlignment.Bottom; + this.tabControl.SelectedIndexChanged += new EventHandler (OnTabPageChanged); + this.tabControl.Selecting += new TabControlCancelEventHandler(OnTabPageSelecting); - panel.Dock = DockStyle.Fill; - panel.AutoScroll = true; - - tabControl.Dock = DockStyle.Fill; - - panel.Controls.Add (tabControl); + this.designerControl = CreateDesignerControl(); + this.tabControl.TabPages[0].Controls.Add (this.designerControl); + + this.panel.Controls.Add (this.tabControl); SetHeadLines(); - } + //We set all captions in one method, so we can react much easier on changing of lanuages void SetHeadLines(){ - designerPage.Text = ResourceService.GetString("SharpReport.Design"); - previewPage.Text = ResourceService.GetString("SharpReport.Preview"); + this.tabControl.TabPages[0].Text = ResourceService.GetString("SharpReport.Design"); + this.tabControl.TabPages[1].Text = ResourceService.GetString("SharpReport.Preview"); + this.tabControl.TabPages[2].Text = "ReportViewer"; this.OnTabPageChanged (this,EventArgs.Empty); this.designerControl.Localise(); - + } + void SetTabTitel (string name) { + base.TitleName = String.Format(CultureInfo.CurrentCulture, + "{0} [{1}]",name,this.tabControl.SelectedTab.Text); } - private BaseDesignerControl CreateDesignerControl() { - BaseDesignerControl ctrl = reportManager.BaseDesignControl; - ctrl.SuspendLayout(); - ctrl.ReportControl.Width = ctrl.ReportModel.ReportSettings.PageSettings.Bounds.Width; - ctrl.ReportControl.AutoScroll = true; - ctrl.Dock = DockStyle.Fill; - ctrl.ResumeLayout(); - - ctrl.ReportControl.ObjectSelected +=new EventHandler (OnObjectSelected); + private void OnTabPageSelecting (object sender,TabControlCancelEventArgs e) { + switch (e.TabPageIndex) { + case 0: + break; + case 1: + if (e.TabPage.Controls.Count == 0) { + e.TabPage.Controls.Add(reportManager.PreviewControl); + } + break; + case 2: + if (e.TabPage.Controls.Count == 0) { + this.reportViewer = new SharpReportCore.ReportViewer.PreviewControl(); + this.reportViewer.Dock = DockStyle.Fill; + this.reportViewer.PageSettings = new System.Drawing.Printing.PageSettings(); + e.TabPage.Controls.Add(this.reportViewer); + + } + break; + } + } + + private void OnTabPageChanged (object sender, EventArgs e) { - ctrl.ReportControl.DesignViewChanged += new ItemDragDropEventHandler (OnItemDragDrop); - ctrl.DesignerDirty += new System.ComponentModel.PropertyChangedEventHandler (OnPropertyChanged); - return ctrl; + string name; + if (String.IsNullOrEmpty(base.FileName)) { + base.UntitledName = GlobalValues.SharpReportPlainFileName; + base.TitleName = GlobalValues.SharpReportPlainFileName; + base.FileName = GlobalValues.SharpReportPlainFileName; + name = base.TitleName; + } else { + name = Path.GetFileName (base.FileName); + } + SetTabTitel (name); + switch (tabControl.SelectedIndex) { + case 0 : + break; + case 1: + RunPreview(true); + this.tabControl.SelectedTab.Visible = true; + break; + case 2: + FillReportViewer(); + break; + default: + + break; + } } #endregion - - #region Preview handling - - private static DataSet DataSetFromFile () { - using (OpenFileDialog openFileDialog = new OpenFileDialog()){ - openFileDialog.Filter = GlobalValues.XsdFileFilter; - openFileDialog.DefaultExt = GlobalValues.XsdExtension; - openFileDialog.AddExtension = true; - if(openFileDialog.ShowDialog() == DialogResult.OK){ - if (openFileDialog.FileName.Length > 0) { - DataSet ds = new DataSet(); - ds.ReadXml (openFileDialog.FileName); - ds.Locale = CultureInfo.InvariantCulture; - return ds; - } - } - } - throw new MissingDataSourceException(); - } - + #region Preview handling + private void RunPreview(bool standAlone) { base.OnSaving(EventArgs.Empty); this.UpdateModelFromExplorer(); @@ -269,7 +293,9 @@ namespace SharpReportAddin{ private void PreviewPushReport (bool standAlone){ try { - DataSet ds = SharpReportView.DataSetFromFile (); + DataSetFromXSDCommand cmd = new DataSetFromXSDCommand (); + cmd.Run(); + DataSet ds = cmd.DataSet; reportManager.ReportPreviewPushData(designerControl.ReportModel, ds, standAlone); @@ -288,6 +314,23 @@ namespace SharpReportAddin{ #endregion + #region ReportViewer + + private void FillReportViewer() { + System.Console.WriteLine("FillReportViewer"); + System.Console.WriteLine("\tsetup pagebuilder{0}",DateTime.Now); + SharpReportCore.Exporters.PageBuilder pb = reportManager.CreatePageBuilder (designerControl.ReportModel); + System.Console.WriteLine("\tstart createreport{0}",DateTime.Now); + pb.CreateReport(); + System.Console.WriteLine("\treport created {0}",DateTime.Now); + SharpReportCore.Exporters.SinglePage sp= pb.FirstPage; + System.Console.WriteLine("\tPages {0} SinglePage : Items {0}",pb.Pages.Count,sp.Items.Count); + + this.reportViewer.Pages = pb.Pages; + } + #endregion + + #region Events ///This Event is called if the Report need's Parameters to run a Query, @@ -305,39 +348,7 @@ namespace SharpReportAddin{ } } - void SetTabTitel (string name) { - base.TitleName = String.Format(CultureInfo.CurrentCulture, - "{0} [{1}]",name,this.tabControl.SelectedTab.Text); - } - private void OnTabPageChanged (object sender, EventArgs e) { - - string name; - if (String.IsNullOrEmpty(base.FileName)) { - base.UntitledName = GlobalValues.SharpReportPlainFileName; - base.TitleName = GlobalValues.SharpReportPlainFileName; - base.FileName = GlobalValues.SharpReportPlainFileName; - name = base.TitleName; - } else { - name = Path.GetFileName (base.FileName); - } - SetTabTitel (name); - switch (tabControl.SelectedIndex) { - case 0 : - break; - case 1: - //Create the preview Control only when needed - if (tabControl.SelectedTab.Controls.Count == 0 ){ - tabControl.SelectedTab.Controls.Add(reportManager.PreviewControl); - } - RunPreview(true); - this.previewPage.Visible = true; - break; - default: - - break; - } - } //Something was dropped on the designer @@ -351,7 +362,7 @@ namespace SharpReportAddin{ base.IsDirty = true; OnObjectSelected (this,EventArgs.Empty); } - + private void OnModelFileNameChanged (object sender,EventArgs e) { base.FileName = designerControl.ReportModel.ReportSettings.FileName; if (designerControl.ReportModel.ReportSettings.InitDone) { @@ -373,7 +384,7 @@ namespace SharpReportAddin{ } } } - + private void UpdateModelFromExplorer () { ReportExplorer re = (SharpReportAddin.ReportExplorer)WorkbenchSingleton.Workbench.GetPad(typeof(ReportExplorer)).PadContent; re.Update(designerControl.ReportModel); @@ -397,7 +408,7 @@ namespace SharpReportAddin{ /// Show's Report in PreviewControl /// - public void OnPreviewClick () { + public void OnPreviewClick () { reportManager.ParametersRequest -= new EventHandler (OnParametersRequest); reportManager.ParametersRequest += new EventHandler(OnParametersRequest); @@ -408,7 +419,7 @@ namespace SharpReportAddin{ /// /// Remove the selected Item from /// - + public void RemoveSelectedItem () { this.designerControl.RemoveSelectedItem (); } @@ -428,7 +439,7 @@ namespace SharpReportAddin{ } /// - /// Tells the to fire an Event if + /// Tells the to fire an Event if /// something in the report layout changes /// @@ -479,6 +490,7 @@ namespace SharpReportAddin{ } public override void RedrawContent() { + SetHeadLines(); } @@ -528,15 +540,16 @@ namespace SharpReportAddin{ } } - + /// /// Loads a new file into View /// /// A valid Filename public override void Load(string fileName){ + try { designerControl.ReportControl.ObjectSelected -= new EventHandler (OnObjectSelected); - reportManager.LoadFromFile (fileName); + reportManager.LoadFromFile (fileName); base.FileName = fileName; designerControl.ReportModel.ReportSettings.FileName = fileName; designerControl.ReportControl.ObjectSelected += new EventHandler (OnObjectSelected); @@ -544,13 +557,12 @@ namespace SharpReportAddin{ PropertyPad.Grid.SelectedObject = designerControl.ReportModel.ReportSettings; PropertyPad.Grid.Refresh(); } - - this.designerControl.ReportModel.ReportSettings.AvailableFieldsCollection = reportManager.AvailableFieldsCollection; - + + this.designerControl.ReportModel.ReportSettings.AvailableFieldsCollection = reportManager.AvailableFieldsCollection; ShowAndFillExplorer se = new ShowAndFillExplorer(); se.ReportModel = this.designerControl.ReportModel; se.Run(); - + } catch (Exception e) { MessageService.ShowError(e,"SharpReportView:Load"); throw ; @@ -566,8 +578,11 @@ namespace SharpReportAddin{ get { AbstractRenderer renderer; if (this.designerControl.ReportModel.DataModel == GlobalEnums.PushPullModel.PushData) { + DataSetFromXSDCommand cmd = new DataSetFromXSDCommand(); + cmd.Run(); + DataSet dataSet = cmd.DataSet; renderer = reportManager.GetRendererForPushDataReports(this.designerControl.ReportModel, - SharpReportView.DataSetFromFile()); + dataSet); } else { try { @@ -611,6 +626,10 @@ namespace SharpReportAddin{ this.designerControl.Dispose(); } + if (this.reportViewer != null) { + this.reportViewer.Dispose(); + } + if (this.tabControl != null) { this.tabControl.Dispose(); } diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/RowItem.cs b/src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/RowItem.cs index 465c3645f2..0700fbe414 100644 --- a/src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/RowItem.cs +++ b/src/AddIns/Misc/SharpReport/SharpReportCore/BaseItems/RowItem.cs @@ -50,7 +50,6 @@ namespace SharpReportCore{ #region IExportColumnBuilder implementation -// public IPerformLine CreateExportColumn(Graphics graphics){ public BaseExportColumn CreateExportColumn(Graphics graphics){ BaseStyleDecorator st = this.CreateItemStyle(graphics); @@ -62,7 +61,6 @@ namespace SharpReportCore{ BaseStyleDecorator style = new BaseStyleDecorator(); style.BackColor = this.BackColor; -// style.Font = this.Font; style.ForeColor = this.ForeColor; style.Location = this.Location; style.Size = this.Size; diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportColumns/ExportContainer.cs b/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportColumns/ExportContainer.cs index dd84886894..4c41cc5242 100644 --- a/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportColumns/ExportContainer.cs +++ b/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportColumns/ExportContainer.cs @@ -16,7 +16,7 @@ namespace SharpReportCore.Exporters /// public class ExportContainer:BaseExportColumn { -// List items; + ExporterCollection items; public ExportContainer():base(){ base.IsContainer = true; diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportItemsConverter.cs b/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportItemsConverter.cs index 85ef82156e..ecaefca73f 100644 --- a/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportItemsConverter.cs +++ b/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExportItemsConverter.cs @@ -28,6 +28,7 @@ namespace SharpReportCore.Exporters{ public ExportText ConvertToLineItems (IItemRenderer r) { IExportColumnBuilder lineBuilder = r as IExportColumnBuilder; ExportText lineItem = null; + if (lineBuilder != null) { lineItem = (ExportText)lineBuilder.CreateExportColumn(this.graphics); diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExporterCollection.cs b/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExporterCollection.cs new file mode 100644 index 0000000000..ccf4e9301c --- /dev/null +++ b/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/ExporterCollection.cs @@ -0,0 +1,25 @@ +/* + * Created by SharpDevelop. + * User: Forstmeier Peter + * Date: 19.09.2006 + * Time: 22:18 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; + +namespace SharpReportCore.Exporters +{ + public class ExporterCollection : Collection + where T : BaseExportColumn { + + public void AddRange (IEnumerable items){ + foreach (T item in items) { + this.Add (item); + } + } + } +} diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/PageBuilder.cs b/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/PageBuilder.cs index 3107ca7adc..1220f0382e 100644 --- a/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/PageBuilder.cs +++ b/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/PageBuilder.cs @@ -9,10 +9,7 @@ using System; using System.Collections.Generic; -using System.Diagnostics; -using System.Globalization; using System.Drawing; - using System.Drawing.Printing; namespace SharpReportCore.Exporters @@ -28,8 +25,8 @@ namespace SharpReportCore.Exporters DataNavigator dataNavigator; ExportItemsConverter lineItemsConverter; -// public delegate List ConverterDelegate (LineItemsConverter c,BaseSection s,SinglePage p); public delegate List ConverterDelegate (BaseSection s,SinglePage p); + #region Constructor public PageBuilder () { pages = new List(); @@ -48,28 +45,7 @@ namespace SharpReportCore.Exporters #endregion - #region template - /* - // Events from ReportDocument - reportDocument.QueryPageSettings += new QueryPageSettingsEventHandler (ReportQueryPage); - reportDocument.BeginPrint += new PrintEventHandler(ReportBegin); - reportDocument.PrintPage += new PrintPageEventHandler(ReportPageStart); - reportDocument.EndPrint += new PrintEventHandler(ReportEnd); - - // homemade events - reportDocument.BodyStart += new EventHandler (BodyStart); - - reportDocument.BodyEnd += new EventHandler (BodyEnd); - - // - reportDocument.RenderReportHeader += new EventHandler (PrintReportHeader); - reportDocument.RenderPageHeader += new EventHandler (PrintPageHeader); - reportDocument.RenderDetails += new EventHandler (PrintDetail); - reportDocument.RenderPageEnd += new EventHandler (PrintPageEnd); - reportDocument.RenderReportEnd += new EventHandler (PrintReportFooter); - */ - #endregion private SinglePage CreateNewPage () { PageSettings ps = this.reportModel.ReportSettings.PageSettings; @@ -87,13 +63,8 @@ namespace SharpReportCore.Exporters private void BuildReportHeader (SinglePage page) { BaseSection section = this.reportModel.ReportHeader; -// System.Console.WriteLine("ReportHeader with {0} items ",section.Items.Count); -// LineItemsConverter conv = new LineItemsConverter(graphics); this.lineItemsConverter.Offset = page.SectionBounds.ReportHeaderRectangle.Top; - System.Console.WriteLine("ReportHeader start at {0} with {1} items", - this.lineItemsConverter.Offset, - section.Items.Count); List l = section.Items.ConvertAll (this.lineItemsConverter.ConvertToLineItems); page.Items.AddRange(l); @@ -101,18 +72,13 @@ namespace SharpReportCore.Exporters private void BuildPageHeader (SinglePage page) { BaseSection section = this.reportModel.PageHeader; -// System.Console.WriteLine("PageHeader with {0} items ",section.Items.Count); -// LineItemsConverter conv = new LineItemsConverter(graphics); this.lineItemsConverter.Offset = page.SectionBounds.PageHeaderRectangle.Top; - System.Console.WriteLine("Page Header start at {0} with {1} Items", - this.lineItemsConverter.Offset, - section.Items.Count); +// System.Console.WriteLine("Page Header start at {0} with {1} Items", +// this.lineItemsConverter.Offset, +// section.Items.Count); List l = section.Items.ConvertAll (this.lineItemsConverter.ConvertToLineItems); page.Items.AddRange(l); - -// System.Console.WriteLine("\tList {0}",l.Count); -// System.Console.WriteLine("\tpages.items.coun {0}",page.Items.Count); } @@ -133,9 +99,6 @@ namespace SharpReportCore.Exporters BaseSection section = this.reportModel.DetailSection; section.SectionOffset = page.SectionBounds.DetailStart.Y; do { - - - dataNavigator.Fill(section.Items); if (!firstOnPage) { @@ -169,7 +132,7 @@ namespace SharpReportCore.Exporters this.lineItemsConverter.Offset = section.SectionOffset; if (builder != null) { - System.Console.WriteLine("Create RowList with Location {0}",this.lineItemsConverter.Offset); +// System.Console.WriteLine("Create RowList with Location {0} ",this.lineItemsConverter.Offset); Graphics g = reportModel.ReportSettings.PageSettings.PrinterSettings.CreateMeasurementGraphics(); @@ -180,11 +143,17 @@ namespace SharpReportCore.Exporters // reread this.dataNavigator.Fill(containerItem.Items); List childList = containerItem.Items.ConvertAll (this.lineItemsConverter.ConvertToLineItems); - - lineItem.Items.AddRange(childList); - - childList.ForEach(display); + //Adjust childitems to Location within container + if (childList.Count > 0) { + childList.ForEach(delegate(BaseExportColumn item){ + Point p = new Point (lineItem.StyleDecorator.Location.X + item.StyleDecorator.Location.X, + lineItem.StyleDecorator.Location.Y + item.StyleDecorator.Location.Y); + item.StyleDecorator.Location = p; + }); + } + lineItem.Items.AddRange(childList); + List containerList = new List(); containerList.Add (lineItem); g.Dispose(); @@ -193,12 +162,13 @@ namespace SharpReportCore.Exporters return null; } + + private List DoJob (BaseSection section,SinglePage page) { this.lineItemsConverter.Offset = section.SectionOffset; - System.Console.WriteLine("Plain Item {0}/{1}",section.SectionOffset,page.SectionBounds.DetailStart); List list = section.Items.ConvertAll (this.lineItemsConverter.ConvertToLineItems); - + /* if (list.Count > 0) { bool istrue = list.TrueForAll(delegate(BaseExportColumn item){ @@ -213,7 +183,7 @@ namespace SharpReportCore.Exporters return true; }); } -// list.ForEach(display); + */ return list; } @@ -233,9 +203,6 @@ namespace SharpReportCore.Exporters BaseSection section = this.reportModel.PageFooter; this.lineItemsConverter.Offset = page.SectionBounds.PageFooterRectangle.Top; -// System.Console.WriteLine("Page Footer start at {0} with {1} Items", -// this.lineItemsConverter.Offset, -// section.Items.Count); List l = section.Items.ConvertAll (this.lineItemsConverter.ConvertToLineItems); page.Items.AddRange(l); } @@ -293,8 +260,14 @@ namespace SharpReportCore.Exporters } return null; } - } + + public List Pages { + get { + return pages; + } + } + } } diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/SinglePage.cs b/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/SinglePage.cs index f8fdb4c886..5b42e74be5 100644 --- a/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/SinglePage.cs +++ b/src/AddIns/Misc/SharpReport/SharpReportCore/Exporter/SinglePage.cs @@ -8,16 +8,17 @@ */ using System; + using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Drawing; using System.Drawing.Printing; namespace SharpReportCore.Exporters { - public class SinglePage - { -// List items; + public class SinglePage{ + ExporterCollection items; SectionBounds sectionBounds; @@ -29,7 +30,6 @@ namespace SharpReportCore.Exporters public SinglePage(SectionBounds sectionBounds) { this.sectionBounds = sectionBounds; -// items = new List (); items = new ExporterCollection(); } @@ -57,7 +57,6 @@ namespace SharpReportCore.Exporters this.sectionBounds.MeasurePageHeader(reportModel.PageHeader, rectangle,graphics); -// //PageFooter @@ -93,9 +92,5 @@ namespace SharpReportCore.Exporters } } - - public class ExporterCollection : List - where T : BaseExportColumn { - - } + } diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/Printing/Text/TextDrawer.cs b/src/AddIns/Misc/SharpReport/SharpReportCore/Printing/Text/TextDrawer.cs index fec917ed01..fd52cf5a4b 100644 --- a/src/AddIns/Misc/SharpReport/SharpReportCore/Printing/Text/TextDrawer.cs +++ b/src/AddIns/Misc/SharpReport/SharpReportCore/Printing/Text/TextDrawer.cs @@ -67,6 +67,26 @@ namespace SharpReportCore { s); } + public static void PaintString (Graphics graphics,string text, + SharpReportCore.Exporters.BaseStyleDecorator decorator) { + +// d.DrawString(gr, +// ex.ToString(), +// ex.StyleDecorator.Font, +// new SolidBrush(ex.StyleDecorator.ForeColor), +// new Rectangle(ex.StyleDecorator.Location.X, +// ex.StyleDecorator.Location.Y, +// ex.StyleDecorator.Size.Width, +// ex.StyleDecorator.Size.Height), +// ex.StyleDecorator.StringFormat); + graphics.DrawString (text,decorator.Font, + new SolidBrush(decorator.ForeColor), + new Rectangle(decorator.Location.X, + decorator.Location.Y, + decorator.Size.Width, + decorator.Size.Height), + decorator.StringFormat); + } public static StringFormat BuildStringFormat(StringTrimming stringTrimming,ContentAlignment alignment){ StringFormat format = StringFormat.GenericTypographic; diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.Designer.cs b/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.Designer.cs new file mode 100644 index 0000000000..7544997b5d --- /dev/null +++ b/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.Designer.cs @@ -0,0 +1,194 @@ +/* + * Created by SharpDevelop. + * User: Forstmeier Helmut + * Date: 16.10.2006 + * Time: 22:15 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +namespace SharpReportCore.ReportViewer +{ + partial class PreviewControl : System.Windows.Forms.UserControl +// partial class PreviewControl : System.Windows.Forms.ScrollableControl + { + /// + /// Designer variable used to keep track of non-visual components. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Disposes resources used by the form. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing) { + if (components != null) { + components.Dispose(); + } + } + base.Dispose(disposing); + } + + /// + /// This method is required for Windows Forms designer support. + /// Do not change the method contents inside the source code editor. The Forms designer might + /// not be able to load this method if it was changed manually. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PreviewControl)); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripTextBox1 = new System.Windows.Forms.ToolStripTextBox(); + this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripComboBox1 = new System.Windows.Forms.ToolStripComboBox(); + this.printToolStripButton = new System.Windows.Forms.ToolStripButton(); + this.newToolStripButton = new System.Windows.Forms.ToolStripButton(); + this.panel1.SuspendLayout(); + this.toolStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.AutoScroll = true; + this.panel1.AutoScrollMargin = new System.Drawing.Size(5, 5); + this.panel1.BackColor = System.Drawing.SystemColors.ControlDark; + this.panel1.Controls.Add(this.panel2); + this.panel1.Location = new System.Drawing.Point(5, 33); + this.panel1.Margin = new System.Windows.Forms.Padding(0); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(5); + this.panel1.Size = new System.Drawing.Size(525, 373); + this.panel1.TabIndex = 3; + // + // panel2 + // + this.panel2.BackColor = System.Drawing.SystemColors.Window; + this.panel2.Location = new System.Drawing.Point(5, 5); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(496, 500); + this.panel2.TabIndex = 0; + this.panel2.Paint += new System.Windows.Forms.PaintEventHandler(this.Panel2Paint); + // + // toolStrip1 + // + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripButton1, + this.toolStripButton2, + this.toolStripSeparator1, + this.toolStripTextBox1, + this.toolStripSeparator2, + this.toolStripComboBox1, + this.printToolStripButton, + this.newToolStripButton}); + this.toolStrip1.Location = new System.Drawing.Point(5, 5); + this.toolStrip1.Margin = new System.Windows.Forms.Padding(0, 0, 0, 3); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(520, 25); + this.toolStrip1.Stretch = true; + this.toolStrip1.TabIndex = 4; + this.toolStrip1.Text = "toolStrip1"; + // + // toolStripButton1 + // + this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(23, 22); + this.toolStripButton1.Text = "toolStripButton1"; + this.toolStripButton1.Click += new System.EventHandler(this.BackButton); + // + // toolStripButton2 + // + this.toolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(23, 22); + this.toolStripButton2.Text = "toolStripButton2"; + this.toolStripButton2.Click += new System.EventHandler(this.ForwardButton); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25); + // + // toolStripTextBox1 + // + this.toolStripTextBox1.Name = "toolStripTextBox1"; + this.toolStripTextBox1.Size = new System.Drawing.Size(150, 25); + // + // toolStripSeparator2 + // + this.toolStripSeparator2.Name = "toolStripSeparator2"; + this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25); + // + // toolStripComboBox1 + // + this.toolStripComboBox1.Name = "toolStripComboBox1"; + this.toolStripComboBox1.Size = new System.Drawing.Size(80, 25); + this.toolStripComboBox1.SelectedIndexChanged += new System.EventHandler(this.ToolStripComboBox1SelectedIndexChanged); + // + // printToolStripButton + // + this.printToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.printToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("printToolStripButton.Image"))); + this.printToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; + this.printToolStripButton.Name = "printToolStripButton"; + this.printToolStripButton.Size = new System.Drawing.Size(23, 22); + this.printToolStripButton.Text = "&Print"; + this.printToolStripButton.Click += new System.EventHandler(this.PrintButton); + // + // newToolStripButton + // + this.newToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.newToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; + this.newToolStripButton.Name = "newToolStripButton"; + this.newToolStripButton.Size = new System.Drawing.Size(23, 22); + this.newToolStripButton.Text = "&New"; + // + // PreviewControl + // + this.BackColor = System.Drawing.SystemColors.GradientActiveCaption; + this.Controls.Add(this.toolStrip1); + this.Controls.Add(this.panel1); + this.Name = "PreviewControl"; + this.Padding = new System.Windows.Forms.Padding(5); + this.Size = new System.Drawing.Size(530, 411); + this.panel1.ResumeLayout(false); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + } + private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.ToolStripButton printToolStripButton; + private System.Windows.Forms.ToolStripButton newToolStripButton; + private System.Windows.Forms.ToolStripComboBox toolStripComboBox1; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.ToolStripTextBox toolStripTextBox1; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ToolStrip toolStrip1; + + + + + + void PrintToolStripButtonClick(object sender, System.EventArgs e) + { + + } + } +} diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.cs b/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.cs new file mode 100644 index 0000000000..2e7d223b1d --- /dev/null +++ b/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.cs @@ -0,0 +1,198 @@ +/* + * Created by SharpDevelop. + * User: Forstmeier Helmut + * Date: 16.10.2006 + * Time: 22:15 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Printing; +using System.Windows.Forms; +using SharpReportCore; +using SharpReportCore.Exporters; + +namespace SharpReportCore.ReportViewer +{ + /// + /// Description of UserControl1. + /// + public partial class PreviewControl + { + private PageSettings pageSettings; + private float zoom; + private Bitmap bitmap; + private List pages; + private int pageNumber; + + private Rectangle PageRectangle () { + + return new Rectangle (this.pageSettings.Margins.Left, + this.pageSettings.Margins.Top, + this.pageSettings.Bounds.Width - this.pageSettings.Margins.Left - this.pageSettings.Margins.Right, + this.pageSettings.Bounds.Height - this.pageSettings.Margins.Top - this.pageSettings.Margins.Bottom); + + + } + + + private void AdjustDrawArea() { + if (this.pageSettings != null) { + this.panel2.ClientSize = new Size((int)(this.pageSettings.PaperSize.Width * this.zoom), + (int)(this.pageSettings.PaperSize.Height * this.zoom)); + } + this.toolStripTextBox1.Text = ""; + + if (this.pages != null) { + this.bitmap = this.BuildBitmap(pages[this.pageNumber]); + + } + this.Invalidate(true); + } + + + public PreviewControl() + { + // + // The InitializeComponent() call is required for Windows Forms designer support. + // + InitializeComponent(); + + InitZoomCombo (); + + } + + private void InitZoomCombo (){ + this.toolStripComboBox1.Items.Add("100%"); + this.toolStripComboBox1.Items.Add("75%"); + this.toolStripComboBox1.Items.Add("50%"); + this.toolStripComboBox1.SelectedIndex = 0; + } + + void Panel2Paint(object sender, System.Windows.Forms.PaintEventArgs e){ + e.Graphics.Clear(this.panel2.BackColor); + + if (this.bitmap != null) { + e.Graphics.DrawImage(this.bitmap,0,0); + } + } + + private void DrawItems (Graphics gr,ExporterCollection items) { + + foreach (SharpReportCore.Exporters.BaseExportColumn ex in items) { + if (ex != null) { + ExportContainer cont = ex as ExportContainer; + if (cont == null) { +// System.Console.WriteLine("{0}",ex.GetType()); + TextDrawer.PaintString(gr,ex.ToString(),ex.StyleDecorator); + } else { + DrawItems(gr,cont.Items); + } + + } + } + } + + private Bitmap BuildBitmap (SinglePage page) { + System.Console.WriteLine("BuildBitmap(SinglePage)"); + System.Console.WriteLine("\tstart createBitmap {0}",DateTime.Now); + Bitmap bm = new Bitmap(this.panel2.ClientSize.Width,this.panel2.ClientSize.Height,System.Drawing.Imaging.PixelFormat.Format24bppRgb); + using (Graphics gr = Graphics.FromImage(bm)) { + + // Reset Transform to org. Value + + gr.ScaleTransform(1F,1F); + gr.Clear(Color.Beige); + gr.ScaleTransform(this.zoom,this.zoom); + +// if (this.pageSettings != null) { +// gr.DrawRectangle(new Pen(Color.Black), +// this.PageRectangle ()); +// } + DrawItems (gr,page.Items); + } + System.Console.WriteLine("\tready createBitmap {0}",DateTime.Now); + return bm; + + } + + private void ShowPages () { + System.Console.WriteLine("ReportViewer:ShowPages {0}",this.pages.Count); + this.pageNumber = 0; + SinglePage sp = pages[this.pageNumber]; + + if (this.bitmap != null) { + this.bitmap.Dispose(); + } + this.bitmap = this.BuildBitmap(sp); + + this.toolStripTextBox1.Text = String.Empty; + string str = String.Format ("Page {0} of {1}",this.pageNumber +1,this.pages.Count); + this.toolStripTextBox1.Text = str; + this.Invalidate(true); + } + + + void ToolStripComboBox1SelectedIndexChanged(object sender, System.EventArgs e) + { + switch (this.toolStripComboBox1.SelectedIndex) { + case 0: + this.zoom = (float)1.0; + break; + case 1: + this.zoom = (float)0.75; + break; + case 2: + this.zoom = (float) 0.5; + break; + default: + this.zoom = (float)1.0; + break; + } + + this.AdjustDrawArea(); + } + void ToolStripTextBox1Click(object sender, System.EventArgs e) + { + MessageBox.Show ("TextBox Chlicked"); + } + + void BackButton(object sender, System.EventArgs e) + { + MessageBox.Show ("BackButton not implemented"); + } + + void ForwardButton(object sender, System.EventArgs e) + { + MessageBox.Show ("´Forward not implemented"); + } + + void PrintButton(object sender, System.EventArgs e) + { + MessageBox.Show ("Print not implemented"); + } + + public PageSettings PageSettings { + get { + + return pageSettings; + } + set { + pageSettings = value; + this.AdjustDrawArea(); + } + } + + + public List Pages { + set { + pages = value; + ShowPages(); + } + } + + } +} diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.resx b/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.resx new file mode 100644 index 0000000000..a6a52189af --- /dev/null +++ b/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/ReportViewer.resx @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + o2i8AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAaFJREFUOE+Vkr9O + wlAUxnV3YMPRR9A34AXYfADjwGzYWRiQAegqIXGhMSlgCOHPIIPypzJA0lKIUGhDtCkyQJoYHFj47LlJ + B2gNepMvtzk93+/ce849PrKXZcF396Rb9L2/rgOnF37/iez1byd2K2jwWhQ/aHZOQcnmF1z6M4QSlQVc + +hfgZQbs688AVX2/ouTHN+DVAORPQPr4BsUGg8HNwV6YpvlMyY1GwyVJklCr1aAoCucCbTab81KpBEe9 + Xg+z2QzL5RKWPePVaoXFYoH5fI5qtQpd13ch2WwW0+kU/X4fw+GQgQzDYGbayeSo3W4jlUrtjpYAmqZh + MpkwiKqqDOKYxuMxZFmGKIrged4bkM/nQaBut8sgo9GIQXK5HDiOQzKZZOJL996A9XoNu4msajqdRjwe + RywWY2ZBEFCv11EsFhGNRr0B2+0WBKGG0b0rlQroVJlMBpFIBOFwmEEp1mw2vSF0BQdCFcvlMoLBS4RC + IWbudDqsF05vXOO0u+4jCKnValHDrETiQSoUxJ1JHHxQNujMfgcBSqSdKv5m+gHDX/T8L6cjXgAAAABJ + RU5ErkJggg== + + + + 17, 17 + + + 48 + + \ No newline at end of file diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.BrowserAfter.png b/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.BrowserAfter.png new file mode 100644 index 0000000000..c1543df939 Binary files /dev/null and b/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.BrowserAfter.png differ diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.BrowserBefore.png b/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.BrowserBefore.png new file mode 100644 index 0000000000..c165b435ed Binary files /dev/null and b/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.BrowserBefore.png differ diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.Print.png b/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.Print.png new file mode 100644 index 0000000000..5e4406244e Binary files /dev/null and b/src/AddIns/Misc/SharpReport/SharpReportCore/ReportViewer/Resources/Icons.16x16.Print.png differ diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/SharpReportCore.csproj b/src/AddIns/Misc/SharpReport/SharpReportCore/SharpReportCore.csproj index bae7b5fa40..6075819881 100644 --- a/src/AddIns/Misc/SharpReport/SharpReportCore/SharpReportCore.csproj +++ b/src/AddIns/Misc/SharpReport/SharpReportCore/SharpReportCore.csproj @@ -146,6 +146,14 @@ + + + ReportViewer.cs + + + ReportViewer.cs + + @@ -171,6 +179,11 @@ + + + + + \ No newline at end of file