⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sharpreportview.cs

📁 c#源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
					}
					case GlobalEnums.enmPushPullModel.PushData:{
						PreviewPushReport ();
						break;
					}
				default:
					throw new SharpReportException("Wrong ReportType");
					
			}
			} catch (Exception e) {
				MessageBox.Show("Error in RunPreview" + e.Message);
			}
			
		}
	
			
		
		private void PreviewPushReport (){
			try {
				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);
							reportManager.ReportPreviewPushData(designerControl.ReportModel,
							                                    ds.Tables[0],
							                                    true);
						}
					}
				}
			}catch (Exception e){
				this.messageService.ShowError (e,e.Message);
			}
		}
		
		
		private void PreviewStandartReport(){
			reportManager.NoData -= new SharpReportEventHandler (OnNoDataForReport);
			reportManager.NoData += new SharpReportEventHandler (OnNoDataForReport);
			
			reportManager.ParametersRequest -= new SharpReportParametersEventHandler (OnParametersRequest);
			reportManager.ParametersRequest += new SharpReportParametersEventHandler (OnParametersRequest);
			reportManager.ReportPreview (designerControl.ReportModel, true);
			
		}
		
		#endregion
		
		#region Events
		void OnNoDataForReport (object sender,SharpReportEventArgs e) {
			DialogResult result = MessageBox.Show("This Report contains no Data. Show it as FormSheet",
			                                      "SharpReport",
			                                      MessageBoxButtons.OKCancel,
			                                      MessageBoxIcon.Warning,
			                                      MessageBoxDefaultButton.Button1);
			switch(result) {
				case DialogResult.OK:
					e.Cancel = false;
					break;
				case DialogResult.Cancel:
					e.Cancel = true;
					break;
			}
		}
		
		///<summary>This Event is called if the Report need's Parameters to run a Query,
		/// you can take this as an example how to react to an request for Parameters
		/// The other posibillity is, to fill/change the ParametersCollection by Code or
		/// just write an small Dialog to enter the Parameter values
		/// </summary>
		
		private void OnParametersRequest (object sender,SharpReportParametersEventArgs e) {
			AbstractParametersCollection collection = e.SqlParametersCollection;
			if (collection != null && collection.Count > 0) {
				using (ParameterInput parameterInput = new ParameterInput (e.ReportName,collection)){
					DialogResult result = parameterInput.ShowDialog();
				}
			}
		}
		
		
		
		
		private void OnTabPageChanged (object sender, EventArgs e) {
			string name = Path.GetFileName (base.FileName);
			base.TitleName = name + "[" + tabControl.SelectedTab.Text + "]";
			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();
					this.previewPage.Visible = true;
					break;
				default:
					
					break;
			}
		}
		
		//Something was dropped on the designer
		private void OnItemDragDrop (object sender,ItemDragDropEventArgs e) {
			base.IsDirty = true;
		}
		
		public void OnPropertyChanged (object sender,PropertyChangeEventArgs e) {
			base.IsDirty = true;
		}
		
		private void OnSettingsChanged (object sender,EventArgs e) {
			base.IsDirty = true;
		}
		private void OnModelFileNameChanged (object sender,EventArgs e) {
			base.FileName = designerControl.ReportModel.ReportSettings.FileName;
			base.IsDirty = true;
			this.OnFileNameChanged(e);
		}
		
		
		private void OnObjectSelected (object sender,EventArgs e) {
			if (designerControl.ReportControl.SelectedObject != null) {
				PropertyPad.Grid.SelectedObject = designerControl.ReportControl.SelectedObject;
			}
		}
	
		protected override void OnFileNameChanged(System.EventArgs e) {
			base.OnFileNameChanged(e);
		}

		#endregion
		
		#region Calls from outside commands
		
		/// <summary>
		/// Set PropertyGrid to ReportSettings
		/// </summary>
		public void ShowReportSettings () {
			PropertyPad.Grid.SelectedObject = designerControl.ReportControl.ReportSettings;
			PropertyPad.Grid.Refresh();
		}
	
		
		/// <summary>
		/// Show's Report in PreviewControl
		/// </summary>
		
	
		public void OnPreviewClick () {

			reportManager.NoData -= new SharpReportEventHandler (OnNoDataForReport);
			reportManager.NoData += new SharpReportEventHandler (OnNoDataForReport);
		
			reportManager.ParametersRequest -= new SharpReportParametersEventHandler (OnParametersRequest);
			reportManager.ParametersRequest += new SharpReportParametersEventHandler (OnParametersRequest);
			base.OnSaving(EventArgs.Empty);
			reportManager.ReportPreview (designerControl.ReportModel,
			                             false);
		}

		
		/// <summary>
		/// This Method is called after something has changed like Load a new report
		/// Change Sorting or Grouping etc. to update the View and set the DirtyFlag
		/// </summary>
		/// <param name="setViewDirty">If true, set the DirtyFlag and Fire the PropertyChanged Event</param>
		public void UpdateView(bool setViewDirty) {
				this.tabControl.SelectedIndex = 0;
				this.OnTabPageChanged(this,EventArgs.Empty);
				SetOnPropertyChangedEvents();
				
				this.SetFieldsExplorer();
				
				if (setViewDirty) {
					this.OnPropertyChanged (this,new PropertyChangeEventArgs("Fired from UpdateView"));
				}
		}

		
		#endregion
		
		#region Propertys
		/// <summary>
		/// Returns the complete Designer 
		/// </summary>
		
		public BaseDesignerControl DesignerControl {
			get {
				return designerControl;
			}
		}
		
		///<summary>
		/// returns a ReportManager
		/// </summary>
		
		public SharpReportManager ReportManager {
			get {
				return reportManager;
			}
		}
		
		#endregion
		
		
		#region AbstractViewContent requirements
		/// <summary>
		/// The <see cref="System.Windows.Forms.Control"/> representing the view
		/// </summary>
		public override Control Control {
			get {
				return panel;
			}
		}
		
		public override void RedrawContent() {
			SetHeadLines();
		}
		
		/// <summary>
		/// Save's the Report
		/// </summary>
		/// <param name="fileName"></param>
		public override void Save(string fileName) {
			try {
				designerControl.ReportModel.ReportSettings.FileName = fileName;
				FileUtilityService fileUtilityService = (FileUtilityService)ServiceManager.Services.GetService(typeof(FileUtilityService));
				if (fileUtilityService.IsValidFileName(fileName)) {
					OnSaving(EventArgs.Empty);
					reportManager.SaveToFile (fileName);
					base.IsDirty = false;
					OnSaved(new SaveEventArgs(true));
				} else {
					messageService.ShowError ("<" + fileName + "> invalid Filename");
					base.IsDirty = true;
				}
			} catch (Exception e) {
				MessageBox.Show (e.Message,"View:Save");
				throw;
			}
		}
		
		public override void Save() {
			this.Save (designerControl.ReportModel.ReportSettings.FileName);
		}
		
		/// <summary>
		/// Creates a new SharpReportView object
		/// </summary>
		public SharpReportView():base() {
			GrapServices();
			if (GlobalValues.IsValidPrinter()) {
				InitView();
			} else {
				messageService.ShowError(resourceService.GetString("Sharpreport.Error.NoPrinter"));
			}
		}

		/// <summary>
		/// Loads a new file into View
		/// </summary>
		/// <param name="fileName">A valid Filename</param>
		public override void Load(string fileName){
			try {
				designerControl.ReportControl.ObjectSelected -= new SelectedEventHandler (OnObjectSelected);			
				reportManager.LoadFromFile (fileName);		
				base.FileName = fileName;			
				designerControl.ReportModel.ReportSettings.FileName = fileName;
				designerControl.ReportControl.ObjectSelected += new SelectedEventHandler (OnObjectSelected);
				PropertyPad.Grid.SelectedObject = designerControl.ReportModel.ReportSettings;
				PropertyPad.Grid.Refresh();
				UpdateView(false);
			} catch (Exception e) {
				messageService.ShowError(e.Message);
				throw ;
			}
		}
		
		/// <summary>
		/// Cleans up all used resources
		/// </summary>
		public override void Dispose(){
			try {
				PropertyPad.Grid.SelectedObject = null;
				RemoveSideBarItem();
				this.designerControl.Dispose();
				this.reportManager = null;
			} catch (Exception e){
				messageService.ShowError(e.Message);
				return;
			}
		}
		#endregion
		
		
		
		#region ICSharpCode.SharpDevelop.Gui.IPrintable interface implementation
		public System.Drawing.Printing.PrintDocument PrintDocument {
			get {
//				AbstractRenderer renderer = reportManager.AbstractRenderer(this.designerControl.ReportModel);
				AbstractRenderer renderer = reportManager.GetRenderer(this.designerControl.ReportModel);
				return renderer.ReportDocument;
			}
		}
		
		
		#endregion
		
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -