Browse Source

Update Query Parameter handling

reports
Peter Forstmeier 13 years ago
parent
commit
44820a5724
  1. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs
  2. 16
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs
  3. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
  4. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportManagers/StandartPreviewManager.cs
  5. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs
  6. 9
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs
  7. 33
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs
  8. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs
  9. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/TypeHelpers.cs

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs

@ -28,7 +28,7 @@ namespace ICSharpCode.Reports.Addin.Commands
public override void Run() public override void Run()
{ {
CollectParametersCommand cmd = new CollectParametersCommand(Model); CollectParametersCommand cmd = new CollectParametersCommand(Model.ReportSettings);
cmd.Run(); cmd.Run();
} }

16
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs

@ -63,27 +63,27 @@ namespace ICSharpCode.Reports.Addin.Commands
public class CollectParametersCommand :AbstractCommand public class CollectParametersCommand :AbstractCommand
{ {
ReportModel model; ReportSettings reportSettings;
public CollectParametersCommand (ReportModel model) public CollectParametersCommand (ReportSettings reportSettings)
{ {
if (model == null) { if (reportSettings == null) {
throw new ArgumentNullException("model"); throw new ArgumentNullException("ReportSettings");
} }
this.model = model; this.reportSettings = reportSettings;
} }
public override void Run() public override void Run()
{ {
if (model.ReportSettings.SqlParameters.Count > 0) { if (reportSettings.SqlParameters.Count > 0) {
using (ParameterDialog paramDialog = new ParameterDialog(model.ReportSettings.SqlParameters)) using (ParameterDialog paramDialog = new ParameterDialog(reportSettings.SqlParameters))
{ {
paramDialog.ShowDialog(); paramDialog.ShowDialog();
if (paramDialog.DialogResult == System.Windows.Forms.DialogResult.OK) { if (paramDialog.DialogResult == System.Windows.Forms.DialogResult.OK) {
foreach (SqlParameter bp in paramDialog.SqlParameterCollection) 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; p.ParameterValue = bp.ParameterValue;
} }
} }

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs

@ -561,7 +561,7 @@ namespace ICSharpCode.Reports.Addin
Console.WriteLine(""); Console.WriteLine("");
ReportModel model = loader.CreateRenderableModel(); ReportModel model = loader.CreateRenderableModel();
IReportCreator reportCreator = null; IReportCreator reportCreator = null;
var paramCmd = new CollectParametersCommand(model); var paramCmd = new CollectParametersCommand(model.ReportSettings);
paramCmd.Run(); paramCmd.Run();
switch (model.DataModel) { switch (model.DataModel) {
case GlobalEnums.PushPullModel.FormSheet : case GlobalEnums.PushPullModel.FormSheet :

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportManagers/StandartPreviewManager.cs

@ -64,7 +64,7 @@ namespace ICSharpCode.Reports.Addin
private AbstractRenderer StandartReportRenderer(ReportModel model) 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(); cmd.Run();
return base.SetupStandardRenderer (model,null); return base.SetupStandardRenderer (model,null);
} }

2
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); this.GroupColumnCollection.AddRange(ReportModel.ReportSettings.GroupColumnsCollection);
} }
if (ReportStructure.SqlQueryParameters.Count > 0) { if (ReportStructure.SqlQueryParameters.Count > 0) {
ReportModel.ReportSettings.ParameterCollection.AddRange(ReportStructure.SqlQueryParameters); ReportModel.ReportSettings.SqlParameters.AddRange(ReportStructure.SqlQueryParameters);
} }
} }

9
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 IDatabaseObjectBase IDatabaseObjectBase {get;set;}
// public ParameterCollection SqlQueryParameters {
// get {
// if (this.queryParameters == null) {
// this.queryParameters = new ParameterCollection();
// }
// return queryParameters;
// }
// }
public SqlParameterCollection SqlQueryParameters {get;set;} public SqlParameterCollection SqlQueryParameters {get;set;}
#endregion #endregion

33
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(); DataSet dataSet = ResultPanel.CreateDataSet();
IProcedure procedure = reportStructure.IDatabaseObjectBase as IProcedure; IProcedure procedure = reportStructure.IDatabaseObjectBase as IProcedure;
var paramCollection = CheckParameters(procedure); var sqlParamCollection = CreateSqlParameters(procedure);
if (paramCollection.Count > 0) { if (sqlParamCollection.Count > 0) {
FillParameters(paramCollection); reportStructure.SqlQueryParameters.AddRange(sqlParamCollection);
reportStructure.SqlQueryParameters.AddRange(model.ReportSettings.SqlParameters); model.ReportSettings.SqlParameters.AddRange(sqlParamCollection);
CollectParamValues(model.ReportSettings);
} }
dataSet = dataAccess.ReadData(); dataSet = dataAccess.ReadData();
dataSet.Tables[0].TableName = procedure.Name; dataSet.Tables[0].TableName = procedure.Name;
@ -126,27 +128,18 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
} }
void CollectParamValues(ReportSettings reportSettings){
void FillParameters(ParameterCollection paramCollection)
{ CollectParametersCommand p = new CollectParametersCommand(reportSettings);
foreach (var param in paramCollection) {
SqlParameter s = new SqlParameter()
{
ParameterName = param.ParameterName,
};
model.ReportSettings.SqlParameters.Add(s);
}
CollectParametersCommand p = new CollectParametersCommand(model);
p.Run(); p.Run();
} }
ParameterCollection CheckParameters(IProcedure procedure) SqlParameterCollection CreateSqlParameters(IProcedure procedure)
{ {
ParameterCollection col = new ParameterCollection(); SqlParameterCollection col = new SqlParameterCollection();
SqlParameter par = null; SqlParameter par = null;
foreach (var element in procedure.Items) { foreach (var element in procedure.Items) {
DbType dbType = TypeHelpers.DbTypeFromStringRepresenation(element.DataType); DbType dbType = TypeHelpers.DbTypeFromStringRepresenation(element.DataType);
par = new SqlParameter(element.Name,dbType,"",ParameterDirection.Input); par = new SqlParameter(element.Name,dbType,"",ParameterDirection.Input);
@ -154,9 +147,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
par.ParameterDirection = ParameterDirection.Input; par.ParameterDirection = ParameterDirection.Input;
} else if (element.ParameterMode == ParameterMode. InOut){ } else if (element.ParameterMode == ParameterMode. InOut){
par.ParameterDirection = ParameterDirection.InputOutput; par.ParameterDirection = ParameterDirection.InputOutput;
} }
col.Add(par); col.Add(par);
} }
return col; return col;
} }

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs

@ -43,7 +43,7 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews
{ {
Pages.Clear(); Pages.Clear();
ReportModel model = designerLoader.CreateRenderableModel(); ReportModel model = designerLoader.CreateRenderableModel();
var collectCmd = new CollectParametersCommand(model); var collectCmd = new CollectParametersCommand(model.ReportSettings);
collectCmd.Run(); collectCmd.Run();
switch (model.DataModel) switch (model.DataModel)
{ {

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/TypeHelpers.cs

@ -22,6 +22,8 @@ namespace ICSharpCode.Reports.Core.Project.BaseClasses
{ {
switch (type.ToLower()) switch (type.ToLower())
{ {
case "int":
return DbType.Int16;
case "int16": case "int16":
return DbType.Int16; return DbType.Int16;
case "int32": case "int32":

Loading…
Cancel
Save