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

📄 sharpreportview.cs

📁 SharpDevelop2.0.0 c#开发免费工具
💻 CS
📖 第 1 页 / 共 2 页
字号:
				using (ParameterInput parameterInput = new ParameterInput (e.ReportName,collection)){
					DialogResult result = parameterInput.ShowDialog();
				}
			}
		}
		
		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
		private void OnItemDragDrop (object sender,ItemDragDropEventArgs e) {
			base.IsDirty = true;
		}
		
		private void OnPropertyChanged (object sender,
		                                System.ComponentModel.PropertyChangedEventArgs e) {
			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) {
				base.IsDirty = true;
				this.OnFileNameChanged(e);
				this.SetTabTitel(Path.GetFileName (base.FileName));
			}
		}
		
		
		private void OnObjectSelected (object sender,EventArgs e) {
			
			if (designerControl.ReportControl.SelectedObject != null) {
				BaseReportObject newobj = designerControl.ReportControl.SelectedObject;
				newobj.ResumeLayout();
				
				if (PropertyPad.Grid != null) {
					PropertyPad.Grid.SelectedObject = designerControl.ReportControl.SelectedObject;
				}
				
			}
		}
	
		
		#endregion
		
		#region Calls from outside commands
		
		/// <summary>
		/// Set PropertyGrid to ReportSettings
		/// </summary>
		public void ShowReportSettings () {
			if (PropertyPad.Grid != null) {
				PropertyPad.Grid.SelectedObject = designerControl.ReportControl.ReportSettings;
				PropertyPad.Grid.Refresh();
			}
		}
		
		
		/// <summary>
		/// Show's Report in PreviewControl
		/// </summary>
		
		public void OnPreviewClick () {
			reportManager.NoData -= new EventHandler<SharpReportEventArgs> (OnNoDataForReport);
			reportManager.NoData += new EventHandler<SharpReportEventArgs> (OnNoDataForReport);
			
			reportManager.ParametersRequest -= new EventHandler<SharpReportParametersEventArgs> (OnParametersRequest);
			reportManager.ParametersRequest +=  new EventHandler<SharpReportParametersEventArgs>(OnParametersRequest);
			base.OnSaving(EventArgs.Empty);
			this.RunPreview(false);
		}
		
		/// <summary>
		/// Remove the selected Item from <see cref="BaseDesignerControl"></see>
		/// </summary>
	
		public void RemoveSelectedItem () {
			this.designerControl.RemoveSelectedItem ();
		}
		
		/// <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();
			if (setViewDirty) {
				this.OnPropertyChanged (this,new System.ComponentModel.PropertyChangedEventArgs("Fired from UpdateView"));
			}
		}
		
		/// <summary>
		/// Tells the <see cref="BaseDesignerControl"></see> to fire an Event if 
		/// something in the report layout changes
		/// </summary>
		
		public void RegisterPropertyChangedEvents () {
			SetOnPropertyChangedEvents();
			this.designerControl.RegisterEvents();
		}
		
		#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;
			}
		}
		
		public bool Disposed {
			get {
				return disposed;
			}
		}
		#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;
				
				if (FileUtility.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) {
				MessageService.ShowError(e,"SharpReportView:Save");
				throw;
			}
		}
		
		
		public override void Save() {
			this.Save (designerControl.ReportModel.ReportSettings.FileName);
		}
		
		/// <summary>
		/// Creates a new SharpReportView object
		/// </summary>
		public SharpReportView():base() {
			if (GlobalValues.IsValidPrinter()) {
				InitView();
				this.UpdateView(false);
			} 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 EventHandler <EventArgs>(OnObjectSelected);
				reportManager.LoadFromFile (fileName);
				base.FileName = fileName;
				designerControl.ReportModel.ReportSettings.FileName = fileName;
				designerControl.ReportControl.ObjectSelected += new EventHandler <EventArgs>(OnObjectSelected);
				if (PropertyPad.Grid != null) {
					PropertyPad.Grid.SelectedObject = designerControl.ReportModel.ReportSettings;
					PropertyPad.Grid.Refresh();
				}
				this.designerControl.ReportModel.ReportSettings.AvailableFieldsCollection = reportManager.AvailableFieldsCollection;
//				this.designerControl.RegisterEvents();
				
			} catch (Exception e) {
				MessageService.ShowError(e,"SharpReportView:Load");
				throw ;
			}
		}
		
		
		#endregion
		
		#region ICSharpCode.SharpDevelop.Gui.IPrintable interface implementation
		
		public System.Drawing.Printing.PrintDocument PrintDocument {
			get {
				AbstractRenderer renderer;
				if (this.designerControl.ReportModel.DataModel == GlobalEnums.enmPushPullModel.PushData) {
					renderer = reportManager.GetRendererForPushDataReports(this.designerControl.ReportModel,
					                                                       SharpReportView.DataSetFromFile());
					
				} else {
					renderer = reportManager.GetRendererForStandartReports(this.designerControl.ReportModel);
				}
				return renderer.ReportDocument;
			}
		}
		
		
		#endregion
		
		#region IDisposable
		
		public override void Dispose(){
			if (PropertyPad.Grid != null) {
				PropertyPad.Grid.SelectedObject = null;
			}
			this.disposed = true;
			RemoveSideBarItem();
			this.Dispose(true);
			GC.SuppressFinalize(this);
		}
		
		~SharpReportView(){
			Dispose(false);
		}
		
		protected  void Dispose(bool disposing){
			if (disposing) {
				// Free other state (managed objects).
				if (this.reportManager != null) {
					this.reportManager.Dispose();
				}
				if (this.designerControl != null) {
					this.designerControl.Dispose();
				}

				if (this.panel != null) {
					this.panel.Dispose();
				}
			}
			
			// Release unmanaged resources.
			// Set large fields to null.
			// Call Dispose on your base class.
			base.Dispose();
		}
		
		#endregion
	}
	
}

⌨️ 快捷键说明

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