From e61da9ac974dc58bce69db75e0949668849ceac0 Mon Sep 17 00:00:00 2001 From: peterforstmeier Date: Sun, 27 Feb 2011 19:23:56 +0100 Subject: [PATCH] Crash if DraggedColumn in PullModelPanel.cs is a ForeignKey-Column --- .../WizardPanels/PullModelPanel.cs | 38 +++++++++---------- .../ReportWizard/WizardPanels/ResultPanel.cs | 4 +- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs index 3249b7798f..f9452aa30c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs @@ -34,14 +34,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private ElementHost databasesTreeHost; private DatabasesTreeView databasesTree; - private enum NodeType { - -// DataBaseRoot, -// dataBaseConnctionClose, -// dataBaseConnection, -// tablesRoot, -// viewsRoot, -// proceduresRoot, + private enum NodeType + { TableImage, ViewImage, ProcedureImage, @@ -89,7 +83,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard if (message == DialogMessage.Next) { customizer.Set("SqlString", this.txtSqlString.Text.Trim()); - //reportStructure.CommandType = commandType; reportStructure.SqlString = this.txtSqlString.Text.Trim(); reportStructure.ConnectionString = connectionString; base.EnableFinish = true; @@ -196,7 +189,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard this.txtSqlString.AppendText(colName); } reportStructure.CommandType = CommandType.Text; - reportStructure.IDatabaseObjectBase = column; + if (reportStructure.IDatabaseObjectBase == null) + { + reportStructure.IDatabaseObjectBase = column; + } break; case NodeType.ProcedureImage: @@ -208,12 +204,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard reportStructure.CommandType = CommandType.StoredProcedure; reportStructure.IDatabaseObjectBase = procedure; break; -/* - case NodeType.ViewImage: - this.txtSqlString.Text = String.Empty; - this.txtSqlString.Text = "No idea how to handle views"; - break; - */ default: break; } @@ -223,7 +213,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private void databasesTree_SelectedItemChanged(object sender, System.Windows.RoutedPropertyChangedEventArgs e) { - if (e.NewValue is IDatabaseObjectBase) + if (e.NewValue is IDatabaseObjectBase) { IDatabase parentDatabase = e.NewValue as IDatabase; @@ -251,11 +241,16 @@ namespace ICSharpCode.Reports.Addin.ReportWizard if (this.currentNode is IDatabase) { - this.connectionString = "Provider=" + parentDatabase.Datasource.DatabaseDriver.ODBCProviderName + ";" + parentDatabase.ConnectionString; - this.txtSqlString.Enabled = true; + if (parentDatabase != null) + { + this.connectionString = "Provider=" + parentDatabase.Datasource.DatabaseDriver.ODBCProviderName + ";" + parentDatabase.ConnectionString; + this.txtSqlString.Enabled = true; - if (this.firstDrag) - this.txtSqlString.Text = string.Empty; + if (this.firstDrag) + this.txtSqlString.Text = string.Empty; + + firstDrag = false; + } } else { @@ -264,6 +259,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard } } + /// /// We check if a ColumnName includes an "-" Character, /// if so, suround it with [] 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 6cb75cfb92..ff7e617585 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 @@ -105,9 +105,11 @@ namespace ICSharpCode.Reports.Addin.ReportWizard if (t != null) { str = t.Name; } + else { - str = reportStructure.IDatabaseObjectBase.Parent.Name; + //str = reportStructure.IDatabaseObjectBase.Parent.Name; + str = "Table1"; } return str; }