Zooflow: integrate SQLEditor

This commit is contained in:
Jonathan Jenne
2022-05-11 13:49:34 +02:00
parent 6e8383d48d
commit 4b86d832ff
109 changed files with 2392 additions and 2761 deletions

View File

@@ -47,8 +47,10 @@
<Reference Include="Accessibility" />
<Reference Include="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Dialogs.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Office.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Printing.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Data.Desktop.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.RichEdit.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Sparkline.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
@@ -57,6 +59,10 @@
<Reference Include="DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraPrinting.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraRichEdit.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>D:\ProgramFiles\DevExpress 21.2\Components\Bin\Framework\DevExpress.XtraRichEdit.v21.2.dll</HintPath>
</Reference>
<Reference Include="DevExpress.XtraTreeList.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="GdPicture.NET.14">
<HintPath>D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll</HintPath>
@@ -133,6 +139,18 @@
<SubType>Form</SubType>
</Compile>
<Compile Include="DocumentResultList\Cache.vb" />
<Compile Include="frmSQLEditor.Designer.vb">
<DependentUpon>frmSQLEditor.vb</DependentUpon>
</Compile>
<Compile Include="frmSQLEditor.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmSQLResult.Designer.vb">
<DependentUpon>frmSQLResult.vb</DependentUpon>
</Compile>
<Compile Include="frmSQLResult.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmWorkflow_Adhoc_start.Designer.vb">
<DependentUpon>frmWorkflow_Adhoc_start.vb</DependentUpon>
</Compile>
@@ -142,6 +160,12 @@
<Compile Include="GridBuilder.vb" />
<Compile Include="IBaseForm.vb" />
<Compile Include="IResultForm.vb" />
<Compile Include="MsgBoxEx.Designer.vb">
<DependentUpon>MsgBoxEx.vb</DependentUpon>
</Compile>
<Compile Include="MsgBoxEx.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
@@ -166,6 +190,9 @@
<SubType>Form</SubType>
</Compile>
<Compile Include="ObjectPropertyDialog\AttributeControls.vb" />
<Compile Include="SQLEditor\Placeholder.vb" />
<Compile Include="SQLEditor\Placeholders.vb" />
<Compile Include="SQLEditor\SQLSyntaxHighlightService.vb" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="DataResultList\frmDataResultList.resx">
@@ -181,9 +208,18 @@
<DependentUpon>frmDocumentResultList.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmSQLEditor.resx">
<DependentUpon>frmSQLEditor.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmSQLResult.resx">
<DependentUpon>frmSQLResult.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmWorkflow_Adhoc_start.resx">
<DependentUpon>frmWorkflow_Adhoc_start.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MsgBoxEx.resx">
<DependentUpon>MsgBoxEx.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\licenses.licx" />
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
@@ -218,10 +254,6 @@
<Project>{3DCD6D1A-C830-4241-B7E4-27430E7EA483}</Project>
<Name>LookupControl</Name>
</ProjectReference>
<ProjectReference Include="..\MessageBoxEx\MessageBoxEx.vbproj">
<Project>{ef29f400-be45-4283-9d18-ca7acd9accc9}</Project>
<Name>MessageBoxEx</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.Base\Base\Base.vbproj">
<Project>{6ea0c51f-c2b1-4462-8198-3de0b32b74f8}</Project>
<Name>Base</Name>
@@ -250,6 +282,10 @@
<Project>{903B2D7D-3B80-4BE9-8713-7447B704E1B0}</Project>
<Name>Logging</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.Patterns\Patterns.vbproj">
<Project>{7c3b0c7e-59fe-4e1a-a655-27ae119f9444}</Project>
<Name>Patterns</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.ZooFlow\ZooFlow.vbproj">
<Project>{81cac44f-3711-4c8f-ae98-e02a7448782a}</Project>
<Name>ZooFlow</Name>
@@ -398,5 +434,107 @@
<ItemGroup>
<None Include="Resources\ZooFlow_Sidebar_TOP_Drop_HOT.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\actions_check.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\actions_checkcircled.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\actions_database.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\actions_database1.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\actions_database2.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\actions_user.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\autoarrange.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\bo_contract.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\check.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\clearall.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\cleartablestyle.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\editdatasource.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\editdatasource1.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\editdatasource2.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\electronics_desktopmac.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\handtool.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\highimportance.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\removegroupheader.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\togglefieldcodes.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\updatedataextract.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\updatedataextract1.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\updatedataextract2.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\updatedataextract3.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\save2.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\updatedataextract4.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\togglefieldcodes1.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\clearpivottable1.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\clearall1.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\handtool1.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\autoarrange1.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\bo_contract1.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\actions_user1.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\electronics_desktopmac1.svg" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\actions_database3.svg" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

135
GUIs.Common/MsgBoxEx.Designer.vb generated Normal file
View File

@@ -0,0 +1,135 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class MsgBoxEx
Inherits DevExpress.XtraEditors.XtraForm
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Wird vom Windows Form-Designer benötigt.
Private components As System.ComponentModel.IContainer
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.chkBx = New System.Windows.Forms.CheckBox()
Me.btn1 = New System.Windows.Forms.Button()
Me.btn2 = New System.Windows.Forms.Button()
Me.messageLbl = New System.Windows.Forms.Label()
Me.btn3 = New System.Windows.Forms.Button()
Me.PanelControl1 = New DevExpress.XtraEditors.PanelControl()
CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.PanelControl1.SuspendLayout()
Me.SuspendLayout()
'
'chkBx
'
Me.chkBx.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
Me.chkBx.AutoSize = True
Me.chkBx.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.chkBx.Location = New System.Drawing.Point(12, 76)
Me.chkBx.Name = "chkBx"
Me.chkBx.Size = New System.Drawing.Size(152, 20)
Me.chkBx.TabIndex = 22
Me.chkBx.Text = "Don't show this again"
Me.chkBx.UseVisualStyleBackColor = True
Me.chkBx.Visible = False
'
'btn1
'
Me.btn1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btn1.AutoSize = True
Me.btn1.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.btn1.Location = New System.Drawing.Point(161, 12)
Me.btn1.Name = "btn1"
Me.btn1.Size = New System.Drawing.Size(100, 23)
Me.btn1.TabIndex = 5
Me.btn1.Text = "Button1"
Me.btn1.UseVisualStyleBackColor = True
Me.btn1.Visible = False
'
'btn2
'
Me.btn2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btn2.AutoSize = True
Me.btn2.Location = New System.Drawing.Point(267, 12)
Me.btn2.Name = "btn2"
Me.btn2.Size = New System.Drawing.Size(100, 23)
Me.btn2.TabIndex = 6
Me.btn2.Text = "Button2"
Me.btn2.UseVisualStyleBackColor = True
Me.btn2.Visible = False
'
'messageLbl
'
Me.messageLbl.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.messageLbl.Location = New System.Drawing.Point(58, 10)
Me.messageLbl.Name = "messageLbl"
Me.messageLbl.Size = New System.Drawing.Size(415, 63)
Me.messageLbl.TabIndex = 19
Me.messageLbl.Text = "[Message]"
'
'btn3
'
Me.btn3.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btn3.AutoSize = True
Me.btn3.Location = New System.Drawing.Point(373, 12)
Me.btn3.Name = "btn3"
Me.btn3.Size = New System.Drawing.Size(100, 23)
Me.btn3.TabIndex = 7
Me.btn3.Text = "Button3"
Me.btn3.UseVisualStyleBackColor = True
Me.btn3.Visible = False
'
'PanelControl1
'
Me.PanelControl1.Controls.Add(Me.btn1)
Me.PanelControl1.Controls.Add(Me.btn3)
Me.PanelControl1.Controls.Add(Me.btn2)
Me.PanelControl1.Dock = System.Windows.Forms.DockStyle.Bottom
Me.PanelControl1.Location = New System.Drawing.Point(0, 102)
Me.PanelControl1.Name = "PanelControl1"
Me.PanelControl1.Size = New System.Drawing.Size(485, 47)
Me.PanelControl1.TabIndex = 23
'
'MsgBoxEx
'
Me.Appearance.BackColor = System.Drawing.SystemColors.ControlLightLight
Me.Appearance.Options.UseBackColor = True
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None
Me.CancelButton = Me.btn1
Me.ClientSize = New System.Drawing.Size(485, 149)
Me.Controls.Add(Me.PanelControl1)
Me.Controls.Add(Me.chkBx)
Me.Controls.Add(Me.messageLbl)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "MsgBoxEx"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "[Title]"
CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.PanelControl1.ResumeLayout(False)
Me.PanelControl1.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Private chkBx As System.Windows.Forms.CheckBox
Private WithEvents btn1 As System.Windows.Forms.Button
Private WithEvents btn2 As System.Windows.Forms.Button
Private messageLbl As System.Windows.Forms.Label
Private WithEvents btn3 As System.Windows.Forms.Button
Friend WithEvents PanelControl1 As DevExpress.XtraEditors.PanelControl
End Class

120
GUIs.Common/MsgBoxEx.resx Normal file
View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

192
GUIs.Common/MsgBoxEx.vb Normal file
View File

@@ -0,0 +1,192 @@
Imports System.Drawing
Imports System.Windows.Forms
Public Class MsgBoxEx
Public Sub New(message As String, title As String)
Me.New(message, title, MessageBoxIcon.None)
End Sub
Public Sub New(message As String, title As String, icon As MessageBoxIcon)
Me.New(message, title, getMessageBoxIcon(icon))
End Sub
Public Sub New(message As String, title As String, icon As Icon)
InitializeComponent()
messageLbl.Text = message
Text = title
m_sysIcon = icon
If m_sysIcon Is Nothing Then messageLbl.Location = New System.Drawing.Point(FORM_X_MARGIN, FORM_Y_MARGIN)
SetButtons("OK")
End Sub
Private Shared Function getMessageBoxIcon(icon As MessageBoxIcon) As Icon
Dim oIcon As Icon = Nothing
Select Case icon
Case MessageBoxIcon.Asterisk
oIcon = SystemIcons.Asterisk
Case MessageBoxIcon.[Error]
oIcon = SystemIcons.[Error]
Case MessageBoxIcon.Exclamation
oIcon = SystemIcons.Exclamation
Case MessageBoxIcon.Question
oIcon = SystemIcons.Question
End Select
If oIcon IsNot Nothing Then
Return DevExpress.Utils.Drawing.Helpers.StockIconHelper.GetWindows8AssociatedIcon(oIcon)
Else
Return Nothing
End If
End Function
Private m_minWidth As Integer
Private m_minHeight As Integer
Public Sub SetMinSize(width As Integer, height As Integer)
m_minWidth = width
m_minHeight = height
End Sub
Public Sub SetButtons(ParamArray names As String())
Dim drs As DialogResult() = New DialogResult(names.Length - 1) {}
For i As Integer = 0 To names.Length - 1
drs(i) = DialogResult.None
Next
SetButtons(names, drs)
End Sub
Public Sub SetButtons(names As String(), results As DialogResult())
SetButtons(names, results, 1)
End Sub
Public Sub SetButtons(names As String(), results As DialogResult(), def As Integer)
If names Is Nothing Then Throw New ArgumentNullException("btnText", "Button Text is null")
Dim count As Integer = names.Length
If count < 1 OrElse count > 3 Then Throw New ArgumentException("Invalid number of buttons. Must be between 1 and 3.")
m_minButtonRowWidth = setButtonParams(btn1, names(0), If(def = 1, 1, 2), results(0))
If count > 1 Then
m_minButtonRowWidth += setButtonParams(btn2, names(1), If(def = 2, 1, 3), results(1)) + BUTTON_SPACE
End If
If count > 2 Then
m_minButtonRowWidth += setButtonParams(btn3, names(2), If(def = 3, 1, 4), results(2)) + BUTTON_SPACE
End If
End Sub
Private m_minButtonRowWidth As Integer
Private Shared Function setButtonParams(btn As Button, text As String, tab As Integer, dr As DialogResult) As Integer
btn.Text = text
btn.Visible = True
btn.DialogResult = dr
btn.TabIndex = tab
Return btn.Size.Width
End Function
Public Sub SetCheckbox(text As String)
SetCheckbox(text, False)
End Sub
Public Sub SetCheckbox(text As String, chcked As Boolean)
chkBx.Visible = True
chkBx.Text = text
chkBx.Checked = chcked
m_minButtonRowWidth += chkBx.Size.Width + CHECKBOX_SPACE
End Sub
Private Sub DialogBox_Load(sender As Object, e As EventArgs)
If Not btn1.Visible Then SetButtons(New String() {"OK"}, New DialogResult() {DialogResult.OK})
m_minButtonRowWidth += 2 * FORM_X_MARGIN
setDialogSize()
setButtonRowLocations()
End Sub
Const FORM_Y_MARGIN As Integer = 10
Const FORM_X_MARGIN As Integer = 16
Const BUTTON_SPACE As Integer = 5
Const CHECKBOX_SPACE As Integer = 15
Const TEXT_Y_MARGIN As Integer = 30
Private Sub setDialogSize()
Dim requiredWidth As Integer = messageLbl.Location.X + messageLbl.Size.Width + FORM_X_MARGIN
requiredWidth = If(requiredWidth > m_minButtonRowWidth, requiredWidth, m_minButtonRowWidth)
Dim requiredHeight As Integer = messageLbl.Location.Y + messageLbl.Size.Height - btn2.Location.Y + ClientSize.Height + TEXT_Y_MARGIN
Dim minSetWidth As Integer = If(ClientSize.Width > m_minWidth, ClientSize.Width, m_minWidth)
Dim minSetHeight As Integer = If(ClientSize.Height > m_minHeight, ClientSize.Height, m_minHeight)
Dim s As Size = New Size()
s.Width = If(requiredWidth > minSetWidth, requiredWidth, minSetWidth)
s.Height = If(requiredHeight > minSetHeight, requiredHeight, minSetHeight)
ClientSize = s
End Sub
Private Sub setButtonRowLocations()
Dim formWidth As Integer = ClientRectangle.Width
Dim x As Integer = formWidth - FORM_X_MARGIN
Dim y As Integer = btn1.Location.Y
If btn3.Visible Then
x -= btn3.Size.Width
btn3.Location = New Point(x, y)
x -= BUTTON_SPACE
End If
If btn2.Visible Then
x -= btn2.Size.Width
btn2.Location = New Point(x, y)
x -= BUTTON_SPACE
End If
x -= btn1.Size.Width
btn1.Location = New Point(x, y)
If chkBx.Visible Then chkBx.Location = New Point(FORM_X_MARGIN, chkBx.Location.Y)
End Sub
Private m_sysIcon As Icon
Protected Overrides Sub OnPaint(e As PaintEventArgs)
If m_sysIcon IsNot Nothing Then
Dim g As Graphics = e.Graphics
g.DrawIconUnstretched(m_sysIcon, New Rectangle(FORM_X_MARGIN, FORM_Y_MARGIN, m_sysIcon.Width, m_sysIcon.Height))
End If
MyBase.OnPaint(e)
End Sub
Public ReadOnly Property CheckboxChecked As Boolean
Get
Return chkBx.Checked
End Get
End Property
Private m_result As DialogBoxResult
Public ReadOnly Property Result As DialogBoxResult
Get
Return m_result
End Get
End Property
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn1.Click, btn2.Click, btn3.Click
If sender.Equals(btn1) Then
m_result = DialogBoxResult.Button1
ElseIf sender.Equals(btn2) Then
m_result = DialogBoxResult.Button2
ElseIf sender.Equals(btn3) Then
m_result = DialogBoxResult.Button3
End If
If (CType(sender, Button)).DialogResult = DialogResult.None Then
Close()
End If
End Sub
Enum DialogBoxResult
Button1
Button2
Button3
End Enum
End Class

