Browse Source

Using Data Add-In now for building SQL queries in SDR.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/reports@6177 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Philipp Maihart 16 years ago
parent
commit
cac19897f3
  1. 197
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj
  2. 253
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs

197
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj

@ -19,6 +19,21 @@
<OutputPath>..\..\..\..\..\AddIns\AddIns\Misc\SharpDevelopReports\</OutputPath> <OutputPath>..\..\..\..\..\AddIns\AddIns\Misc\SharpDevelopReports\</OutputPath>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<SourceAnalysisOverrideSettingsFile>"C:\Program Files\SharpDevelop\bin\..\AddIns\AddIns\Misc\SourceAnalysis\Settings.SourceAnalysis"</SourceAnalysisOverrideSettingsFile> <SourceAnalysisOverrideSettingsFile>"C:\Program Files\SharpDevelop\bin\..\AddIns\AddIns\Misc\SourceAnalysis\Settings.SourceAnalysis"</SourceAnalysisOverrideSettingsFile>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<Optimize>False</Optimize> <Optimize>False</Optimize>
@ -28,6 +43,7 @@
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow> <CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
<StartAction>Project</StartAction> <StartAction>Project</StartAction>
<StartProgram>..\..\..\..\..\bin\SharpDevelop.exe</StartProgram> <StartProgram>..\..\..\..\..\bin\SharpDevelop.exe</StartProgram>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' "> <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<Optimize>True</Optimize> <Optimize>True</Optimize>
@ -35,17 +51,21 @@
<DebugSymbols>False</DebugSymbols> <DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType> <DebugType>None</DebugType>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow> <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="itextsharp"> <Reference Include="itextsharp">
<HintPath>..\Libraries\itextsharp.dll</HintPath> <HintPath>..\Libraries\itextsharp.dll</HintPath>
</Reference> </Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core"> <Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework> <RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference> </Reference>
<Reference Include="System.Design" /> <Reference Include="System.Design" />
<Reference Include="System.Drawing.Design" /> <Reference Include="System.Drawing.Design" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
@ -53,6 +73,8 @@
<Reference Include="System.Xml.Linq"> <Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework> <RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference> </Reference>
<Reference Include="WindowsBase" />
<Reference Include="WindowsFormsIntegration" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="..\..\..\..\Main\GlobalAssemblyInfo.cs"> <Compile Include="..\..\..\..\Main\GlobalAssemblyInfo.cs">
@ -71,7 +93,9 @@
<Compile Include="Project\Designer\ImageDesigner.cs" /> <Compile Include="Project\Designer\ImageDesigner.cs" />
<Compile Include="Project\Designer\LineDesigner.cs" /> <Compile Include="Project\Designer\LineDesigner.cs" />
<Compile Include="Project\Designer\RowItemDesigner.cs" /> <Compile Include="Project\Designer\RowItemDesigner.cs" />
<Compile Include="Project\Designer\Ruler.cs" /> <Compile Include="Project\Designer\Ruler.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Project\Designer\SectionDesigner.cs" /> <Compile Include="Project\Designer\SectionDesigner.cs" />
<Compile Include="Project\Commands\FormsCommand.cs" /> <Compile Include="Project\Commands\FormsCommand.cs" />
<Compile Include="Project\Commands\ViewCommands.cs" /> <Compile Include="Project\Commands\ViewCommands.cs" />
@ -85,11 +109,15 @@
<Compile Include="Project\Designer\SmartTagTransactions.cs" /> <Compile Include="Project\Designer\SmartTagTransactions.cs" />
<Compile Include="Project\Designer\TextBasedDesignerActionList.cs" /> <Compile Include="Project\Designer\TextBasedDesignerActionList.cs" />
<Compile Include="Project\Designer\TextItemDesigner.cs" /> <Compile Include="Project\Designer\TextItemDesigner.cs" />
<Compile Include="Project\Designer\RootDesigner\ReportItemsContainer.cs" /> <Compile Include="Project\Designer\RootDesigner\ReportItemsContainer.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Project\Designer\RootDesigner\ReportRootDesigner.cs" /> <Compile Include="Project\Designer\RootDesigner\ReportRootDesigner.cs" />
<Compile Include="Project\Designer\ShapeDesigner.cs" /> <Compile Include="Project\Designer\ShapeDesigner.cs" />
<Compile Include="Project\Designer\TableDesigner.cs" /> <Compile Include="Project\Designer\TableDesigner.cs" />
<Compile Include="Project\Dialogs\ExpressionEditor.cs" /> <Compile Include="Project\Dialogs\ExpressionEditor.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Project\Dialogs\ExpressionEditor.Designer.cs"> <Compile Include="Project\Dialogs\ExpressionEditor.Designer.cs">
<DependentUpon>ExpressionEditor.cs</DependentUpon> <DependentUpon>ExpressionEditor.cs</DependentUpon>
</Compile> </Compile>
@ -98,19 +126,43 @@
<Compile Include="Project\Globals\StringWriterWithEncoding.cs" /> <Compile Include="Project\Globals\StringWriterWithEncoding.cs" />
<Compile Include="Project\ReportDesignerView.cs" /> <Compile Include="Project\ReportDesignerView.cs" />
<Compile Include="Project\ReportExplorer\ExplorerNodes.cs" /> <Compile Include="Project\ReportExplorer\ExplorerNodes.cs" />
<Compile Include="Project\ReportExplorer\ExplorerTree.cs" /> <Compile Include="Project\ReportExplorer\ExplorerTree.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Project\ReportExplorer\ReportExplorerPad.cs" /> <Compile Include="Project\ReportExplorer\ReportExplorerPad.cs" />
<Compile Include="Project\ReportItems\AbstractItem.cs" /> <Compile Include="Project\ReportItems\AbstractItem.cs">
<Compile Include="Project\ReportItems\BaseCircleItem.cs" /> <SubType>Component</SubType>
<Compile Include="Project\ReportItems\BaseDataItem.cs" /> </Compile>
<Compile Include="Project\ReportItems\BaseImageItem.cs" /> <Compile Include="Project\ReportItems\BaseCircleItem.cs">
<Compile Include="Project\ReportItems\BaseLine.cs" /> <SubType>Component</SubType>
<Compile Include="Project\ReportItems\BaseRectangleItem.cs" /> </Compile>
<Compile Include="Project\ReportItems\BaseRowItem.cs" /> <Compile Include="Project\ReportItems\BaseDataItem.cs">
<Compile Include="Project\ReportItems\BaseTableItem.cs" /> <SubType>Component</SubType>
<Compile Include="Project\ReportItems\BaseTextItem.cs" /> </Compile>
<Compile Include="Project\ReportItems\BaseSection.cs" /> <Compile Include="Project\ReportItems\BaseImageItem.cs">
<Compile Include="Project\ReportItems\ErrorItem.cs" /> <SubType>Component</SubType>
</Compile>
<Compile Include="Project\ReportItems\BaseLine.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Project\ReportItems\BaseRectangleItem.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Project\ReportItems\BaseRowItem.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Project\ReportItems\BaseTableItem.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Project\ReportItems\BaseTextItem.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Project\ReportItems\BaseSection.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Project\ReportItems\ErrorItem.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Project\ReportItems\RectangleItemTypeProvider.cs" /> <Compile Include="Project\ReportItems\RectangleItemTypeProvider.cs" />
<Compile Include="Project\ReportManagers\BaseManager.cs" /> <Compile Include="Project\ReportManagers\BaseManager.cs" />
<Compile Include="Project\ReportManagers\StandartPreviewManager.cs" /> <Compile Include="Project\ReportManagers\StandartPreviewManager.cs" />
@ -128,26 +180,48 @@
<Compile Include="Project\ReportWizard\ReportWizardCommand.cs" /> <Compile Include="Project\ReportWizard\ReportWizardCommand.cs" />
<Compile Include="Project\ReportWizard\SqlParameterConverter.cs" /> <Compile Include="Project\ReportWizard\SqlParameterConverter.cs" />
<Compile Include="Project\ReportWizard\WizardCommands.cs" /> <Compile Include="Project\ReportWizard\WizardCommands.cs" />
<Compile Include="Project\ReportWizard\WizardPanels\BaseSettingsPanel.cs" /> <Compile Include="Project\ReportWizard\WizardPanels\BaseSettingsPanel.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Project\ReportWizard\WizardPanels\DataGridViewColumnHeaderCheckBoxCell.cs" /> <Compile Include="Project\ReportWizard\WizardPanels\DataGridViewColumnHeaderCheckBoxCell.cs" />
<Compile Include="Project\ReportWizard\WizardPanels\LayoutPanel.cs" /> <Compile Include="Project\ReportWizard\WizardPanels\LayoutPanel.cs">
<Compile Include="Project\ReportWizard\WizardPanels\PullModelPanel.cs" /> <SubType>UserControl</SubType>
<Compile Include="Project\ReportWizard\WizardPanels\PushModelPanel.cs" /> </Compile>
<Compile Include="Project\ReportWizard\WizardPanels\ResultPanel.cs" /> <Compile Include="Project\ReportWizard\WizardPanels\PullModelPanel.cs">
<Compile Include="Project\ReportWizard\WizardPanels\LayoutPanelControl.cs" /> <SubType>UserControl</SubType>
</Compile>
<Compile Include="Project\ReportWizard\WizardPanels\PushModelPanel.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Project\ReportWizard\WizardPanels\ResultPanel.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Project\ReportWizard\WizardPanels\LayoutPanelControl.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Project\ReportWizard\WizardPanels\LayoutPanelControl.Designer.cs"> <Compile Include="Project\ReportWizard\WizardPanels\LayoutPanelControl.Designer.cs">
<DependentUpon>LayoutPanelControl.cs</DependentUpon> <DependentUpon>LayoutPanelControl.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="Project\ReportWizard\WizardPanels\Wizard\AbstractOptionPanel.cs" /> <Compile Include="Project\ReportWizard\WizardPanels\Wizard\AbstractOptionPanel.cs">
<Compile Include="Project\ReportWizard\WizardPanels\Wizard\AbstractWizardPanel.cs" /> <SubType>UserControl</SubType>
<Compile Include="Project\ReportWizard\WizardPanels\Wizard\CurrentPanelPanel.cs" /> </Compile>
<Compile Include="Project\ReportWizard\WizardPanels\Wizard\AbstractWizardPanel.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Project\ReportWizard\WizardPanels\Wizard\CurrentPanelPanel.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Project\ReportWizard\WizardPanels\Wizard\DefaultDialogPanelDescriptor.cs" /> <Compile Include="Project\ReportWizard\WizardPanels\Wizard\DefaultDialogPanelDescriptor.cs" />
<Compile Include="Project\ReportWizard\WizardPanels\Wizard\DialogPanelDoozer.cs" /> <Compile Include="Project\ReportWizard\WizardPanels\Wizard\DialogPanelDoozer.cs" />
<Compile Include="Project\ReportWizard\WizardPanels\Wizard\IDialogPanel.cs" /> <Compile Include="Project\ReportWizard\WizardPanels\Wizard\IDialogPanel.cs" />
<Compile Include="Project\ReportWizard\WizardPanels\Wizard\IDialogPanelDescriptor.cs" /> <Compile Include="Project\ReportWizard\WizardPanels\Wizard\IDialogPanelDescriptor.cs" />
<Compile Include="Project\ReportWizard\WizardPanels\Wizard\IWizardPanel.cs" /> <Compile Include="Project\ReportWizard\WizardPanels\Wizard\IWizardPanel.cs" />
<Compile Include="Project\ReportWizard\WizardPanels\Wizard\StatusPanel.cs" /> <Compile Include="Project\ReportWizard\WizardPanels\Wizard\StatusPanel.cs">
<Compile Include="Project\ReportWizard\WizardPanels\Wizard\WizardDialog.cs" /> <SubType>UserControl</SubType>
</Compile>
<Compile Include="Project\ReportWizard\WizardPanels\Wizard\WizardDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Project\SecondaryViews\ReportPreview.cs" /> <Compile Include="Project\SecondaryViews\ReportPreview.cs" />
<Compile Include="Project\SecondaryViews\ReportViewerMessages.cs" /> <Compile Include="Project\SecondaryViews\ReportViewerMessages.cs" />
<Compile Include="Project\SecondaryViews\ReportViewerSecondaryView.cs" /> <Compile Include="Project\SecondaryViews\ReportViewerSecondaryView.cs" />
@ -180,8 +254,12 @@
<Compile Include="Project\SharpQuery\GUI\SharpQueryPad.cs" /> <Compile Include="Project\SharpQuery\GUI\SharpQueryPad.cs" />
<Compile Include="Project\SharpQuery\GUI\SharpQueryTree\SharpQueryDataNodes.cs" /> <Compile Include="Project\SharpQuery\GUI\SharpQueryTree\SharpQueryDataNodes.cs" />
<Compile Include="Project\SharpQuery\GUI\SharpQueryTree\SharpQueryNodesRoot.cs" /> <Compile Include="Project\SharpQuery\GUI\SharpQueryTree\SharpQueryNodesRoot.cs" />
<Compile Include="Project\SharpQuery\GUI\SharpQueryTree\SharpQueryTree.cs" /> <Compile Include="Project\SharpQuery\GUI\SharpQueryTree\SharpQueryTree.cs">
<Compile Include="Project\SharpQuery\GUI\SQLParameterInput.cs" /> <SubType>Component</SubType>
</Compile>
<Compile Include="Project\SharpQuery\GUI\SQLParameterInput.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Project\SharpQuery\ISchemaClass.cs" /> <Compile Include="Project\SharpQuery\ISchemaClass.cs" />
<Compile Include="Project\SharpQuery\SharpQueryCommands.cs" /> <Compile Include="Project\SharpQuery\SharpQueryCommands.cs" />
<Compile Include="Project\SharpQuery\SharpQuerySchemaClass.cs" /> <Compile Include="Project\SharpQuery\SharpQuerySchemaClass.cs" />
@ -212,32 +290,6 @@
</EmbeddedResource> </EmbeddedResource>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Project\Configuration" />
<Folder Include="Project\Commands" />
<Folder Include="Project\Designer" />
<Folder Include="Project\Designer\RootDesigner" />
<Folder Include="Project\DesignerBinding" />
<Folder Include="Project\Dialogs" />
<Folder Include="Project\Globals" />
<Folder Include="Project\ReportWizard\WizardPanels\Wizard" />
<Folder Include="Project\SharpQuery" />
<Folder Include="Project\ReportExplorer" />
<Folder Include="Project\ReportWizard" />
<Folder Include="Project\ReportWizard\Generators" />
<Folder Include="Project\ReportWizard\ReportLayout" />
<Folder Include="Project\ReportWizard\Templates" />
<Folder Include="Project\ReportWizard\WizardPanels" />
<Folder Include="Project\SecondaryViews" />
<Folder Include="Project\ReportManagers" />
<Folder Include="Project\SharpQuery\Connection" />
<Folder Include="Project\SharpQuery\Exceptions" />
<Folder Include="Project\SharpQuery\GUI" />
<Folder Include="Project\SharpQuery\GUI\SharpQueryTree" />
<Folder Include="Project\Xml" />
<Folder Include="Project\UndoRedo" />
<Folder Include="Project\ReportItems" />
<Folder Include="Project\Toolbox" />
<Folder Include="Project\Services" />
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj"> <ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project> <Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project>
<Name>ICSharpCode.SharpDevelop</Name> <Name>ICSharpCode.SharpDevelop</Name>
@ -263,6 +315,18 @@
<Name>ICSharpCode.SharpDevelop.Widgets</Name> <Name>ICSharpCode.SharpDevelop.Widgets</Name>
<Private>False</Private> <Private>False</Private>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\..\..\DisplayBindings\Data\ICSharpCode.Data.Core.UI\ICSharpCode.Data.Core.UI.csproj">
<Project>{BAD94D6E-4159-4CB6-B991-486F412D9BB6}</Project>
<Name>ICSharpCode.Data.Core.UI</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\DisplayBindings\Data\ICSharpCode.Data.Core\ICSharpCode.Data.Core.csproj">
<Project>{B7823AE9-4B43-4859-8796-2EBDC116FBB8}</Project>
<Name>ICSharpCode.Data.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\DisplayBindings\Data\ICSharpCode.Data.SQLServer\ICSharpCode.Data.SQLServer.csproj">
<Project>{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}</Project>
<Name>ICSharpCode.Data.SQLServer</Name>
</ProjectReference>
<ProjectReference Include="..\ICSharpCode.Reports.Core\ICSharpCode.Reports.Core.csproj"> <ProjectReference Include="..\ICSharpCode.Reports.Core\ICSharpCode.Reports.Core.csproj">
<Project>{4B2239FF-8FD6-431D-9D22-1B8049BA6917}</Project> <Project>{4B2239FF-8FD6-431D-9D22-1B8049BA6917}</Project>
<Name>ICSharpCode.Reports.Core</Name> <Name>ICSharpCode.Reports.Core</Name>
@ -284,5 +348,30 @@
<Isolated>False</Isolated> <Isolated>False</Isolated>
</COMReference> </COMReference>
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="Project\ReportWizard\Templates\" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.0">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4 %28x86 und x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project> </Project>

