diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs index 94af309b46..51e51f8016 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs @@ -28,7 +28,7 @@ namespace ICSharpCode.Reports.Addin.Commands public override void Run() { - CollectParametersCommand cmd = new CollectParametersCommand(Model); + CollectParametersCommand cmd = new CollectParametersCommand(Model.ReportSettings); cmd.Run(); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs index 7c9717c623..a414cfbd47 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs @@ -63,27 +63,27 @@ namespace ICSharpCode.Reports.Addin.Commands public class CollectParametersCommand :AbstractCommand { - ReportModel model; + ReportSettings reportSettings; - public CollectParametersCommand (ReportModel model) + public CollectParametersCommand (ReportSettings reportSettings) { - if (model == null) { - throw new ArgumentNullException("model"); + if (reportSettings == null) { + throw new ArgumentNullException("ReportSettings"); } - this.model = model; + this.reportSettings = reportSettings; } public override void Run() { - if (model.ReportSettings.SqlParameters.Count > 0) { - using (ParameterDialog paramDialog = new ParameterDialog(model.ReportSettings.SqlParameters)) + if (reportSettings.SqlParameters.Count > 0) { + using (ParameterDialog paramDialog = new ParameterDialog(reportSettings.SqlParameters)) { paramDialog.ShowDialog(); if (paramDialog.DialogResult == System.Windows.Forms.DialogResult.OK) { foreach (SqlParameter bp in paramDialog.SqlParameterCollection) { - var p = model.ReportSettings.SqlParameters.Find (bp.ParameterName); + var p = reportSettings.SqlParameters.Find (bp.ParameterName); p.ParameterValue = bp.ParameterValue; } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs index 53f83fb0b9..d56c8500f8 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs @@ -561,7 +561,7 @@ namespace ICSharpCode.Reports.Addin Console.WriteLine(""); ReportModel model = loader.CreateRenderableModel(); IReportCreator reportCreator = null; - var paramCmd = new CollectParametersCommand(model); + var paramCmd = new CollectParametersCommand(model.ReportSettings); paramCmd.Run(); switch (model.DataModel) { case GlobalEnums.PushPullModel.FormSheet : diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportManagers/StandartPreviewManager.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportManagers/StandartPreviewManager.cs index 3f82e9e7eb..f47724b582 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportManagers/StandartPreviewManager.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportManagers/StandartPreviewManager.cs @@ -64,7 +64,7 @@ namespace ICSharpCode.Reports.Addin private AbstractRenderer StandartReportRenderer(ReportModel model) { - ICSharpCode.Reports.Addin.Commands.CollectParametersCommand cmd = new ICSharpCode.Reports.Addin.Commands.CollectParametersCommand(model); + ICSharpCode.Reports.Addin.Commands.CollectParametersCommand cmd = new ICSharpCode.Reports.Addin.Commands.CollectParametersCommand(model.ReportSettings); cmd.Run(); return base.SetupStandardRenderer (model,null); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs index ad7802e22c..ea921b2824 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs @@ -63,7 +63,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard this.GroupColumnCollection.AddRange(ReportModel.ReportSettings.GroupColumnsCollection); } if (ReportStructure.SqlQueryParameters.Count > 0) { - ReportModel.ReportSettings.ParameterCollection.AddRange(ReportStructure.SqlQueryParameters); + ReportModel.ReportSettings.SqlParameters.AddRange(ReportStructure.SqlQueryParameters); } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs index a3ab3187a8..26fcab164b 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs @@ -101,14 +101,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public IDatabaseObjectBase IDatabaseObjectBase {get;set;} -// public ParameterCollection SqlQueryParameters { -// get { -// if (this.queryParameters == null) { -// this.queryParameters = new ParameterCollection(); -// } -// return queryParameters; -// } -// } + public SqlParameterCollection SqlQueryParameters {get;set;} #endregion diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs index cdf772d0e9..ae32627c38 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs @@ -114,11 +114,13 @@ namespace ICSharpCode.Reports.Addin.ReportWizard DataSet dataSet = ResultPanel.CreateDataSet(); IProcedure procedure = reportStructure.IDatabaseObjectBase as IProcedure; - var paramCollection = CheckParameters(procedure); + var sqlParamCollection = CreateSqlParameters(procedure); - if (paramCollection.Count > 0) { - FillParameters(paramCollection); - reportStructure.SqlQueryParameters.AddRange(model.ReportSettings.SqlParameters); + if (sqlParamCollection.Count > 0) { + reportStructure.SqlQueryParameters.AddRange(sqlParamCollection); + model.ReportSettings.SqlParameters.AddRange(sqlParamCollection); + CollectParamValues(model.ReportSettings); + } dataSet = dataAccess.ReadData(); dataSet.Tables[0].TableName = procedure.Name; @@ -126,27 +128,18 @@ namespace ICSharpCode.Reports.Addin.ReportWizard } - - void FillParameters(ParameterCollection paramCollection) - { - foreach (var param in paramCollection) { - SqlParameter s = new SqlParameter() - { - ParameterName = param.ParameterName, - }; - model.ReportSettings.SqlParameters.Add(s); - } - CollectParametersCommand p = new CollectParametersCommand(model); + void CollectParamValues(ReportSettings reportSettings){ + + CollectParametersCommand p = new CollectParametersCommand(reportSettings); p.Run(); } - ParameterCollection CheckParameters(IProcedure procedure) + SqlParameterCollection CreateSqlParameters(IProcedure procedure) { - ParameterCollection col = new ParameterCollection(); + SqlParameterCollection col = new SqlParameterCollection(); SqlParameter par = null; foreach (var element in procedure.Items) { - DbType dbType = TypeHelpers.DbTypeFromStringRepresenation(element.DataType); par = new SqlParameter(element.Name,dbType,"",ParameterDirection.Input); @@ -154,9 +147,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard par.ParameterDirection = ParameterDirection.Input; } else if (element.ParameterMode == ParameterMode. InOut){ - par.ParameterDirection = ParameterDirection.InputOutput; + par.ParameterDirection = ParameterDirection.InputOutput; } - col.Add(par); + col.Add(par); } return col; } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs index af56f0f73d..74be8e31de 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs @@ -43,7 +43,7 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews { Pages.Clear(); ReportModel model = designerLoader.CreateRenderableModel(); - var collectCmd = new CollectParametersCommand(model); + var collectCmd = new CollectParametersCommand(model.ReportSettings); collectCmd.Run(); switch (model.DataModel) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/TypeHelpers.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/TypeHelpers.cs index 4327a5cd43..4668ff3038 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/TypeHelpers.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/TypeHelpers.cs @@ -22,6 +22,8 @@ namespace ICSharpCode.Reports.Core.Project.BaseClasses { switch (type.ToLower()) { + case "int": + return DbType.Int16; case "int16": return DbType.Int16; case "int32":