/*
* Created by SharpDevelop.
* User: Forstmeier Helmut
* Date: 27.01.2005
* Time: 10:55
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
///
/// Description of GeneratorCommands.
///
using System;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using SharpReport;
using SharpReportCore;
namespace ReportGenerator{
///
/// This Class Create a new Report
///
public class CreateReport : AbstractMenuCommand {
const string WizardPath = "/ReportGenerator/ReportGeneratorWizard";
private ReportModel reportModel;
private Properties customizer = new Properties();
public CreateReport() {
}
public CreateReport(ReportModel reportModel){
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
}
this.reportModel = reportModel;
}
public override void Run(){
ReportGenerator gen = new ReportGenerator();
if (GlobalValues.IsValidPrinter() == true) {
customizer.Set("Generator", gen);
customizer.Set("Language", ".XSD");
using (WizardDialog wizard = new WizardDialog("Report Wizard", customizer, WizardPath)) {
if (wizard.ShowDialog() == DialogResult.OK) {
try {
gen.FillReportModel (reportModel);
DoCreate(reportModel);
} catch (Exception) {
throw;
}
} 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.DataModel;
switch (dataModel) {
case GlobalEnums.enmPushPullModel.PullData:
GeneratePullDataReport generatePullDataReport = new GeneratePullDataReport(customizer,model);
generatePullDataReport.GenerateReport();
break;
case GlobalEnums.enmPushPullModel.PushData:
GeneratePushDataReport generatePushDataReport = new GeneratePushDataReport(customizer,model);
generatePushDataReport.GenerateReport();
break;
case GlobalEnums.enmPushPullModel.FormSheet:
model.ReportSettings.ReportType = GlobalEnums.enmReportType.FormSheet;
break;
}
}
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);
}
}
}
}
}