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

📄 generatorcommands.cs

📁 c#源代码
💻 CS
字号:
/*
 * Created by SharpDevelop.
 * User: Forstmeier Helmut
 * Date: 27.01.2005
 * Time: 10:55
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */


	/// <summary>
	/// Description of GeneratorCommands.
	/// </summary>
using System;
using System.Windows.Forms;
using System.Drawing.Printing;

using System.Data;
using System.Data.OleDb;

using ICSharpCode.Core.AddIns;
using ICSharpCode.Core.Properties;
using ICSharpCode.Core.AddIns.Codons;
using ICSharpCode.Core.Services;

using ICSharpCode.SharpDevelop.Gui.Dialogs;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Services;

using SharpReport;
using SharpReportCore;

using SharpReport.Designer;

using SharpQuery.SchemaClass;
using SharpQuery.Collections;
using System.Diagnostics;

namespace ReportGenerator{
	
	/// <summary>
	/// This Class Create a new Report
	/// </summary>
	public class CreateReport : AbstractMenuCommand {
		const string WizardPath = "/ReportGenerator/ReportGeneratorWizard";
		
		private ReportModel reportModel = null;
		private IMessageService messageService;
		private IProperties customizer = new DefaultProperties();
		
		public CreateReport() {	
		}
		
		public CreateReport(ReportModel reportModel){
			this.reportModel = reportModel;
			messageService =(IMessageService)ServiceManager.Services.GetService(typeof(IMessageService));
		}
		
		public override void Run(){
			ReportGenerator gen = new ReportGenerator();
			if (GlobalValues.IsValidPrinter() == true) {
				customizer.SetProperty("Generator", gen);
				customizer.SetProperty("Language",  ".XSD");
				using (WizardDialog wizard = new WizardDialog("Report Wizard", customizer, WizardPath)) {
					if (wizard.ShowDialog() == DialogResult.OK) {
						Debug.Assert (reportModel != null,"No report model");
						try {
							gen.FillReportModel (reportModel);
							DoCreate(reportModel);
						} catch (Exception e) {
							messageService.ShowError (e,e.Message);
							return;
						}
					} else {
						throw new SharpReportException("Chancel");
					}
				}
			} else {
				messageService.ShowError("We need at least one installed Printer to run SharpReport");
			}
		}
		
		void DoCreate (ReportModel model) {
			GlobalEnums.enmPushPullModel dataModel;
			dataModel = model.ReportSettings.DataModel;
			switch (dataModel) {
				case GlobalEnums.enmPushPullModel.PullData:
					GeneratePullReport (model);
					break;
				case GlobalEnums.enmPushPullModel.PushData:
					GeneratePushReport (model);
					break;
				case GlobalEnums.enmPushPullModel.FormSheet:
					GenerateFormSheet (model);
					break;
			}
		}
		
		
		/// <summary>
		/// Generate a report
		/// Pull - Report fill's data be themselve
		/// </summary>
		/// <param name="model">ReportModel</param>
		
		void GeneratePullReport (ReportModel model) {
			
			try {
				ReportGenerator reportGenerator = (ReportGenerator)customizer.GetProperty("Generator");
				GeneratePullDataReport generator = new GeneratePullDataReport(customizer,model);
				if (generator != null) {
					generator.GenerateReport();
				} else {
					throw new NullReferenceException ("GeneratePullDataReport");
				}
			} catch (Exception e) {
				throw e;
			}
		}
		
		/// <summary>
		/// Push Model Report 
		/// Report is created by an .Xsd File 
		/// </summary>
		/// <param name="model">ReportModel</param> 
		void GeneratePushReport (ReportModel model) {
			
			try {
				ReportGenerator reportGenerator = (ReportGenerator)customizer.GetProperty("Generator");
				GeneratePushDataReport generator = new GeneratePushDataReport(customizer,model);
				if (generator != null) {
					generator.GenerateReport();
				} else {
					throw new NullReferenceException ("GeneratePullDataReport");
				}
			} catch (Exception) {
				throw;
			}
		}
		
		
		
		void GenerateFormSheet (ReportModel model) {
			if (model.ReportSettings.DataModel != GlobalEnums.enmPushPullModel.FormSheet) {
				throw new ArgumentException ("Wrong DataModel in GenerateFormSheet");
			}
			
			try {
				model.ReportSettings.ReportType = GlobalEnums.enmReportType.FormSheet;
				SharpReportManager manager = new SharpReportManager();
			} catch (Exception e) {
				throw e;
			}
		}
	}
	
	public class WriteXsdComplete : AbstractMenuCommand {
		public override void Run() {
			ResultPanel resultPanel = base.Owner as ResultPanel;
			if (resultPanel != null) {
				resultPanel.SaveXsdFile (false);
			}
			
		}
	}
	
	public class WriteXsdSchema : AbstractMenuCommand {
		public override void Run() {
			ResultPanel resultPanel = base.Owner as ResultPanel;
			if (resultPanel != null) {
				resultPanel.SaveXsdFile (true);
			}
			
		}
	
		
	}
}

⌨️ 快捷键说明

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