View File

@@ -90,6 +90,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property actions_database() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("actions_database", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
@@ -100,6 +110,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property actions_user() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("actions_user", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
@@ -110,6 +130,26 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property autoarrange() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("autoarrange", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property bo_contract() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("bo_contract", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
@@ -150,6 +190,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property clearall() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("clearall", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
@@ -160,6 +210,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property clearpivottable1() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("clearpivottable1", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
@@ -230,6 +290,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property electronics_desktopmac() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("electronics_desktopmac", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
@@ -270,6 +340,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property handtool() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("handtool", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
@@ -370,6 +450,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property save2() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("save2", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
@@ -420,6 +510,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property togglefieldcodes() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("togglefieldcodes", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
@@ -430,6 +530,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property updatedataextract() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("updatedataextract", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>

View File

@@ -127,6 +127,9 @@
<data name="security_unlock" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\security_unlock.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="electronics_desktopmac" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\electronics_desktopmac1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="zoom_less" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zoom_less.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -145,8 +148,11 @@
<data name="ZooFlow-Vergroessern" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ZooFlow-Vergroessern.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="Open_32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Open_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="save2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save2.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="save" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="grid" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\grid.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
@@ -157,23 +163,23 @@
<data name="jpg" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\jpg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="xls" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\xls.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="autoarrange" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\autoarrange1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="insertpagecount" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\insertpagecount.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="ppt" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ppt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="clearpivottable1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\clearpivottable1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="copy" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\copy.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="zoom_more" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zoom_more.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="togglefieldcodes" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\togglefieldcodes1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="_page" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\_page.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="updatedataextract" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\updatedataextract4.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="refreshallpivottable" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\refreshallpivottable.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
@@ -184,26 +190,35 @@
<data name="title" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\title.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="_page" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\_page.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="singlepageview1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\singlepageview1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="txt" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\txt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="_blank" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\_blank.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="Open_32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Open_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="singlepageview" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\singlepageview.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="clearall" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\clearall1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="clearpivottable" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\clearpivottable.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="categorize" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\categorize.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="tiff" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tiff.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="bo_contract" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bo_contract1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="open" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\open.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="columnheaders" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\columnheaders.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
@@ -211,8 +226,11 @@
<data name="editcolors" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\editcolors.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="save" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<data name="actions_user" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\actions_user1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="xls" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\xls.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="dwg" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dwg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -223,6 +241,9 @@
<data name="png" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\png.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="tiff" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\tiff.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="private" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\private.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
@@ -232,8 +253,14 @@
<data name="save1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="open" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\open.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<data name="handtool" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\handtool1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="zoom_more" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zoom_more.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ppt" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ppt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="business_world" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\business_world.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
@@ -241,4 +268,10 @@
<data name="Article_32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Article_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="_blank" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\_blank.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="actions_database" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\actions_database3.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
</root>

View File

@@ -1,13 +1,14 @@
DevExpress.XtraEditors.LookUpEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraRichEdit.RichEditControl, DevExpress.XtraRichEdit.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.LookUpEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Yellow{fill:#FFB115;}
.Black{fill:#727272;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
</style>
<g id="Check">
<polygon points="27,5 11,21 5,15 2,18 11,27 30,8 " class="Green" />
</g>
</svg>

View File

@@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Yellow{fill:#FFB115;}
.Black{fill:#727272;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
</style>
<g id="CheckCircled">
<path d="M16,4C9.4,4,4,9.4,4,16c0,6.6,5.4,12,12,12s12-5.4,12-12C28,9.4,22.6,4,16,4z M14,22l-6-6l2-2l4,4l8-8l2,2 L14,22z" class="Green" />
</g>
</svg>

View File

@@ -0,0 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Yellow{fill:#FFB115;}
.Black{fill:#727272;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
</style>
<g id="Database">
<path d="M16,24c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4s10-1.8,10-4v-4C26,22.2,21.5,24,16,24z" class="Yellow" />
<path d="M16,18c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4s10-1.8,10-4v-4C26,16.2,21.5,18,16,18z" class="Yellow" />
<path d="M16,4C10.5,4,6,5.8,6,8v4c0,2.2,4.5,4,10,4s10-1.8,10-4V8C26,5.8,21.5,4,16,4z" class="Yellow" />
</g>
</svg>

View File

@@ -0,0 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Yellow{fill:#FFB115;}
.Black{fill:#727272;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
</style>
<g id="Database">
<path d="M16,24c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4s10-1.8,10-4v-4C26,22.2,21.5,24,16,24z" class="Yellow" />
<path d="M16,18c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4s10-1.8,10-4v-4C26,16.2,21.5,18,16,18z" class="Yellow" />
<path d="M16,4C10.5,4,6,5.8,6,8v4c0,2.2,4.5,4,10,4s10-1.8,10-4V8C26,5.8,21.5,4,16,4z" class="Yellow" />
</g>
</svg>

View File

@@ -0,0 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Yellow{fill:#FFB115;}
.Black{fill:#727272;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
</style>
<g id="Database">
<path d="M16,24c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4s10-1.8,10-4v-4C26,22.2,21.5,24,16,24z" class="Yellow" />
<path d="M16,18c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4s10-1.8,10-4v-4C26,16.2,21.5,18,16,18z" class="Yellow" />
<path d="M16,4C10.5,4,6,5.8,6,8v4c0,2.2,4.5,4,10,4s10-1.8,10-4V8C26,5.8,21.5,4,16,4z" class="Yellow" />
</g>
</svg>

View File

@@ -0,0 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Yellow{fill:#FFB115;}
.Black{fill:#727272;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
</style>
<g id="Database">
<path d="M16,24c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4s10-1.8,10-4v-4C26,22.2,21.5,24,16,24z" class="Yellow" />
<path d="M16,18c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4s10-1.8,10-4v-4C26,16.2,21.5,18,16,18z" class="Yellow" />
<path d="M16,4C10.5,4,6,5.8,6,8v4c0,2.2,4.5,4,10,4s10-1.8,10-4V8C26,5.8,21.5,4,16,4z" class="Yellow" />
</g>
</svg>

View File

@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Yellow{fill:#FFB115;}
.Black{fill:#727272;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
</style>
<g id="User">
<path d="M10,9.9c-0.1,0.5,0.2,0.9,0.4,1.4c0.2,0.5-0.1,1.7,0.9,1.6c0,0,0,0.1,0,0.2c0.6,2.3,2,4.9,4.7,4.9 c2.7,0,4.2-2.6,4.7-4.9c0,0,0-0.1,0-0.1c1,0.1,0.6-1.1,0.9-1.6c0.2-0.5,0.4-0.9,0.3-1.4c-0.1-0.4-0.4-0.4-0.5-0.3 c1.8-4.9-1.1-4.7-1.1-4.7S20,2,14.8,2C10,2,9.4,6,10.5,9.6C10.4,9.6,10.1,9.7,10,9.9z" class="Black" />
<path d="M20,18c-0.8,1.5-2.1,4-4,4c-1.9,0-3.2-2.5-4-4c-2.3,3.5-8,1-8,8.5V30h24v-3.5C28,19.1,22.3,21.4,20,18z" class="Black" />
</g>
</svg>

View File

@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Yellow{fill:#FFB115;}
.Black{fill:#727272;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
</style>
<g id="User">
<path d="M10,9.9c-0.1,0.5,0.2,0.9,0.4,1.4c0.2,0.5-0.1,1.7,0.9,1.6c0,0,0,0.1,0,0.2c0.6,2.3,2,4.9,4.7,4.9 c2.7,0,4.2-2.6,4.7-4.9c0,0,0-0.1,0-0.1c1,0.1,0.6-1.1,0.9-1.6c0.2-0.5,0.4-0.9,0.3-1.4c-0.1-0.4-0.4-0.4-0.5-0.3 c1.8-4.9-1.1-4.7-1.1-4.7S20,2,14.8,2C10,2,9.4,6,10.5,9.6C10.4,9.6,10.1,9.7,10,9.9z" class="Black" />
<path d="M20,18c-0.8,1.5-2.1,4-4,4c-1.9,0-3.2-2.5-4-4c-2.3,3.5-8,1-8,8.5V30h24v-3.5C28,19.1,22.3,21.4,20,18z" class="Black" />
</g>
</svg>

View File

@@ -0,0 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Green{fill:#039C23;}
.Black{fill:#727272;}
.Red{fill:#D11C1C;}
.Yellow{fill:#FFB115;}
.Blue{fill:#1177D7;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{opacity:0.75;}
</style>
<g id="AutoArrange">
<path d="M29,2H5C4.5,2,4,2.5,4,3v26c0,0.5,0.5,1,1,1h24c0.5,0,1-0.5,1-1V3C30,2.5,29.5,2,29,2z M28,28H6V4h22V28z" class="Black" />
<path d="M24,24h-2.7l-1.2-4H14l-1.2,4H10l5.6-16h2.8L24,24z M19.3,18L17,11c-0.1,0.4-2.3,7-2.3,7H19.3z" class="Blue" />
</g>
</svg>

View File

@@ -0,0 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Green{fill:#039C23;}
.Black{fill:#727272;}
.Red{fill:#D11C1C;}
.Yellow{fill:#FFB115;}
.Blue{fill:#1177D7;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{opacity:0.75;}
</style>
<g id="AutoArrange">
<path d="M29,2H5C4.5,2,4,2.5,4,3v26c0,0.5,0.5,1,1,1h24c0.5,0,1-0.5,1-1V3C30,2.5,29.5,2,29,2z M28,28H6V4h22V28z" class="Black" />
<path d="M24,24h-2.7l-1.2-4H14l-1.2,4H10l5.6-16h2.8L24,24z M19.3,18L17,11c-0.1,0.4-2.3,7-2.3,7H19.3z" class="Blue" />
</g>
</svg>

View File

@@ -0,0 +1,29 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Green{fill:#039C23;}
.Black{fill:#727272;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{opacity:0.75;}
.st2{display:none;}
.st3{display:inline;fill:#FFB115;}
.st4{display:inline;}
.st5{display:inline;opacity:0.75;}
.st6{display:inline;opacity:0.5;}
.st7{display:inline;fill:#039C23;}
.st8{display:inline;fill:#D11C1C;}
.st9{display:inline;fill:#1177D7;}
.st10{display:inline;fill:#FFFFFF;}
</style>
<g id="Contract">
<g class="st1">
<path d="M22,14H10v-2h12V14z M22,8H10v2h12V8z M22,16H10v2h12V16z" class="Black" />
</g>
<path d="M27,2H5C4.5,2,4,2.5,4,3v26c0,0.5,0.5,1,1,1h22c0.5,0,1-0.5,1-1V3C28,2.5,27.5,2,27,2z M26,28H6V4h20V28z" class="Black" />
<rect x="16" y="22" width="6" height="2" rx="0" ry="0" class="Blue" />
</g>
</svg>

View File

@@ -0,0 +1,29 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Green{fill:#039C23;}
.Black{fill:#727272;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{opacity:0.75;}
.st2{display:none;}
.st3{display:inline;fill:#FFB115;}
.st4{display:inline;}
.st5{display:inline;opacity:0.75;}
.st6{display:inline;opacity:0.5;}
.st7{display:inline;fill:#039C23;}
.st8{display:inline;fill:#D11C1C;}
.st9{display:inline;fill:#1177D7;}
.st10{display:inline;fill:#FFFFFF;}
</style>
<g id="Contract">
<g class="st1">
<path d="M22,14H10v-2h12V14z M22,8H10v2h12V8z M22,16H10v2h12V16z" class="Black" />
</g>
<path d="M27,2H5C4.5,2,4,2.5,4,3v26c0,0.5,0.5,1,1,1h22c0.5,0,1-0.5,1-1V3C28,2.5,27.5,2,27,2z M26,28H6V4h20V28z" class="Black" />
<rect x="16" y="22" width="6" height="2" rx="0" ry="0" class="Blue" />
</g>
</svg>

View File

@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Black{fill:#737374;}
.Yellow{fill:#FCB01B;}
.Green{fill:#129C49;}
.Blue{fill:#387CB7;}
.Red{fill:#D02127;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{opacity:0.75;}
.st2{opacity:0.25;}
.st3{display:none;fill:#737374;}
</style>
<polygon points="27,4 11,20 5,14 2,17 11,26 30,7 " class="Green" />
</svg>

View File

@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Clear" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Red{fill:#D11C1C;}
.Blue{fill:#1177D7;}
</style>
<path d="M16.1,23.1l-4.4,4.4c-0.7,0.7-1.9,0.7-2.6,0l-6.6-6.6c-0.7-0.7-0.7-1.9,0-2.6L6.9,14L16.1,23.1z" class="Blue" />
<path d="M27.5,11.8l-10,10l-9.2-9.2l10-10c0.7-0.7,1.9-0.7,2.6,0l6.6,6.6C28.2,9.9,28.2,11,27.5,11.8z" class="Red" />
</svg>

View File

@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Clear" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Red{fill:#D11C1C;}
.Blue{fill:#1177D7;}
</style>
<path d="M16.1,23.1l-4.4,4.4c-0.7,0.7-1.9,0.7-2.6,0l-6.6-6.6c-0.7-0.7-0.7-1.9,0-2.6L6.9,14L16.1,23.1z" class="Blue" />
<path d="M27.5,11.8l-10,10l-9.2-9.2l10-10c0.7-0.7,1.9-0.7,2.6,0l6.6,6.6C28.2,9.9,28.2,11,27.5,11.8z" class="Red" />
</svg>

View File

@@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Clear_Pivot_Table" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Red{fill:#D11C1C;}
.Black{fill:#727272;}
.Blue{fill:#1177D7;}
.st0{opacity:0.5;}
</style>
<g class="st0">
<path d="M10,10H6V6h4V10z M24,6H12v4h12V6z M10,12H6v12h4V12z" class="Blue" />
</g>
<path d="M19,23.3L16.3,26c-0.4,0.4-0.4,1.2,0,1.6l4,4c0.4,0.4,1.2,0.4,1.6,0l2.7-2.7L19,23.3z" class="Blue" />
<path d="M14,26.8c0-0.3,0.1-0.6,0.1-0.8H4V4h22v10.1c0.3-0.1,0.5-0.1,0.8-0.1c0.4,0,0.8,0.1,1.2,0.2V3 c0-0.6-0.4-1-1-1H3C2.4,2,2,2.4,2,3v24c0,0.6,0.4,1,1,1h11.2C14.1,27.6,14,27.2,14,26.8z" class="Black" />
<path d="M31.7,20.4l-4-4c-0.4-0.4-1.2-0.4-1.6,0l-6.1,6.1l5.6,5.6l6.1-6.1C32.1,21.5,32.1,20.8,31.7,20.4z" class="Red" />
</svg>

View File

@@ -0,0 +1,14 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="ClearTableStyle" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Black{fill:#727272;}
.Red{fill:#D11C1C;}
.st0{opacity:0.5;}
</style>
<g class="st0">
<path d="M28,10h-8V4h8V10z M24.6,14.9c0.6-0.6,1.4-0.9,2.2-0.9c0.4,0,0.8,0.1,1.2,0.2V12h-8v6h1.5L24.6,14.9z M0,26 h8v-6H0V26z M14.9,24.6l3.1-3.1V20h-8v6h4.1C14.3,25.5,14.5,25,14.9,24.6z" class="Black" />
</g>
<path d="M0,4h8v6H0V4z M0,18h8v-6H0V18z M10,10h8V4h-8V10z M10,18h8v-6h-8V18z M19,23.3L16.3,26 c-0.4,0.4-0.4,1.2,0,1.6l4,4c0.4,0.4,1.2,0.4,1.6,0l2.7-2.7L19,23.3z" class="Blue" />
<path d="M31.7,20.4l-4-4c-0.4-0.4-1.2-0.4-1.6,0l-6.1,6.1l5.6,5.6l6.1-6.1C32.1,21.5,32.1,20.8,31.7,20.4z" class="Red" />
</svg>

View File

@@ -0,0 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Green{fill:#039C23;}
.Black{fill:#727272;}
.Red{fill:#D11C1C;}
.Yellow{fill:#FFB115;}
.Blue{fill:#1177D7;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{opacity:0.75;}
</style>
<g id="EditDataSource">
<path d="M4,10V6c0-2.2,4.5-4,10-4s10,1.8,10,4v4c0,2.2-4.5,4-10,4S4,12.2,4,10z M24,18L24,18C24,18,24,18,24,18 C24,18,24,18,24,18z M14,20c5.5,0,10-1.8,10-4v-4c0,2.2-4.5,4-10,4S4,14.2,4,12v4C4,18.2,8.5,20,14,20z M15.2,26l4.8-4.8 c-1.7,0.5-3.7,0.8-6,0.8c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4C14.4,26,14.8,26,15.2,26z" class="Yellow" />
<path d="M29,23l-8,8l-4-4l8-8L29,23z M30,22l1.7-1.7c0.4-0.4,0.4-1,0-1.3L29,16.3c-0.4-0.4-1-0.4-1.3,0L26,18L30,22z M16,28v4h4L16,28z" class="Blue" />
</g>
</svg>

View File

@@ -0,0 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Green{fill:#039C23;}
.Black{fill:#727272;}
.Red{fill:#D11C1C;}
.Yellow{fill:#FFB115;}
.Blue{fill:#1177D7;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{opacity:0.75;}
</style>
<g id="EditDataSource">
<path d="M4,10V6c0-2.2,4.5-4,10-4s10,1.8,10,4v4c0,2.2-4.5,4-10,4S4,12.2,4,10z M24,18L24,18C24,18,24,18,24,18 C24,18,24,18,24,18z M14,20c5.5,0,10-1.8,10-4v-4c0,2.2-4.5,4-10,4S4,14.2,4,12v4C4,18.2,8.5,20,14,20z M15.2,26l4.8-4.8 c-1.7,0.5-3.7,0.8-6,0.8c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4C14.4,26,14.8,26,15.2,26z" class="Yellow" />
<path d="M29,23l-8,8l-4-4l8-8L29,23z M30,22l1.7-1.7c0.4-0.4,0.4-1,0-1.3L29,16.3c-0.4-0.4-1-0.4-1.3,0L26,18L30,22z M16,28v4h4L16,28z" class="Blue" />
</g>
</svg>

View File

@@ -0,0 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Green{fill:#039C23;}
.Black{fill:#727272;}
.Red{fill:#D11C1C;}
.Yellow{fill:#FFB115;}
.Blue{fill:#1177D7;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{opacity:0.75;}
</style>
<g id="EditDataSource">
<path d="M4,10V6c0-2.2,4.5-4,10-4s10,1.8,10,4v4c0,2.2-4.5,4-10,4S4,12.2,4,10z M24,18L24,18C24,18,24,18,24,18 C24,18,24,18,24,18z M14,20c5.5,0,10-1.8,10-4v-4c0,2.2-4.5,4-10,4S4,14.2,4,12v4C4,18.2,8.5,20,14,20z M15.2,26l4.8-4.8 c-1.7,0.5-3.7,0.8-6,0.8c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4C14.4,26,14.8,26,15.2,26z" class="Yellow" />
<path d="M29,23l-8,8l-4-4l8-8L29,23z M30,22l1.7-1.7c0.4-0.4,0.4-1,0-1.3L29,16.3c-0.4-0.4-1-0.4-1.3,0L26,18L30,22z M16,28v4h4L16,28z" class="Blue" />
</g>
</svg>

View File

@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Black{fill:#727272;}
</style>
<g id="DesktopMac">
<path d="M28,4H4C2.9,4,2,4.9,2,6v16c0,1.1,0.9,2,2,2h8l-2,2v2h12v-2l-2-2h8c1.1,0,2-0.9,2-2V6C30,4.9,29.1,4,28,4z M28,20H4V6h24V20z" class="Black" />
</g>
</svg>

View File

@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Black{fill:#727272;}
</style>
<g id="DesktopMac">
<path d="M28,4H4C2.9,4,2,4.9,2,6v16c0,1.1,0.9,2,2,2h8l-2,2v2h12v-2l-2-2h8c1.1,0,2-0.9,2-2V6C30,4.9,29.1,4,28,4z M28,20H4V6h24V20z" class="Black" />
</g>
</svg>

View File

@@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Black{fill:#727272;}
.White{fill:#FFFFFF;}
.st0{opacity:0.75;}
</style>
<g id="HandTool">
<path d="M31.1,8.3c-1.1-0.7-2.5-0.2-2.9,0.9l-1.9,4.1c-0.2,0.4-0.6,0.6-1,0.6h0c-0.7,0-1.2-0.6-1-1.3L26,4.4 c0.2-1.1-0.4-2.1-1.5-2.4c-1.1-0.2-2.1,0.4-2.4,1.5l-1.9,7.6c-0.1,0.5-0.5,0.8-1,0.8h-0.1c-0.6,0-1.1-0.5-1.1-1.1V2.1 c0-1-0.7-1.9-1.6-2.1C15.1-0.2,14,0.8,14,2v8.9c0,0.6-0.5,1.1-1.1,1.1h-0.1c-0.5,0-0.9-0.3-1-0.8L10,3.6C9.7,2.4,8.4,1.7,7.3,2.2 C6.3,2.5,5.9,3.6,6.1,4.6l2.5,11.3c0.2,0.8-0.7,1.5-1.5,1.1l-4-2.6c-0.8-0.5-1.8-0.4-2.5,0.3c-0.8,0.8-0.8,2.1,0,2.9L10.9,28 c1.2,1.3,3,2,4.9,2H20c2.9,0,4.7-2,5.9-4.8l5.9-14.3C32.2,10,31.9,8.9,31.1,8.3z" class="Black" />
</g>
</svg>

View File

@@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Black{fill:#727272;}
.White{fill:#FFFFFF;}
.st0{opacity:0.75;}
</style>
<g id="HandTool">
<path d="M31.1,8.3c-1.1-0.7-2.5-0.2-2.9,0.9l-1.9,4.1c-0.2,0.4-0.6,0.6-1,0.6h0c-0.7,0-1.2-0.6-1-1.3L26,4.4 c0.2-1.1-0.4-2.1-1.5-2.4c-1.1-0.2-2.1,0.4-2.4,1.5l-1.9,7.6c-0.1,0.5-0.5,0.8-1,0.8h-0.1c-0.6,0-1.1-0.5-1.1-1.1V2.1 c0-1-0.7-1.9-1.6-2.1C15.1-0.2,14,0.8,14,2v8.9c0,0.6-0.5,1.1-1.1,1.1h-0.1c-0.5,0-0.9-0.3-1-0.8L10,3.6C9.7,2.4,8.4,1.7,7.3,2.2 C6.3,2.5,5.9,3.6,6.1,4.6l2.5,11.3c0.2,0.8-0.7,1.5-1.5,1.1l-4-2.6c-0.8-0.5-1.8-0.4-2.5,0.3c-0.8,0.8-0.8,2.1,0,2.9L10.9,28 c1.2,1.3,3,2,4.9,2H20c2.9,0,4.7-2,5.9-4.8l5.9-14.3C32.2,10,31.9,8.9,31.1,8.3z" class="Black" />
</g>
</svg>

View File

@@ -0,0 +1,19 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Black{fill:#727272;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{display:none;}
.st2{display:inline;fill:#039C23;}
.st3{display:inline;fill:#D11C1C;}
.st4{display:inline;fill:#727272;}
</style>
<g id="HighImportance">
<path d="M16,2C8.3,2,2,8.3,2,16s6.3,14,14,14s14-6.3,14-14S23.7,2,16,2z M16,24c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2 S17.1,24,16,24z M18,18h-4V8h4V18z" class="Red" />
</g>
</svg>

View File

@@ -0,0 +1,22 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Black{fill:#727272;}
.Yellow{fill:#FFB115;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.White{fill:#FFFFFF;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
.st2{opacity:0.25;}
</style>
<g id="AddGroupHeader">
<rect x="6" y="8" width="14" height="6" rx="0" ry="0" class="Blue" />
<g class="st0">
<path d="M20,18H6v-2h14V18z M20,20H6v2h14V20z M20,24H6v2h14V24z" class="Black" />
</g>
<path d="M22,28H4V6h16h2h0.2l1.6-1.6C23.6,4.2,23.3,4,23,4H3C2.5,4,2,4.5,2,5v24c0,0.5,0.5,1,1,1h20c0.5,0,1-0.5,1-1 v-9.2l-2-2V28z" class="Black" />
<polygon points="30,7 27,10 24,7 22,9 25,12 22,15 24,17 27,14 30,17 32,15 29,12 32,9 " class="Red" />
</g>
</svg>

View File

@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Black{fill:#737374;}
.Yellow{fill:#FCB01B;}
.Green{fill:#129C49;}
.Blue{fill:#387CB7;}
.Red{fill:#D02127;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{opacity:0.75;}
.st2{opacity:0.25;}
.st3{display:none;fill:#737374;}
</style>
<path d="M27,4h-3v10H8V4H5C4.4,4,4,4.4,4,5v22c0,0.6,0.4,1,1,1h22c0.6,0,1-0.4,1-1V5C28,4.4,27.6,4,27,4z M24,24H8v-6 h16V24z M10,4v8h10V4H10z M14,10h-2V6h2V10z" class="Black" />
</svg>

View File

@@ -0,0 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="ToggleFieldCodes" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Black{fill:#727272;}
.Yellow{fill:#FFB115;}
.st0{opacity:0.75;}
</style>
<path d="M32,31V15c0-0.6-0.5-1-1-1H9c-0.6,0-1,0.4-1,1v16c0,0.5,0.4,1,1,1h22C31.5,32,32,31.5,32,31z" class="Yellow" />
<g class="st0">
<path d="M24,17V1c0-0.6-0.5-1-1-1H1C0.4,0,0,0.4,0,1v16c0,0.5,0.4,1,1,1h22C23.5,18,24,17.5,24,17z" class="Yellow" />
</g>
<path d="M12.6,21.4c0.2-0.3,0.5-0.6,0.8-0.8c0.3-0.2,0.7-0.3,1.1-0.4c0.4-0.1,0.8-0.1,1.2-0.1c0.4,0,0.7,0,1.1,0.1 c0.4,0.1,0.7,0.2,1,0.3c0.3,0.2,0.6,0.4,0.8,0.7c0.2,0.3,0.3,0.7,0.3,1.1v4c0,0.4,0,0.7,0.1,1c0,0.3,0.1,0.6,0.2,0.7h-2.1 c0-0.1-0.1-0.2-0.1-0.4c0-0.1,0-0.3,0-0.4c-0.3,0.4-0.7,0.6-1.1,0.7c-0.4,0.1-0.9,0.2-1.3,0.2c-0.4,0-0.7,0-1-0.1 c-0.3-0.1-0.6-0.2-0.8-0.4c-0.2-0.2-0.4-0.4-0.5-0.7s-0.2-0.6-0.2-1c0-0.4,0.1-0.8,0.2-1.1c0.1-0.3,0.3-0.5,0.6-0.7s0.5-0.3,0.8-0.4 c0.3-0.1,0.6-0.2,0.9-0.2c0.3,0,0.6-0.1,0.9-0.1c0.3,0,0.6-0.1,0.8-0.1c0.2-0.1,0.4-0.1,0.5-0.3c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.2,0-0.4-0.1-0.5c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.3-0.1-0.4-0.1c-0.2,0-0.3,0-0.5,0c-0.4,0-0.7,0.1-0.9,0.3 c-0.2,0.2-0.4,0.5-0.4,0.9h-2C12.3,22.1,12.4,21.7,12.6,21.4z M16.6,24.4c-0.1,0-0.3,0.1-0.4,0.1c-0.1,0-0.3,0.1-0.5,0.1 c-0.2,0-0.3,0-0.5,0.1c-0.2,0-0.3,0.1-0.5,0.1c-0.1,0.1-0.3,0.1-0.4,0.2c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.1,0.3-0.1,0.5 c0,0.2,0,0.4,0.1,0.5c0.1,0.1,0.2,0.2,0.3,0.3c0.1,0.1,0.2,0.1,0.4,0.2c0.2,0,0.3,0,0.5,0c0.4,0,0.7-0.1,0.9-0.2 c0.2-0.1,0.4-0.3,0.5-0.5c0.1-0.2,0.2-0.4,0.2-0.6c0-0.2,0-0.4,0-0.5v-0.8C16.8,24.3,16.7,24.3,16.6,24.4z M22.6,18v3.2h0 c0.2-0.4,0.6-0.7,1-0.9c0.4-0.2,0.9-0.3,1.3-0.3c0.4,0,0.7,0.1,1.1,0.2c0.4,0.2,0.7,0.4,1,0.7c0.3,0.3,0.5,0.8,0.7,1.3 c0.2,0.5,0.3,1.1,0.3,1.8s-0.1,1.3-0.3,1.8c-0.2,0.5-0.4,0.9-0.7,1.3c-0.3,0.3-0.6,0.6-1,0.7c-0.4,0.2-0.7,0.2-1.1,0.2 c-0.5,0-1-0.1-1.5-0.3c-0.4-0.2-0.8-0.5-1-0.9h0v1h-1.9V18H22.6z M25.9,23.2c-0.1-0.3-0.2-0.6-0.3-0.8c-0.1-0.2-0.3-0.4-0.5-0.5 c-0.2-0.1-0.5-0.2-0.8-0.2c-0.3,0-0.6,0.1-0.8,0.2c-0.2,0.1-0.4,0.3-0.5,0.5c-0.1,0.2-0.2,0.5-0.3,0.8c-0.1,0.3-0.1,0.6-0.1,0.9 c0,0.3,0,0.6,0.1,0.9c0.1,0.3,0.2,0.6,0.3,0.8c0.1,0.2,0.3,0.4,0.5,0.5c0.2,0.1,0.5,0.2,0.8,0.2c0.3,0,0.6-0.1,0.8-0.2 c0.2-0.1,0.4-0.3,0.5-0.5c0.1-0.2,0.2-0.5,0.3-0.8c0.1-0.3,0.1-0.6,0.1-0.9C26,23.8,25.9,23.5,25.9,23.2z M19,9.8c0,0-0.1,0-0.1,0 c-0.1,0-0.3,0.1-0.4,0.2c-0.1,0.1-0.2,0.2-0.3,0.4C18,10.6,18,10.8,18,11.1v0.7c0,0.4-0.1,0.7-0.2,1c-0.1,0.3-0.3,0.5-0.4,0.7 c-0.2,0.2-0.4,0.3-0.6,0.4C16.6,14,16.4,14,16.3,14H14v-1.8h1.2c0.2,0,0.3,0,0.4-0.1c0.1-0.1,0.2-0.2,0.2-0.3 c0.1-0.1,0.1-0.2,0.1-0.4c0-0.1,0-0.3,0-0.4v-0.1c0-0.4,0.1-0.6,0.2-0.9c0.1-0.2,0.2-0.4,0.4-0.5s0.3-0.2,0.5-0.3 C17.2,9.1,17.3,9,17.4,9v0c-0.1,0-0.2,0-0.4-0.1c-0.2-0.1-0.3-0.2-0.5-0.3S16.3,8.3,16.2,8S16,7.4,16,7v0c0-0.1,0-0.3,0-0.4 c0-0.1,0-0.3-0.1-0.4C15.8,6.1,15.7,6,15.6,6c-0.1-0.1-0.2-0.1-0.4-0.1H14V4h2.3c0.2,0,0.3,0,0.5,0.1c0.2,0.1,0.4,0.2,0.6,0.4 c0.2,0.2,0.3,0.4,0.4,0.7c0.1,0.3,0.2,0.6,0.2,1v0.6c0,0.3,0,0.5,0.1,0.7c0.1,0.2,0.2,0.3,0.3,0.5c0.1,0.1,0.3,0.2,0.4,0.2 c0,0,0.1,0,0.1,0V9.8z M5,9.8c0,0,0.1,0,0.1,0c0.1,0,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.4C6,10.6,6,10.8,6,11.1v0.7 c0,0.4,0.1,0.7,0.2,1c0.1,0.3,0.3,0.5,0.4,0.7c0.2,0.2,0.4,0.3,0.6,0.4C7.4,14,7.6,14,7.7,14H10v-1.8H8.8c-0.2,0-0.3,0-0.4-0.1 c-0.1-0.1-0.2-0.2-0.2-0.3C8.1,11.6,8,11.5,8,11.4c0-0.1,0-0.3,0-0.4v-0.1c0-0.4-0.1-0.6-0.2-0.9C7.7,9.8,7.6,9.6,7.5,9.4 S7.2,9.2,7,9.1C6.8,9.1,6.7,9,6.6,9v0c0.1,0,0.2,0,0.4-0.1c0.2-0.1,0.3-0.2,0.5-0.3S7.7,8.3,7.8,8S8,7.4,8,7v0c0-0.1,0-0.3,0-0.4 c0-0.1,0-0.3,0.1-0.4C8.2,6.1,8.3,6,8.4,6c0.1-0.1,0.2-0.1,0.4-0.1H10V4H7.7C7.6,4,7.4,4,7.2,4.1C7,4.2,6.8,4.4,6.6,4.6 C6.5,4.7,6.3,5,6.2,5.2C6.1,5.5,6,5.8,6,6.2v0.6c0,0.3,0,0.5-0.1,0.7C5.8,7.7,5.7,7.9,5.5,8C5.4,8.1,5.3,8.2,5.1,8.2 c0,0-0.1,0-0.1,0V9.8z" class="Black" />
</svg>

View File

@@ -0,0 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="ToggleFieldCodes" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Black{fill:#727272;}
.Yellow{fill:#FFB115;}
.st0{opacity:0.75;}
</style>
<path d="M32,31V15c0-0.6-0.5-1-1-1H9c-0.6,0-1,0.4-1,1v16c0,0.5,0.4,1,1,1h22C31.5,32,32,31.5,32,31z" class="Yellow" />
<g class="st0">
<path d="M24,17V1c0-0.6-0.5-1-1-1H1C0.4,0,0,0.4,0,1v16c0,0.5,0.4,1,1,1h22C23.5,18,24,17.5,24,17z" class="Yellow" />
</g>
<path d="M12.6,21.4c0.2-0.3,0.5-0.6,0.8-0.8c0.3-0.2,0.7-0.3,1.1-0.4c0.4-0.1,0.8-0.1,1.2-0.1c0.4,0,0.7,0,1.1,0.1 c0.4,0.1,0.7,0.2,1,0.3c0.3,0.2,0.6,0.4,0.8,0.7c0.2,0.3,0.3,0.7,0.3,1.1v4c0,0.4,0,0.7,0.1,1c0,0.3,0.1,0.6,0.2,0.7h-2.1 c0-0.1-0.1-0.2-0.1-0.4c0-0.1,0-0.3,0-0.4c-0.3,0.4-0.7,0.6-1.1,0.7c-0.4,0.1-0.9,0.2-1.3,0.2c-0.4,0-0.7,0-1-0.1 c-0.3-0.1-0.6-0.2-0.8-0.4c-0.2-0.2-0.4-0.4-0.5-0.7s-0.2-0.6-0.2-1c0-0.4,0.1-0.8,0.2-1.1c0.1-0.3,0.3-0.5,0.6-0.7s0.5-0.3,0.8-0.4 c0.3-0.1,0.6-0.2,0.9-0.2c0.3,0,0.6-0.1,0.9-0.1c0.3,0,0.6-0.1,0.8-0.1c0.2-0.1,0.4-0.1,0.5-0.3c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.2,0-0.4-0.1-0.5c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.3-0.1-0.4-0.1c-0.2,0-0.3,0-0.5,0c-0.4,0-0.7,0.1-0.9,0.3 c-0.2,0.2-0.4,0.5-0.4,0.9h-2C12.3,22.1,12.4,21.7,12.6,21.4z M16.6,24.4c-0.1,0-0.3,0.1-0.4,0.1c-0.1,0-0.3,0.1-0.5,0.1 c-0.2,0-0.3,0-0.5,0.1c-0.2,0-0.3,0.1-0.5,0.1c-0.1,0.1-0.3,0.1-0.4,0.2c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.1,0.3-0.1,0.5 c0,0.2,0,0.4,0.1,0.5c0.1,0.1,0.2,0.2,0.3,0.3c0.1,0.1,0.2,0.1,0.4,0.2c0.2,0,0.3,0,0.5,0c0.4,0,0.7-0.1,0.9-0.2 c0.2-0.1,0.4-0.3,0.5-0.5c0.1-0.2,0.2-0.4,0.2-0.6c0-0.2,0-0.4,0-0.5v-0.8C16.8,24.3,16.7,24.3,16.6,24.4z M22.6,18v3.2h0 c0.2-0.4,0.6-0.7,1-0.9c0.4-0.2,0.9-0.3,1.3-0.3c0.4,0,0.7,0.1,1.1,0.2c0.4,0.2,0.7,0.4,1,0.7c0.3,0.3,0.5,0.8,0.7,1.3 c0.2,0.5,0.3,1.1,0.3,1.8s-0.1,1.3-0.3,1.8c-0.2,0.5-0.4,0.9-0.7,1.3c-0.3,0.3-0.6,0.6-1,0.7c-0.4,0.2-0.7,0.2-1.1,0.2 c-0.5,0-1-0.1-1.5-0.3c-0.4-0.2-0.8-0.5-1-0.9h0v1h-1.9V18H22.6z M25.9,23.2c-0.1-0.3-0.2-0.6-0.3-0.8c-0.1-0.2-0.3-0.4-0.5-0.5 c-0.2-0.1-0.5-0.2-0.8-0.2c-0.3,0-0.6,0.1-0.8,0.2c-0.2,0.1-0.4,0.3-0.5,0.5c-0.1,0.2-0.2,0.5-0.3,0.8c-0.1,0.3-0.1,0.6-0.1,0.9 c0,0.3,0,0.6,0.1,0.9c0.1,0.3,0.2,0.6,0.3,0.8c0.1,0.2,0.3,0.4,0.5,0.5c0.2,0.1,0.5,0.2,0.8,0.2c0.3,0,0.6-0.1,0.8-0.2 c0.2-0.1,0.4-0.3,0.5-0.5c0.1-0.2,0.2-0.5,0.3-0.8c0.1-0.3,0.1-0.6,0.1-0.9C26,23.8,25.9,23.5,25.9,23.2z M19,9.8c0,0-0.1,0-0.1,0 c-0.1,0-0.3,0.1-0.4,0.2c-0.1,0.1-0.2,0.2-0.3,0.4C18,10.6,18,10.8,18,11.1v0.7c0,0.4-0.1,0.7-0.2,1c-0.1,0.3-0.3,0.5-0.4,0.7 c-0.2,0.2-0.4,0.3-0.6,0.4C16.6,14,16.4,14,16.3,14H14v-1.8h1.2c0.2,0,0.3,0,0.4-0.1c0.1-0.1,0.2-0.2,0.2-0.3 c0.1-0.1,0.1-0.2,0.1-0.4c0-0.1,0-0.3,0-0.4v-0.1c0-0.4,0.1-0.6,0.2-0.9c0.1-0.2,0.2-0.4,0.4-0.5s0.3-0.2,0.5-0.3 C17.2,9.1,17.3,9,17.4,9v0c-0.1,0-0.2,0-0.4-0.1c-0.2-0.1-0.3-0.2-0.5-0.3S16.3,8.3,16.2,8S16,7.4,16,7v0c0-0.1,0-0.3,0-0.4 c0-0.1,0-0.3-0.1-0.4C15.8,6.1,15.7,6,15.6,6c-0.1-0.1-0.2-0.1-0.4-0.1H14V4h2.3c0.2,0,0.3,0,0.5,0.1c0.2,0.1,0.4,0.2,0.6,0.4 c0.2,0.2,0.3,0.4,0.4,0.7c0.1,0.3,0.2,0.6,0.2,1v0.6c0,0.3,0,0.5,0.1,0.7c0.1,0.2,0.2,0.3,0.3,0.5c0.1,0.1,0.3,0.2,0.4,0.2 c0,0,0.1,0,0.1,0V9.8z M5,9.8c0,0,0.1,0,0.1,0c0.1,0,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.4C6,10.6,6,10.8,6,11.1v0.7 c0,0.4,0.1,0.7,0.2,1c0.1,0.3,0.3,0.5,0.4,0.7c0.2,0.2,0.4,0.3,0.6,0.4C7.4,14,7.6,14,7.7,14H10v-1.8H8.8c-0.2,0-0.3,0-0.4-0.1 c-0.1-0.1-0.2-0.2-0.2-0.3C8.1,11.6,8,11.5,8,11.4c0-0.1,0-0.3,0-0.4v-0.1c0-0.4-0.1-0.6-0.2-0.9C7.7,9.8,7.6,9.6,7.5,9.4 S7.2,9.2,7,9.1C6.8,9.1,6.7,9,6.6,9v0c0.1,0,0.2,0,0.4-0.1c0.2-0.1,0.3-0.2,0.5-0.3S7.7,8.3,7.8,8S8,7.4,8,7v0c0-0.1,0-0.3,0-0.4 c0-0.1,0-0.3,0.1-0.4C8.2,6.1,8.3,6,8.4,6c0.1-0.1,0.2-0.1,0.4-0.1H10V4H7.7C7.6,4,7.4,4,7.2,4.1C7,4.2,6.8,4.4,6.6,4.6 C6.5,4.7,6.3,5,6.2,5.2C6.1,5.5,6,5.8,6,6.2v0.6c0,0.3,0,0.5-0.1,0.7C5.8,7.7,5.7,7.9,5.5,8C5.4,8.1,5.3,8.2,5.1,8.2 c0,0-0.1,0-0.1,0V9.8z" class="Black" />
</svg>

View File

@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Black{fill:#727272;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
</style>
<g id="UpdateDataExtract">
<path d="M4,10V6c0-2.2,4.5-4,10-4s10,1.8,10,4v4c0,2.2-4.5,4-10,4S4,12.2,4,10z M14,20c0.5,0,1.1,0,1.6-0.1 c1.6-2.4,4.3-3.9,7.4-3.9c0.3,0,0.7,0,1,0.1c0,0,0,0,0-0.1v-4c0,2.2-4.5,4-10,4S4,14.2,4,12v4C4,18.2,8.5,20,14,20z M14,24L14,24 c0.1-0.7,0.3-1.4,0.5-2c-0.2,0-0.4,0-0.5,0c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4V24z" class="Yellow" />
<path d="M30,18v6h-0.1H24l2.5-2.5C25.6,20.6,24.4,20,23,20c-2.4,0-4.4,1.7-4.9,4h-2c0.5-3.4,3.4-6,6.9-6 c1.9,0,3.7,0.8,4.9,2.1L30,18z M23,30c-1.4,0-2.6-0.6-3.5-1.5L22,26h-5.9H16v6l2.1-2.1c1.3,1.3,3,2.1,4.9,2.1c3.5,0,6.4-2.6,6.9-6 h-2C27.4,28.3,25.4,30,23,30z" class="Green" />
</g>
</svg>

View File

@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Black{fill:#727272;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
</style>
<g id="UpdateDataExtract">
<path d="M4,10V6c0-2.2,4.5-4,10-4s10,1.8,10,4v4c0,2.2-4.5,4-10,4S4,12.2,4,10z M14,20c0.5,0,1.1,0,1.6-0.1 c1.6-2.4,4.3-3.9,7.4-3.9c0.3,0,0.7,0,1,0.1c0,0,0,0,0-0.1v-4c0,2.2-4.5,4-10,4S4,14.2,4,12v4C4,18.2,8.5,20,14,20z M14,24L14,24 c0.1-0.7,0.3-1.4,0.5-2c-0.2,0-0.4,0-0.5,0c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4V24z" class="Yellow" />
<path d="M30,18v6h-0.1H24l2.5-2.5C25.6,20.6,24.4,20,23,20c-2.4,0-4.4,1.7-4.9,4h-2c0.5-3.4,3.4-6,6.9-6 c1.9,0,3.7,0.8,4.9,2.1L30,18z M23,30c-1.4,0-2.6-0.6-3.5-1.5L22,26h-5.9H16v6l2.1-2.1c1.3,1.3,3,2.1,4.9,2.1c3.5,0,6.4-2.6,6.9-6 h-2C27.4,28.3,25.4,30,23,30z" class="Green" />
</g>
</svg>

View File

@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Black{fill:#727272;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
</style>
<g id="UpdateDataExtract">
<path d="M4,10V6c0-2.2,4.5-4,10-4s10,1.8,10,4v4c0,2.2-4.5,4-10,4S4,12.2,4,10z M14,20c0.5,0,1.1,0,1.6-0.1 c1.6-2.4,4.3-3.9,7.4-3.9c0.3,0,0.7,0,1,0.1c0,0,0,0,0-0.1v-4c0,2.2-4.5,4-10,4S4,14.2,4,12v4C4,18.2,8.5,20,14,20z M14,24L14,24 c0.1-0.7,0.3-1.4,0.5-2c-0.2,0-0.4,0-0.5,0c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4V24z" class="Yellow" />
<path d="M30,18v6h-0.1H24l2.5-2.5C25.6,20.6,24.4,20,23,20c-2.4,0-4.4,1.7-4.9,4h-2c0.5-3.4,3.4-6,6.9-6 c1.9,0,3.7,0.8,4.9,2.1L30,18z M23,30c-1.4,0-2.6-0.6-3.5-1.5L22,26h-5.9H16v6l2.1-2.1c1.3,1.3,3,2.1,4.9,2.1c3.5,0,6.4-2.6,6.9-6 h-2C27.4,28.3,25.4,30,23,30z" class="Green" />
</g>
</svg>

View File

@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Black{fill:#727272;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
</style>
<g id="UpdateDataExtract">
<path d="M4,10V6c0-2.2,4.5-4,10-4s10,1.8,10,4v4c0,2.2-4.5,4-10,4S4,12.2,4,10z M14,20c0.5,0,1.1,0,1.6-0.1 c1.6-2.4,4.3-3.9,7.4-3.9c0.3,0,0.7,0,1,0.1c0,0,0,0,0-0.1v-4c0,2.2-4.5,4-10,4S4,14.2,4,12v4C4,18.2,8.5,20,14,20z M14,24L14,24 c0.1-0.7,0.3-1.4,0.5-2c-0.2,0-0.4,0-0.5,0c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4V24z" class="Yellow" />
<path d="M30,18v6h-0.1H24l2.5-2.5C25.6,20.6,24.4,20,23,20c-2.4,0-4.4,1.7-4.9,4h-2c0.5-3.4,3.4-6,6.9-6 c1.9,0,3.7,0.8,4.9,2.1L30,18z M23,30c-1.4,0-2.6-0.6-3.5-1.5L22,26h-5.9H16v6l2.1-2.1c1.3,1.3,3,2.1,4.9,2.1c3.5,0,6.4-2.6,6.9-6 h-2C27.4,28.3,25.4,30,23,30z" class="Green" />
</g>
</svg>

View File

@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Black{fill:#727272;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
</style>
<g id="UpdateDataExtract">
<path d="M4,10V6c0-2.2,4.5-4,10-4s10,1.8,10,4v4c0,2.2-4.5,4-10,4S4,12.2,4,10z M14,20c0.5,0,1.1,0,1.6-0.1 c1.6-2.4,4.3-3.9,7.4-3.9c0.3,0,0.7,0,1,0.1c0,0,0,0,0-0.1v-4c0,2.2-4.5,4-10,4S4,14.2,4,12v4C4,18.2,8.5,20,14,20z M14,24L14,24 c0.1-0.7,0.3-1.4,0.5-2c-0.2,0-0.4,0-0.5,0c-5.5,0-10-1.8-10-4v4c0,2.2,4.5,4,10,4V24z" class="Yellow" />
<path d="M30,18v6h-0.1H24l2.5-2.5C25.6,20.6,24.4,20,23,20c-2.4,0-4.4,1.7-4.9,4h-2c0.5-3.4,3.4-6,6.9-6 c1.9,0,3.7,0.8,4.9,2.1L30,18z M23,30c-1.4,0-2.6-0.6-3.5-1.5L22,26h-5.9H16v6l2.1-2.1c1.3,1.3,3,2.1,4.9,2.1c3.5,0,6.4-2.6,6.9-6 h-2C27.4,28.3,25.4,30,23,30z" class="Green" />
</g>
</svg>

View File

@@ -0,0 +1,48 @@
Imports DigitalData.Modules.Patterns
Namespace SQLEditor
Public Class Placeholder
''' <summary>
''' The internal Category of the placeholder, ie. the INT Part of {#INT#USERNAME}
''' </summary>
Public Property [Module] As String
''' <summary>
''' The internal Name of the placeholder, ie. the USERNAME Part of {#INT#USERNAME}
''' </summary>
Public Property Name As String
''' <summary>
''' The Value that this palceholder is replaced by, user entry.
''' </summary>
''' <returns></returns>
Public Property Value As String
''' <summary>
''' The internal pattern object
''' </summary>
''' <returns></returns>
Public Property Pattern As Pattern
Public Title As String
Public Description As String
Public Enum PlaceholderType
FileFlow
End Enum
Public Sub New(pTitle As String, pDescription As String, pModule As String, pName As String)
Title = pTitle
Description = pDescription
Name = pName
[Module] = pModule
End Sub
Public Overrides Function Equals(obj As Object) As Boolean
Return DirectCast(obj, Placeholder).Module = [Module] And
DirectCast(obj, Placeholder).Name = Name
End Function
End Class
End Namespace

View File

@@ -0,0 +1,137 @@
Imports DevExpress.Utils.Svg
Imports DevExpress.XtraBars.Ribbon
Namespace SQLEditor
Public Class Placeholders
Public Const AUTO_INDEX_ZOOFLOW = "ATTR_M"
Public Const MAN_INDEX_ZOOFLOW = "ATTR_A"
Public Function GetInternalPlaceholders() As GalleryItemGroup
Dim oModule = "INT"
Dim oImage = My.Resources.electronics_desktopmac
Dim oItems As New List(Of GalleryItem)() From {
GetGalleryItem(New Placeholder("USERNAME", "Benutzername", oModule, "USERNAME"), oImage),
GetGalleryItem(New Placeholder("MACHINE", "Aktuelles Datum", oModule, "MACHINE"), oImage),
GetGalleryItem(New Placeholder("DOMAIN", "Email-Adresse", oModule, "DOMAIN"), oImage),
GetGalleryItem(New Placeholder("DATE", "Vorname", oModule, "DATE"), oImage)
}
Dim oGroup1 = New GalleryItemGroup() With {.Caption = "Intern"}
oGroup1.Items.AddRange(oItems.ToArray)
Return oGroup1
End Function
Public Function GetClipboardPlaceholder() As GalleryItemGroup
Dim oModule = "CLIP"
Dim oImage = My.Resources.electronics_desktopmac
Dim oItems As New List(Of GalleryItem)() From {
GetGalleryItem(New Placeholder("BOARD", "Zwischenablage", oModule, "BOARD"), oImage)
}
Dim oGroup1 = New GalleryItemGroup() With {.Caption = "Zwischenablage"}
oGroup1.Items.AddRange(oItems.ToArray)
Return oGroup1
End Function
Friend Function GetWindreamPlaceholders(pPlaceholders As List(Of String)) As GalleryItemGroup
Dim oImage = My.Resources.bo_contract
Dim oItems As New List(Of GalleryItem)()
If pPlaceholders.Count > 0 Then
For Each oWindreamPlaceholder In pPlaceholders
Dim oPlaceholder = New Placeholder(oWindreamPlaceholder, "Windream Index", "WMI", oWindreamPlaceholder)
oItems.Add(GetGalleryItem(oPlaceholder, oImage))
Next
Else Return Nothing
End If
Dim oGroup1 = New GalleryItemGroup() With {.Caption = "Windream Indizies"}
oGroup1.Items.AddRange(oItems.ToArray)
Return oGroup1
End Function
Public Function GetManualPlaceholders(pPlaceholders As List(Of String), pPrefix As String) As GalleryItemGroup
Dim oImage As SvgImage = My.Resources.handtool
Dim oItems As New List(Of GalleryItem)()
Dim oPrefix As String = pPrefix
If oPrefix Is Nothing Then
oPrefix = AUTO_INDEX_ZOOFLOW
End If
If pPlaceholders.Count > 0 Then
For Each oManualPlaceholder In pPlaceholders
Dim oPlaceholder = New Placeholder(oManualPlaceholder, "Manuelles Attribut", oPrefix, oManualPlaceholder)
oItems.Add(GetGalleryItem(oPlaceholder, oImage))
Next
Else Return Nothing
End If
Dim oGroup1 = New GalleryItemGroup() With {.Caption = "Manuelle Attribute"}
oGroup1.Items.AddRange(oItems.ToArray)
Return oGroup1
End Function
Public Function GetAutomaticPlaceholders(pPlaceholders As List(Of String), pPrefix As String) As GalleryItemGroup
Dim oImage As SvgImage = My.Resources.autoarrange
Dim oItems As New List(Of GalleryItem)()
Dim oPrefix As String = pPrefix
If oPrefix Is Nothing Then
oPrefix = AUTO_INDEX_ZOOFLOW
End If
If pPlaceholders.Count > 0 Then
For Each oManualPlaceholder In pPlaceholders
Dim oPlaceholder = New Placeholder(oManualPlaceholder, "Automatisches Attribut", oPrefix, oManualPlaceholder)
oItems.Add(GetGalleryItem(oPlaceholder, oImage))
Next
Else Return Nothing
End If
Dim oGroup1 = New GalleryItemGroup() With {.Caption = "Automatisches Attribut"}
oGroup1.Items.AddRange(oItems.ToArray)
Return oGroup1
End Function
Public Function GetUserPlaceholders() As GalleryItemGroup
Dim oModule = "USER"
Dim oImage = My.Resources.actions_user
Dim oItems As New List(Of GalleryItem)() From {
GetGalleryItem(New Placeholder("PRENAME", "Vorname", oModule, "PRENAME"), oImage),
GetGalleryItem(New Placeholder("SURNAME", "Nachname", oModule, "SURNAME"), oImage),
GetGalleryItem(New Placeholder("EMAIL", "Email-Adresse", oModule, "EMAIL"), oImage),
GetGalleryItem(New Placeholder("USER_ID", "Benutzer-ID", oModule, "USER_ID"), oImage),
GetGalleryItem(New Placeholder("PROFILE_ID", "Profil-ID", oModule, "PROFILE_ID"), oImage),
GetGalleryItem(New Placeholder("PROFILE_TITLE", "Profil-Name", oModule, "PROFILE_TITLE"), oImage),
GetGalleryItem(New Placeholder("LANGUAGE", "Sprache", oModule, "LANGUAGE"), oImage)
}
Dim oGroup1 = New GalleryItemGroup() With {.Caption = "Benutzer"}
oGroup1.Items.AddRange(oItems.ToArray)
Return oGroup1
End Function
Private Function GetGalleryItem(pPlaceholder As Placeholder) As GalleryItem
Return New GalleryItem(Nothing, pPlaceholder.Title, pPlaceholder.Description) With {
.Tag = pPlaceholder
}
End Function
Private Function GetGalleryItem(pPlaceholder As Placeholder, pImage As SvgImage) As GalleryItem
Dim oItem = New GalleryItem(Nothing, pPlaceholder.Title, pPlaceholder.Description) With {
.Tag = pPlaceholder
}
oItem.ImageOptions.SvgImage = pImage
Return oItem
End Function
End Class
End Namespace

View File

@@ -0,0 +1,165 @@
Imports System.Collections.Generic
Imports System.Drawing
Imports System.Windows.Forms
Imports DevExpress.Office.Utils
Imports DevExpress.XtraRichEdit.API.Native
Imports DevExpress.XtraRichEdit.Services
Imports System.Linq
Imports System.Text.RegularExpressions
Namespace SQLEditor
Public Class SQLSyntaxHighlightService
Implements ISyntaxHighlightService
Private ReadOnly document As Document
Private _keywords As Regex
Private _quotedString As New Regex("'([^']|'')*'")
Private _commentedString As New Regex("(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)")
Private _placeholderString As New Regex("{#(\w+)#([\:\.\w\s_/-]+)}")
Private ReadOnly keywords As New List(Of String) From {
"INSERT",
"SELECT",
"CREATE",
"TABLE",
"USE",
"IDENTITY",
"JOIN",
"ON",
"OFF",
"NOT",
"NULL",
"WITH",
"SET",
"GO",
"DECLARE",
"EXECUTE",
"NVARCHAR",
"FROM",
"INTO",
"VALUES",
"WHERE",
"AND"
}
Public Sub New(ByVal document As Document)
Me.document = document
Me._keywords = New Regex("\b(" & String.Join("|", keywords.Select(Function(w) Regex.Escape(w))) & ")\b")
End Sub
Public Sub ForceExecute() Implements ISyntaxHighlightService.ForceExecute
Execute()
End Sub
Public Sub Execute() Implements ISyntaxHighlightService.Execute
Dim tSqltokens As List(Of SyntaxHighlightToken) = ParseTokens()
document.ApplySyntaxHighlight(tSqltokens)
End Sub
Private Function ParseTokens() As List(Of SyntaxHighlightToken)
Dim tokens As New List(Of SyntaxHighlightToken)()
Dim ranges() As DocumentRange = Nothing
' search for quoted strings
ranges = TryCast(document.FindAll(_quotedString).GetAsFrozen(), DocumentRange())
For i As Integer = 0 To ranges.Length - 1
tokens.Add(CreateToken(ranges(i).Start.ToInt(), ranges(i).End.ToInt(), Color.Red))
Next i
'Extract all keywords
ranges = TryCast(document.FindAll(_keywords).GetAsFrozen(), DocumentRange())
For j As Integer = 0 To ranges.Length - 1
If Not IsRangeInTokens(ranges(j), tokens) Then
tokens.Add(CreateToken(ranges(j).Start.ToInt(), ranges(j).End.ToInt(), Color.Blue))
End If
Next j
'Find all placeholders
ranges = TryCast(document.FindAll(_placeholderString).GetAsFrozen(), DocumentRange())
For j As Integer = 0 To ranges.Length - 1
If Not IsRangeInTokens(ranges(j), tokens) Then
tokens.Add(CreateToken(ranges(j).Start.ToInt(), ranges(j).End.ToInt(), Color.DarkTurquoise))
End If
Next j
'Find all comments
ranges = TryCast(document.FindAll(_commentedString).GetAsFrozen(), DocumentRange())
For j As Integer = 0 To ranges.Length - 1
If Not IsRangeInTokens(ranges(j), tokens) Then
tokens.Add(CreateToken(ranges(j).Start.ToInt(), ranges(j).End.ToInt(), Color.Green))
End If
Next j
' order tokens by their start position
tokens.Sort(New SyntaxHighlightTokenComparer())
' fill in gaps in document coverage
tokens = CombineWithPlainTextTokens(tokens)
Return tokens
End Function
'Parse the remaining text into tokens:
Private Function CombineWithPlainTextTokens(ByVal tokens As List(Of SyntaxHighlightToken)) As List(Of SyntaxHighlightToken)
Dim result As New List(Of SyntaxHighlightToken)(tokens.Count * 2 + 1)
Dim documentStart As Integer = Me.document.Range.Start.ToInt()
Dim documentEnd As Integer = Me.document.Range.End.ToInt()
If tokens.Count = 0 Then
result.Add(CreateToken(documentStart, documentEnd, Color.Black))
Else
Dim firstToken As SyntaxHighlightToken = tokens(0)
If documentStart < firstToken.Start Then
result.Add(CreateToken(documentStart, firstToken.Start, Color.Black))
End If
result.Add(firstToken)
For i As Integer = 1 To tokens.Count - 1
Dim token As SyntaxHighlightToken = tokens(i)
Dim prevToken As SyntaxHighlightToken = tokens(i - 1)
If prevToken.End <> token.Start Then
result.Add(CreateToken(prevToken.End, token.Start, Color.Black))
End If
result.Add(token)
Next i
Dim lastToken As SyntaxHighlightToken = tokens(tokens.Count - 1)
If documentEnd > lastToken.End Then
result.Add(CreateToken(lastToken.End, documentEnd, Color.Black))
End If
End If
Return result
End Function
'Create a token from the retrieved range and specify its forecolor
Private Function CreateToken(ByVal start As Integer, ByVal [end] As Integer, ByVal foreColor As Color) As SyntaxHighlightToken
Dim properties As New SyntaxHighlightProperties()
properties.ForeColor = foreColor
Return New SyntaxHighlightToken(start, [end] - start, properties)
End Function
'Check whether tokens intersect each other
Private Function IsRangeInTokens(ByVal range As DocumentRange, ByVal tokens As List(Of SyntaxHighlightToken)) As Boolean
Return tokens.Any(Function(t) IsIntersect(range, t))
End Function
Private Function IsIntersect(ByVal range As DocumentRange, ByVal token As SyntaxHighlightToken) As Boolean
Dim start As Integer = range.Start.ToInt()
If start >= token.Start AndAlso start < token.End Then
Return True
End If
Dim [end] As Integer = range.End.ToInt() - 1
If [end] >= token.Start AndAlso [end] < token.End Then
Return True
End If
If start < token.Start AndAlso [end] >= token.End Then
Return True
End If
Return False
End Function
End Class
'Compare token's initial positions to sort them
Public Class SyntaxHighlightTokenComparer
Implements IComparer(Of SyntaxHighlightToken)
Public Function Compare(ByVal x As SyntaxHighlightToken, ByVal y As SyntaxHighlightToken) As Integer Implements IComparer(Of SyntaxHighlightToken).Compare
Return x.Start - y.Start
End Function
End Class
End Namespace

335
GUIs.Common/frmSQLEditor.Designer.vb generated Normal file
View File

@@ -0,0 +1,335 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class frmSQLEditor
Inherits DevExpress.XtraBars.Ribbon.RibbonForm
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Wird vom Windows Form-Designer benötigt.
Private components As System.ComponentModel.IContainer
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.GalleryPlaceholders = New DevExpress.XtraBars.RibbonGalleryBarItem()
Me.SvgImageCollection1 = New DevExpress.Utils.SvgImageCollection(Me.components)
Me.btnEditConnections = New DevExpress.XtraBars.BarButtonItem()
Me.btnSave = New DevExpress.XtraBars.BarButtonItem()
Me.btnExecuteSQL = New DevExpress.XtraBars.BarButtonItem()
Me.GalleryConnection = New DevExpress.XtraBars.RibbonGalleryBarItem()
Me.chkClearPlaceholders = New DevExpress.XtraBars.BarCheckItem()
Me.btnClearPlaceholders = New DevExpress.XtraBars.BarButtonItem()
Me.chkShowPlaceholders = New DevExpress.XtraBars.BarCheckItem()
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem4 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem5 = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.txtSQLCommand = New DevExpress.XtraRichEdit.RichEditControl()
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
Me.GridPlaceholders = New DevExpress.XtraGrid.GridControl()
Me.ViewPlaceholders = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.colPattern = New DevExpress.XtraGrid.Columns.GridColumn()
Me.colValue = New DevExpress.XtraGrid.Columns.GridColumn()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl1.Panel1.SuspendLayout()
CType(Me.SplitContainerControl1.Panel2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl1.Panel2.SuspendLayout()
Me.SplitContainerControl1.SuspendLayout()
CType(Me.GridPlaceholders, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.ViewPlaceholders, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'RibbonControl1
'
Me.RibbonControl1.ExpandCollapseItem.Id = 0
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.GalleryPlaceholders, Me.btnEditConnections, Me.btnSave, Me.btnExecuteSQL, Me.GalleryConnection, Me.chkClearPlaceholders, Me.btnClearPlaceholders, Me.chkShowPlaceholders, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarButtonItem5})
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
Me.RibbonControl1.MaxItemId = 19
Me.RibbonControl1.Name = "RibbonControl1"
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
Me.RibbonControl1.Size = New System.Drawing.Size(1056, 158)
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
'
'GalleryPlaceholders
'
Me.GalleryPlaceholders.Caption = "RibbonGalleryBarItem1"
'
'
'
Me.GalleryPlaceholders.Gallery.ColumnCount = 4
Me.GalleryPlaceholders.Gallery.Images = Me.SvgImageCollection1
Me.GalleryPlaceholders.Gallery.ShowGroupCaption = True
Me.GalleryPlaceholders.Gallery.ShowItemText = True
Me.GalleryPlaceholders.Id = 1
Me.GalleryPlaceholders.Name = "GalleryPlaceholders"
'
'SvgImageCollection1
'
Me.SvgImageCollection1.Add("bo_list", "image://svgimages/business objects/bo_list.svg")
'
'btnEditConnections
'
Me.btnEditConnections.Caption = "Verbindungen"
Me.btnEditConnections.Id = 2
Me.btnEditConnections.Name = "btnEditConnections"
'
'btnSave
'
Me.btnSave.Caption = "Speichern und Schließen"
Me.btnSave.Id = 3
Me.btnSave.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.save2
Me.btnSave.Name = "btnSave"
'
'btnExecuteSQL
'
Me.btnExecuteSQL.Caption = "SQL Ausführen (F5)"
Me.btnExecuteSQL.Id = 4
Me.btnExecuteSQL.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.updatedataextract
Me.btnExecuteSQL.Name = "btnExecuteSQL"
'
'GalleryConnection
'
Me.GalleryConnection.Caption = "RibbonGalleryBarItem2"
'
'
'
Me.GalleryConnection.Gallery.CheckDrawMode = DevExpress.XtraBars.Ribbon.Gallery.CheckDrawMode.ImageAndText
Me.GalleryConnection.Gallery.ColumnCount = 4
Me.GalleryConnection.Gallery.ItemCheckMode = DevExpress.XtraBars.Ribbon.Gallery.ItemCheckMode.SingleRadio
Me.GalleryConnection.Gallery.RowCount = 1
Me.GalleryConnection.Gallery.ShowItemText = True
Me.GalleryConnection.Id = 5
Me.GalleryConnection.Name = "GalleryConnection"
'
'chkClearPlaceholders
'
Me.chkClearPlaceholders.Caption = "Platzhalter nach Ausführung leeren"
Me.chkClearPlaceholders.Id = 9
Me.chkClearPlaceholders.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.clearpivottable1
Me.chkClearPlaceholders.Name = "chkClearPlaceholders"
'
'btnClearPlaceholders
'
Me.btnClearPlaceholders.Caption = "Platzhalter jetzt leeren"
Me.btnClearPlaceholders.Id = 10
Me.btnClearPlaceholders.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.clearall
Me.btnClearPlaceholders.Name = "btnClearPlaceholders"
'
'chkShowPlaceholders
'
Me.chkShowPlaceholders.BindableChecked = True
Me.chkShowPlaceholders.Caption = "Platzhalter anzeigen"
Me.chkShowPlaceholders.Checked = True
Me.chkShowPlaceholders.Id = 12
Me.chkShowPlaceholders.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.togglefieldcodes
Me.chkShowPlaceholders.Name = "chkShowPlaceholders"
'
'BarButtonItem1
'
Me.BarButtonItem1.Caption = "BarButtonItem1"
Me.BarButtonItem1.Id = 13
Me.BarButtonItem1.Name = "BarButtonItem1"
'
'BarButtonItem2
'
Me.BarButtonItem2.Caption = "BarButtonItem2"
Me.BarButtonItem2.Id = 14
Me.BarButtonItem2.Name = "BarButtonItem2"
'
'BarButtonItem3
'
Me.BarButtonItem3.Caption = "BarButtonItem3"
Me.BarButtonItem3.Id = 15
Me.BarButtonItem3.Name = "BarButtonItem3"
'
'BarButtonItem4
'
Me.BarButtonItem4.Caption = "BarButtonItem4"
Me.BarButtonItem4.Id = 16
Me.BarButtonItem4.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.actions_user
Me.BarButtonItem4.Name = "BarButtonItem4"
'
'BarButtonItem5
'
Me.BarButtonItem5.Caption = "BarButtonItem5"
Me.BarButtonItem5.Id = 18
Me.BarButtonItem5.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.actions_database
Me.BarButtonItem5.Name = "BarButtonItem5"
'
'RibbonPage1
'
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup3, Me.RibbonPageGroup1})
Me.RibbonPage1.Name = "RibbonPage1"
Me.RibbonPage1.Text = "RibbonPage1"
'
'RibbonPageGroup3
'
Me.RibbonPageGroup3.ItemLinks.Add(Me.btnSave)
Me.RibbonPageGroup3.ItemLinks.Add(Me.btnExecuteSQL)
Me.RibbonPageGroup3.ItemLinks.Add(Me.GalleryConnection)
Me.RibbonPageGroup3.Name = "RibbonPageGroup3"
Me.RibbonPageGroup3.Text = "Start"
'
'RibbonPageGroup1
'
Me.RibbonPageGroup1.ItemLinks.Add(Me.GalleryPlaceholders)
Me.RibbonPageGroup1.ItemLinks.Add(Me.chkShowPlaceholders)
Me.RibbonPageGroup1.ItemLinks.Add(Me.chkClearPlaceholders)
Me.RibbonPageGroup1.ItemLinks.Add(Me.btnClearPlaceholders)
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
Me.RibbonPageGroup1.Text = "Platzhalter"
'
'RibbonStatusBar1
'
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 666)
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
Me.RibbonStatusBar1.Size = New System.Drawing.Size(1056, 24)
'
'RibbonPage2
'
Me.RibbonPage2.Name = "RibbonPage2"
Me.RibbonPage2.Text = "RibbonPage2"
'
'txtSQLCommand
'
Me.txtSQLCommand.Dock = System.Windows.Forms.DockStyle.Fill
Me.txtSQLCommand.Location = New System.Drawing.Point(0, 0)
Me.txtSQLCommand.MenuManager = Me.RibbonControl1
Me.txtSQLCommand.Name = "txtSQLCommand"
Me.txtSQLCommand.Size = New System.Drawing.Size(802, 508)
Me.txtSQLCommand.TabIndex = 2
'
'SplitContainerControl1
'
Me.SplitContainerControl1.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2
Me.SplitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainerControl1.Location = New System.Drawing.Point(0, 158)
Me.SplitContainerControl1.Name = "SplitContainerControl1"
'
'SplitContainerControl1.Panel1
'
Me.SplitContainerControl1.Panel1.Controls.Add(Me.txtSQLCommand)
Me.SplitContainerControl1.Panel1.Text = "Panel1"
'
'SplitContainerControl1.Panel2
'
Me.SplitContainerControl1.Panel2.Controls.Add(Me.GridPlaceholders)
Me.SplitContainerControl1.Panel2.Text = "Panel2"
Me.SplitContainerControl1.Size = New System.Drawing.Size(1056, 508)
Me.SplitContainerControl1.SplitterPosition = 802
Me.SplitContainerControl1.TabIndex = 4
'
'GridPlaceholders
'
Me.GridPlaceholders.Dock = System.Windows.Forms.DockStyle.Fill
Me.GridPlaceholders.Location = New System.Drawing.Point(0, 0)
Me.GridPlaceholders.MainView = Me.ViewPlaceholders
Me.GridPlaceholders.MenuManager = Me.RibbonControl1
Me.GridPlaceholders.Name = "GridPlaceholders"
Me.GridPlaceholders.Size = New System.Drawing.Size(244, 508)
Me.GridPlaceholders.TabIndex = 0
Me.GridPlaceholders.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.ViewPlaceholders})
'
'ViewPlaceholders
'
Me.ViewPlaceholders.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colPattern, Me.colValue})
Me.ViewPlaceholders.GridControl = Me.GridPlaceholders
Me.ViewPlaceholders.Name = "ViewPlaceholders"
'
'colPattern
'
Me.colPattern.Caption = "Platzhalter"
Me.colPattern.FieldName = "Pattern"
Me.colPattern.Name = "colPattern"
Me.colPattern.OptionsColumn.AllowEdit = False
Me.colPattern.OptionsColumn.ReadOnly = True
Me.colPattern.Visible = True
Me.colPattern.VisibleIndex = 0
'
'colValue
'
Me.colValue.Caption = "Wert"
Me.colValue.FieldName = "Value"
Me.colValue.Name = "colValue"
Me.colValue.Visible = True
Me.colValue.VisibleIndex = 1
'
'frmSQLEditor
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1056, 690)
Me.Controls.Add(Me.SplitContainerControl1)
Me.Controls.Add(Me.RibbonStatusBar1)
Me.Controls.Add(Me.RibbonControl1)
Me.KeyPreview = True
Me.Name = "frmSQLEditor"
Me.Ribbon = Me.RibbonControl1
Me.StatusBar = Me.RibbonStatusBar1
Me.Text = "SQL Designer"
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.SvgImageCollection1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.SplitContainerControl1.Panel1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl1.Panel1.ResumeLayout(False)
CType(Me.SplitContainerControl1.Panel2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl1.Panel2.ResumeLayout(False)
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl1.ResumeLayout(False)
CType(Me.GridPlaceholders, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.ViewPlaceholders, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl
Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar
Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents GalleryPlaceholders As DevExpress.XtraBars.RibbonGalleryBarItem
Friend WithEvents SvgImageCollection1 As DevExpress.Utils.SvgImageCollection
Friend WithEvents txtSQLCommand As DevExpress.XtraRichEdit.RichEditControl
Friend WithEvents SplitContainerControl1 As DevExpress.XtraEditors.SplitContainerControl
Friend WithEvents GridPlaceholders As DevExpress.XtraGrid.GridControl
Friend WithEvents ViewPlaceholders As DevExpress.XtraGrid.Views.Grid.GridView
Friend WithEvents btnEditConnections As DevExpress.XtraBars.BarButtonItem
Friend WithEvents btnSave As DevExpress.XtraBars.BarButtonItem
Friend WithEvents btnExecuteSQL As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents colPattern As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents colValue As DevExpress.XtraGrid.Columns.GridColumn
Friend WithEvents GalleryConnection As DevExpress.XtraBars.RibbonGalleryBarItem
Friend WithEvents chkClearPlaceholders As DevExpress.XtraBars.BarCheckItem
Friend WithEvents btnClearPlaceholders As DevExpress.XtraBars.BarButtonItem
Friend WithEvents chkShowPlaceholders As DevExpress.XtraBars.BarCheckItem
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarButtonItem4 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarButtonItem5 As DevExpress.XtraBars.BarButtonItem
End Class

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="SvgImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

274
GUIs.Common/frmSQLEditor.vb Normal file
View File

@@ -0,0 +1,274 @@
Imports System.Windows.Forms
Imports DevExpress.XtraBars.Ribbon
Imports DevExpress.XtraRichEdit.Services
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Patterns
Public Class frmSQLEditor
Private ReadOnly Patterns As ClassPatterns
Private ReadOnly LogConfig As LogConfig
Private ReadOnly Database As MSSQLServer
Private ReadOnly Placeholders As SQLEditor.Placeholders
Private ClearPlaceholdersAfterSuccessfulExecute As Boolean = False
Private FormLoading As Boolean = False
Public Property SQLCommand As String = ""
Public Property SQLConnection As Integer = 0
Public Property LoadClipboardPlaceholders As Boolean = False
Public Property PlaceholdersManual As List(Of String)
Public Property PlaceholdersManualPrefix As String
Public Property PlaceholdersAutomatic As List(Of String)
Public Property PlaceholdersAutomaticPrefix As String
Public Property PlaceholdersWindream As List(Of String)
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
LogConfig = pLogConfig
Database = pDatabase
Patterns = New ClassPatterns(LogConfig)
Placeholders = New SQLEditor.Placeholders()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
FormLoading = True
Try
If PlaceholdersAutomatic Is Nothing Then
PlaceholdersAutomatic = New List(Of String)
End If
If PlaceholdersManual Is Nothing Then
PlaceholdersManual = New List(Of String)
End If
If PlaceholdersWindream Is Nothing Then
PlaceholdersWindream = New List(Of String)
End If
If SQLCommand <> String.Empty Then
txtSQLCommand.Document.Text = SQLCommand
End If
Dim oConnectionGroup = LoadConnections()
Dim oSelectedItem = Nothing
If SQLConnection > 0 Then
For Each oItem As GalleryItem In oConnectionGroup.Items
Dim oConnection = oItem.Tag
If SQLConnection = oConnection.id Then
oSelectedItem = oItem
End If
Next
End If
GalleryConnection.Gallery.Groups.Add(oConnectionGroup)
GalleryConnection.Gallery.SetItemCheck(oSelectedItem, True)
Dim oPlaceholderGroups = LoadPlaceholders()
GalleryPlaceholders.Gallery.Groups.AddRange(oPlaceholderGroups.ToArray)
ConfigureRichEditControl()
chkClearPlaceholders.Checked = ClearPlaceholdersAfterSuccessfulExecute
Catch ex As Exception
Finally
FormLoading = False
End Try
End Sub
Private Sub RibbonGalleryBarItem1_GalleryItemClick(sender As Object, e As GalleryItemClickEventArgs) Handles GalleryPlaceholders.GalleryItemClick
Dim oPlaceholder As SQLEditor.Placeholder = e.Item.Tag
Dim pPosition = txtSQLCommand.Document.CaretPosition
txtSQLCommand.Document.InsertSingleLineText(pPosition, Patterns.WrapPatternValue(oPlaceholder.Module, oPlaceholder.Name))
End Sub
Private Sub RibbonGalleryBarItem2_GalleryItemClick(sender As Object, e As GalleryItemClickEventArgs) Handles GalleryConnection.GalleryItemClick
Dim oConnection As Connection = e.Item.Tag
SQLConnection = oConnection.Id
End Sub
Private Function LoadPlaceholders() As List(Of GalleryItemGroup)
Dim oPlaceholders = New List(Of GalleryItemGroup)() From {
Placeholders.GetInternalPlaceholders(),
Placeholders.GetUserPlaceholders()
}
Dim oAutomaticAttributes = Placeholders.GetAutomaticPlaceholders(PlaceholdersAutomatic, PlaceholdersAutomaticPrefix)
If oAutomaticAttributes IsNot Nothing Then
oPlaceholders.Add(oAutomaticAttributes)
End If
Dim oManualPlaceholders = Placeholders.GetManualPlaceholders(PlaceholdersManual, PlaceholdersManualPrefix)
If oManualPlaceholders IsNot Nothing Then
oPlaceholders.Add(oManualPlaceholders)
End If
Dim oWindreamPlaceholders = Placeholders.GetWindreamPlaceholders(PlaceholdersWindream)
If oWindreamPlaceholders IsNot Nothing Then
oPlaceholders.Add(oWindreamPlaceholders)
End If
If LoadClipboardPlaceholders Then
oPlaceholders.Add(Placeholders.GetClipboardPlaceholder)
End If
Return oPlaceholders
End Function
Private Function LoadConnections() As GalleryItemGroup
Try
Dim oSql = "SELECT GUID, Bezeichnung FROM [DD_ECM].[dbo].[TBDD_CONNECTION] WHERE AKTIV = 1"
Dim oTable = Database.GetDatatable(oSql)
Dim oConnections = New List(Of Connection)
For Each oRow As DataRow In oTable.Rows
oConnections.Add(New Connection() With {
.Id = oRow.Item("GUID"),
.Name = oRow.Item("Bezeichnung")})
Next
Dim oConnectionGroup = New GalleryItemGroup() With {.Caption = "Verbindungen"}
Dim oItems As New List(Of GalleryItem)
For Each oConnection In oConnections
oItems.Add(GetGalleryItem(oConnection))
Next
oConnectionGroup.Items.AddRange(oItems.ToArray)
Return oConnectionGroup
Catch ex As Exception
Return Nothing
End Try
End Function
Private Sub ConfigureRichEditControl()
txtSQLCommand.Options.Search.RegExResultMaxGuaranteedLength = 500
txtSQLCommand.ReplaceService(Of ISyntaxHighlightService)(New SQLEditor.SQLSyntaxHighlightService(txtSQLCommand.Document))
txtSQLCommand.ActiveViewType = DevExpress.XtraRichEdit.RichEditViewType.Simple
txtSQLCommand.Document.Sections(0).Page.Width = DevExpress.Office.Utils.Units.InchesToDocumentsF(80.0F)
txtSQLCommand.Document.DefaultCharacterProperties.FontName = "Courier New"
txtSQLCommand.Document.DefaultCharacterProperties.FontSize = 12
End Sub
Private Sub ClearPlaceholders()
GridPlaceholders.DataSource = New List(Of SQLEditor.Placeholder)
End Sub
Private Function GetGalleryItem(pConnection As Connection) As GalleryItem
Dim oItem = New GalleryItem(Nothing, pConnection.Name, Nothing) With {
.Tag = pConnection
}
oItem.ImageOptions.SvgImage = My.Resources.actions_database
Return oItem
End Function
Private Property LastPatterns As New List(Of Pattern)
Private Sub RichEditControl1_ContentChanged(sender As Object, e As EventArgs) Handles txtSQLCommand.ContentChanged
Dim oSqlText = txtSQLCommand.Document.Text
Dim oPatterns = Patterns.GetAllPatterns(oSqlText)
If oPatterns.Count = 0 Then
GridPlaceholders.DataSource = New List(Of SQLEditor.Placeholder)
ElseIf oPatterns.Count.Equals(LastPatterns.Count) Then
' noop
Else
Dim oPlaceholders = oPatterns.
Select(Function(pattern) New SQLEditor.Placeholder(pattern.Value, pattern.Value, pattern.Type, pattern.Value) With {.Pattern = pattern}).
ToList()
GridPlaceholders.DataSource = oPlaceholders
End If
LastPatterns = oPatterns
End Sub
Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExecuteSQL.ItemClick
ExecuteSQL()
End Sub
Private Class Connection
Public Property Id As Integer
Public Property Name As String
End Class
Private Sub ExecuteSQL()
Try
ViewPlaceholders.FocusInvalidRow()
Dim oSql = txtSQLCommand.Document.Text
Dim oPlaceholders As List(Of SQLEditor.Placeholder) = GridPlaceholders.DataSource
If oPlaceholders IsNot Nothing Then
For Each oPlaceholder In oPlaceholders
Dim oWrapped = Patterns.WrapPatternValue(oPlaceholder.Module, oPlaceholder.Name)
If oPlaceholder.Value Is Nothing Then
Throw New ApplicationException($"Der Platzhalter '{oWrapped}' wurde nicht ausgefüllt!")
End If
oSql = oSql.Replace(oWrapped, oPlaceholder.Value)
Next
End If
Dim oDatatable As DataTable
If SQLConnection > 0 Then
Dim oConnectionString = Database.GetConnectionStringForId(SQLConnection)
oDatatable = Database.GetDatatableWithConnection(oSql, oConnectionString)
Else
oDatatable = Database.GetDatatable(oSql)
End If
Dim oForm As New frmSQLResult(oDatatable)
oForm.Show()
Catch ex As ApplicationException
MsgBox(ex.Message, MsgBoxStyle.Exclamation, Text)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, Text)
End Try
End Sub
Private Sub BarCheckItem1_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles chkClearPlaceholders.CheckedChanged
If FormLoading = False Then
ClearPlaceholdersAfterSuccessfulExecute = chkClearPlaceholders.Checked
End If
End Sub
Private Sub btnClearPlaceholders_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnClearPlaceholders.ItemClick
ClearPlaceholders()
End Sub
Private Sub chkShowPlaceholders_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles chkShowPlaceholders.CheckedChanged
SplitContainerControl1.Collapsed = Not chkShowPlaceholders.Checked
End Sub
Private Sub SplitContainerControl1_SplitGroupPanelCollapsed(sender As Object, e As DevExpress.XtraEditors.SplitGroupPanelCollapsedEventArgs) Handles SplitContainerControl1.SplitGroupPanelCollapsed
chkShowPlaceholders.Checked = Not e.Collapsed
End Sub
Private Sub btnSave_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnSave.ItemClick
SQLCommand = txtSQLCommand.Text
Close()
End Sub
Private Sub frmSQLEditor_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.F5 Then
ExecuteSQL()
End If
End Sub
End Class

62
GUIs.Common/frmSQLResult.Designer.vb generated Normal file
View File

@@ -0,0 +1,62 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmSQLResult
Inherits DevExpress.XtraEditors.XtraForm
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Wird vom Windows Form-Designer benötigt.
Private components As System.ComponentModel.IContainer
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.GridControlResult = New DevExpress.XtraGrid.GridControl()
Me.GridViewResult = New DevExpress.XtraGrid.Views.Grid.GridView()
CType(Me.GridControlResult, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridViewResult, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'GridControlResult
'
Me.GridControlResult.Dock = System.Windows.Forms.DockStyle.Fill
Me.GridControlResult.Location = New System.Drawing.Point(0, 0)
Me.GridControlResult.MainView = Me.GridViewResult
Me.GridControlResult.Name = "GridControlResult"
Me.GridControlResult.Size = New System.Drawing.Size(800, 450)
Me.GridControlResult.TabIndex = 0
Me.GridControlResult.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewResult})
'
'GridViewResult
'
Me.GridViewResult.GridControl = Me.GridControlResult
Me.GridViewResult.Name = "GridViewResult"
'
'frmSQLResult
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.GridControlResult)
Me.Name = "frmSQLResult"
Me.Text = "SQL Ergebnis"
CType(Me.GridControlResult, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.GridViewResult, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
Friend WithEvents GridControlResult As DevExpress.XtraGrid.GridControl
Friend WithEvents GridViewResult As DevExpress.XtraGrid.Views.Grid.GridView
End Class

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,20 @@
Imports DigitalData.GUIs.Common
Public Class frmSQLResult
Private ReadOnly Table As DataTable
Private ReadOnly GridBuilder As GridBuilder
Public Sub New(pTable As DataTable)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
Table = pTable
GridBuilder = New GridBuilder(GridViewResult).
WithClipboardHandler()
End Sub
Private Sub frmSQLResult_Load(sender As Object, e As EventArgs) Handles MyBase.Load
GridControlResult.DataSource = Table
End Sub
End Class