From 70deb79a76c36f580ff085db1c744597dbd759dc Mon Sep 17 00:00:00 2001 From: peterforstmeier Date: Sat, 30 Jul 2011 20:35:32 +0200 Subject: [PATCH] ReportExplorer show GroupNode and childs --- .../SQLServerDatabaseDriver.cs | 6 +- .../Project/ReportExplorer/ExplorerNodes.cs | 9 ++ .../Project/ReportExplorer/ExplorerTree.cs | 97 ++++++++++--------- .../Project/BaseClasses/ExtensionMethodes.cs | 2 +- .../ListStrategy/BaseListStrategy.cs | 3 +- .../Exporter/ExportColumns/ExportContainer.cs | 6 +- .../ExportColumns/ExportGraphicContainer.cs | 8 +- 7 files changed, 72 insertions(+), 59 deletions(-) diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.SQLServer/SQLServerDatabaseDriver.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.SQLServer/SQLServerDatabaseDriver.cs index 1b11787e26..6d7f5de997 100644 --- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.SQLServer/SQLServerDatabaseDriver.cs +++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.SQLServer/SQLServerDatabaseDriver.cs @@ -177,7 +177,11 @@ namespace ICSharpCode.Data.Core.DatabaseDrivers.SQLServer SqlConnection sqlConnection = null; sqlConnection = new SqlConnection(); sqlConnection.ConnectionString = datasource.ConnectionString; - + + var sq = new System.Data.SqlClient.SqlConnectionStringBuilder(); + sq.ConnectionString = sqlConnection.ConnectionString; + + try { sqlConnection.Open(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerNodes.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerNodes.cs index f9167ad8cf..6dc7639001 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerNodes.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerNodes.cs @@ -90,6 +90,11 @@ namespace ICSharpCode.Reports.Addin { ListSortDirection listSortDirection; + public SortColumnNode(string nodeName,string contextMenuPath):this(nodeName,0,contextMenuPath) + { + + } + public SortColumnNode(string nodeName,int imageIndex,string contextMenuPath):base(nodeName,contextMenuPath) { this.ImageIndex = imageIndex; @@ -107,6 +112,10 @@ namespace ICSharpCode.Reports.Addin internal class GroupColumnNode:SortColumnNode { + public GroupColumnNode (string nodeName,string contextMenuPath):this(nodeName,0,contextMenuPath) + { + + } public GroupColumnNode (string nodeName,int imageIndex,string contextMenuPath):base(nodeName,imageIndex,contextMenuPath) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerTree.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerTree.cs index 70bec05113..08a785e2a9 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerTree.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerTree.cs @@ -5,12 +5,12 @@ using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; - +using System.Linq; using ICSharpCode.Core; using ICSharpCode.Core.WinForms; using ICSharpCode.Reports.Core; using ICSharpCode.SharpDevelop; - +using ICSharpCode.Reports.Core.BaseClasses; namespace ICSharpCode.Reports.Addin { @@ -19,9 +19,11 @@ namespace ICSharpCode.Reports.Addin /// internal class ExplorerTree:TreeView,INotifyPropertyChanged { - private const string sortColumnMenu = "/SharpDevelopReports/ContextMenu/FieldsExplorer/ColumnSortTreeNode"; + private const string sortColumnMenuPath = "/SharpDevelopReports/ContextMenu/FieldsExplorer/ColumnSortTreeNode"; private const string sectionContextMenu = "/SharpDevelopReports/ContextMenu/FieldsExplorer/SectionTreeNode"; private const string parameterEditorMenu = "/SharpDevelopReports/ContextMenu/FieldsExplorer/ParameterNode"; + private const string groupContextMenuPath ="/SharpDevelopReports/ContextMenu/FieldsExplorer/ColumnGroupTreeNode"; + private SectionNode nodeRoot; private SectionNode nodeModel; @@ -130,7 +132,7 @@ namespace ICSharpCode.Reports.Addin { SortColumnNode sortNode = new SortColumnNode (node.Text, ExplorerTree.ascendingIcon, - ExplorerTree.sortColumnMenu); + ExplorerTree.sortColumnMenuPath); sortNode.SortDirection = ListSortDirection.Ascending; this.SelectedNode = sortNode; @@ -147,7 +149,7 @@ namespace ICSharpCode.Reports.Addin { this.nodeSorting.Nodes.Clear(); GroupColumnNode groupNode = new GroupColumnNode(node.Text,ExplorerTree.ascendingIcon, - ExplorerTree.sortColumnMenu); + ExplorerTree.sortColumnMenuPath); groupNode.SortDirection = ListSortDirection.Ascending; this.SelectedNode = groupNode; sectionNode.Nodes.Add(groupNode); @@ -284,37 +286,44 @@ namespace ICSharpCode.Reports.Addin #region FillTree - - private void SetSortColumns() - { - this.nodeSorting.Nodes.Clear(); - SortColumnNode scn = null; - foreach (SortColumn sc in this.reportModel.ReportSettings.SortColumnsCollection){ - if (sc.SortDirection == ListSortDirection.Ascending) { - scn = new SortColumnNode (sc.ColumnName,ascendingIcon,"/SharpDevelopReports/ContextMenu/FieldsExplorer/ColumnSortTreeNode"); - } else { - scn = new SortColumnNode (sc.ColumnName,descendingIcon,"/SharpDevelopReports/ContextMenu/FieldsExplorer/ColumnSortTreeNode"); - } - this.nodeSorting.Nodes.Add(scn); - } - } - + private void SetGroupColumns() { - this.nodeGrouping.Nodes.Clear(); - GroupColumnNode groupNode = null; foreach (GroupColumn groupColumn in this.reportModel.ReportSettings.GroupColumnsCollection) { + var groupNode = new GroupColumnNode(groupColumn.ColumnName,groupContextMenuPath); if (groupColumn.SortDirection == ListSortDirection.Ascending) { - groupNode = new GroupColumnNode (groupColumn.ColumnName,ascendingIcon,"/SharpDevelopReports/ContextMenu/FieldsExplorer/ColumnGroupTreeNode"); + groupNode.ImageIndex = ascendingIcon; } else { - groupNode = new GroupColumnNode (groupColumn.ColumnName,descendingIcon,"/SharpDevelopReports/ContextMenu/FieldsExplorer/ColumnGroupTreeNode"); + groupNode.ImageIndex = descendingIcon; } this.nodeGrouping.Nodes.Add(groupNode); + foreach (var p in this.reportModel.ReportSettings.AvailableFieldsCollection.Where(p => (p.ColumnName != groupColumn.ColumnName))) + { + var cn = new ColumnNode(p.ColumnName,columnIcon); + groupNode.Nodes.Add(cn); + } } - } + + public void BuildTree () + { + this.BeginUpdate(); + this.nodeAvailableFields.Nodes.Clear(); + this.nodeSorting.Nodes.Clear(); + this.nodeGrouping.Nodes.Clear(); + this.nodeParams.Nodes.Clear(); + this.reportModel.ReportSettings.AvailableFieldsCollection.ForEach(SetAvailableFields); + this.reportModel.ReportSettings.SortColumnsCollection.ForEach(SetSortColumns); + SetGroupColumns(); + this.reportModel.ReportSettings.ParameterCollection.ForEach(SetParams); +// SetFunctions(); + this.ExpandAll(); + this.EndUpdate(); + } + + private void SetAvailableFields (AbstractColumn af) { ColumnNode node = new ColumnNode(af.ColumnName,columnIcon); @@ -324,32 +333,31 @@ namespace ICSharpCode.Reports.Addin } - private void SetParameters () + private void SetSortColumns (AbstractColumn column) { - this.nodeParams.Nodes.Clear(); - foreach (BasicParameter p in this.reportModel.ReportSettings.ParameterCollection) - { - string s = String.Format(System.Globalization.CultureInfo.CurrentCulture, - "{0}[{1}]",p.ParameterName,p.ParameterValue); - ParameterNode node = new ParameterNode(s,columnIcon); - this.nodeParams.Nodes.Add(node); + SortColumn sortColumn = column as SortColumn; + + if (sortColumn != null) { + var sortColumnNode = new SortColumnNode (sortColumn.ColumnName,sortColumnMenuPath); + + if (sortColumn.SortDirection == ListSortDirection.Ascending) { + sortColumnNode.ImageIndex = ascendingIcon; + } else { + sortColumnNode.ImageIndex = descendingIcon; + } + this.nodeSorting.Nodes.Add(sortColumnNode); } + } - - public void BuildTree () + private void SetParams (BasicParameter p) { - this.BeginUpdate(); - this.reportModel.ReportSettings.AvailableFieldsCollection.ForEach(SetAvailableFields); - SetSortColumns(); - SetGroupColumns(); - SetParameters(); -// SetFunctions(); - this.ExpandAll(); - this.EndUpdate(); + string s = String.Format(System.Globalization.CultureInfo.CurrentCulture, + "{0}[{1}]",p.ParameterName,p.ParameterValue); + ParameterNode node = new ParameterNode(s,columnIcon); + this.nodeParams.Nodes.Add(node); } - #endregion #region Build Basic Tree @@ -394,7 +402,6 @@ namespace ICSharpCode.Reports.Addin nodeParams.SelectedImageIndex = folderOpen; nodeParams.ContextMenuAddinTreePath = ExplorerTree.parameterEditorMenu; - this.nodeModel.Nodes.Add(this.nodeParams); this.nodeRoot.Nodes.Add(nodeModel); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/ExtensionMethodes.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/ExtensionMethodes.cs index 3f68af3436..ca3e45280a 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/ExtensionMethodes.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/ExtensionMethodes.cs @@ -11,7 +11,7 @@ using System.Collections.Generic; using System.Windows; using System.Windows.Media; -namespace ICSharpCode.Reports.Core +namespace ICSharpCode.Reports.Core.BaseClasses { /// /// Description of ExtensionMethodes. diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs index 088e08ff78..61e3fb86e6 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs @@ -96,8 +96,7 @@ namespace ICSharpCode.Reports.Core { } CreateGroupedChildren(childList,element); compVal = groupValue; - } -// ShowIndexList(IndexList); + } ShowIndexList(IndexList); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs index e7c6f11a92..48df12e513 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs @@ -3,6 +3,7 @@ using System; using System.Drawing; +using ICSharpCode.Reports.Core.BaseClasses; using iTextSharp.text.pdf; namespace ICSharpCode.Reports.Core.Exporter @@ -32,12 +33,7 @@ namespace ICSharpCode.Reports.Core.Exporter } base.DrawItem(graphics); base.Decorate(graphics); - items.ForEach(item =>item.DrawItem(graphics)); -// foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in items) -// { -// baseExportColumn.DrawItem(graphics); -// } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphicContainer.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphicContainer.cs index b9ab9f0e9c..f7691ee1a1 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphicContainer.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphicContainer.cs @@ -8,9 +8,11 @@ */ using System; using System.Drawing; +using System.Linq; + +using ICSharpCode.Reports.Core.BaseClasses; using ICSharpCode.Reports.Core.Globals; using iTextSharp.text.pdf; -using System.Linq; namespace ICSharpCode.Reports.Core.Exporter { @@ -46,10 +48,6 @@ namespace ICSharpCode.Reports.Core.Exporter style.DisplayRectangle); } Items.ForEach(item =>item.DrawItem(graphics)); -// foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in Items) -// { -// baseExportColumn.DrawItem(graphics); -// } } }