253
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs

@ -6,16 +6,17 @@
// </file> // </file>
using System; using System;
using System.Drawing;
using System.Data; using System.Data;
using System.Globalization; using System.Globalization;
using System.Reflection;
using System.Windows.Forms; using System.Windows.Forms;
using System.Windows.Forms.Integration;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.Data.Core.Interfaces;
using ICSharpCode.Data.Core.UI.UserControls;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
using SharpQuery.Gui.TreeView; using SharpQuery.Gui.TreeView;
using SharpQuery.SchemaClass;
namespace ICSharpCode.Reports.Addin.ReportWizard namespace ICSharpCode.Reports.Addin.ReportWizard
@ -28,7 +29,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
private System.ComponentModel.IContainer components; private System.ComponentModel.IContainer components;
private System.Windows.Forms.ToolTip toolTip1; private System.Windows.Forms.ToolTip toolTip1;
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
private SharpQueryTree sharpQueryTree;
private System.Windows.Forms.TextBox txtSqlString; private System.Windows.Forms.TextBox txtSqlString;
private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label3;
private bool firstDrag; private bool firstDrag;
@ -36,7 +36,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
private CommandType commandType; private CommandType commandType;
private ReportStructure reportStructure; private ReportStructure reportStructure;
private Properties customizer; private Properties customizer;
private ISharpQueryNode currentNode; private IDatabaseObjectBase currentNode;
private ElementHost databasesTreeHost;
private DatabasesTreeView databasesTree;
public enum NodeType { public enum NodeType {
@ -57,10 +59,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
public PullModelPanel() public PullModelPanel()
{ {
InitializeComponent(); InitializeComponent();
sharpQueryTree = new SharpQueryTree(); //sharpQueryTree = new SharpQueryTree();
sharpQueryTree.Dock = DockStyle.Fill; //sharpQueryTree.Dock = DockStyle.Fill;
this.sharpQueryTree.AfterSelect += SharpQueryTreeAfterSelect; //this.sharpQueryTree.AfterSelect += SharpQueryTreeAfterSelect;
this.label2.Controls.Add(this.sharpQueryTree); //this.label2.Controls.Add(this.sharpQueryTree);
base.EnableFinish = false; base.EnableFinish = false;
base.EnableNext = false; base.EnableNext = false;
@ -69,10 +71,15 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
base.IsLastPanel = false; base.IsLastPanel = false;
commandType = CommandType.Text; commandType = CommandType.Text;
this.txtSqlString.Enabled = false; this.txtSqlString.Enabled = false;
this.databasesTreeHost = new ElementHost() { Dock = DockStyle.Fill };
this.databasesTree = new DatabasesTreeView();
this.databasesTree.SelectedItemChanged += new System.Windows.RoutedPropertyChangedEventHandler<object>(databasesTree_SelectedItemChanged);
this.databasesTreeHost.Child = this.databasesTree;
this.label2.Controls.Add(databasesTreeHost);
Localize(); Localize();
}
}
private void Localize() { private void Localize() {
this.label1.Text = ResourceService.GetString("SharpQuery.Label.SharpQuery"); this.label1.Text = ResourceService.GetString("SharpQuery.Label.SharpQuery");
@ -123,10 +130,28 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
private void TxtSqlStringDragEnter(object sender, System.Windows.Forms.DragEventArgs e){ private void TxtSqlStringDragEnter(object sender, System.Windows.Forms.DragEventArgs e){
// Handle the Drag effect when the listbox is entered // Handle the Drag effect when the listbox is entered
if (e.Data.GetDataPresent(DataFormats.Text)) if (e.Data.GetFormats().Length > 0)
e.Effect = DragDropEffects.Copy; {
else string draggedFormat = e.Data.GetFormats()[0];
e.Effect = DragDropEffects.None;
Type draggedType = null;
// I'm doing this ugly thing because we are checking if the IDatabaseObjectBase is implemented,
// obviously Microsoft hasn't really considered using interfaces or base classes for drag and drop
AppDomain.CurrentDomain.GetAssemblies().ForEach(assembly =>
{
if (draggedType == null && assembly.GetName().Name == "ICSharpCode.Data.Core")
draggedType = assembly.GetType(draggedFormat);
});
if (draggedType != null && draggedType.GetInterface("IDatabaseObjectBase") != null)
{
e.Effect = DragDropEffects.Copy;
return;
}
}
e.Effect = DragDropEffects.None;
} }
@ -135,80 +160,122 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
this.txtSqlString.Clear(); this.txtSqlString.Clear();
firstDrag = false; firstDrag = false;
} }
switch ( CheckCurrentNode(currentNode)) { // Drag and drop isn't working via e.Data.GetData, so I'm using reflection here - took me a lot of time to figure out how this works...
case NodeType.TableImage: // Still don't know why they implemented dnd so buggy and uncomfortable...
// we insert Select * from.... otherwise we have to scan string draggedFormat = e.Data.GetFormats()[0];
//the whole string for incorrect columnNames IDatabaseObjectBase draggedObject = null;
this.txtSqlString.Clear();
// AbstractSharpQuerySchemaClass tbl = (AbstractSharpQuerySchemaClass)this.currentNode.SchemaClass; if (e.Data.GetDataPresent(draggedFormat))
this.txtSqlString.Text = "SELECT * FROM " + InferColumnName(((AbstractSharpQuerySchemaClass)currentNode.SchemaClass).Name); {
object tempDraggedObject = null;
break; FieldInfo info;
info = e.Data.GetType().GetField("innerData", BindingFlags.NonPublic | BindingFlags.Instance);
case NodeType.ColumnImage: tempDraggedObject = info.GetValue(e.Data);
string colName = InferColumnName(((AbstractSharpQuerySchemaClass)currentNode.SchemaClass).Name); info = tempDraggedObject.GetType().GetField("innerData", BindingFlags.NonPublic | BindingFlags.Instance);
if (this.txtSqlString.Text.Length == 0) { System.Windows.DataObject dataObject = info.GetValue(tempDraggedObject) as System.Windows.DataObject;
this.txtSqlString.AppendText ("SELECT "); draggedObject = dataObject.GetData(draggedFormat) as IDatabaseObjectBase;
this.txtSqlString.AppendText (colName); }
} else if (this.txtSqlString.Text.ToLower(CultureInfo.InvariantCulture).IndexOf("where",StringComparison.OrdinalIgnoreCase) > 0){ switch (CheckCurrentNode(draggedObject))
this.txtSqlString.AppendText (colName + " = ?"); {
} case NodeType.TableImage:
else { // we insert Select * from.... otherwise we have to scan
this.txtSqlString.AppendText(", "); //the whole string for incorrect columnNames
this.txtSqlString.AppendText(colName); this.txtSqlString.Clear();
} // AbstractSharpQuerySchemaClass tbl = (AbstractSharpQuerySchemaClass)this.currentNode.SchemaClass;
break; this.txtSqlString.Text = "SELECT * FROM " + (draggedObject as ICSharpCode.Data.Core.Interfaces.ITable).Name;
case NodeType.ProcedureImage: break;
this.txtSqlString.Clear();
case NodeType.ColumnImage:
// we can't use the dragobject because it returns an string like 'EXECUTE ProcName' string colName = (draggedObject as IColumn).Name;
this.txtSqlString.Text = currentNode.SchemaClass.Name; if (this.txtSqlString.Text.Length == 0)
{
if (this.currentNode.SchemaClass is SharpQueryProcedure ) { this.txtSqlString.AppendText("SELECT ");
reportStructure.SharpQueryProcedure = (SharpQueryProcedure) this.currentNode.SchemaClass; this.txtSqlString.AppendText(colName);
} else {
throw new ArgumentException("PullModelPanel:TxtSqlStringDragDrop : currentNode is not a SharpQueryProcedure"); }
} else if (this.txtSqlString.Text.ToLower(CultureInfo.InvariantCulture).IndexOf("where", StringComparison.OrdinalIgnoreCase) > 0)
break; {
this.txtSqlString.AppendText(colName + " = ?");
case NodeType.ViewImage: }
this.txtSqlString.Text = String.Empty; else
this.txtSqlString.Text ="No idea how to handle views"; {
break; this.txtSqlString.AppendText(", ");
default: this.txtSqlString.AppendText(colName);
break; }
} break;
// base.EnableNext = true;
} case NodeType.ProcedureImage:
this.txtSqlString.Clear();
private void SharpQueryTreeAfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e) // we can't use the dragobject because it returns an string like 'EXECUTE ProcName'
{ this.txtSqlString.Text = (draggedObject as IProcedure).Name;
ISharpQueryNode node = e.Node as ISharpQueryNode;
if (node != null){ //if (this.currentNode.SchemaClass is SharpQueryProcedure)
this.currentNode = node; //{
// reportStructure.SharpQueryProcedure = (SharpQueryProcedure)this.currentNode.SchemaClass;
// Set the connectionstring here and toogle EnableNext //}
if (node.Connection != null) { //else
//{
if (node.Connection.ConnectionString.Length > 0) { // throw new ArgumentException("PullModelPanel:TxtSqlStringDragDrop : currentNode is not a SharpQueryProcedure");
this.connectionString = node.Connection.ConnectionString; //}
this.txtSqlString.Enabled = true; break;
if (this.firstDrag) { case NodeType.ViewImage:
this.txtSqlString.Text = String.Empty; this.txtSqlString.Text = String.Empty;
} this.txtSqlString.Text = "No idea how to handle views";
break;
} else { default:
this.EnableNext = false; break;
} }
} base.EnableNext = true;
}
} }
private void databasesTree_SelectedItemChanged(object sender, System.Windows.RoutedPropertyChangedEventArgs<object> e)
{
if (e.NewValue is IDatabaseObjectBase)
{
IDatabase parentDatabase = e.NewValue as IDatabase;
if (parentDatabase == null)
{
IDatabaseObjectBase currentDatabaseObject = e.NewValue as IDatabaseObjectBase;
while (parentDatabase == null)
{
if (currentDatabaseObject.Parent == null)
break;
else if (currentDatabaseObject.Parent is IDatabase)
{
parentDatabase = currentDatabaseObject.Parent as IDatabase;
break;
}
else
currentDatabaseObject = currentDatabaseObject.Parent;
}
}
if (parentDatabase != null)
this.currentNode = parentDatabase;
if (this.currentNode is IDatabase)
{
this.connectionString = (this.currentNode as IDatabase).ConnectionString;
this.txtSqlString.Enabled = true;
if (this.firstDrag)
this.txtSqlString.Text = string.Empty;
}
else
{
this.EnableNext = false;
}
}
}
///<summary> ///<summary>
/// We check if a ColumnName includes an "-" Character, /// We check if a ColumnName includes an "-" Character,
@ -234,15 +301,15 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
// check witch type of node we dragg // check witch type of node we dragg
private static NodeType CheckCurrentNode (ISharpQueryNode node) { private static NodeType CheckCurrentNode (IDatabaseObjectBase node) {
NodeType enm; NodeType enm;
if (node is SharpQueryNodeColumn) { if (node is IColumn) {
enm = NodeType.ColumnImage; enm = NodeType.ColumnImage;
} else if (node is SharpQueryNodeTable) { } else if (node is ICSharpCode.Data.Core.Interfaces.ITable) {
enm = NodeType.TableImage; enm = NodeType.TableImage;
} else if (node is SharpQueryNodeProcedure) { } else if (node is IProcedure) {
enm = NodeType.ProcedureImage; enm = NodeType.ProcedureImage;
} else if (node is SharpQueryNodeView) { } else if (node is IView) {
enm = NodeType.ViewImage; enm = NodeType.ViewImage;
} }
else { else {

Loading…
Cancel
Save