Neue Cockpit-Formulare und Verbesserungen hinzugefügt
Neue Formulare (`crmCockpit_UserTest`, `frmCockpitConfig`, `frmUserSelect`) zur Verwaltung und Konfiguration von Cockpit-Daten hinzugefügt. Die Benutzerführung wurde durch moderne UI-Elemente (z. B. Ribbon-Leisten, Baumansichten) und spezifische Fehlermeldungen verbessert. Die Datei `licenses.licx` wurde aktualisiert, um neue DevExpress-Komponenten zu unterstützen. Änderungen in `frmMain` umfassen einen neuen Button zur Konfiguration des Cockpits. SQL-Integration und Logging wurden erweitert, um die Nachverfolgbarkeit und Fehlerbehandlung zu verbessern. Neue Ressourcen und strukturierte Datenmodelle wurden hinzugefügt, um die Code-Qualität und Wiederverwendbarkeit zu erhöhen.
This commit is contained in:
@@ -1,16 +1,17 @@
|
||||
DevExpress.XtraEditors.LookUpEdit, 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.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.ComboBoxEdit, 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.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraDataLayout.DataLayoutControl, DevExpress.XtraLayout.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.XtraVerticalGrid.PropertyGridControl, DevExpress.XtraVerticalGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.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.CheckEdit, 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.XtraEditors.Repository.RepositoryItemProgressBar, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v21.2.UI, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.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.Ribbon.RibbonControl, DevExpress.XtraBars.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.XtraTreeList.TreeList, DevExpress.XtraTreeList.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.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraDataLayout.DataLayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.TreeListLookUpEdit, DevExpress.XtraTreeList.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.ComboBoxEdit, 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.XtraBars.BarManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v21.2.UI, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraVerticalGrid.PropertyGridControl, DevExpress.XtraVerticalGrid.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
|
||||
DevExpress.XtraEditors.Repository.RepositoryItemProgressBar, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
|
||||
@@ -504,6 +504,12 @@
|
||||
<Compile Include="clsWMDocGrid.vb" />
|
||||
<Compile Include="ControlCreator\Constants.vb" />
|
||||
<Compile Include="ControlCreator\GridControl.vb" />
|
||||
<Compile Include="crmCockpit_UserTest.Designer.vb">
|
||||
<DependentUpon>crmCockpit_UserTest.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="crmCockpit_UserTest.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FinalIndexDataSet.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
@@ -565,6 +571,12 @@
|
||||
<Compile Include="frmClientLogin.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmCockpitConfig.Designer.vb">
|
||||
<DependentUpon>frmCockpitConfig.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="frmCockpitConfig.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmConnection.Designer.vb">
|
||||
<DependentUpon>frmConnection.vb</DependentUpon>
|
||||
</Compile>
|
||||
@@ -722,6 +734,12 @@
|
||||
<Compile Include="frmMain.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmUserSelect.Designer.vb">
|
||||
<DependentUpon>frmUserSelect.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="frmUserSelect.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="frmValidator.Designer.vb">
|
||||
<DependentUpon>frmValidator.vb</DependentUpon>
|
||||
</Compile>
|
||||
@@ -792,6 +810,9 @@
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="crmCockpit_UserTest.resx">
|
||||
<DependentUpon>crmCockpit_UserTest.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmAbout.resx">
|
||||
<DependentUpon>frmAbout.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -832,6 +853,10 @@
|
||||
<DependentUpon>frmClientLogin.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmCockpitConfig.resx">
|
||||
<DependentUpon>frmCockpitConfig.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmConnection.resx">
|
||||
<DependentUpon>frmConnection.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -970,6 +995,9 @@
|
||||
<DependentUpon>frmMain.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmUserSelect.resx">
|
||||
<DependentUpon>frmUserSelect.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="frmValidator.en.resx">
|
||||
<DependentUpon>frmValidator.vb</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
|
||||
88
app/TaskFlow/crmCockpit_UserTest.Designer.vb
generated
Normal file
88
app/TaskFlow/crmCockpit_UserTest.Designer.vb
generated
Normal file
@@ -0,0 +1,88 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class crmCockpit_UserTest
|
||||
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.components = New System.ComponentModel.Container()
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(crmCockpit_UserTest))
|
||||
Me.ImageCollection1 = New DevExpress.Utils.ImageCollection(Me.components)
|
||||
Me.TreeList_Cockpit = New DevExpress.XtraTreeList.TreeList()
|
||||
CType(Me.ImageCollection1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.TreeList_Cockpit, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'ImageCollection1
|
||||
'
|
||||
Me.ImageCollection1.ImageSize = New System.Drawing.Size(24, 24)
|
||||
Me.ImageCollection1.ImageStream = CType(resources.GetObject("ImageCollection1.ImageStream"), DevExpress.Utils.ImageCollectionStreamer)
|
||||
Me.ImageCollection1.Images.SetKeyName(0, "overview")
|
||||
Me.ImageCollection1.Images.SetKeyName(1, "profile")
|
||||
Me.ImageCollection1.Images.SetKeyName(2, "monitor")
|
||||
Me.ImageCollection1.Images.SetKeyName(3, "chart")
|
||||
'
|
||||
'TreeList_Cockpit
|
||||
'
|
||||
Me.TreeList_Cockpit.Dock = System.Windows.Forms.DockStyle.Left
|
||||
Me.TreeList_Cockpit.Font = New System.Drawing.Font("Tahoma", 9.75!)
|
||||
Me.TreeList_Cockpit.ImageIndexFieldName = "ICON_INDEX"
|
||||
Me.TreeList_Cockpit.KeyFieldName = "PK_CFG_COCKPIT_DEFINITION_ID"
|
||||
Me.TreeList_Cockpit.Location = New System.Drawing.Point(0, 0)
|
||||
Me.TreeList_Cockpit.Name = "TreeList_Cockpit"
|
||||
Me.TreeList_Cockpit.OptionsBehavior.Editable = False
|
||||
Me.TreeList_Cockpit.OptionsBehavior.PopulateServiceColumns = True
|
||||
Me.TreeList_Cockpit.OptionsBehavior.ReadOnly = True
|
||||
Me.TreeList_Cockpit.OptionsLayout.AddNewColumns = False
|
||||
Me.TreeList_Cockpit.OptionsMenu.ShowExpandCollapseItems = False
|
||||
Me.TreeList_Cockpit.OptionsSelection.EnableAppearanceFocusedCell = False
|
||||
Me.TreeList_Cockpit.OptionsView.ShowColumns = False
|
||||
Me.TreeList_Cockpit.OptionsView.ShowFilterPanelMode = DevExpress.XtraTreeList.ShowFilterPanelMode.Never
|
||||
Me.TreeList_Cockpit.OptionsView.ShowFirstLines = False
|
||||
Me.TreeList_Cockpit.OptionsView.ShowHorzLines = False
|
||||
Me.TreeList_Cockpit.OptionsView.ShowIndentAsRowStyle = True
|
||||
Me.TreeList_Cockpit.OptionsView.ShowIndicator = False
|
||||
Me.TreeList_Cockpit.OptionsView.ShowVertLines = False
|
||||
Me.TreeList_Cockpit.OptionsView.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Dark
|
||||
Me.TreeList_Cockpit.ParentFieldName = "Parent_ID"
|
||||
Me.TreeList_Cockpit.SelectImageList = Me.ImageCollection1
|
||||
Me.TreeList_Cockpit.Size = New System.Drawing.Size(375, 588)
|
||||
Me.TreeList_Cockpit.TabIndex = 12
|
||||
'
|
||||
'crmCockpit_UserTest
|
||||
'
|
||||
Me.Appearance.Options.UseFont = True
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 17.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(933, 588)
|
||||
Me.Controls.Add(Me.TreeList_Cockpit)
|
||||
Me.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4)
|
||||
Me.Name = "crmCockpit_UserTest"
|
||||
Me.Text = "crmCockpit_UserTest"
|
||||
CType(Me.ImageCollection1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.TreeList_Cockpit, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents ImageCollection1 As DevExpress.Utils.ImageCollection
|
||||
Friend WithEvents TreeList_Cockpit As DevExpress.XtraTreeList.TreeList
|
||||
End Class
|
||||
182
app/TaskFlow/crmCockpit_UserTest.resx
Normal file
182
app/TaskFlow/crmCockpit_UserTest.resx
Normal file
@@ -0,0 +1,182 @@
|
||||
<?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="ImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="DevExpress.Utils.v21.2" name="DevExpress.Utils.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="ImageCollection1.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYyMS4yLCBWZXJzaW9uPTIxLjIu
|
||||
NC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT
|
||||
eXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRv
|
||||
a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0
|
||||
cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
|
||||
/xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABgAAAAYAAAACQUAAAAP
|
||||
BQAAACcLAAAC+gIAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAKcSURBVEhL3ZTLaxNRFMYLrvRfkD4yc5OgFeeZIIiLVkrV
|
||||
Jq1O6SNGqxUhCtZVkWBIbQitdOVS3AlZtXUnKAq1mUcmr6aPpCVod9KmuBbXn8z0NTMki9Yuij/4uDNn
|
||||
7jnfnLl3blPTf4PO0NBYAp2lkGFc0BgXVMaF/GUKzrnHQhbcSItepHkCjaWg827IXBt0jj4w0JhmKIwL
|
||||
CkdD4QhUjoLKUrsjR5l5Km/kEhRZYn8xxUeQET3QuGYU2BbzocpeRMZi8E8oAo0lznNQTObdWDS7cbzJ
|
||||
cTE+kc57kGM8ZlGNd0MR3MjxhwYK14o0TyEtEhgdy37alC4SfLne8dte0cE3H420QGCuBU+wKO4mZ32H
|
||||
XZ1+5ubmzjjlnHNsMqwLMu9CWmjGgq8FC/4WyCKFPHtC/4Gxd50xg7wlXpFuoizdwNrALZSHAqhYNRjA
|
||||
+lAP1ocDqA734UdIstczdo0tsEdWrG98ZDJC/UJWg5XXiZ5qLJoyNRFLVeMvU9V4NPU9Hk3Zs+qgCjSy
|
||||
b9+0OeNWg1pEwtbTAWyNhQ60PTaM2rNBFGZmvPZMB5+uMn8UgTIXdl+qSENr0NnpQ74moMgR5AWCrOA2
|
||||
tcQSrF44ocOuwBN8HXnU+/H5k0vvOzvPf5Ck1s+PR9qXLbtrdXraU4pNRlYmkqZKhianIqVYMmLG958l
|
||||
k5Gfs7NnbQZ5f/0zp2g5izb7e1AJBbAWDmLtXi8q9wOoGKOhcBDrd4PYCPViIxTE5mDAXi9/xVvXoJHx
|
||||
kWlkYO1gJxxELdyH7Qe3URvtx86ohNrDO/g10ofS+HjCnulA9xEURQq6n0ZO9CInelAQPLAaLL17da4c
|
||||
f9FVTsS7ylMJU8tTcfPeXq0B890d7fPBPRnX3R3tzjlH5S88LZDGXf/36QAAAABJRU5ErkJggjMCAACJ
|
||||
UE5HDQoaCgAAAA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68
|
||||
AAAOvAGVvHJJAAAB1UlEQVRIS+2Uu24aQRSGz7hImqTLA1DQpIwiFCF5l9vewciSCysRRap0KEqRmhoW
|
||||
h1swVdLbZaS8gzsXKfwGlgs3thUMhuGPZmE3u3iXTBuJTxrtzsw58885c2aItvzXAGDh/vnHz/vhfiL1
|
||||
ev1pmwib2hEReozg+4yNPO7VXfx4++FFdLUY/EWa6ZeXbragullFdbO66v1nCmono6idV1nVt59Ubcz1
|
||||
HKZFLRBMxGWEL/R3Z//iyrHvFmUD3LbkfI5YNPRNnOzV0twpAZWKlL2HSE1fUoCXC1hU7MB2dFh7H7WI
|
||||
QaRowFjgdK/lcK3ojwR5WcesYgbjp43Gk4FMaoVAP2Q4MRQ86CrO9t9998dmtoa5o+PWrAZ2LmMYhjaW
|
||||
iDBcP4OpXcC8tKyQX7XaT24VwZ3ooUoLtBIO+cHMg2sm5oaGmfW4HEXkUgJxEQh+20VMzBy4ZeJCq96s
|
||||
z7cYw/GOjICoooTDGlsKpkYpdq7pCcT7RRARhKtIFukUiTcmKYJNiNv/VUZg8Ow57xFBqqZX9GgZtZtK
|
||||
3a3PxSIEjlc57RKhs3qfRBP/fl/MDRmh641J7D7M6PWbjrc4MbQZQ4vIa83VV1RNe2d56785B5/W/bdI
|
||||
8werE/HGFidAHwAAAABJRU5ErkJgghADAACJUE5HDQoaCgAAAA1JSERSAAAAGAAAABgIBgAAAOB3PfgA
|
||||
AAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAACsklEQVRIS8VVzW7TQBDOc/AeHKom
|
||||
3t2Z3bVDy08R4gaqKvUZOHDoK3BDvAEHClVVceEaqKqCWtvrnyQOVPAKnHL50Dp2G6WtRNUIPmnl8ex4
|
||||
/vzNbqfzr1BqRmIJJyzgKEBqAqTUw4nqIWYvC5yqHhK/pwI42UMiu8ikQKYEYtGF4wA5CZQqwNH9dZw7
|
||||
H3IPLlRwTMhZISMB1zpjgZgEUpLImXAqAiRKoGBCyVQ7T5v3jCUcC4wNoSCJD0+fvKoDVMYgtuIi4hJQ
|
||||
WMaYejOfmVZIIrPcAEZhTE3SpWHERt0owN7W5tbu9vbdRX2LMtIYa9lUYBTcDQNUljHkxsEVKO9pTAzN
|
||||
9lOtcHqN8YglDiP7e153pro4I4VKS0xE0+cF5BGhapPOrMJXvmw4oi5OwwCjhepKffE+vKby3EqMTZO0
|
||||
04RvTQW7L19QznJaapoWfV3rciNRqZVarqiLn3L13GllFX7JALmmqeP+tNVnhjBpg6da4iSc9evTo4fT
|
||||
UksUhjBqM+h0OhPNtfzdzILOo6AAuVEo9AXVc0uYUNC2iHA8t3kVCruKLFIYqcutvAp+Dn5wU0EeMo7n
|
||||
sr0OZ3LWpr9B1beYtDTNrcY321BqSSisxLAdtCQkxNFyA3hilC31i0hj1PZrSfAkKbmpwE9lbhmJFki0
|
||||
bJaqn84SYn+isj9RZ6zIjETCAp4cfqVGIW5s/f9MWNb6hOe64rSqDVNLcGZ2N/jlLMNPemwVEiOxt7Nz
|
||||
x5ef2pltYhVcSEj8cRNq5KGGM4T8Cjr/X2S0gpy7yGgVJa9i9/HG60WbW6FSBMcSZd/AD9HB883lBjix
|
||||
Ap+twlFf4zBivH229WbR5sZ492Djy9D/MBXUnPZyfV8bAX8LZiSR3XZ+Pobrg/1obbAfrQ8OogvZr/fR
|
||||
2uDArg8Wv5nHH4RP7Rpx+BP5AAAAAElFTkSuQmCC2gIAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgG
|
||||
AAAA4Hc9+AAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAJ8SURBVEhL3VXNbtNA
|
||||
EPaBQx+CQ2t7HSde24l6yKGAk1IREBd+GnCjVgEunLkgVQj1CXgCDrlwRXkEUA48AGpVQqWIZmNDiNcO
|
||||
eYFB42Bn3VAoNFz4pNHO7oz9eXZnP0vSf4NAocA1CoFSgEgzISImcM2GQKUQEQtCzYSQUOCqEY8453HM
|
||||
jP0IY7ge55jAV3RIX/6x0XyZYVsA8EPSyeH2zsIJQoUKFTQfzRFw2QCuWhAoBoxVIfmM4Ct5gcDdzhAE
|
||||
cgFCZVaip5egd+3mazGnXS4vt8vOcrtWS+3N3tOLSTwSnpcOG7MtOtp6UEOCNChJUq9atY/ubD77cNe1
|
||||
xPVfIVKECrrNhykBl+e3I9SseI2vzIj7t+51/Lrb8etbneP1G6/YptvprVVfJPHMIe/XG6cShMI8Eg/u
|
||||
NwhJpotmbcqJnQbGxIp7PY0J/oBYE0+zJz6aak08lU48Wv6WxEOxgp910XmRvQfCIS8Kodgo4hksCqEs
|
||||
dNHBOSrYc5wl1KqT65kKMlvkOBecH5bxT2AkT/e45ThLXJ4K25jMmiBQBYKDnT8XO5QSHLECrhjQz9vv
|
||||
UFqSeCTKy75QAbtUbfUrV1t+ZaPFKhutT1eq8di/ff95kjNCKZENeL+7q/ceP7FRr7CFcT3JyUqFcA/O
|
||||
Anw5Xjq82eiHsgljmcZ+khNpopoK/wMvR5mnW8zPl9jnXIn5GmXHOcpY+XI3jhfL3iBfZH5+lXl6kQ1y
|
||||
RebpJeajFUrMN1bZHEHX/fsuOg34h0snvtu8nokuAHO69ZWYEJtCYagaMEIfR4VCkLOmc2LCSLNgiAeK
|
||||
ljxDTBjKBfhC8FkKQ9kAtrb+NkPwr/Ad3DFsyGIxcj4AAAAASUVORK5CYIIL
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
320
app/TaskFlow/crmCockpit_UserTest.vb
Normal file
320
app/TaskFlow/crmCockpit_UserTest.vb
Normal file
@@ -0,0 +1,320 @@
|
||||
Imports System.Threading.Tasks
|
||||
|
||||
Public Class crmCockpit_UserTest
|
||||
Public CheckUserID As Integer
|
||||
Public CheckUserName As String
|
||||
Public CheckUserLanguage As String
|
||||
Private _treeNodeCounts As New Dictionary(Of Integer, Integer)
|
||||
Private GRID_LOAD_TYPE As String = "OVERVIEW"
|
||||
Private Sub crmCockpit_UserTest_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
Me.Text = $"Cockpit Test for User [{CheckUserName}] - Language [{CheckUserLanguage}] "
|
||||
Load_Treeview()
|
||||
End Sub
|
||||
Private Sub Load_Treeview()
|
||||
Try
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
Dim oSQL = $"SELECT * FROM [dbo].[FNTF_GET_COCKPIT_DEFINITION] ({CheckUserID},'{CheckUserLanguage}')"
|
||||
Dim oDT_STRUCTURE_NODES As DataTable = DatabaseFallback.GetDatatableECM(oSQL)
|
||||
If oDT_STRUCTURE_NODES Is Nothing OrElse oDT_STRUCTURE_NODES.Rows.Count = 0 Then
|
||||
Dim oMsg As String
|
||||
Dim oTitle As String
|
||||
Select Case CheckUserLanguage
|
||||
Case "fr-FR", "fr-BE", "fr-CH"
|
||||
oMsg = "Aucune configuration de cockpit n'a pu être lue. Veuillez contacter votre équipe d'administration!"
|
||||
oTitle = "Erreur de configuration"
|
||||
Case "es-ES", "es-MX", "es-AR"
|
||||
oMsg = "No se pudo leer ninguna configuración de cockpit. ¡Póngase en contacto con su equipo de administración!"
|
||||
oTitle = "Error de configuración"
|
||||
Case "de-DE", "de-AT", "de-CH"
|
||||
oMsg = "Es konnte keine Cockpit-Konfiguration ausgelesen werden. Kontaktieren Sie Ihr Administrationsteam!"
|
||||
oTitle = "Konfigurationsfehler"
|
||||
Case Else ' en-US, en-GB und alle weiteren
|
||||
oMsg = "No cockpit configuration could be read. Please contact your administration team!"
|
||||
oTitle = "Configuration Error"
|
||||
End Select
|
||||
LOGGER.Warn($"Load_Treeview: No node configuration found for CheckUserID [{CheckUserID}] - CheckUserLanguage [{CheckUserLanguage}]")
|
||||
MsgBox(oMsg, MsgBoxStyle.Critical, oTitle)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
' ===== NUR AKTIVE KNOTEN BEHALTEN =====
|
||||
If oDT_STRUCTURE_NODES.Columns.Contains("ACTIVE") Then
|
||||
Dim oInactiveRows As DataRow() = oDT_STRUCTURE_NODES.Select("ACTIVE = 0 OR ACTIVE IS NULL")
|
||||
If oInactiveRows.Length > 0 Then
|
||||
LOGGER.Debug($"Load_Treeview: Removing [{oInactiveRows.Length}] inactive node(s) (ACTIVE=0 or NULL)")
|
||||
For Each oRow As DataRow In oInactiveRows
|
||||
oRow.Delete()
|
||||
Next
|
||||
oDT_STRUCTURE_NODES.AcceptChanges()
|
||||
End If
|
||||
Else
|
||||
LOGGER.Warn("Load_Treeview: ACTIVE column not found in FNTF_GET_COCKPIT_DEFINITION result")
|
||||
End If
|
||||
|
||||
' ===== ANZAHL DER OVERVIEW-KNOTEN ERMITTELN (VOR WEITEREN FILTERN) =====
|
||||
Dim oOverviewRows As DataRow() = oDT_STRUCTURE_NODES.Select("TYPE_ID = 0")
|
||||
LOGGER.Debug($"Load_Treeview: Found [{oOverviewRows.Length}] node(s) with TYPE_ID=0 (Overview)")
|
||||
|
||||
' ===== MONITOR-KNOTEN ENTFERNEN WENN KEIN RECHT =====
|
||||
If MONITORING_ACTIVE = False AndAlso oDT_STRUCTURE_NODES.Columns.Contains("TYPE_ID") Then
|
||||
Dim oMonitorRows As DataRow() = oDT_STRUCTURE_NODES.Select("TYPE_ID = 2")
|
||||
If oMonitorRows.Length > 0 Then
|
||||
LOGGER.Debug($"Load_Treeview: MONITORING_ACTIVE=False - removing [{oMonitorRows.Length}] monitor node(s) from TreeList datasource")
|
||||
For Each oRow As DataRow In oMonitorRows
|
||||
oRow.Delete()
|
||||
Next
|
||||
oDT_STRUCTURE_NODES.AcceptChanges()
|
||||
End If
|
||||
End If
|
||||
|
||||
' ===== CHART-KNOTEN ENTFERNEN WENN KEIN RECHT =====
|
||||
If SHOW_CHARTS = False AndAlso oDT_STRUCTURE_NODES.Columns.Contains("TYPE_ID") Then
|
||||
Dim oChartRows As DataRow() = oDT_STRUCTURE_NODES.Select("TYPE_ID = 3")
|
||||
If oChartRows.Length > 0 Then
|
||||
LOGGER.Debug($"Load_Treeview: SHOW_CHARTS=False - removing [{oChartRows.Length}] chart node(s) from TreeList datasource")
|
||||
For Each oRow As DataRow In oChartRows
|
||||
oRow.Delete()
|
||||
Next
|
||||
oDT_STRUCTURE_NODES.AcceptChanges()
|
||||
End If
|
||||
End If
|
||||
|
||||
TreeList_Cockpit.BeginUpdate()
|
||||
Try
|
||||
TreeList_Cockpit.DataSource = oDT_STRUCTURE_NODES
|
||||
AddHandler TreeList_Cockpit.CustomDrawNodeCell, AddressOf TreeList_Cockpit_CustomDrawNodeCell
|
||||
TreeList_Cockpit.KeyFieldName = "PK_CFG_COCKPIT_DEFINITION_ID"
|
||||
TreeList_Cockpit.ParentFieldName = "PARENT_ID"
|
||||
TreeList_Cockpit.Columns("PK_RESULT_ID").SortOrder = SortOrder.Ascending
|
||||
|
||||
' ===== MODERNES DESIGN =====
|
||||
' Schriftgröße und -art
|
||||
TreeList_Cockpit.Appearance.Row.Font = New Font("Segoe UI", 12, FontStyle.Regular)
|
||||
TreeList_Cockpit.Appearance.FocusedRow.Font = New Font("Segoe UI", 12, FontStyle.Bold)
|
||||
TreeList_Cockpit.Appearance.HideSelectionRow.Font = New Font("Segoe UI", 12, FontStyle.Regular)
|
||||
|
||||
' Modernes Farbschema (passend zum Office2019-Skin)
|
||||
TreeList_Cockpit.Appearance.Row.BackColor = Color.White
|
||||
TreeList_Cockpit.Appearance.Row.ForeColor = Color.FromArgb(50, 50, 50)
|
||||
TreeList_Cockpit.Appearance.FocusedRow.BackColor = Color.FromArgb(210, 230, 255)
|
||||
TreeList_Cockpit.Appearance.FocusedRow.ForeColor = Color.FromArgb(20, 20, 20)
|
||||
TreeList_Cockpit.Appearance.HideSelectionRow.BackColor = Color.FromArgb(225, 235, 250)
|
||||
TreeList_Cockpit.Appearance.HideSelectionRow.ForeColor = Color.FromArgb(50, 50, 50)
|
||||
|
||||
' Zeilenhöhe erhöhen für bessere Lesbarkeit
|
||||
TreeList_Cockpit.RowHeight = 28
|
||||
|
||||
Dim oVisibleColumns As New System.Collections.Generic.HashSet(Of String)(StringComparer.OrdinalIgnoreCase) From {"NAME"}
|
||||
For Each oColumn As DevExpress.XtraTreeList.Columns.TreeListColumn In TreeList_Cockpit.Columns
|
||||
oColumn.Visible = oVisibleColumns.Contains(oColumn.FieldName)
|
||||
Next
|
||||
Finally
|
||||
TreeList_Cockpit.EndUpdate()
|
||||
End Try
|
||||
|
||||
' ===== KNOTEN AUF-/ZUKLAPPEN BASIEREND AUF ANZAHL DER OVERVIEW-KNOTEN =====
|
||||
If oOverviewRows.Length = 1 Then
|
||||
LOGGER.Debug("Load_Treeview: Only 1 overview node found - expanding all nodes")
|
||||
For Each oNode As DevExpress.XtraTreeList.Nodes.TreeListNode In TreeList_Cockpit.Nodes
|
||||
oNode.Expanded = True
|
||||
Next
|
||||
ElseIf oOverviewRows.Length > 1 Then
|
||||
LOGGER.Debug($"Load_Treeview: [{oOverviewRows.Length}] overview nodes found - collapsing all nodes")
|
||||
For Each oNode As DevExpress.XtraTreeList.Nodes.TreeListNode In TreeList_Cockpit.Nodes
|
||||
oNode.Expanded = False
|
||||
Next
|
||||
Else
|
||||
LOGGER.Warn("Load_Treeview: No overview nodes (TYPE_ID=0) found - keeping default collapsed state")
|
||||
End If
|
||||
|
||||
TreeList_Cockpit.Refresh()
|
||||
|
||||
' ===== ANZAHL ASYNCHRON NACHLADEN =====
|
||||
If oDT_STRUCTURE_NODES.Columns.Contains("SQL_QUERY_COUNT") Then
|
||||
AppendCountsToTreeAsync()
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
Finally
|
||||
Me.Cursor = Cursors.Default
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub TreeList_Cockpit_CustomDrawNodeCell(sender As Object, e As DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs)
|
||||
Try
|
||||
Dim oPk As Object = e.Node.GetValue("PK_CFG_COCKPIT_DEFINITION_ID")
|
||||
If oPk Is Nothing OrElse IsDBNull(oPk) Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim oPkInt As Integer = CInt(oPk)
|
||||
If Not _treeNodeCounts.ContainsKey(oPkInt) Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If _treeNodeCounts(oPkInt) > 0 Then
|
||||
e.Appearance.Font = New Font(e.Appearance.Font, FontStyle.Bold)
|
||||
Else
|
||||
e.Appearance.Font = New Font(e.Appearance.Font, FontStyle.Regular)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
Private Async Sub AppendCountsToTreeAsync()
|
||||
Try
|
||||
LOGGER.Debug("AppendCountsToTreeAsync: Starting background count queries...")
|
||||
|
||||
Dim oWorkItems As New List(Of (Node As DevExpress.XtraTreeList.Nodes.TreeListNode, SQL As String, OriginalName As String))
|
||||
|
||||
TreeList_Cockpit.NodesIterator.DoOperation(
|
||||
Sub(oNode As DevExpress.XtraTreeList.Nodes.TreeListNode)
|
||||
Dim oTypeId As Object = oNode.GetValue("TYPE_ID")
|
||||
Dim oProfileID As Object = oNode.GetValue("FK_PROFILE_ID")
|
||||
If oTypeId Is Nothing OrElse IsDBNull(oTypeId) Then
|
||||
LOGGER.Debug($"AppendCountsToTreeAsync: Node [{oNode.GetValue("NAME")}] has no TYPE_ID - skipping.")
|
||||
Exit Sub
|
||||
End If
|
||||
Dim oTypeIdInt As Integer = CInt(oTypeId)
|
||||
If oTypeIdInt <> 0 AndAlso oTypeIdInt <> 1 Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim oSqlCount As Object = oNode.GetValue("SQL_QUERY_COUNT")
|
||||
If oSqlCount IsNot Nothing AndAlso Not IsDBNull(oSqlCount) AndAlso Not String.IsNullOrWhiteSpace(oSqlCount.ToString()) Then
|
||||
Dim oProfileIdInt As Integer = If(oProfileID IsNot Nothing AndAlso Not IsDBNull(oProfileID), CInt(oProfileID), 0)
|
||||
Dim oRawSQL As String = oSqlCount.ToString()
|
||||
LOGGER.Debug($"AppendCountsToTreeAsync: Preparing SQL for node [{oNode.GetValue("NAME")}] with PROFILE_ID [{oProfileIdInt}]")
|
||||
LOGGER.Debug($"AppendCountsToTreeAsync: Original SQL: {oRawSQL}")
|
||||
oRawSQL = oRawSQL.Replace("@PROFILE_ID", oProfileIdInt.ToString())
|
||||
oRawSQL = oRawSQL.Replace("@PROFIL_ID", oProfileIdInt.ToString())
|
||||
oRawSQL = oRawSQL.Replace("{#USER#PROFILE_ID}", oProfileIdInt.ToString())
|
||||
oRawSQL = oRawSQL.Replace("{#USER#PROFIL_ID}", oProfileIdInt.ToString())
|
||||
Dim oPreparedSQL As String = PrepareSQLWithReplacements(oRawSQL, oProfileIdInt)
|
||||
|
||||
' ===== COUNT-SUFFIX VOM VORHERIGEN DURCHLAUF ENTFERNEN =====
|
||||
Dim oRawName As String = oNode.GetValue("NAME")?.ToString()
|
||||
Dim oSuffixMatch = System.Text.RegularExpressions.Regex.Match(oRawName, "^(.*)\s+\(\d+\)$")
|
||||
Dim oCleanName As String = If(oSuffixMatch.Success, oSuffixMatch.Groups(1).Value.Trim(), oRawName)
|
||||
|
||||
If Not String.IsNullOrWhiteSpace(oCleanName) Then
|
||||
oWorkItems.Add((oNode, oPreparedSQL, oCleanName))
|
||||
End If
|
||||
Else
|
||||
LOGGER.Debug($"AppendCountsToTreeAsync: Node [{oNode.GetValue("NAME")}] has no valid SQL_QUERY_COUNT, skipping.")
|
||||
End If
|
||||
End Sub)
|
||||
|
||||
If oWorkItems.Count = 0 Then
|
||||
LOGGER.Debug("AppendCountsToTreeAsync: No nodes with SQL_QUERY_COUNT found, exiting.")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
LOGGER.Debug($"AppendCountsToTreeAsync: {oWorkItems.Count} node(s) with SQL_QUERY_COUNT found")
|
||||
|
||||
Dim oResults As New List(Of (Node As DevExpress.XtraTreeList.Nodes.TreeListNode, OriginalName As String, Count As String))
|
||||
|
||||
Await Task.Run(Sub()
|
||||
For Each oItem In oWorkItems
|
||||
Try
|
||||
Dim oResult As Object = DatabaseFallback.GetScalarValueECM(oItem.SQL)
|
||||
If oResult IsNot Nothing AndAlso Not IsDBNull(oResult) Then
|
||||
SyncLock oResults
|
||||
oResults.Add((oItem.Node, oItem.OriginalName, oResult.ToString()))
|
||||
End SyncLock
|
||||
End If
|
||||
Catch ex As Exception
|
||||
LOGGER.Warn($"AppendCountsToTreeAsync: Count query failed for node [{oItem.OriginalName}] - {ex.Message}")
|
||||
End Try
|
||||
Next
|
||||
End Sub)
|
||||
|
||||
_treeNodeCounts.Clear()
|
||||
|
||||
TreeList_Cockpit.BeginUpdate()
|
||||
Try
|
||||
For Each oResult In oResults
|
||||
Dim oPk As Object = oResult.Node.GetValue("PK_CFG_COCKPIT_DEFINITION_ID")
|
||||
If oPk IsNot Nothing AndAlso Not IsDBNull(oPk) Then
|
||||
Dim oCount As Integer = 0
|
||||
Integer.TryParse(oResult.Count, oCount)
|
||||
_treeNodeCounts(CInt(oPk)) = oCount
|
||||
End If
|
||||
oResult.Node.SetValue("NAME", $"{oResult.OriginalName} ({oResult.Count})")
|
||||
LOGGER.Debug($"AppendCountsToTreeAsync: Node [{oResult.OriginalName}] → [{oResult.OriginalName} ({oResult.Count})]")
|
||||
Next
|
||||
Finally
|
||||
TreeList_Cockpit.EndUpdate()
|
||||
End Try
|
||||
|
||||
TreeList_Cockpit.Refresh()
|
||||
LOGGER.Debug("AppendCountsToTreeAsync: Finished")
|
||||
Decide_Show_Empty_Workflows(Not CONFIG.Config.Hide_Empty_Workflows)
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
' ========================================
|
||||
' HILFSMETHODEN - Extrahierte Logik für Wiederverwendung
|
||||
' ========================================
|
||||
|
||||
Private Function PrepareSQLWithReplacements(oSQL As String, oProfileID As Integer) As String
|
||||
oSQL = clsPatterns.ReplaceInternalValues(oSQL)
|
||||
oSQL = clsPatterns.ReplaceUserValues(oSQL)
|
||||
LOGGER.Debug("PrepareSQLWithReplacements - Original SQL: " & oSQL)
|
||||
oSQL = oSQL.Replace("@USERNAME", USER_USERNAME)
|
||||
oSQL = oSQL.Replace("@MACHINE_NAME", System.Environment.MachineName)
|
||||
oSQL = oSQL.Replace("@DATE", Now.ToShortDateString)
|
||||
' ===== ZUSÄTZLICHE PLATZHALTER-FORMATE FÜR USER_ID =====
|
||||
oSQL = oSQL.Replace("{#USER#USER_ID}", USER_ID)
|
||||
oSQL = oSQL.Replace("#USER#USER_ID", USER_ID)
|
||||
oSQL = oSQL.Replace("@USER_ID", USER_ID)
|
||||
LOGGER.Debug("PrepareSQLWithReplacements - SQL after replacements: " & oSQL)
|
||||
If oProfileID = 0 Then
|
||||
If GRID_LOAD_TYPE = "OVERVIEW" Then
|
||||
LOGGER.Debug("PrepareSQLWithReplacements called with oProfileID = 0 in OVERVIEW context")
|
||||
Else
|
||||
LOGGER.Warn("PrepareSQLWithReplacements called with oProfileID = 0, using CURRENT_CLICKED_PROFILE_ID instead")
|
||||
End If
|
||||
oProfileID = CURRENT_CLICKED_PROFILE_ID
|
||||
Else
|
||||
LOGGER.Debug($"PrepareSQLWithReplacements called with oProfileID = {oProfileID}")
|
||||
End If
|
||||
oSQL = oSQL.Replace("@PROFILE_ID", oProfileID)
|
||||
oSQL = oSQL.Replace("@PROFIL_ID", oProfileID)
|
||||
Return oSQL
|
||||
End Function
|
||||
Sub Decide_Show_Empty_Workflows(pShow As Boolean)
|
||||
Try
|
||||
LOGGER.Debug($"Decide_Show_Empty_Workflows: pShow=[{pShow}], cached node counts: [{_treeNodeCounts.Count}]")
|
||||
TreeList_Cockpit.BeginUpdate()
|
||||
Try
|
||||
TreeList_Cockpit.NodesIterator.DoOperation(
|
||||
Sub(oNode As DevExpress.XtraTreeList.Nodes.TreeListNode)
|
||||
Dim oPk As Object = oNode.GetValue("PK_CFG_COCKPIT_DEFINITION_ID")
|
||||
|
||||
If oPk Is Nothing OrElse IsDBNull(oPk) Then
|
||||
oNode.Visible = True
|
||||
LOGGER.Debug($"Decide_Show_Empty_Workflows: oPk is Nothing/DBNull - Node visible set to True")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim oPkInt As Integer = CInt(oPk)
|
||||
|
||||
If Not _treeNodeCounts.ContainsKey(oPkInt) Then
|
||||
oNode.Visible = True
|
||||
LOGGER.Debug($"Decide_Show_Empty_Workflows: oPkInt [{oPkInt}] not found in _treeNodeCounts - Node visible set to True")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
oNode.Visible = pShow OrElse (_treeNodeCounts(oPkInt) > 0)
|
||||
End Sub)
|
||||
Finally
|
||||
TreeList_Cockpit.EndUpdate()
|
||||
End Try
|
||||
TreeList_Cockpit.Refresh()
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
End Class
|
||||
565
app/TaskFlow/frmCockpitConfig.Designer.vb
generated
Normal file
565
app/TaskFlow/frmCockpitConfig.Designer.vb
generated
Normal file
@@ -0,0 +1,565 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
|
||||
Partial Class frmCockpitConfig
|
||||
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()
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmCockpitConfig))
|
||||
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
|
||||
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.bbtnSQL_Data = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.bbtnSQL_Count = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.bbtnitm_Save = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.BarButtonItem4 = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.bbtnitm_NodeOverviewAdd = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.bbtnitm_NodeProfilAdd = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.bbtnitmCopy = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
||||
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||
Me.LabelControl1 = New DevExpress.XtraEditors.LabelControl()
|
||||
Me.LookUpEdit1 = New DevExpress.XtraEditors.LookUpEdit()
|
||||
Me.CheckEdit_Cockpit_Active = New DevExpress.XtraEditors.CheckEdit()
|
||||
Me.ImageCollection1 = New DevExpress.Utils.ImageCollection(Me.components)
|
||||
Me.TreeList_Cockpit = New DevExpress.XtraTreeList.TreeList()
|
||||
Me.LabelControl2 = New DevExpress.XtraEditors.LabelControl()
|
||||
Me.LabelControl3 = New DevExpress.XtraEditors.LabelControl()
|
||||
Me.LabelControl4 = New DevExpress.XtraEditors.LabelControl()
|
||||
Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID = New DevExpress.XtraEditors.TextEdit()
|
||||
Me.TextEdit_ParentID = New DevExpress.XtraEditors.TextEdit()
|
||||
Me.LookUpEditTypeID = New DevExpress.XtraEditors.LookUpEdit()
|
||||
Me.TextEdit_Bezeichnung = New DevExpress.XtraEditors.TextEdit()
|
||||
Me.LabelControl5 = New DevExpress.XtraEditors.LabelControl()
|
||||
Me.CheckEdit_Active = New DevExpress.XtraEditors.CheckEdit()
|
||||
Me.LookUpEdit_Image = New DevExpress.XtraEditors.LookUpEdit()
|
||||
Me.LabelControl6 = New DevExpress.XtraEditors.LabelControl()
|
||||
Me.TextEdit_Comment = New DevExpress.XtraEditors.TextEdit()
|
||||
Me.LabelControl7 = New DevExpress.XtraEditors.LabelControl()
|
||||
Me.LabelControl_Profil = New DevExpress.XtraEditors.LabelControl()
|
||||
Me.LookUpEditProfil = New DevExpress.XtraEditors.LookUpEdit()
|
||||
Me.LookUpEditChart = New DevExpress.XtraEditors.LookUpEdit()
|
||||
Me.LabelControl_Chart = New DevExpress.XtraEditors.LabelControl()
|
||||
Me.LookUpEditMonitor = New DevExpress.XtraEditors.LookUpEdit()
|
||||
Me.LabelControl_Monitor = New DevExpress.XtraEditors.LabelControl()
|
||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.LookUpEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.CheckEdit_Cockpit_Active.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.ImageCollection1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.TreeList_Cockpit, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.TextEdit_ParentID.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.LookUpEditTypeID.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.TextEdit_Bezeichnung.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.CheckEdit_Active.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.LookUpEdit_Image.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.TextEdit_Comment.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.LookUpEditProfil.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.LookUpEditChart.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.LookUpEditMonitor.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'RibbonControl1
|
||||
'
|
||||
Me.RibbonControl1.EmptyAreaImageOptions.ImagePadding = New System.Windows.Forms.Padding(35, 39, 35, 39)
|
||||
Me.RibbonControl1.ExpandCollapseItem.Id = 0
|
||||
Me.RibbonControl1.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1, Me.BarButtonItem2, Me.bbtnSQL_Data, Me.bbtnSQL_Count, Me.bbtnitm_Save, Me.BarButtonItem4, Me.bbtnitm_NodeOverviewAdd, Me.bbtnitm_NodeProfilAdd, Me.bbtnitmCopy})
|
||||
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.RibbonControl1.Margin = New System.Windows.Forms.Padding(4)
|
||||
Me.RibbonControl1.MaxItemId = 10
|
||||
Me.RibbonControl1.Name = "RibbonControl1"
|
||||
Me.RibbonControl1.OptionsMenuMinWidth = 385
|
||||
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(974, 158)
|
||||
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
|
||||
'
|
||||
'BarButtonItem1
|
||||
'
|
||||
Me.BarButtonItem1.Caption = "Cockpit für User testen"
|
||||
Me.BarButtonItem1.Id = 1
|
||||
Me.BarButtonItem1.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem1.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.BarButtonItem1.Name = "BarButtonItem1"
|
||||
'
|
||||
'BarButtonItem2
|
||||
'
|
||||
Me.BarButtonItem2.Caption = "Aktualisieren"
|
||||
Me.BarButtonItem2.Id = 2
|
||||
Me.BarButtonItem2.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.BarButtonItem2.Name = "BarButtonItem2"
|
||||
'
|
||||
'bbtnSQL_Data
|
||||
'
|
||||
Me.bbtnSQL_Data.Caption = "Data SQL ändern"
|
||||
Me.bbtnSQL_Data.Id = 3
|
||||
Me.bbtnSQL_Data.ImageOptions.SvgImage = CType(resources.GetObject("bbtnSQL_Data.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.bbtnSQL_Data.Name = "bbtnSQL_Data"
|
||||
'
|
||||
'bbtnSQL_Count
|
||||
'
|
||||
Me.bbtnSQL_Count.Caption = "Count SQL Rows ändern"
|
||||
Me.bbtnSQL_Count.Id = 4
|
||||
Me.bbtnSQL_Count.ImageOptions.SvgImage = CType(resources.GetObject("bbtnSQL_Count.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.bbtnSQL_Count.Name = "bbtnSQL_Count"
|
||||
'
|
||||
'bbtnitm_Save
|
||||
'
|
||||
Me.bbtnitm_Save.Caption = "Speichern"
|
||||
Me.bbtnitm_Save.Id = 5
|
||||
Me.bbtnitm_Save.ImageOptions.SvgImage = CType(resources.GetObject("bbtnitm_Save.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.bbtnitm_Save.Name = "bbtnitm_Save"
|
||||
'
|
||||
'BarButtonItem4
|
||||
'
|
||||
Me.BarButtonItem4.Caption = "Löschen"
|
||||
Me.BarButtonItem4.Id = 6
|
||||
Me.BarButtonItem4.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem4.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.BarButtonItem4.Name = "BarButtonItem4"
|
||||
'
|
||||
'bbtnitm_NodeOverviewAdd
|
||||
'
|
||||
Me.bbtnitm_NodeOverviewAdd.Caption = "Overview hinzufügen"
|
||||
Me.bbtnitm_NodeOverviewAdd.Id = 7
|
||||
Me.bbtnitm_NodeOverviewAdd.ImageOptions.SvgImage = CType(resources.GetObject("bbtnitm_NodeOverviewAdd.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.bbtnitm_NodeOverviewAdd.Name = "bbtnitm_NodeOverviewAdd"
|
||||
'
|
||||
'bbtnitm_NodeProfilAdd
|
||||
'
|
||||
Me.bbtnitm_NodeProfilAdd.Caption = "Profil hinzufügen"
|
||||
Me.bbtnitm_NodeProfilAdd.Id = 8
|
||||
Me.bbtnitm_NodeProfilAdd.ImageOptions.SvgImage = CType(resources.GetObject("bbtnitm_NodeProfilAdd.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.bbtnitm_NodeProfilAdd.Name = "bbtnitm_NodeProfilAdd"
|
||||
'
|
||||
'bbtnitmCopy
|
||||
'
|
||||
Me.bbtnitmCopy.Caption = "Knoten kopieren"
|
||||
Me.bbtnitmCopy.Id = 9
|
||||
Me.bbtnitmCopy.ImageOptions.SvgImage = CType(resources.GetObject("bbtnitmCopy.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.bbtnitmCopy.Name = "bbtnitmCopy"
|
||||
'
|
||||
'RibbonPage1
|
||||
'
|
||||
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2})
|
||||
Me.RibbonPage1.Name = "RibbonPage1"
|
||||
Me.RibbonPage1.Text = "Start"
|
||||
'
|
||||
'RibbonPageGroup1
|
||||
'
|
||||
Me.RibbonPageGroup1.AllowTextClipping = False
|
||||
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem1)
|
||||
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem2)
|
||||
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
|
||||
Me.RibbonPageGroup1.Text = "Aktionen"
|
||||
'
|
||||
'RibbonPageGroup2
|
||||
'
|
||||
Me.RibbonPageGroup2.AllowTextClipping = False
|
||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitm_Save)
|
||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnSQL_Data)
|
||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnSQL_Count)
|
||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem4)
|
||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitm_NodeOverviewAdd)
|
||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitm_NodeProfilAdd)
|
||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.bbtnitmCopy)
|
||||
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
|
||||
Me.RibbonPageGroup2.Text = "Knoten Aktionen"
|
||||
'
|
||||
'RibbonStatusBar1
|
||||
'
|
||||
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 566)
|
||||
Me.RibbonStatusBar1.Margin = New System.Windows.Forms.Padding(4)
|
||||
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
|
||||
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
|
||||
Me.RibbonStatusBar1.Size = New System.Drawing.Size(974, 22)
|
||||
'
|
||||
'RibbonPage2
|
||||
'
|
||||
Me.RibbonPage2.Name = "RibbonPage2"
|
||||
Me.RibbonPage2.Text = "RibbonPage2"
|
||||
'
|
||||
'LabelControl1
|
||||
'
|
||||
Me.LabelControl1.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LabelControl1.Appearance.Options.UseFont = True
|
||||
Me.LabelControl1.Location = New System.Drawing.Point(12, 167)
|
||||
Me.LabelControl1.Name = "LabelControl1"
|
||||
Me.LabelControl1.Size = New System.Drawing.Size(83, 17)
|
||||
Me.LabelControl1.TabIndex = 16
|
||||
Me.LabelControl1.Text = "Wähle Cockpit"
|
||||
'
|
||||
'LookUpEdit1
|
||||
'
|
||||
Me.LookUpEdit1.Location = New System.Drawing.Point(12, 190)
|
||||
Me.LookUpEdit1.MenuManager = Me.RibbonControl1
|
||||
Me.LookUpEdit1.Name = "LookUpEdit1"
|
||||
Me.LookUpEdit1.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LookUpEdit1.Properties.Appearance.Options.UseFont = True
|
||||
Me.LookUpEdit1.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
|
||||
Me.LookUpEdit1.Size = New System.Drawing.Size(289, 24)
|
||||
Me.LookUpEdit1.TabIndex = 17
|
||||
'
|
||||
'CheckEdit_Cockpit_Active
|
||||
'
|
||||
Me.CheckEdit_Cockpit_Active.Location = New System.Drawing.Point(320, 191)
|
||||
Me.CheckEdit_Cockpit_Active.MenuManager = Me.RibbonControl1
|
||||
Me.CheckEdit_Cockpit_Active.Name = "CheckEdit_Cockpit_Active"
|
||||
Me.CheckEdit_Cockpit_Active.Properties.Caption = "Active"
|
||||
Me.CheckEdit_Cockpit_Active.Size = New System.Drawing.Size(64, 18)
|
||||
Me.CheckEdit_Cockpit_Active.TabIndex = 20
|
||||
'
|
||||
'ImageCollection1
|
||||
'
|
||||
Me.ImageCollection1.ImageSize = New System.Drawing.Size(24, 24)
|
||||
Me.ImageCollection1.ImageStream = CType(resources.GetObject("ImageCollection1.ImageStream"), DevExpress.Utils.ImageCollectionStreamer)
|
||||
Me.ImageCollection1.Images.SetKeyName(0, "overview")
|
||||
Me.ImageCollection1.Images.SetKeyName(1, "profile")
|
||||
Me.ImageCollection1.Images.SetKeyName(2, "monitor")
|
||||
Me.ImageCollection1.Images.SetKeyName(3, "chart")
|
||||
'
|
||||
'TreeList_Cockpit
|
||||
'
|
||||
Me.TreeList_Cockpit.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
|
||||
Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
||||
Me.TreeList_Cockpit.Font = New System.Drawing.Font("Tahoma", 9.75!)
|
||||
Me.TreeList_Cockpit.ImageIndexFieldName = "ICON_ID"
|
||||
Me.TreeList_Cockpit.KeyFieldName = "PK_CFG_COCKPIT_DEFINITION_ID"
|
||||
Me.TreeList_Cockpit.Location = New System.Drawing.Point(12, 220)
|
||||
Me.TreeList_Cockpit.MenuManager = Me.RibbonControl1
|
||||
Me.TreeList_Cockpit.Name = "TreeList_Cockpit"
|
||||
Me.TreeList_Cockpit.OptionsBehavior.Editable = False
|
||||
Me.TreeList_Cockpit.OptionsBehavior.PopulateServiceColumns = True
|
||||
Me.TreeList_Cockpit.OptionsBehavior.ReadOnly = True
|
||||
Me.TreeList_Cockpit.OptionsLayout.AddNewColumns = False
|
||||
Me.TreeList_Cockpit.OptionsMenu.ShowExpandCollapseItems = False
|
||||
Me.TreeList_Cockpit.OptionsSelection.EnableAppearanceFocusedCell = False
|
||||
Me.TreeList_Cockpit.OptionsView.ShowColumns = False
|
||||
Me.TreeList_Cockpit.OptionsView.ShowFilterPanelMode = DevExpress.XtraTreeList.ShowFilterPanelMode.Never
|
||||
Me.TreeList_Cockpit.OptionsView.ShowFirstLines = False
|
||||
Me.TreeList_Cockpit.OptionsView.ShowHorzLines = False
|
||||
Me.TreeList_Cockpit.OptionsView.ShowIndentAsRowStyle = True
|
||||
Me.TreeList_Cockpit.OptionsView.ShowIndicator = False
|
||||
Me.TreeList_Cockpit.OptionsView.ShowVertLines = False
|
||||
Me.TreeList_Cockpit.OptionsView.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Dark
|
||||
Me.TreeList_Cockpit.ParentFieldName = "PARENT_ID"
|
||||
Me.TreeList_Cockpit.SelectImageList = Me.ImageCollection1
|
||||
Me.TreeList_Cockpit.Size = New System.Drawing.Size(383, 339)
|
||||
Me.TreeList_Cockpit.TabIndex = 24
|
||||
'
|
||||
'LabelControl2
|
||||
'
|
||||
Me.LabelControl2.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LabelControl2.Appearance.Options.UseFont = True
|
||||
Me.LabelControl2.Location = New System.Drawing.Point(418, 220)
|
||||
Me.LabelControl2.Name = "LabelControl2"
|
||||
Me.LabelControl2.Size = New System.Drawing.Size(12, 17)
|
||||
Me.LabelControl2.TabIndex = 27
|
||||
Me.LabelControl2.Text = "ID"
|
||||
'
|
||||
'LabelControl3
|
||||
'
|
||||
Me.LabelControl3.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LabelControl3.Appearance.Options.UseFont = True
|
||||
Me.LabelControl3.Location = New System.Drawing.Point(495, 220)
|
||||
Me.LabelControl3.Name = "LabelControl3"
|
||||
Me.LabelControl3.Size = New System.Drawing.Size(49, 17)
|
||||
Me.LabelControl3.TabIndex = 28
|
||||
Me.LabelControl3.Text = "ParentID"
|
||||
'
|
||||
'LabelControl4
|
||||
'
|
||||
Me.LabelControl4.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LabelControl4.Appearance.Options.UseFont = True
|
||||
Me.LabelControl4.Location = New System.Drawing.Point(418, 270)
|
||||
Me.LabelControl4.Name = "LabelControl4"
|
||||
Me.LabelControl4.Size = New System.Drawing.Size(67, 17)
|
||||
Me.LabelControl4.TabIndex = 29
|
||||
Me.LabelControl4.Text = "Knoten-Typ"
|
||||
'
|
||||
'TextEdit_PK_CFG_COCKPIT_DEFINITION_ID
|
||||
'
|
||||
Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Location = New System.Drawing.Point(418, 240)
|
||||
Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.MenuManager = Me.RibbonControl1
|
||||
Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Name = "TextEdit_PK_CFG_COCKPIT_DEFINITION_ID"
|
||||
Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Properties.Appearance.Options.UseFont = True
|
||||
Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Properties.ReadOnly = True
|
||||
Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Size = New System.Drawing.Size(55, 24)
|
||||
Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.TabIndex = 31
|
||||
'
|
||||
'TextEdit_ParentID
|
||||
'
|
||||
Me.TextEdit_ParentID.Location = New System.Drawing.Point(495, 240)
|
||||
Me.TextEdit_ParentID.MenuManager = Me.RibbonControl1
|
||||
Me.TextEdit_ParentID.Name = "TextEdit_ParentID"
|
||||
Me.TextEdit_ParentID.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.TextEdit_ParentID.Properties.Appearance.Options.UseFont = True
|
||||
Me.TextEdit_ParentID.Properties.ReadOnly = True
|
||||
Me.TextEdit_ParentID.Size = New System.Drawing.Size(55, 24)
|
||||
Me.TextEdit_ParentID.TabIndex = 32
|
||||
'
|
||||
'LookUpEditTypeID
|
||||
'
|
||||
Me.LookUpEditTypeID.Location = New System.Drawing.Point(418, 293)
|
||||
Me.LookUpEditTypeID.MenuManager = Me.RibbonControl1
|
||||
Me.LookUpEditTypeID.Name = "LookUpEditTypeID"
|
||||
Me.LookUpEditTypeID.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LookUpEditTypeID.Properties.Appearance.Options.UseFont = True
|
||||
Me.LookUpEditTypeID.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
|
||||
Me.LookUpEditTypeID.Size = New System.Drawing.Size(143, 24)
|
||||
Me.LookUpEditTypeID.TabIndex = 33
|
||||
'
|
||||
'TextEdit_Bezeichnung
|
||||
'
|
||||
Me.TextEdit_Bezeichnung.Location = New System.Drawing.Point(566, 240)
|
||||
Me.TextEdit_Bezeichnung.MenuManager = Me.RibbonControl1
|
||||
Me.TextEdit_Bezeichnung.Name = "TextEdit_Bezeichnung"
|
||||
Me.TextEdit_Bezeichnung.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.TextEdit_Bezeichnung.Properties.Appearance.Options.UseFont = True
|
||||
Me.TextEdit_Bezeichnung.Size = New System.Drawing.Size(283, 24)
|
||||
Me.TextEdit_Bezeichnung.TabIndex = 36
|
||||
'
|
||||
'LabelControl5
|
||||
'
|
||||
Me.LabelControl5.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LabelControl5.Appearance.Options.UseFont = True
|
||||
Me.LabelControl5.Location = New System.Drawing.Point(566, 220)
|
||||
Me.LabelControl5.Name = "LabelControl5"
|
||||
Me.LabelControl5.Size = New System.Drawing.Size(72, 17)
|
||||
Me.LabelControl5.TabIndex = 35
|
||||
Me.LabelControl5.Text = "Bezeichnung"
|
||||
'
|
||||
'CheckEdit_Active
|
||||
'
|
||||
Me.CheckEdit_Active.Location = New System.Drawing.Point(855, 241)
|
||||
Me.CheckEdit_Active.MenuManager = Me.RibbonControl1
|
||||
Me.CheckEdit_Active.Name = "CheckEdit_Active"
|
||||
Me.CheckEdit_Active.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.CheckEdit_Active.Properties.Appearance.Options.UseFont = True
|
||||
Me.CheckEdit_Active.Properties.Caption = "Active"
|
||||
Me.CheckEdit_Active.Size = New System.Drawing.Size(75, 21)
|
||||
Me.CheckEdit_Active.TabIndex = 37
|
||||
'
|
||||
'LookUpEdit_Image
|
||||
'
|
||||
Me.LookUpEdit_Image.Location = New System.Drawing.Point(418, 403)
|
||||
Me.LookUpEdit_Image.MenuManager = Me.RibbonControl1
|
||||
Me.LookUpEdit_Image.Name = "LookUpEdit_Image"
|
||||
Me.LookUpEdit_Image.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LookUpEdit_Image.Properties.Appearance.Options.UseFont = True
|
||||
Me.LookUpEdit_Image.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
|
||||
Me.LookUpEdit_Image.Size = New System.Drawing.Size(143, 24)
|
||||
Me.LookUpEdit_Image.TabIndex = 39
|
||||
'
|
||||
'LabelControl6
|
||||
'
|
||||
Me.LabelControl6.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LabelControl6.Appearance.Options.UseFont = True
|
||||
Me.LabelControl6.Location = New System.Drawing.Point(418, 380)
|
||||
Me.LabelControl6.Name = "LabelControl6"
|
||||
Me.LabelControl6.Size = New System.Drawing.Size(47, 17)
|
||||
Me.LabelControl6.TabIndex = 38
|
||||
Me.LabelControl6.Text = "Bild-Typ"
|
||||
'
|
||||
'TextEdit_Comment
|
||||
'
|
||||
Me.TextEdit_Comment.Location = New System.Drawing.Point(573, 403)
|
||||
Me.TextEdit_Comment.MenuManager = Me.RibbonControl1
|
||||
Me.TextEdit_Comment.Name = "TextEdit_Comment"
|
||||
Me.TextEdit_Comment.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.TextEdit_Comment.Properties.Appearance.Options.UseFont = True
|
||||
Me.TextEdit_Comment.Size = New System.Drawing.Size(360, 24)
|
||||
Me.TextEdit_Comment.TabIndex = 41
|
||||
'
|
||||
'LabelControl7
|
||||
'
|
||||
Me.LabelControl7.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LabelControl7.Appearance.Options.UseFont = True
|
||||
Me.LabelControl7.Location = New System.Drawing.Point(573, 380)
|
||||
Me.LabelControl7.Name = "LabelControl7"
|
||||
Me.LabelControl7.Size = New System.Drawing.Size(65, 17)
|
||||
Me.LabelControl7.TabIndex = 40
|
||||
Me.LabelControl7.Text = "Bemerkung"
|
||||
'
|
||||
'LabelControl_Profil
|
||||
'
|
||||
Me.LabelControl_Profil.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LabelControl_Profil.Appearance.Options.UseFont = True
|
||||
Me.LabelControl_Profil.Location = New System.Drawing.Point(566, 270)
|
||||
Me.LabelControl_Profil.Name = "LabelControl_Profil"
|
||||
Me.LabelControl_Profil.Size = New System.Drawing.Size(30, 17)
|
||||
Me.LabelControl_Profil.TabIndex = 42
|
||||
Me.LabelControl_Profil.Text = "Profil"
|
||||
'
|
||||
'LookUpEditProfil
|
||||
'
|
||||
Me.LookUpEditProfil.Location = New System.Drawing.Point(566, 293)
|
||||
Me.LookUpEditProfil.MenuManager = Me.RibbonControl1
|
||||
Me.LookUpEditProfil.Name = "LookUpEditProfil"
|
||||
Me.LookUpEditProfil.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LookUpEditProfil.Properties.Appearance.Options.UseFont = True
|
||||
Me.LookUpEditProfil.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
|
||||
Me.LookUpEditProfil.Size = New System.Drawing.Size(364, 24)
|
||||
Me.LookUpEditProfil.TabIndex = 43
|
||||
'
|
||||
'LookUpEditChart
|
||||
'
|
||||
Me.LookUpEditChart.Location = New System.Drawing.Point(418, 350)
|
||||
Me.LookUpEditChart.MenuManager = Me.RibbonControl1
|
||||
Me.LookUpEditChart.Name = "LookUpEditChart"
|
||||
Me.LookUpEditChart.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LookUpEditChart.Properties.Appearance.Options.UseFont = True
|
||||
Me.LookUpEditChart.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
|
||||
Me.LookUpEditChart.Size = New System.Drawing.Size(143, 24)
|
||||
Me.LookUpEditChart.TabIndex = 45
|
||||
'
|
||||
'LabelControl_Chart
|
||||
'
|
||||
Me.LabelControl_Chart.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LabelControl_Chart.Appearance.Options.UseFont = True
|
||||
Me.LabelControl_Chart.Location = New System.Drawing.Point(418, 327)
|
||||
Me.LabelControl_Chart.Name = "LabelControl_Chart"
|
||||
Me.LabelControl_Chart.Size = New System.Drawing.Size(91, 17)
|
||||
Me.LabelControl_Chart.TabIndex = 44
|
||||
Me.LabelControl_Chart.Text = "Chart-Definition"
|
||||
'
|
||||
'LookUpEditMonitor
|
||||
'
|
||||
Me.LookUpEditMonitor.Location = New System.Drawing.Point(567, 350)
|
||||
Me.LookUpEditMonitor.MenuManager = Me.RibbonControl1
|
||||
Me.LookUpEditMonitor.Name = "LookUpEditMonitor"
|
||||
Me.LookUpEditMonitor.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LookUpEditMonitor.Properties.Appearance.Options.UseFont = True
|
||||
Me.LookUpEditMonitor.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
|
||||
Me.LookUpEditMonitor.Size = New System.Drawing.Size(143, 24)
|
||||
Me.LookUpEditMonitor.TabIndex = 47
|
||||
'
|
||||
'LabelControl_Monitor
|
||||
'
|
||||
Me.LabelControl_Monitor.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.LabelControl_Monitor.Appearance.Options.UseFont = True
|
||||
Me.LabelControl_Monitor.Location = New System.Drawing.Point(567, 327)
|
||||
Me.LabelControl_Monitor.Name = "LabelControl_Monitor"
|
||||
Me.LabelControl_Monitor.Size = New System.Drawing.Size(107, 17)
|
||||
Me.LabelControl_Monitor.TabIndex = 46
|
||||
Me.LabelControl_Monitor.Text = "Monitor-Definition"
|
||||
'
|
||||
'frmCockpitConfig
|
||||
'
|
||||
Me.Appearance.Options.UseFont = True
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 17.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(974, 588)
|
||||
Me.Controls.Add(Me.LookUpEditMonitor)
|
||||
Me.Controls.Add(Me.LabelControl_Monitor)
|
||||
Me.Controls.Add(Me.LookUpEditChart)
|
||||
Me.Controls.Add(Me.LabelControl_Chart)
|
||||
Me.Controls.Add(Me.LookUpEditProfil)
|
||||
Me.Controls.Add(Me.LabelControl_Profil)
|
||||
Me.Controls.Add(Me.TextEdit_Comment)
|
||||
Me.Controls.Add(Me.LabelControl7)
|
||||
Me.Controls.Add(Me.LookUpEdit_Image)
|
||||
Me.Controls.Add(Me.LabelControl6)
|
||||
Me.Controls.Add(Me.CheckEdit_Active)
|
||||
Me.Controls.Add(Me.TextEdit_Bezeichnung)
|
||||
Me.Controls.Add(Me.LabelControl5)
|
||||
Me.Controls.Add(Me.LookUpEditTypeID)
|
||||
Me.Controls.Add(Me.TextEdit_ParentID)
|
||||
Me.Controls.Add(Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID)
|
||||
Me.Controls.Add(Me.LabelControl4)
|
||||
Me.Controls.Add(Me.LabelControl3)
|
||||
Me.Controls.Add(Me.LabelControl2)
|
||||
Me.Controls.Add(Me.TreeList_Cockpit)
|
||||
Me.Controls.Add(Me.CheckEdit_Cockpit_Active)
|
||||
Me.Controls.Add(Me.LookUpEdit1)
|
||||
Me.Controls.Add(Me.LabelControl1)
|
||||
Me.Controls.Add(Me.RibbonStatusBar1)
|
||||
Me.Controls.Add(Me.RibbonControl1)
|
||||
Me.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.IconOptions.SvgImage = CType(resources.GetObject("frmCockpitConfig.IconOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.Margin = New System.Windows.Forms.Padding(4)
|
||||
Me.Name = "frmCockpitConfig"
|
||||
Me.Ribbon = Me.RibbonControl1
|
||||
Me.StatusBar = Me.RibbonStatusBar1
|
||||
Me.Text = "Cockpit Config"
|
||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.LookUpEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.CheckEdit_Cockpit_Active.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.ImageCollection1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.TreeList_Cockpit, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.TextEdit_ParentID.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.LookUpEditTypeID.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.TextEdit_Bezeichnung.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.CheckEdit_Active.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.LookUpEdit_Image.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.TextEdit_Comment.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.LookUpEditProfil.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.LookUpEditChart.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.LookUpEditMonitor.Properties, 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 RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||
Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar
|
||||
Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage
|
||||
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents LabelControl1 As DevExpress.XtraEditors.LabelControl
|
||||
Friend WithEvents LookUpEdit1 As DevExpress.XtraEditors.LookUpEdit
|
||||
Friend WithEvents CheckEdit_Cockpit_Active As DevExpress.XtraEditors.CheckEdit
|
||||
Friend WithEvents ImageCollection1 As DevExpress.Utils.ImageCollection
|
||||
Friend WithEvents TreeList_Cockpit As DevExpress.XtraTreeList.TreeList
|
||||
Friend WithEvents LabelControl2 As DevExpress.XtraEditors.LabelControl
|
||||
Friend WithEvents LabelControl3 As DevExpress.XtraEditors.LabelControl
|
||||
Friend WithEvents LabelControl4 As DevExpress.XtraEditors.LabelControl
|
||||
Friend WithEvents TextEdit_PK_CFG_COCKPIT_DEFINITION_ID As DevExpress.XtraEditors.TextEdit
|
||||
Friend WithEvents TextEdit_ParentID As DevExpress.XtraEditors.TextEdit
|
||||
Friend WithEvents LookUpEditTypeID As DevExpress.XtraEditors.LookUpEdit
|
||||
Friend WithEvents TextEdit_Bezeichnung As DevExpress.XtraEditors.TextEdit
|
||||
Friend WithEvents LabelControl5 As DevExpress.XtraEditors.LabelControl
|
||||
Friend WithEvents CheckEdit_Active As DevExpress.XtraEditors.CheckEdit
|
||||
Friend WithEvents bbtnSQL_Data As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents bbtnSQL_Count As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents LookUpEdit_Image As DevExpress.XtraEditors.LookUpEdit
|
||||
Friend WithEvents LabelControl6 As DevExpress.XtraEditors.LabelControl
|
||||
Friend WithEvents bbtnitm_Save As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents TextEdit_Comment As DevExpress.XtraEditors.TextEdit
|
||||
Friend WithEvents LabelControl7 As DevExpress.XtraEditors.LabelControl
|
||||
Friend WithEvents BarButtonItem4 As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents bbtnitm_NodeOverviewAdd As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents bbtnitm_NodeProfilAdd As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents LabelControl_Profil As DevExpress.XtraEditors.LabelControl
|
||||
Friend WithEvents LookUpEditProfil As DevExpress.XtraEditors.LookUpEdit
|
||||
Friend WithEvents LookUpEditChart As DevExpress.XtraEditors.LookUpEdit
|
||||
Friend WithEvents LabelControl_Chart As DevExpress.XtraEditors.LabelControl
|
||||
Friend WithEvents LookUpEditMonitor As DevExpress.XtraEditors.LookUpEdit
|
||||
Friend WithEvents LabelControl_Monitor As DevExpress.XtraEditors.LabelControl
|
||||
Friend WithEvents bbtnitmCopy As DevExpress.XtraBars.BarButtonItem
|
||||
End Class
|
||||
387
app/TaskFlow/frmCockpitConfig.resx
Normal file
387
app/TaskFlow/frmCockpitConfig.resx
Normal file
@@ -0,0 +1,387 @@
|
||||
<?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>
|
||||
<assembly alias="DevExpress.Data.v21.2" name="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="BarButtonItem1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKEDAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
|
||||
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
|
||||
OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
|
||||
dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlVzZXIiPg0KICAgIDxwYXRoIGQ9Ik0xMCw5LjljLTAu
|
||||
MSwwLjUsMC4yLDAuOSwwLjQsMS40YzAuMiwwLjUtMC4xLDEuNywwLjksMS42YzAsMCwwLDAuMSwwLDAu
|
||||
MmMwLjYsMi4zLDIsNC45LDQuNyw0LjkgICBjMi43LDAsNC4yLTIuNiw0LjctNC45YzAsMCwwLTAuMSww
|
||||
LTAuMWMxLDAuMSwwLjYtMS4xLDAuOS0xLjZjMC4yLTAuNSwwLjQtMC45LDAuMy0xLjRjLTAuMS0wLjQt
|
||||
MC40LTAuNC0wLjUtMC4zICAgYzEuOC00LjktMS4xLTQuNy0xLjEtNC43UzIwLDIsMTQuOCwyQzEwLDIs
|
||||
OS40LDYsMTAuNSw5LjZDMTAuNCw5LjYsMTAuMSw5LjcsMTAsOS45eiIgY2xhc3M9IkJsYWNrIiAvPg0K
|
||||
ICAgIDxwYXRoIGQ9Ik0yMCwxOGMtMC44LDEuNS0yLjEsNC00LDRjLTEuOSwwLTMuMi0yLjUtNC00Yy0y
|
||||
LjMsMy41LTgsMS04LDguNVYzMGgyNHYtMy41QzI4LDE5LjEsMjIuMywyMS40LDIwLDE4eiIgY2xhc3M9
|
||||
IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
|
||||
</value>
|
||||
</data>
|
||||
<data name="BarButtonItem2.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAC4DAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
|
||||
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
|
||||
OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
|
||||
dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlJlZnJlc2hfMV8iPg0KICAgIDxwYXRoIGQ9Ik0yNC41
|
||||
LDcuNUMyMi4zLDUuMywxOS4zLDQsMTYsNEMxMC4xLDQsNS4xLDguMyw0LjIsMTRoNC4xYzAuOS0zLjQs
|
||||
NC02LDcuNy02YzIuMiwwLDQuMiwwLjksNS42LDIuNEwxOCwxNCAgIGg1LjdoNC4xSDI4VjRMMjQuNSw3
|
||||
LjV6IiBjbGFzcz0iR3JlZW4iIC8+DQogICAgPHBhdGggZD0iTTE2LjIsMjRjLTIuMiwwLTQuMi0wLjkt
|
||||
NS42LTIuNGwzLjYtMy42SDguNEg0LjRINC4ydjEwbDMuNS0zLjVjMi4yLDIuMiw1LjIsMy41LDguNSwz
|
||||
LjUgICBDMjIuMSwyOCwyNywyMy43LDI4LDE4aC00LjFDMjMsMjEuNCwxOS45LDI0LDE2LjIsMjR6IiBj
|
||||
bGFzcz0iR3JlZW4iIC8+DQogIDwvZz4NCjwvc3ZnPgs=
|
||||
</value>
|
||||
</data>
|
||||
<data name="bbtnSQL_Data.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAADIDAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
|
||||
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
|
||||
OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
|
||||
dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkRhdGFiYXNlIj4NCiAgICA8cGF0aCBkPSJNMTYsMjRj
|
||||
LTUuNSwwLTEwLTEuOC0xMC00djRjMCwyLjIsNC41LDQsMTAsNHMxMC0xLjgsMTAtNHYtNEMyNiwyMi4y
|
||||
LDIxLjUsMjQsMTYsMjR6IiBjbGFzcz0iWWVsbG93IiAvPg0KICAgIDxwYXRoIGQ9Ik0xNiwxOGMtNS41
|
||||
LDAtMTAtMS44LTEwLTR2NGMwLDIuMiw0LjUsNCwxMCw0czEwLTEuOCwxMC00di00QzI2LDE2LjIsMjEu
|
||||
NSwxOCwxNiwxOHoiIGNsYXNzPSJZZWxsb3ciIC8+DQogICAgPHBhdGggZD0iTTE2LDRDMTAuNSw0LDYs
|
||||
NS44LDYsOHY0YzAsMi4yLDQuNSw0LDEwLDRzMTAtMS44LDEwLTRWOEMyNiw1LjgsMjEuNSw0LDE2LDR6
|
||||
IiBjbGFzcz0iWWVsbG93IiAvPg0KICA8L2c+DQo8L3N2Zz4L
|
||||
</value>
|
||||
</data>
|
||||
<data name="bbtnSQL_Count.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAADIDAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
|
||||
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
|
||||
OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
|
||||
dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkRhdGFiYXNlIj4NCiAgICA8cGF0aCBkPSJNMTYsMjRj
|
||||
LTUuNSwwLTEwLTEuOC0xMC00djRjMCwyLjIsNC41LDQsMTAsNHMxMC0xLjgsMTAtNHYtNEMyNiwyMi4y
|
||||
LDIxLjUsMjQsMTYsMjR6IiBjbGFzcz0iWWVsbG93IiAvPg0KICAgIDxwYXRoIGQ9Ik0xNiwxOGMtNS41
|
||||
LDAtMTAtMS44LTEwLTR2NGMwLDIuMiw0LjUsNCwxMCw0czEwLTEuOCwxMC00di00QzI2LDE2LjIsMjEu
|
||||
NSwxOCwxNiwxOHoiIGNsYXNzPSJZZWxsb3ciIC8+DQogICAgPHBhdGggZD0iTTE2LDRDMTAuNSw0LDYs
|
||||
NS44LDYsOHY0YzAsMi4yLDQuNSw0LDEwLDRzMTAtMS44LDEwLTRWOEMyNiw1LjgsMjEuNSw0LDE2LDR6
|
||||
IiBjbGFzcz0iWWVsbG93IiAvPg0KICA8L2c+DQo8L3N2Zz4L
|
||||
</value>
|
||||
</data>
|
||||
<data name="bbtnitm_Save.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAMICAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzczNzM3NDt9Cgku
|
||||
WWVsbG93e2ZpbGw6I0ZDQjAxQjt9CgkuR3JlZW57ZmlsbDojMTI5QzQ5O30KCS5CbHVle2ZpbGw6IzM4
|
||||
N0NCNzt9CgkuUmVke2ZpbGw6I0QwMjEyNzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
|
||||
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tk
|
||||
aXNwbGF5Om5vbmU7ZmlsbDojNzM3Mzc0O30KPC9zdHlsZT4NCiAgPHBhdGggZD0iTTI3LDRoLTN2MTBI
|
||||
OFY0SDVDNC40LDQsNCw0LjQsNCw1djIyYzAsMC42LDAuNCwxLDEsMWgyMmMwLjYsMCwxLTAuNCwxLTFW
|
||||
NUMyOCw0LjQsMjcuNiw0LDI3LDR6IE0yNCwyNEg4di02ICBoMTZWMjR6IE0xMCw0djhoMTBWNEgxMHog
|
||||
TTE0LDEwaC0yVjZoMlYxMHoiIGNsYXNzPSJCbGFjayIgLz4NCjwvc3ZnPgs=
|
||||
</value>
|
||||
</data>
|
||||
<data name="BarButtonItem4.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAD4DAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzczNzM3NDt9Cgku
|
||||
WWVsbG93e2ZpbGw6I0ZDQjAxQjt9CgkuR3JlZW57ZmlsbDojMTI5QzQ5O30KCS5CbHVle2ZpbGw6IzM4
|
||||
N0NCNzt9CgkuUmVke2ZpbGw6I0QwMjEyNzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
|
||||
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tk
|
||||
aXNwbGF5Om5vbmU7ZmlsbDojNzM3Mzc0O30KPC9zdHlsZT4NCiAgPHBhdGggZD0iTTE4LjgsMTZsOC45
|
||||
LTguOWMwLjQtMC40LDAuNC0xLDAtMS40bC0xLjQtMS40Yy0wLjQtMC40LTEtMC40LTEuNCwwTDE2LDEz
|
||||
LjJMNy4xLDQuM2MtMC40LTAuNC0xLTAuNC0xLjQsMCAgTDQuMyw1LjdjLTAuNCwwLjQtMC40LDEsMCwx
|
||||
LjRsOC45LDguOWwtOC45LDguOWMtMC40LDAuNC0wLjQsMSwwLDEuNGwxLjQsMS40YzAuNCwwLjQsMSww
|
||||
LjQsMS40LDBsOC45LTguOWw4LjksOC45ICBjMC40LDAuNCwxLDAuNCwxLjQsMGwxLjQtMS40YzAuNC0w
|
||||
LjQsMC40LTEsMC0xLjRMMTguOCwxNnoiIGNsYXNzPSJSZWQiIC8+DQo8L3N2Zz4L
|
||||
</value>
|
||||
</data>
|
||||
<data name="bbtnitm_NodeOverviewAdd.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGICAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
|
||||
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
|
||||
OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
|
||||
dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkFkZENpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0xNiw0
|
||||
QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHogTTI0
|
||||
LDE4aC02djZoLTR2LTZIOHYtNGg2VjhoNHY2aDZWMTh6IiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4N
|
||||
Cjwvc3ZnPgs=
|
||||
</value>
|
||||
</data>
|
||||
<data name="bbtnitm_NodeProfilAdd.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGICAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
|
||||
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
|
||||
OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
|
||||
dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkFkZENpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0xNiw0
|
||||
QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHogTTI0
|
||||
LDE4aC02djZoLTR2LTZIOHYtNGg2VjhoNHY2aDZWMTh6IiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4N
|
||||
Cjwvc3ZnPgs=
|
||||
</value>
|
||||
</data>
|
||||
<data name="bbtnitmCopy.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAMcCAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
|
||||
LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
|
||||
MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
|
||||
Y2l0eTowLjc1O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkNvcHkiPg0KICAgIDxwYXRoIGQ9Ik0yMSwySDEx
|
||||
Yy0wLjUsMC0xLDAuNS0xLDF2NUg1QzQuNSw4LDQsOC41LDQsOXYyMGMwLDAuNSwwLjUsMSwxLDFoMTZj
|
||||
MC41LDAsMS0wLjUsMS0xdi01aDVjMC41LDAsMS0wLjUsMS0xICAgVjlMMjEsMnogTTIwLDI4SDZWMTBo
|
||||
OHY1YzAsMC41LDAuNSwxLDEsMWg1VjI4eiBNMjYsMjJoLTR2LTdsLTctN2gtM1Y0aDh2NWMwLDAuNSww
|
||||
LjUsMSwxLDFoNVYyMnoiIGNsYXNzPSJCbGFjayIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="ImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="DevExpress.Utils.v21.2" name="DevExpress.Utils.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="ImageCollection1.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYyMS4yLCBWZXJzaW9uPTIxLjIu
|
||||
NC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT
|
||||
eXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRv
|
||||
a2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAAChEZXZFeHByZXNzLlV0aWxzLkltYWdlQ29sbGVjdGlvblN0
|
||||
cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
|
||||
/xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABgAAAAYAAAACQUAAAAP
|
||||
BQAAACcLAAAC+gIAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAKcSURBVEhL3ZTLaxNRFMYLrvRfkD4yc5OgFeeZIIiLVkrV
|
||||
Jq1O6SNGqxUhCtZVkWBIbQitdOVS3AlZtXUnKAq1mUcmr6aPpCVod9KmuBbXn8z0NTMki9Yuij/4uDNn
|
||||
7jnfnLl3blPTf4PO0NBYAp2lkGFc0BgXVMaF/GUKzrnHQhbcSItepHkCjaWg827IXBt0jj4w0JhmKIwL
|
||||
CkdD4QhUjoLKUrsjR5l5Km/kEhRZYn8xxUeQET3QuGYU2BbzocpeRMZi8E8oAo0lznNQTObdWDS7cbzJ
|
||||
cTE+kc57kGM8ZlGNd0MR3MjxhwYK14o0TyEtEhgdy37alC4SfLne8dte0cE3H420QGCuBU+wKO4mZ32H
|
||||
XZ1+5ubmzjjlnHNsMqwLMu9CWmjGgq8FC/4WyCKFPHtC/4Gxd50xg7wlXpFuoizdwNrALZSHAqhYNRjA
|
||||
+lAP1ocDqA734UdIstczdo0tsEdWrG98ZDJC/UJWg5XXiZ5qLJoyNRFLVeMvU9V4NPU9Hk3Zs+qgCjSy
|
||||
b9+0OeNWg1pEwtbTAWyNhQ60PTaM2rNBFGZmvPZMB5+uMn8UgTIXdl+qSENr0NnpQ74moMgR5AWCrOA2
|
||||
tcQSrF44ocOuwBN8HXnU+/H5k0vvOzvPf5Ck1s+PR9qXLbtrdXraU4pNRlYmkqZKhianIqVYMmLG958l
|
||||
k5Gfs7NnbQZ5f/0zp2g5izb7e1AJBbAWDmLtXi8q9wOoGKOhcBDrd4PYCPViIxTE5mDAXi9/xVvXoJHx
|
||||
kWlkYO1gJxxELdyH7Qe3URvtx86ohNrDO/g10ofS+HjCnulA9xEURQq6n0ZO9CInelAQPLAaLL17da4c
|
||||
f9FVTsS7ylMJU8tTcfPeXq0B890d7fPBPRnX3R3tzjlH5S88LZDGXf/36QAAAABJRU5ErkJggjMCAACJ
|
||||
UE5HDQoaCgAAAA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68
|
||||
AAAOvAGVvHJJAAAB1UlEQVRIS+2Uu24aQRSGz7hImqTLA1DQpIwiFCF5l9vewciSCysRRap0KEqRmhoW
|
||||
h1swVdLbZaS8gzsXKfwGlgs3thUMhuGPZmE3u3iXTBuJTxrtzsw58885c2aItvzXAGDh/vnHz/vhfiL1
|
||||
ev1pmwib2hEReozg+4yNPO7VXfx4++FFdLUY/EWa6ZeXbragullFdbO66v1nCmono6idV1nVt59Ubcz1
|
||||
HKZFLRBMxGWEL/R3Z//iyrHvFmUD3LbkfI5YNPRNnOzV0twpAZWKlL2HSE1fUoCXC1hU7MB2dFh7H7WI
|
||||
QaRowFjgdK/lcK3ojwR5WcesYgbjp43Gk4FMaoVAP2Q4MRQ86CrO9t9998dmtoa5o+PWrAZ2LmMYhjaW
|
||||
iDBcP4OpXcC8tKyQX7XaT24VwZ3ooUoLtBIO+cHMg2sm5oaGmfW4HEXkUgJxEQh+20VMzBy4ZeJCq96s
|
||||
z7cYw/GOjICoooTDGlsKpkYpdq7pCcT7RRARhKtIFukUiTcmKYJNiNv/VUZg8Ow57xFBqqZX9GgZtZtK
|
||||
3a3PxSIEjlc57RKhs3qfRBP/fl/MDRmh641J7D7M6PWbjrc4MbQZQ4vIa83VV1RNe2d56785B5/W/bdI
|
||||
8werE/HGFidAHwAAAABJRU5ErkJgghADAACJUE5HDQoaCgAAAA1JSERSAAAAGAAAABgIBgAAAOB3PfgA
|
||||
AAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA68AAAOvAGVvHJJAAACsklEQVRIS8VVzW7TQBDOc/AeHKom
|
||||
3t2Z3bVDy08R4gaqKvUZOHDoK3BDvAEHClVVceEaqKqCWtvrnyQOVPAKnHL50Dp2G6WtRNUIPmnl8ex4
|
||||
/vzNbqfzr1BqRmIJJyzgKEBqAqTUw4nqIWYvC5yqHhK/pwI42UMiu8ikQKYEYtGF4wA5CZQqwNH9dZw7
|
||||
H3IPLlRwTMhZISMB1zpjgZgEUpLImXAqAiRKoGBCyVQ7T5v3jCUcC4wNoSCJD0+fvKoDVMYgtuIi4hJQ
|
||||
WMaYejOfmVZIIrPcAEZhTE3SpWHERt0owN7W5tbu9vbdRX2LMtIYa9lUYBTcDQNUljHkxsEVKO9pTAzN
|
||||
9lOtcHqN8YglDiP7e153pro4I4VKS0xE0+cF5BGhapPOrMJXvmw4oi5OwwCjhepKffE+vKby3EqMTZO0
|
||||
04RvTQW7L19QznJaapoWfV3rciNRqZVarqiLn3L13GllFX7JALmmqeP+tNVnhjBpg6da4iSc9evTo4fT
|
||||
UksUhjBqM+h0OhPNtfzdzILOo6AAuVEo9AXVc0uYUNC2iHA8t3kVCruKLFIYqcutvAp+Dn5wU0EeMo7n
|
||||
sr0OZ3LWpr9B1beYtDTNrcY321BqSSisxLAdtCQkxNFyA3hilC31i0hj1PZrSfAkKbmpwE9lbhmJFki0
|
||||
bJaqn84SYn+isj9RZ6zIjETCAp4cfqVGIW5s/f9MWNb6hOe64rSqDVNLcGZ2N/jlLMNPemwVEiOxt7Nz
|
||||
x5ef2pltYhVcSEj8cRNq5KGGM4T8Cjr/X2S0gpy7yGgVJa9i9/HG60WbW6FSBMcSZd/AD9HB883lBjix
|
||||
Ap+twlFf4zBivH229WbR5sZ492Djy9D/MBXUnPZyfV8bAX8LZiSR3XZ+Pobrg/1obbAfrQ8OogvZr/fR
|
||||
2uDArg8Wv5nHH4RP7Rpx+BP5AAAAAElFTkSuQmCC2gIAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgG
|
||||
AAAA4Hc9+AAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAJ8SURBVEhL3VXNbtNA
|
||||
EPaBQx+CQ2t7HSde24l6yKGAk1IREBd+GnCjVgEunLkgVQj1CXgCDrlwRXkEUA48AGpVQqWIZmNDiNcO
|
||||
eYFB42Bn3VAoNFz4pNHO7oz9eXZnP0vSf4NAocA1CoFSgEgzISImcM2GQKUQEQtCzYSQUOCqEY8453HM
|
||||
jP0IY7ge55jAV3RIX/6x0XyZYVsA8EPSyeH2zsIJQoUKFTQfzRFw2QCuWhAoBoxVIfmM4Ct5gcDdzhAE
|
||||
cgFCZVaip5egd+3mazGnXS4vt8vOcrtWS+3N3tOLSTwSnpcOG7MtOtp6UEOCNChJUq9atY/ubD77cNe1
|
||||
xPVfIVKECrrNhykBl+e3I9SseI2vzIj7t+51/Lrb8etbneP1G6/YptvprVVfJPHMIe/XG6cShMI8Eg/u
|
||||
NwhJpotmbcqJnQbGxIp7PY0J/oBYE0+zJz6aak08lU48Wv6WxEOxgp910XmRvQfCIS8Kodgo4hksCqEs
|
||||
dNHBOSrYc5wl1KqT65kKMlvkOBecH5bxT2AkT/e45ThLXJ4K25jMmiBQBYKDnT8XO5QSHLECrhjQz9vv
|
||||
UFqSeCTKy75QAbtUbfUrV1t+ZaPFKhutT1eq8di/ff95kjNCKZENeL+7q/ceP7FRr7CFcT3JyUqFcA/O
|
||||
Anw5Xjq82eiHsgljmcZ+khNpopoK/wMvR5mnW8zPl9jnXIn5GmXHOcpY+XI3jhfL3iBfZH5+lXl6kQ1y
|
||||
RebpJeajFUrMN1bZHEHX/fsuOg34h0snvtu8nokuAHO69ZWYEJtCYagaMEIfR4VCkLOmc2LCSLNgiAeK
|
||||
ljxDTBjKBfhC8FkKQ9kAtrb+NkPwr/Ad3DFsyGIxcj4AAAAASUVORK5CYIIL
|
||||
</value>
|
||||
</data>
|
||||
<data name="frmCockpitConfig.IconOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIkDAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku
|
||||
QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC
|
||||
MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
|
||||
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iSW5zZXJ0VHJl
|
||||
ZVZpZXciPg0KICAgIDxwYXRoIGQ9Ik0xMyw4SDVDNC40LDgsNCw3LjYsNCw3VjNjMC0wLjUsMC40LTEs
|
||||
MS0xaDhjMC42LDAsMSwwLjUsMSwxdjRDMTQsNy42LDEzLjYsOCwxMyw4eiBNMjYsMTd2LTQgICBjMC0w
|
||||
LjYtMC41LTEtMS0xaC04Yy0wLjUsMC0xLDAuNC0xLDF2NGMwLDAuNSwwLjUsMSwxLDFoOEMyNS41LDE4
|
||||
LDI2LDE3LjUsMjYsMTd6IE0yNiwyN3YtNGMwLTAuNS0wLjUtMS0xLTFoLThjLTAuNSwwLTEsMC41LTEs
|
||||
MSAgIHY0YzAsMC41LDAuNSwxLDEsMWg4QzI1LjUsMjgsMjYsMjcuNSwyNiwyN3oiIGNsYXNzPSJZZWxs
|
||||
b3ciIC8+DQogICAgPHBvbHlnb24gcG9pbnRzPSIxNCwxNiAxNCwxNCAxMCwxNCAxMCwxMCA4LDEwIDgs
|
||||
MjYgMTQsMjYgMTQsMjQgMTAsMjQgMTAsMTYgICIgY2xhc3M9IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2
|
||||
Zz4L
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
931
app/TaskFlow/frmCockpitConfig.vb
Normal file
931
app/TaskFlow/frmCockpitConfig.vb
Normal file
@@ -0,0 +1,931 @@
|
||||
Imports DevExpress.XtraBars.Ribbon
|
||||
Imports DigitalData.GUIs.Common
|
||||
|
||||
Public Class frmCockpitConfig
|
||||
Private Selected_Cockpit_ID As Integer
|
||||
Private LoadInAction As Boolean = False
|
||||
Private _treeNodeCounts As New Dictionary(Of Integer, Integer)
|
||||
Private _currentCockpitDefinition As CockpitDefinitionData ' <-- NEU
|
||||
' ===== NESTED CLASS FÜR COCKPIT-DEFINITION =====
|
||||
Private Class CockpitDefinitionData
|
||||
Public Property PK_CFG_COCKPIT_DEFINITION_ID As Integer
|
||||
Public Property Active As Boolean
|
||||
Public Property ParentID As Integer?
|
||||
Public Property TypeID As Integer?
|
||||
Public Property IconID As Integer?
|
||||
Public Property Name As String
|
||||
Public Property FK_ProfileID As Integer?
|
||||
Public Property FK_ChartID As Integer?
|
||||
Public Property FK_MonitorID As Integer?
|
||||
Public Property SQL_Query As String
|
||||
Public Property SQL_Query_Count As String
|
||||
Public Property Comment As String
|
||||
|
||||
Public Sub New()
|
||||
Name = String.Empty
|
||||
SQL_Query = String.Empty
|
||||
SQL_Query_Count = String.Empty
|
||||
Comment = String.Empty
|
||||
End Sub
|
||||
|
||||
Public Shared Function FromTreeNode(oNode As DevExpress.XtraTreeList.Nodes.TreeListNode) As CockpitDefinitionData
|
||||
Dim data As New CockpitDefinitionData()
|
||||
|
||||
data.PK_CFG_COCKPIT_DEFINITION_ID = GetNodeValue(Of Integer)(oNode, "PK_CFG_COCKPIT_DEFINITION_ID", 0)
|
||||
data.Active = GetNodeValue(Of Boolean)(oNode, "ACTIVE", False)
|
||||
data.ParentID = GetNodeValueNullable(Of Integer)(oNode, "PARENT_ID")
|
||||
data.TypeID = GetNodeValueNullable(Of Integer)(oNode, "TYPE_ID")
|
||||
data.IconID = GetNodeValueNullable(Of Integer)(oNode, "ICON_ID")
|
||||
data.Name = GetNodeValue(Of String)(oNode, "NAME", String.Empty)
|
||||
data.FK_ProfileID = GetNodeValueNullable(Of Integer)(oNode, "FK_PROFILE_ID")
|
||||
data.FK_ChartID = GetNodeValueNullable(Of Integer)(oNode, "FK_CHART_ID")
|
||||
data.FK_MonitorID = GetNodeValueNullable(Of Integer)(oNode, "FK_MONITOR_ID")
|
||||
data.SQL_Query = GetNodeValue(Of String)(oNode, "SQL_QUERY", String.Empty)
|
||||
data.SQL_Query_Count = GetNodeValue(Of String)(oNode, "SQL_QUERY_COUNT", String.Empty)
|
||||
data.Comment = GetNodeValue(Of String)(oNode, "COMMENT", String.Empty)
|
||||
|
||||
Return data
|
||||
End Function
|
||||
|
||||
Private Shared Function GetNodeValue(Of T)(oNode As DevExpress.XtraTreeList.Nodes.TreeListNode, fieldName As String, defaultValue As T) As T
|
||||
Dim value As Object = oNode.GetValue(fieldName)
|
||||
If value Is Nothing OrElse IsDBNull(value) Then
|
||||
Return defaultValue
|
||||
End If
|
||||
Return CType(value, T)
|
||||
End Function
|
||||
|
||||
Private Shared Function GetNodeValueNullable(Of T As Structure)(oNode As DevExpress.XtraTreeList.Nodes.TreeListNode, fieldName As String) As T?
|
||||
Dim value As Object = oNode.GetValue(fieldName)
|
||||
If value Is Nothing OrElse IsDBNull(value) Then
|
||||
Return Nothing
|
||||
End If
|
||||
Return CType(value, T)
|
||||
End Function
|
||||
End Class
|
||||
' ===== ENDE NESTED CLASS =====
|
||||
|
||||
Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick
|
||||
Dim frm As New frmUserSelect
|
||||
frm.ShowDialog()
|
||||
If Not String.IsNullOrEmpty(frm.SelectedUserName) Then
|
||||
Dim frmUserTest As New crmCockpit_UserTest
|
||||
frmUserTest.CheckUserID = frm.SelectedUserID
|
||||
frmUserTest.CheckUserName = frm.SelectedUserName
|
||||
frmUserTest.CheckUserLanguage = frm.SelectedUserLanguage
|
||||
frmUserTest.ShowDialog()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
|
||||
Load_TBTF_CFG_COCKPIT_DEFINITION()
|
||||
End Sub
|
||||
Sub Load_CFG_COCKPIT()
|
||||
Try
|
||||
LoadInAction = True
|
||||
Dim oSQL = "SELECT PK_CFG_COCKPIT_ID, ACTIVE, NAME, COMMENT FROM TBTF_CFG_COCKPIT WITH (NOLOCK)"
|
||||
Dim DT_CONFIG = DatabaseFallback.GetDatatableECM(oSQL)
|
||||
If Not IsNothing(DT_CONFIG) Then
|
||||
' DataBindings.Clear() ist nur für Two-Way-Binding notwendig
|
||||
LookUpEdit1.Properties.DataSource = DT_CONFIG
|
||||
LookUpEdit1.Properties.DisplayMember = "NAME"
|
||||
LookUpEdit1.Properties.ValueMember = "PK_CFG_COCKPIT_ID"
|
||||
' Spalten automatisch aus DataSource generieren
|
||||
LookUpEdit1.Properties.PopulateColumns()
|
||||
' Jetzt können Sie die Spalten konfigurieren
|
||||
LookUpEdit1.Properties.Columns("PK_CFG_COCKPIT_ID").Visible = False
|
||||
LookUpEdit1.Properties.Columns("ACTIVE").Visible = False
|
||||
LookUpEdit1.Properties.Columns("COMMENT").Visible = False
|
||||
' Optional: Erste Element auswählen
|
||||
LookUpEdit1.EditValue = DT_CONFIG.Rows(0)("PK_CFG_COCKPIT_ID")
|
||||
|
||||
' Optional: Dropdown-Style festlegen
|
||||
LookUpEdit1.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor
|
||||
Else
|
||||
MsgBox("No cockpit config found.", MsgBoxStyle.Exclamation)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"Error in Load_CFG_COCKPIT: {ex.Message}")
|
||||
Finally
|
||||
LoadInAction = False
|
||||
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
Sub Load_TBTF_CFG_COCKPIT_DEFINITION()
|
||||
Try
|
||||
Dim oSQL = $"
|
||||
SELECT
|
||||
PK_CFG_COCKPIT_DEFINITION_ID
|
||||
,ACTIVE
|
||||
,PARENT_ID
|
||||
,TYPE_ID
|
||||
,ICON_ID
|
||||
,NAME
|
||||
,FK_PROFILE_ID
|
||||
,FK_CHART_ID
|
||||
,FK_MONITOR_ID
|
||||
,SQL_QUERY
|
||||
,SQL_QUERY_COUNT
|
||||
,COMMENT
|
||||
,ADDED_WHO
|
||||
,ADDED_WHEN
|
||||
,CHANGED_WHO
|
||||
,CHANGED_WHEN
|
||||
FROM [dbo].[TBTF_CFG_COCKPIT_DEFINITION] WITH (NOLOCK) WHERE FK_CFG_COCKPIT_ID = {Selected_Cockpit_ID} ORDER BY PARENT_ID "
|
||||
Dim DT_CONFIG_DEF = DatabaseFallback.GetDatatableECM(oSQL)
|
||||
If Not IsNothing(DT_CONFIG_DEF) Then
|
||||
' ===== NEUE DATATABLE MIT KORREKTEN TYPEN ERSTELLEN =====
|
||||
Dim cleanedTable As New DataTable()
|
||||
cleanedTable.Columns.Add("PK_CFG_COCKPIT_DEFINITION_ID", GetType(Integer))
|
||||
cleanedTable.Columns.Add("ACTIVE", GetType(Boolean))
|
||||
cleanedTable.Columns.Add("PARENT_ID", GetType(Integer))
|
||||
cleanedTable.Columns.Add("TYPE_ID", GetType(Integer))
|
||||
cleanedTable.Columns.Add("ICON_ID", GetType(Integer))
|
||||
cleanedTable.Columns.Add("NAME", GetType(String))
|
||||
cleanedTable.Columns.Add("FK_PROFILE_ID", GetType(Integer))
|
||||
cleanedTable.Columns.Add("FK_CHART_ID", GetType(Integer))
|
||||
cleanedTable.Columns.Add("FK_MONITOR_ID", GetType(Integer))
|
||||
cleanedTable.Columns.Add("SQL_QUERY", GetType(String))
|
||||
cleanedTable.Columns.Add("SQL_QUERY_COUNT", GetType(String))
|
||||
cleanedTable.Columns.Add("COMMENT", GetType(String))
|
||||
cleanedTable.Columns.Add("ADDED_WHO", GetType(String))
|
||||
cleanedTable.Columns.Add("ADDED_WHEN", GetType(DateTime))
|
||||
cleanedTable.Columns.Add("CHANGED_WHO", GetType(String))
|
||||
cleanedTable.Columns.Add("CHANGED_WHEN", GetType(DateTime))
|
||||
|
||||
' ===== DATEN MIT KORREKTEN TYPEN KOPIEREN =====
|
||||
For Each row As DataRow In DT_CONFIG_DEF.Rows
|
||||
Dim newRow = cleanedTable.NewRow()
|
||||
newRow("PK_CFG_COCKPIT_DEFINITION_ID") = Convert.ToInt32(row("PK_CFG_COCKPIT_DEFINITION_ID"))
|
||||
newRow("ACTIVE") = row("ACTIVE")
|
||||
newRow("PARENT_ID") = If(IsDBNull(row("PARENT_ID")), 0, Convert.ToInt32(row("PARENT_ID")))
|
||||
newRow("TYPE_ID") = If(IsDBNull(row("TYPE_ID")), 0, Convert.ToInt32(row("TYPE_ID")))
|
||||
|
||||
' ===== ICON_ID KORRIGIERT: Mit Konvertierung =====
|
||||
newRow("ICON_ID") = If(IsDBNull(row("ICON_ID")), 0, Convert.ToInt32(row("ICON_ID")))
|
||||
|
||||
newRow("NAME") = If(IsDBNull(row("NAME")), String.Empty, row("NAME").ToString())
|
||||
|
||||
' ===== AUCH FK-FELDER SOLLTEN KONVERTIERT WERDEN =====
|
||||
newRow("FK_PROFILE_ID") = If(IsDBNull(row("FK_PROFILE_ID")), 0, Convert.ToInt32(row("FK_PROFILE_ID")))
|
||||
newRow("FK_CHART_ID") = If(IsDBNull(row("FK_CHART_ID")), 0, Convert.ToInt32(row("FK_CHART_ID")))
|
||||
newRow("FK_MONITOR_ID") = If(IsDBNull(row("FK_MONITOR_ID")), 0, Convert.ToInt32(row("FK_MONITOR_ID")))
|
||||
|
||||
newRow("SQL_QUERY") = row("SQL_QUERY")
|
||||
newRow("SQL_QUERY_COUNT") = row("SQL_QUERY_COUNT")
|
||||
newRow("COMMENT") = row("COMMENT")
|
||||
newRow("ADDED_WHO") = row("ADDED_WHO")
|
||||
newRow("ADDED_WHEN") = row("ADDED_WHEN")
|
||||
newRow("CHANGED_WHO") = row("CHANGED_WHO")
|
||||
newRow("CHANGED_WHEN") = row("CHANGED_WHEN")
|
||||
cleanedTable.Rows.Add(newRow)
|
||||
Next
|
||||
|
||||
LOGGER.Debug($"Cleaned table created with {cleanedTable.Rows.Count} rows")
|
||||
LOGGER.Debug($"PK_CFG_COCKPIT_DEFINITION_ID Type: {cleanedTable.Columns("PK_CFG_COCKPIT_DEFINITION_ID").DataType.Name}")
|
||||
LOGGER.Debug($"PARENT_ID Column Type: {cleanedTable.Columns("PARENT_ID").DataType.Name}")
|
||||
LOGGER.Debug($"ICON_ID Column Type: {cleanedTable.Columns("ICON_ID").DataType.Name}")
|
||||
|
||||
Load_TreeView_CONFIG(cleanedTable)
|
||||
Else
|
||||
MsgBox("No cockpit definition found.", MsgBoxStyle.Exclamation)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"Error in Load_TBTF_CFG_COCKPIT_DEFINITION: {ex.Message}")
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub LookUpEdit1_EditValueChanged(sender As Object, e As EventArgs) Handles LookUpEdit1.EditValueChanged
|
||||
If Not IsNothing(LookUpEdit1.EditValue) Then
|
||||
Try
|
||||
Selected_Cockpit_ID = LookUpEdit1.EditValue
|
||||
CheckEdit_Cockpit_Active.Checked = LookUpEdit1.Properties.GetDataSourceValue("ACTIVE", LookUpEdit1.ItemIndex)
|
||||
Load_TBTF_CFG_COCKPIT_DEFINITION()
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"Error in LookUpEdit1_EditValueChanged: {ex.Message}")
|
||||
End Try
|
||||
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub frmCockpitConfig_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
Load_TypeID_LookUp()
|
||||
Load_IconID_LookUp()
|
||||
Load_Profile_LookUp()
|
||||
Load_Chart_LookUp()
|
||||
Load_Monitor_LookUp()
|
||||
Load_CFG_COCKPIT()
|
||||
End Sub
|
||||
Private Sub CheckEdit_Cockpit_Active_CheckedChanged(sender As Object, e As EventArgs) Handles CheckEdit_Cockpit_Active.CheckedChanged
|
||||
If LoadInAction Then
|
||||
Exit Sub
|
||||
End If
|
||||
Dim updateSQL = $"UPDATE TBTF_CFG_COCKPIT SET ACTIVE = {(If(CheckEdit_Cockpit_Active.Checked, 1, 0))},
|
||||
CHANGED_WHO = '{Environment.UserName}', CHANGED_WHEN = GETDATE()
|
||||
WHERE PK_CFG_COCKPIT_ID = {Selected_Cockpit_ID}"
|
||||
Dim result = DatabaseFallback.ExecuteNonQueryECM(updateSQL)
|
||||
End Sub
|
||||
Private Sub Load_TreeView_CONFIG(pDTNodes As DataTable)
|
||||
Try
|
||||
LOGGER.Debug("=== TreeView Data Analysis ===")
|
||||
LOGGER.Debug($"Total rows: {pDTNodes.Rows.Count}")
|
||||
|
||||
'For Each row As DataRow In pDTNodes.Rows
|
||||
' Dim pkId = If(IsDBNull(row("PK_CFG_COCKPIT_DEFINITION_ID")), "NULL", row("PK_CFG_COCKPIT_DEFINITION_ID").ToString())
|
||||
' Dim parentId = If(IsDBNull(row("PARENT_ID")), "NULL", row("PARENT_ID").ToString())
|
||||
' Dim name = If(IsDBNull(row("NAME")), "NULL", row("NAME").ToString())
|
||||
' LOGGER.Debug($"ID={pkId}, PARENT_ID={parentId}, NAME={name}")
|
||||
'Next
|
||||
|
||||
Dim rootCount = pDTNodes.AsEnumerable().Count(Function(r) Not IsDBNull(r("PARENT_ID")) AndAlso CInt(r("PARENT_ID")) = 0)
|
||||
LOGGER.Debug($"Root nodes (PARENT_ID = 0): {rootCount}")
|
||||
|
||||
' ===== PARENT_ID-Datentyp prüfen =====
|
||||
If pDTNodes.Rows.Count > 0 Then
|
||||
Dim firstParentId = pDTNodes.Rows(0)("PARENT_ID")
|
||||
LOGGER.Debug($"PARENT_ID Type: {firstParentId.GetType().Name}, Value: {firstParentId}")
|
||||
End If
|
||||
|
||||
' ===== ANZAHL DER OVERVIEW-KNOTEN ERMITTELN (VOR WEITEREN FILTERN) =====
|
||||
Dim oOverviewRows As DataRow() = pDTNodes.Select("TYPE_ID = 0")
|
||||
LOGGER.Debug($"Load_Treeview: Found [{oOverviewRows.Length}] node(s) with TYPE_ID=0 (Overview)")
|
||||
|
||||
TreeList_Cockpit.BeginUpdate()
|
||||
Try
|
||||
' ===== TreeList VOLLSTÄNDIG zurücksetzen =====
|
||||
TreeList_Cockpit.DataSource = Nothing
|
||||
TreeList_Cockpit.ClearNodes()
|
||||
|
||||
' ===== Hierarchie-Felder setzen =====
|
||||
TreeList_Cockpit.KeyFieldName = "PK_CFG_COCKPIT_DEFINITION_ID"
|
||||
TreeList_Cockpit.ParentFieldName = "PARENT_ID"
|
||||
TreeList_Cockpit.RootValue = 0 ' Explizit setzen: Root-Nodes haben PARENT_ID = 0
|
||||
|
||||
' ===== Jetzt DataSource zuweisen =====
|
||||
TreeList_Cockpit.DataSource = pDTNodes
|
||||
|
||||
'' ===== DEBUG: ImageList-Inhalt prüfen =====
|
||||
'If TreeList_Cockpit.SelectImageList IsNot Nothing Then
|
||||
' LOGGER.Debug($"SelectImageList hat {TreeList_Cockpit.SelectImageList.Images.Count} Bilder")
|
||||
' For i As Integer = 0 To TreeList_Cockpit.SelectImageList.Images.Count - 1
|
||||
' LOGGER.Debug($" Image Index {i}: {TreeList_Cockpit.SelectImageList.Images.Keys(i)}")
|
||||
' Next
|
||||
'Else
|
||||
' LOGGER.Warn("SelectImageList ist Nothing!")
|
||||
'End If
|
||||
|
||||
AddHandler TreeList_Cockpit.CustomDrawNodeCell, AddressOf TreeList_Config_CustomDrawNodeCell
|
||||
|
||||
' ===== MODERNES DESIGN =====
|
||||
TreeList_Cockpit.Appearance.Row.Font = New Font("Segoe UI", 12, FontStyle.Regular)
|
||||
TreeList_Cockpit.Appearance.FocusedRow.Font = New Font("Segoe UI", 12, FontStyle.Bold)
|
||||
TreeList_Cockpit.Appearance.HideSelectionRow.Font = New Font("Segoe UI", 12, FontStyle.Regular)
|
||||
|
||||
TreeList_Cockpit.Appearance.Row.BackColor = Color.White
|
||||
TreeList_Cockpit.Appearance.Row.ForeColor = Color.FromArgb(50, 50, 50)
|
||||
TreeList_Cockpit.Appearance.FocusedRow.BackColor = Color.FromArgb(210, 230, 255)
|
||||
TreeList_Cockpit.Appearance.FocusedRow.ForeColor = Color.FromArgb(20, 20, 20)
|
||||
TreeList_Cockpit.Appearance.HideSelectionRow.BackColor = Color.FromArgb(225, 235, 250)
|
||||
TreeList_Cockpit.Appearance.HideSelectionRow.ForeColor = Color.FromArgb(50, 50, 50)
|
||||
|
||||
TreeList_Cockpit.RowHeight = 28
|
||||
|
||||
Dim oVisibleColumns As New System.Collections.Generic.HashSet(Of String)(StringComparer.OrdinalIgnoreCase) From {"NAME"}
|
||||
For Each oColumn As DevExpress.XtraTreeList.Columns.TreeListColumn In TreeList_Cockpit.Columns
|
||||
oColumn.Visible = oVisibleColumns.Contains(oColumn.FieldName)
|
||||
Next
|
||||
Finally
|
||||
TreeList_Cockpit.EndUpdate()
|
||||
End Try
|
||||
|
||||
' ===== KNOTEN AUF-/ZUKLAPPEN BASIEREND AUF ANZAHL DER OVERVIEW-KNOTEN =====
|
||||
If oOverviewRows.Length = 1 Then
|
||||
LOGGER.Debug("Load_Treeview: Only 1 overview node found - expanding all nodes")
|
||||
TreeList_Cockpit.ExpandAll()
|
||||
ElseIf oOverviewRows.Length > 1 Then
|
||||
LOGGER.Debug($"Load_Treeview: [{oOverviewRows.Length}] overview nodes found - collapsing all nodes")
|
||||
TreeList_Cockpit.CollapseAll()
|
||||
Else
|
||||
LOGGER.Warn("Load_Treeview: No overview nodes (TYPE_ID=0) found - keeping default collapsed state")
|
||||
End If
|
||||
|
||||
'' ===== DETAILLIERTES LOGGING =====
|
||||
'LOGGER.Debug("=== DETAILED NODE STRUCTURE AFTER SETUP ===")
|
||||
'LOGGER.Debug($"TreeList State - AllNodesCount: {TreeList_Cockpit.AllNodesCount}, RootNodes: {TreeList_Cockpit.Nodes.Count}")
|
||||
|
||||
'Dim allNodesList As New List(Of DevExpress.XtraTreeList.Nodes.TreeListNode)
|
||||
'CollectAllNodes(TreeList_Cockpit.Nodes, allNodesList)
|
||||
|
||||
'LOGGER.Debug($"Total nodes collected recursively: {allNodesList.Count}")
|
||||
|
||||
'For Each node As DevExpress.XtraTreeList.Nodes.TreeListNode In allNodesList
|
||||
' Dim nodeId = node.GetValue("PK_CFG_COCKPIT_DEFINITION_ID")
|
||||
' Dim nodeName = node.GetValue("NAME")
|
||||
' Dim nodeParent = node.GetValue("PARENT_ID")
|
||||
' Dim level = node.Level
|
||||
' Dim parentInfo = If(node.ParentNode Is Nothing, "NULL", $"ID={node.ParentNode.GetValue("PK_CFG_COCKPIT_DEFINITION_ID")}")
|
||||
|
||||
' LOGGER.Debug($" [Level {level}] ID={nodeId}, NAME={nodeName}, PARENT_ID={nodeParent}, ParentNode={parentInfo}, HasChildren={node.HasChildren}, ChildCount={node.Nodes.Count}, IsExpanded={node.Expanded}")
|
||||
'Next
|
||||
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
Finally
|
||||
Me.Cursor = Cursors.Default
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
|
||||
' Hilfsmethode zum rekursiven Sammeln aller Nodes
|
||||
Private Sub CollectAllNodes(nodes As DevExpress.XtraTreeList.Nodes.TreeListNodes, ByRef nodeList As List(Of DevExpress.XtraTreeList.Nodes.TreeListNode))
|
||||
For Each node As DevExpress.XtraTreeList.Nodes.TreeListNode In nodes
|
||||
nodeList.Add(node)
|
||||
If node.Nodes.Count > 0 Then
|
||||
CollectAllNodes(node.Nodes, nodeList)
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
Private Sub TreeList_Config_CustomDrawNodeCell(sender As Object, e As DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs)
|
||||
Try
|
||||
Dim oPk As Object = e.Node.GetValue("PK_CFG_COCKPIT_DEFINITION_ID")
|
||||
If oPk Is Nothing OrElse IsDBNull(oPk) Then
|
||||
Exit Sub
|
||||
End If
|
||||
' ===== ACTIVE-Status prüfen und Hintergrundfarbe setzen =====
|
||||
Dim oActive As Object = e.Node.GetValue("ACTIVE")
|
||||
If oActive IsNot Nothing AndAlso Not IsDBNull(oActive) Then
|
||||
If Not CBool(oActive) Then ' ACTIVE = 0/False
|
||||
e.Appearance.BackColor = Color.FromArgb(255, 235, 235) ' Leicht rot
|
||||
e.Appearance.ForeColor = Color.FromArgb(120, 0, 0) ' Dunkelrot für Text
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim oPkInt As Integer = CInt(oPk)
|
||||
If Not _treeNodeCounts.ContainsKey(oPkInt) Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If _treeNodeCounts(oPkInt) > 0 Then
|
||||
e.Appearance.Font = New Font(e.Appearance.Font, FontStyle.Bold)
|
||||
Else
|
||||
e.Appearance.Font = New Font(e.Appearance.Font, FontStyle.Regular)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub TreeList_Cockpit_FocusedNodeChanged(sender As Object, e As DevExpress.XtraTreeList.FocusedNodeChangedEventArgs) Handles TreeList_Cockpit.FocusedNodeChanged
|
||||
Try
|
||||
If e.Node Is Nothing Then
|
||||
LOGGER.Debug("TreeList1_FocusedNodeChanged: Node is Nothing - skipping")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If LoadInAction = True Then
|
||||
LOGGER.Debug("TreeList1_FocusedNodeChanged: Form not shown - skipping")
|
||||
Exit Sub
|
||||
End If
|
||||
LOGGER.Debug("TreeList1_FocusedNodeChanged: Node changed - processing")
|
||||
ProcessTreeListNodeAsync(e.Node)
|
||||
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
Private Function ProcessTreeListNodeAsync(oNode As DevExpress.XtraTreeList.Nodes.TreeListNode)
|
||||
Try
|
||||
' Daten in formularweites Objekt laden
|
||||
_currentCockpitDefinition = CockpitDefinitionData.FromTreeNode(oNode)
|
||||
|
||||
|
||||
LOGGER.Debug($"TreeList_Cockpit Node selected - PK_CFG_COCKPIT_DEFINITION_ID:[{_currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID}] NAME:[{_currentCockpitDefinition.Name}] TYPE_ID:[{_currentCockpitDefinition.TypeID}] FK_PROFILE_ID:[{_currentCockpitDefinition.FK_ProfileID}]")
|
||||
|
||||
If Not _currentCockpitDefinition.TypeID.HasValue Then
|
||||
LOGGER.Debug("ProcessTreeListNodeAsync: TYPE_ID is Nothing - Folder node, skipping")
|
||||
Exit Function
|
||||
End If
|
||||
|
||||
' Jetzt können Sie überall im Formular auf _currentCockpitDefinition zugreifen
|
||||
' z.B. _currentCockpitDefinition.SQL_Query, _currentCockpitDefinition.TypeID.Value etc.
|
||||
TextEdit_PK_CFG_COCKPIT_DEFINITION_ID.Text = _currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID.ToString()
|
||||
TextEdit_ParentID.Text = If(_currentCockpitDefinition.ParentID.HasValue, _currentCockpitDefinition.ParentID.Value.ToString(), String.Empty)
|
||||
CheckEdit_Active.Checked = _currentCockpitDefinition.Active
|
||||
TextEdit_Bezeichnung.Text = _currentCockpitDefinition.Name
|
||||
TextEdit_Comment.Text = _currentCockpitDefinition.Comment
|
||||
|
||||
If _currentCockpitDefinition.FK_ProfileID.HasValue Then
|
||||
LookUpEditProfil.EditValue = _currentCockpitDefinition.FK_ProfileID.Value
|
||||
'Else
|
||||
' LookUpEditProfil.EditValue = 0
|
||||
End If
|
||||
If _currentCockpitDefinition.FK_ChartID.HasValue Then
|
||||
LookUpEditChart.EditValue = _currentCockpitDefinition.FK_ChartID.Value
|
||||
Else
|
||||
LookUpEditChart.EditValue = 0
|
||||
End If
|
||||
If _currentCockpitDefinition.FK_MonitorID.HasValue Then
|
||||
LookUpEditMonitor.EditValue = _currentCockpitDefinition.FK_MonitorID.Value
|
||||
Else
|
||||
LookUpEditMonitor.EditValue = 0
|
||||
End If
|
||||
|
||||
' TYPE_ID im LookUpEdit setzen
|
||||
If _currentCockpitDefinition.TypeID.HasValue Then
|
||||
LookUpEditTypeID.EditValue = _currentCockpitDefinition.TypeID.Value
|
||||
bbtnSQL_Data.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
bbtnSQL_Count.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
bbtnitm_NodeOverviewAdd.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
bbtnitm_NodeProfilAdd.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
ProfileID_display(False)
|
||||
Monitor_display(False)
|
||||
Chart_display(False)
|
||||
Select Case _currentCockpitDefinition.TypeID.Value
|
||||
Case 0 ' Overview
|
||||
bbtnSQL_Data.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
bbtnSQL_Count.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
bbtnitm_NodeOverviewAdd.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
bbtnitm_NodeProfilAdd.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
LOGGER.Debug("Selected node is of type Overview")
|
||||
Case 1 ' Profil
|
||||
bbtnSQL_Data.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
bbtnSQL_Count.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
bbtnitm_NodeProfilAdd.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
ProfileID_display(True)
|
||||
LOGGER.Debug("Selected node is of type Profil")
|
||||
Case 2 ' Monitor
|
||||
LOGGER.Debug("Selected node is of type Monitor")
|
||||
Monitor_display(True)
|
||||
Case 3 ' Chart
|
||||
LOGGER.Debug("Selected node is of type Chart")
|
||||
Chart_display(True)
|
||||
Case Else
|
||||
LOGGER.Warn($"Selected node has an unknown TYPE_ID: {_currentCockpitDefinition.TypeID.Value}")
|
||||
End Select
|
||||
Else
|
||||
LookUpEditTypeID.EditValue = Nothing
|
||||
End If
|
||||
|
||||
' ICON_ID im LookUpEdit setzen
|
||||
If _currentCockpitDefinition.IconID.HasValue Then
|
||||
LookUpEdit_Image.EditValue = _currentCockpitDefinition.IconID.Value
|
||||
Else
|
||||
LookUpEdit_Image.EditValue = Nothing
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
LOGGER.Error(ex)
|
||||
Finally
|
||||
|
||||
End Try
|
||||
End Function
|
||||
Sub Monitor_display(visible As Boolean)
|
||||
LookUpEditMonitor.Visible = visible
|
||||
LabelControl_Monitor.Visible = visible
|
||||
End Sub
|
||||
Sub Chart_display(visible As Boolean)
|
||||
LookUpEditChart.Visible = visible
|
||||
LabelControl_Chart.Visible = visible
|
||||
End Sub
|
||||
Sub ProfileID_display(visible As Boolean)
|
||||
LookUpEditProfil.Visible = visible
|
||||
LabelControl_Profil.Visible = visible
|
||||
End Sub
|
||||
Private Sub frmCockpitConfig_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
||||
Dim oFirstNode As DevExpress.XtraTreeList.Nodes.TreeListNode = TreeList_Cockpit.Nodes.FirstOrDefault()
|
||||
If oFirstNode IsNot Nothing Then
|
||||
LOGGER.Debug($"Selecting first TreeList node: [{oFirstNode.GetValue("NAME")}]")
|
||||
TreeList_Cockpit.FocusedNode = oFirstNode
|
||||
ProcessTreeListNodeAsync(oFirstNode)
|
||||
Else
|
||||
LOGGER.Debug("No TreeList nodes found - falling back to Decide_Load")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub SimpleButton1_Click(sender As Object, e As EventArgs)
|
||||
|
||||
End Sub
|
||||
Private Sub Load_TypeID_LookUp()
|
||||
Try
|
||||
Dim typeList As New List(Of Object) From {
|
||||
New With {.TYPE_ID = 0, .TYPE_NAME = "Overview"},
|
||||
New With {.TYPE_ID = 1, .TYPE_NAME = "Profil"},
|
||||
New With {.TYPE_ID = 2, .TYPE_NAME = "Monitor"},
|
||||
New With {.TYPE_ID = 3, .TYPE_NAME = "Chart"}
|
||||
}
|
||||
|
||||
LookUpEditTypeID.Properties.DataSource = typeList
|
||||
LookUpEditTypeID.Properties.DisplayMember = "TYPE_NAME"
|
||||
LookUpEditTypeID.Properties.ValueMember = "TYPE_ID"
|
||||
|
||||
LookUpEditTypeID.Properties.PopulateColumns()
|
||||
LookUpEditTypeID.Properties.Columns("TYPE_ID").Visible = False
|
||||
|
||||
LookUpEditTypeID.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"Error in Load_TypeID_LookUp: {ex.Message}")
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub Load_Profile_LookUp()
|
||||
Try
|
||||
Dim oSQL = "SELECT 0 GUID, '' NAME UNION SELECT GUID, NAME FROM TBPM_PROFILE WITH (NOLOCK)"
|
||||
Dim oDT = DatabaseFallback.GetDatatableECM(oSQL)
|
||||
|
||||
LookUpEditProfil.Properties.DataSource = oDT
|
||||
LookUpEditProfil.Properties.DisplayMember = "NAME"
|
||||
LookUpEditProfil.Properties.ValueMember = "GUID"
|
||||
|
||||
LookUpEditProfil.Properties.PopulateColumns()
|
||||
LookUpEditProfil.Properties.Columns("GUID").Visible = False
|
||||
|
||||
LookUpEditProfil.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"Error in Load_ProfileID_LookUp: {ex.Message}")
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub Load_Chart_LookUp()
|
||||
Try
|
||||
Dim oSQL = "SELECT 0 COCKPIT_CHART_ID UNION SELECT DISTINCT COCKPIT_CHART_ID FROM TBPM_CHART WITH (NOLOCK) ORDER BY COCKPIT_CHART_ID"
|
||||
Dim oDT = DatabaseFallback.GetDatatableECM(oSQL)
|
||||
|
||||
LookUpEditChart.Properties.DataSource = oDT
|
||||
LookUpEditChart.Properties.DisplayMember = "COCKPIT_CHART_ID"
|
||||
LookUpEditChart.Properties.ValueMember = "COCKPIT_CHART_ID"
|
||||
|
||||
LookUpEditChart.Properties.PopulateColumns()
|
||||
|
||||
LookUpEditChart.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"Error in Load_Chart_LookUp: {ex.Message}")
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub Load_Monitor_LookUp()
|
||||
Try
|
||||
Dim oSQL = "SELECT 0 ID UNION SELECT DISTINCT COCKPIT_ID ID FROM TBPM_MONITOR_KONFIG WITH (NOLOCK) ORDER BY COCKPIT_ID"
|
||||
Dim oDT = DatabaseFallback.GetDatatableECM(oSQL)
|
||||
|
||||
LookUpEditMonitor.Properties.DataSource = oDT
|
||||
LookUpEditMonitor.Properties.DisplayMember = "ID"
|
||||
LookUpEditMonitor.Properties.ValueMember = "ID"
|
||||
|
||||
LookUpEditMonitor.Properties.PopulateColumns()
|
||||
|
||||
LookUpEditMonitor.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"Error in Load_Monitor_LookUp: {ex.Message}")
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub Load_IconID_LookUp()
|
||||
Try
|
||||
If ImageCollection1 Is Nothing OrElse ImageCollection1.Images.Count = 0 Then
|
||||
LOGGER.Warn("ImageCollection1 ist leer oder nicht initialisiert")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim iconList As New List(Of Object)
|
||||
|
||||
For i As Integer = 0 To ImageCollection1.Images.Count - 1
|
||||
Dim imageKey = If(String.IsNullOrEmpty(ImageCollection1.Images.Keys(i)), $"Image_{i}", ImageCollection1.Images.Keys(i))
|
||||
iconList.Add(New With {
|
||||
.ICON_ID = i,
|
||||
.ICON_NAME = imageKey
|
||||
})
|
||||
Next
|
||||
|
||||
LookUpEdit_Image.Properties.DataSource = iconList
|
||||
LookUpEdit_Image.Properties.DisplayMember = "ICON_NAME"
|
||||
LookUpEdit_Image.Properties.ValueMember = "ICON_ID"
|
||||
|
||||
LookUpEdit_Image.Properties.PopulateColumns()
|
||||
LookUpEdit_Image.Properties.Columns("ICON_ID").Visible = False
|
||||
|
||||
LookUpEdit_Image.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor
|
||||
|
||||
' Event für dynamische Bildanzeige
|
||||
AddHandler LookUpEdit_Image.Properties.CustomDisplayText, AddressOf LookUpEdit_Image_CustomDisplayText
|
||||
|
||||
LOGGER.Debug($"Loaded {iconList.Count} icons into LookUpEdit_Image")
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"Error in Load_IconID_LookUp: {ex.Message}")
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub LookUpEdit_Image_CustomDisplayText(sender As Object, e As DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs)
|
||||
Try
|
||||
If e.Value IsNot Nothing AndAlso IsNumeric(e.Value) Then
|
||||
Dim iconIndex As Integer = CInt(e.Value)
|
||||
If iconIndex >= 0 AndAlso iconIndex < ImageCollection1.Images.Count Then
|
||||
e.DisplayText = If(String.IsNullOrEmpty(ImageCollection1.Images.Keys(iconIndex)),
|
||||
$"Image_{iconIndex}",
|
||||
ImageCollection1.Images.Keys(iconIndex))
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
LOGGER.Error($"Error in LookUpEdit_Image_CustomDisplayText: {ex.Message}")
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub BarButtonItem4_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnSQL_Count.ItemClick
|
||||
Try
|
||||
Dim praefix As String = $"DECLARE @PROFILE_ID INT = {_currentCockpitDefinition.FK_ProfileID} " & vbCrLf
|
||||
Dim oSQL = praefix & _currentCockpitDefinition.SQL_Query_Count
|
||||
Dim oForm As New frmSQLEditor(LOGCONFIG, DatabaseECM) With {.SQLCommand = oSQL, .SQLConnection = 0}
|
||||
oForm.ShowDialog()
|
||||
|
||||
If oForm.DialogResult = DialogResult.OK Then
|
||||
_currentCockpitDefinition.SQL_Query_Count = oForm.SQLCommand.Replace(praefix, "")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Error in Saving SQL: " & vbNewLine & vbNewLine & ex.Message)
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub bbtnSQL_Data_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnSQL_Data.ItemClick
|
||||
Try
|
||||
Dim praefix As String = $"DECLARE @PROFILE_ID INT = {_currentCockpitDefinition.FK_ProfileID} " & vbCrLf
|
||||
Dim oSQL = praefix & _currentCockpitDefinition.SQL_Query
|
||||
Dim oForm As New frmSQLEditor(LOGCONFIG, DatabaseECM) With {.SQLCommand = oSQL, .SQLConnection = 0}
|
||||
oForm.ShowDialog()
|
||||
|
||||
If oForm.DialogResult = DialogResult.OK Then
|
||||
_currentCockpitDefinition.SQL_Query = oForm.SQLCommand.Replace(praefix, "")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Error in Saving SQL: " & vbNewLine & vbNewLine & ex.Message)
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub bbtnitm_Save_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitm_Save.ItemClick
|
||||
Try
|
||||
If _currentCockpitDefinition Is Nothing Then
|
||||
MsgBox("No node selected to save.", MsgBoxStyle.Exclamation)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
' Werte aus den Formularfeldern in das Datenobjekt übernehmen
|
||||
_currentCockpitDefinition.Active = CheckEdit_Active.Checked
|
||||
_currentCockpitDefinition.Name = TextEdit_Bezeichnung.Text.Trim()
|
||||
_currentCockpitDefinition.Comment = TextEdit_Comment.Text.Trim()
|
||||
|
||||
' TYPE_ID
|
||||
If LookUpEditTypeID.EditValue IsNot Nothing AndAlso IsNumeric(LookUpEditTypeID.EditValue) Then
|
||||
_currentCockpitDefinition.TypeID = CInt(LookUpEditTypeID.EditValue)
|
||||
Else
|
||||
_currentCockpitDefinition.TypeID = Nothing
|
||||
End If
|
||||
|
||||
' ICON_ID
|
||||
If LookUpEdit_Image.EditValue IsNot Nothing AndAlso IsNumeric(LookUpEdit_Image.EditValue) Then
|
||||
_currentCockpitDefinition.IconID = CInt(LookUpEdit_Image.EditValue)
|
||||
Else
|
||||
_currentCockpitDefinition.IconID = Nothing
|
||||
End If
|
||||
|
||||
' FK_PROFILE_ID
|
||||
If LookUpEditProfil.EditValue IsNot Nothing AndAlso IsNumeric(LookUpEditProfil.EditValue) AndAlso CInt(LookUpEditProfil.EditValue) > 0 Then
|
||||
_currentCockpitDefinition.FK_ProfileID = CInt(LookUpEditProfil.EditValue)
|
||||
Else
|
||||
_currentCockpitDefinition.FK_ProfileID = Nothing
|
||||
End If
|
||||
|
||||
' FK_CHART_ID
|
||||
If LookUpEditChart.EditValue IsNot Nothing AndAlso IsNumeric(LookUpEditChart.EditValue) AndAlso CInt(LookUpEditChart.EditValue) > 0 Then
|
||||
_currentCockpitDefinition.FK_ChartID = CInt(LookUpEditChart.EditValue)
|
||||
Else
|
||||
_currentCockpitDefinition.FK_ChartID = Nothing
|
||||
End If
|
||||
|
||||
' FK_MONITOR_ID
|
||||
If LookUpEditMonitor.EditValue IsNot Nothing AndAlso IsNumeric(LookUpEditMonitor.EditValue) AndAlso CInt(LookUpEditMonitor.EditValue) > 0 Then
|
||||
_currentCockpitDefinition.FK_MonitorID = CInt(LookUpEditMonitor.EditValue)
|
||||
Else
|
||||
_currentCockpitDefinition.FK_MonitorID = Nothing
|
||||
End If
|
||||
|
||||
' SQL-Statements für NULL-Werte vorbereiten
|
||||
Dim activeValue = If(_currentCockpitDefinition.Active, 1, 0)
|
||||
Dim typeIdValue = If(_currentCockpitDefinition.TypeID.HasValue, _currentCockpitDefinition.TypeID.Value.ToString(), "NULL")
|
||||
Dim iconIdValue = If(_currentCockpitDefinition.IconID.HasValue, _currentCockpitDefinition.IconID.Value.ToString(), "NULL")
|
||||
Dim profileIdValue = If(_currentCockpitDefinition.FK_ProfileID.HasValue, _currentCockpitDefinition.FK_ProfileID.Value.ToString(), "NULL")
|
||||
Dim chartIdValue = If(_currentCockpitDefinition.FK_ChartID.HasValue, _currentCockpitDefinition.FK_ChartID.Value.ToString(), "NULL")
|
||||
Dim monitorIdValue = If(_currentCockpitDefinition.FK_MonitorID.HasValue, _currentCockpitDefinition.FK_MonitorID.Value.ToString(), "NULL")
|
||||
|
||||
' SQL-String escapen für Texte
|
||||
Dim safeName = _currentCockpitDefinition.Name.Replace("'", "''")
|
||||
Dim safeComment = _currentCockpitDefinition.Comment.Replace("'", "''")
|
||||
Dim safeSqlQuery = _currentCockpitDefinition.SQL_Query.Replace("'", "''")
|
||||
Dim safeSqlQueryCount = _currentCockpitDefinition.SQL_Query_Count.Replace("'", "''")
|
||||
|
||||
' UPDATE-Statement erstellen
|
||||
Dim updateSQL = $"
|
||||
UPDATE TBTF_CFG_COCKPIT_DEFINITION
|
||||
SET
|
||||
ACTIVE = {activeValue},
|
||||
TYPE_ID = {typeIdValue},
|
||||
ICON_ID = {iconIdValue},
|
||||
NAME = '{safeName}',
|
||||
FK_PROFILE_ID = {profileIdValue},
|
||||
FK_CHART_ID = {chartIdValue},
|
||||
FK_MONITOR_ID = {monitorIdValue},
|
||||
SQL_QUERY = '{safeSqlQuery}',
|
||||
SQL_QUERY_COUNT = '{safeSqlQueryCount}',
|
||||
COMMENT = '{safeComment}',
|
||||
CHANGED_WHO = '{Environment.UserName}',
|
||||
CHANGED_WHEN = GETDATE()
|
||||
WHERE PK_CFG_COCKPIT_DEFINITION_ID = {_currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID}"
|
||||
|
||||
If DatabaseFallback.ExecuteNonQueryECM(updateSQL) Then
|
||||
MsgBox("Node definition saved successfully.", MsgBoxStyle.Information)
|
||||
LOGGER.Debug($"Saved node definition ID={_currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID}, Name={_currentCockpitDefinition.Name}")
|
||||
|
||||
' TreeView neu laden, um Änderungen anzuzeigen
|
||||
Load_TBTF_CFG_COCKPIT_DEFINITION()
|
||||
Else
|
||||
MsgBox("Error saving node definition. No rows were updated.", MsgBoxStyle.Exclamation)
|
||||
LOGGER.Warn($"No rows updated for PK_CFG_COCKPIT_DEFINITION_ID={_currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID}")
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox($"Error saving node definition:{vbNewLine}{vbNewLine}{ex.Message}", MsgBoxStyle.Critical)
|
||||
LOGGER.Error($"Error in bbtnitm_Save_ItemClick: {ex.Message}")
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub BarButtonItem4_ItemClick_1(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem4.ItemClick
|
||||
Dim Msgboxresult = MsgBox("Wollen Sie den ausgewählten Knoten wirklich löschen?", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Löschen bestätigen")
|
||||
If Msgboxresult = MsgBoxResult.Yes Then
|
||||
Try
|
||||
Dim oSQLParent = $"DELETE FROM TBTF_CFG_COCKPIT_DEFINITION WHERE PARENT_ID = {_currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID}"
|
||||
If DatabaseFallback.ExecuteNonQueryECM(oSQLParent) Then
|
||||
Dim oSQL = $"DELETE FROM TBTF_CFG_COCKPIT_DEFINITION WHERE PK_CFG_COCKPIT_DEFINITION_ID = {_currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID}"
|
||||
If DatabaseFallback.ExecuteNonQueryECM(oSQL) Then
|
||||
MsgBox("Knotendefinition erfolgreich gelöscht.", MsgBoxStyle.Information)
|
||||
Load_TBTF_CFG_COCKPIT_DEFINITION()
|
||||
Else
|
||||
MsgBox("Keine Knotendefinition wurde gelöscht. Bitte überprüfen Sie, ob die ausgewählte Definition existiert.", MsgBoxStyle.Exclamation)
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Fehler beim Löschen der Knotendefinition: " & vbNewLine & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub BarButtonItem5_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitm_NodeOverviewAdd.ItemClick
|
||||
Add_Node("Overview")
|
||||
End Sub
|
||||
|
||||
Private Function Add_Node(oVariant As String)
|
||||
Dim oParentID As Integer = _currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID
|
||||
Dim oType As Integer = 0
|
||||
Dim oIcon As Integer = 0
|
||||
If oVariant = "Overview" Then
|
||||
oParentID = 0
|
||||
oType = 0
|
||||
oIcon = 0
|
||||
ElseIf oVariant = "Profil" Then
|
||||
oType = 1
|
||||
oIcon = 1
|
||||
End If
|
||||
Dim oInsert = $"INSERT INTO TBTF_CFG_COCKPIT_DEFINITION (
|
||||
FK_CFG_COCKPIT_ID,
|
||||
[ACTIVE]
|
||||
,[PARENT_ID]
|
||||
,[TYPE_ID]
|
||||
,[ICON_ID]
|
||||
,[NAME]
|
||||
,[FK_PROFILE_ID]
|
||||
,[FK_CHART_ID]
|
||||
,[FK_MONITOR_ID]
|
||||
,[SQL_QUERY]
|
||||
,[SQL_QUERY_COUNT]
|
||||
,[COMMENT])
|
||||
VALUES (
|
||||
{Selected_Cockpit_ID},
|
||||
0,
|
||||
{oParentID},
|
||||
{oType},
|
||||
{oIcon},
|
||||
'New {oVariant}-Node',
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
'',
|
||||
'',
|
||||
'')"
|
||||
If DatabaseFallback.ExecuteNonQueryECM(oInsert) Then
|
||||
Load_TBTF_CFG_COCKPIT_DEFINITION()
|
||||
Else
|
||||
MsgBox("Fehler beim Anlegen des Knotens. Prüfen Sie Ihr Log", MsgBoxStyle.Exclamation)
|
||||
End If
|
||||
|
||||
End Function
|
||||
|
||||
Private Sub bbtnitm_NodeProfilAdd_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitm_NodeProfilAdd.ItemClick
|
||||
Add_Node("Profil")
|
||||
End Sub
|
||||
|
||||
Private Sub LabelControl6_Click(sender As Object, e As EventArgs) Handles LabelControl6.Click
|
||||
|
||||
End Sub
|
||||
Private Sub LookUpEdit_Image_EditValueChanged(sender As Object, e As EventArgs) Handles LookUpEdit_Image.EditValueChanged
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub LabelControl7_Click(sender As Object, e As EventArgs) Handles LabelControl7.Click
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub TextEdit_Comment_EditValueChanged(sender As Object, e As EventArgs) Handles TextEdit_Comment.EditValueChanged
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub bbtnitmCopy_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitmCopy.ItemClick
|
||||
Try
|
||||
If _currentCockpitDefinition Is Nothing Then
|
||||
MsgBox("No node selected to copy.", MsgBoxStyle.Exclamation)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
' Bestätigung vom Benutzer einholen
|
||||
Dim msgResult = MsgBox($"Möchten Sie den Knoten '{_currentCockpitDefinition.Name}' kopieren?{vbNewLine}{vbNewLine}Die Kopie wird als Geschwisterknoten erstellt.",
|
||||
MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Kopie bestätigen")
|
||||
|
||||
If msgResult <> MsgBoxResult.Yes Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
' SQL-String escapen für Texte
|
||||
Dim safeName = (_currentCockpitDefinition.Name & " - Copy").Replace("'", "''")
|
||||
Dim safeComment = _currentCockpitDefinition.Comment.Replace("'", "''")
|
||||
Dim safeSqlQuery = _currentCockpitDefinition.SQL_Query.Replace("'", "''")
|
||||
Dim safeSqlQueryCount = _currentCockpitDefinition.SQL_Query_Count.Replace("'", "''")
|
||||
|
||||
' NULL-Werte vorbereiten
|
||||
'Dim activeValue = If(_currentCockpitDefinition.Active, 1, 0)
|
||||
Dim parentIdValue = If(_currentCockpitDefinition.ParentID.HasValue, _currentCockpitDefinition.ParentID.Value.ToString(), "0")
|
||||
Dim typeIdValue = If(_currentCockpitDefinition.TypeID.HasValue, _currentCockpitDefinition.TypeID.Value.ToString(), "NULL")
|
||||
Dim iconIdValue = If(_currentCockpitDefinition.IconID.HasValue, _currentCockpitDefinition.IconID.Value.ToString(), "NULL")
|
||||
Dim profileIdValue = If(_currentCockpitDefinition.FK_ProfileID.HasValue, _currentCockpitDefinition.FK_ProfileID.Value.ToString(), "NULL")
|
||||
Dim chartIdValue = If(_currentCockpitDefinition.FK_ChartID.HasValue, _currentCockpitDefinition.FK_ChartID.Value.ToString(), "NULL")
|
||||
Dim monitorIdValue = If(_currentCockpitDefinition.FK_MonitorID.HasValue, _currentCockpitDefinition.FK_MonitorID.Value.ToString(), "NULL")
|
||||
|
||||
' INSERT-Statement erstellen
|
||||
Dim insertSQL = $"
|
||||
INSERT INTO TBTF_CFG_COCKPIT_DEFINITION (
|
||||
FK_CFG_COCKPIT_ID,
|
||||
ACTIVE,
|
||||
PARENT_ID,
|
||||
TYPE_ID,
|
||||
ICON_ID,
|
||||
NAME,
|
||||
FK_PROFILE_ID,
|
||||
FK_CHART_ID,
|
||||
FK_MONITOR_ID,
|
||||
SQL_QUERY,
|
||||
SQL_QUERY_COUNT,
|
||||
COMMENT,
|
||||
ADDED_WHO,
|
||||
ADDED_WHEN
|
||||
)
|
||||
VALUES (
|
||||
{Selected_Cockpit_ID},
|
||||
{0},
|
||||
{parentIdValue},
|
||||
{typeIdValue},
|
||||
{iconIdValue},
|
||||
'{safeName}',
|
||||
{profileIdValue},
|
||||
{chartIdValue},
|
||||
{monitorIdValue},
|
||||
'{safeSqlQuery}',
|
||||
'{safeSqlQueryCount}',
|
||||
'{safeComment}',
|
||||
'{Environment.UserName}',
|
||||
GETDATE()
|
||||
)"
|
||||
|
||||
If DatabaseFallback.ExecuteNonQueryECM(insertSQL) Then
|
||||
MsgBox("Knoten erfolgreich kopiert und auf Inaktiv gesetzt.", MsgBoxStyle.Information)
|
||||
LOGGER.Info($"Knotendefinition kopiert - Original ID={_currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID}, Name={safeName}")
|
||||
|
||||
' TreeView neu laden, um die Kopie anzuzeigen
|
||||
Load_TBTF_CFG_COCKPIT_DEFINITION()
|
||||
Else
|
||||
MsgBox("Fehler beim Kopieren der Knotendefinition. Es wurden keine Zeilen eingefügt.", MsgBoxStyle.Exclamation)
|
||||
LOGGER.Warn($"Failed to copy node with PK_CFG_COCKPIT_DEFINITION_ID={_currentCockpitDefinition.PK_CFG_COCKPIT_DEFINITION_ID}")
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox($"Fehler beim Kopieren der Knotendefinition:{vbNewLine}{vbNewLine}{ex.Message}", MsgBoxStyle.Critical)
|
||||
LOGGER.Error($"Error in bbtnitmCopy_ItemClick: {ex.Message}")
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
End Class
|
||||
@@ -4,13 +4,14 @@
|
||||
Dim DT_USER = DatabaseFallback.GetDatatableECM(oSQL)
|
||||
'
|
||||
If IsNothing(DT_USER) Then
|
||||
LOGGER.Info("GHOST Select 1 was nothing, now trying 2nd..")
|
||||
LOGGER.Info($"GHOST Select 1 [{oSQL}] was nothing, now trying 2nd..")
|
||||
oSQL = "SELECT CONFIG_VALUE FROM TBIDB_BASE WITH (NOLOCK) WHERE CONFIG_NAME = 'GHOST_SELECT'"
|
||||
If Not IsNothing(oSQL) Then
|
||||
oSQL = DatabaseFallback.GetScalarValueIDB(oSQL)
|
||||
DT_USER = DatabaseFallback.GetDatatableIDB(oSQL)
|
||||
Else
|
||||
MsgBox("No SQL for Ghostmode via IDB. Check Your configuration.", MsgBoxStyle.Exclamation)
|
||||
LOGGER.Info($"GHOST Select 2 [{oSQL}] was nothing, Exit.")
|
||||
MsgBox("No SQL for Ghostmode via SQL. Check Your configuration.", MsgBoxStyle.Exclamation)
|
||||
Exit Sub
|
||||
End If
|
||||
End If
|
||||
|
||||
14
app/TaskFlow/frmMain.Designer.vb
generated
14
app/TaskFlow/frmMain.Designer.vb
generated
@@ -192,6 +192,7 @@ Partial Class frmMain
|
||||
Me.TimerInactivity = New System.Windows.Forms.Timer(Me.components)
|
||||
Me.BarButtonItem5 = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.BarButtonItem9 = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem()
|
||||
CType(Me.TreeList_Cockpit, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RepositoryItemProgressBar1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
@@ -240,9 +241,9 @@ Partial Class frmMain
|
||||
'RibbonControl1
|
||||
'
|
||||
Me.RibbonControl1.ExpandCollapseItem.Id = 0
|
||||
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bbtniRefresh, Me.bbiProfilverwaltung, Me.bbiKonfiguration, Me.bbtniGrundeinstellung, Me.bbtnitemInfo, Me.BarButtonItem1, Me.bsiUser, Me.bsiLicenses, Me.bsiUserLoggedIn, Me.bsiVersion, Me.bsilastsync, Me.bsiDebug, Me.bsiMessage, Me.bbtniMetadataFile, Me.BarEditItem1, Me.bsiGeneralInfo, Me.bbtnitmGhostMode, Me.bsi_GhostMode, Me.BarButtonItemGhostMode, Me.SearchItem1, Me.SearchItem2, Me.BarStaticItemAppServer, Me.bbtniCW, Me.bsiInactivityCheck, Me.BarButtonItem2, Me.BarCheckItemAutofilter, Me.BarCheckItem2, Me.BarButtonItemResetLayout, Me.BarButtonItem4, Me.BarButtonItemExportExcel, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItemWFSingle, Me.BarButtonItemWFGroup, Me.BarButtonItemFileLink, Me.BarButtonItemMassValidation, Me.BarCheckItemShowSearch, Me.barItemGridFontSize, Me.BarButtonItem8, Me.BbtnitmAHWF1, Me.BbtnitmAHWF2, Me.BbtnitmAHWF3, Me.BbtnitmAHWF4, Me.bbtnitmLanguage_Change, Me.BarButtonItem10, Me.BBtnItmNotfications, Me.BSIVERSION1, Me.barbtnitmsaveLogfiles, Me.bsitmCount, Me.BarButtonItemCock_refresh, Me.Bchkitm_load_empty_wf})
|
||||
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.bbtniRefresh, Me.bbiProfilverwaltung, Me.bbiKonfiguration, Me.bbtniGrundeinstellung, Me.bbtnitemInfo, Me.BarButtonItem1, Me.bsiUser, Me.bsiLicenses, Me.bsiUserLoggedIn, Me.bsiVersion, Me.bsilastsync, Me.bsiDebug, Me.bsiMessage, Me.bbtniMetadataFile, Me.BarEditItem1, Me.bsiGeneralInfo, Me.bbtnitmGhostMode, Me.bsi_GhostMode, Me.BarButtonItemGhostMode, Me.SearchItem1, Me.SearchItem2, Me.BarStaticItemAppServer, Me.bbtniCW, Me.bsiInactivityCheck, Me.BarButtonItem2, Me.BarCheckItemAutofilter, Me.BarCheckItem2, Me.BarButtonItemResetLayout, Me.BarButtonItem4, Me.BarButtonItemExportExcel, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItemWFSingle, Me.BarButtonItemWFGroup, Me.BarButtonItemFileLink, Me.BarButtonItemMassValidation, Me.BarCheckItemShowSearch, Me.barItemGridFontSize, Me.BarButtonItem8, Me.BbtnitmAHWF1, Me.BbtnitmAHWF2, Me.BbtnitmAHWF3, Me.BbtnitmAHWF4, Me.bbtnitmLanguage_Change, Me.BarButtonItem10, Me.BBtnItmNotfications, Me.BSIVERSION1, Me.barbtnitmsaveLogfiles, Me.bsitmCount, Me.BarButtonItemCock_refresh, Me.Bchkitm_load_empty_wf, Me.BarButtonItem3})
|
||||
resources.ApplyResources(Me.RibbonControl1, "RibbonControl1")
|
||||
Me.RibbonControl1.MaxItemId = 60
|
||||
Me.RibbonControl1.MaxItemId = 61
|
||||
Me.RibbonControl1.Name = "RibbonControl1"
|
||||
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPageTabelle, Me.RibbonPageAktionen})
|
||||
Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemProgressBar1, Me.RepositoryItemTrackBar1, Me.cmbGridFontSize})
|
||||
@@ -703,6 +704,7 @@ Partial Class frmMain
|
||||
Me.RibbonPageGroup3.ItemLinks.Add(Me.bbiProfilverwaltung)
|
||||
Me.RibbonPageGroup3.ItemLinks.Add(Me.bbiKonfiguration)
|
||||
Me.RibbonPageGroup3.ItemLinks.Add(Me.bbtnitmGhostMode)
|
||||
Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem3)
|
||||
Me.RibbonPageGroup3.Name = "RibbonPageGroup3"
|
||||
resources.ApplyResources(Me.RibbonPageGroup3, "RibbonPageGroup3")
|
||||
'
|
||||
@@ -1595,6 +1597,13 @@ Partial Class frmMain
|
||||
Me.BarButtonItem9.Name = "BarButtonItem9"
|
||||
Me.BarButtonItem9.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
'
|
||||
'BarButtonItem3
|
||||
'
|
||||
resources.ApplyResources(Me.BarButtonItem3, "BarButtonItem3")
|
||||
Me.BarButtonItem3.Id = 60
|
||||
Me.BarButtonItem3.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem3.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.BarButtonItem3.Name = "BarButtonItem3"
|
||||
'
|
||||
'frmMain
|
||||
'
|
||||
Me.Appearance.Options.UseFont = True
|
||||
@@ -1805,4 +1814,5 @@ Partial Class frmMain
|
||||
Friend WithEvents SplitterControl1 As DevExpress.XtraEditors.SplitterControl
|
||||
Friend WithEvents BarButtonItemCock_refresh As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents Bchkitm_load_empty_wf As DevExpress.XtraBars.BarCheckItem
|
||||
Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem
|
||||
End Class
|
||||
|
||||
@@ -1433,6 +1433,32 @@
|
||||
LDEgICB2NGMwLDAuNSwwLjUsMSwxLDFoOEMzMS41LDI4LDMyLDI3LjUsMzIsMjd6IiBjbGFzcz0iWWVs
|
||||
bG93IiAvPg0KICAgIDxwYXRoIGQ9Ik0wLDRoOEw0LDhMMCw0eiBNMTYsMjR2LTZoNHYtMmgtNHYtNGgt
|
||||
MnYxNGg2di0ySDE2eiIgY2xhc3M9IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
|
||||
</value>
|
||||
</data>
|
||||
<data name="BarButtonItem3.Caption" xml:space="preserve">
|
||||
<value>Cockpit Konfiguration</value>
|
||||
</data>
|
||||
<data name="BarButtonItem3.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIkDAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku
|
||||
QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC
|
||||
MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
|
||||
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iSW5zZXJ0VHJl
|
||||
ZVZpZXciPg0KICAgIDxwYXRoIGQ9Ik0xMyw4SDVDNC40LDgsNCw3LjYsNCw3VjNjMC0wLjUsMC40LTEs
|
||||
MS0xaDhjMC42LDAsMSwwLjUsMSwxdjRDMTQsNy42LDEzLjYsOCwxMyw4eiBNMjYsMTd2LTQgICBjMC0w
|
||||
LjYtMC41LTEtMS0xaC04Yy0wLjUsMC0xLDAuNC0xLDF2NGMwLDAuNSwwLjUsMSwxLDFoOEMyNS41LDE4
|
||||
LDI2LDE3LjUsMjYsMTd6IE0yNiwyN3YtNGMwLTAuNS0wLjUtMS0xLTFoLThjLTAuNSwwLTEsMC41LTEs
|
||||
MSAgIHY0YzAsMC41LDAuNSwxLDEsMWg4QzI1LjUsMjgsMjYsMjcuNSwyNiwyN3oiIGNsYXNzPSJZZWxs
|
||||
b3ciIC8+DQogICAgPHBvbHlnb24gcG9pbnRzPSIxNCwxNiAxNCwxNCAxMCwxNCAxMCwxMCA4LDEwIDgs
|
||||
MjYgMTQsMjYgMTQsMjQgMTAsMjQgMTAsMTYgICIgY2xhc3M9IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2
|
||||
Zz4L
|
||||
</value>
|
||||
</data>
|
||||
<data name="RibbonControl1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -1519,7 +1545,7 @@
|
||||
cmVhbWVyAgAAAAlJbWFnZVNpemUERGF0YQQHE1N5c3RlbS5EcmF3aW5nLlNpemUDAAAAAgIAAAAF/P//
|
||||
/xNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAV3aWR0aAZoZWlnaHQAAAgIAwAAABgAAAAYAAAACQUAAAAP
|
||||
BQAAACcLAAAC+gIAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgGAAAA4Hc9+AAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAKcSURBVEhL3ZTLaxNRFMYLrvRfkD4yc5OgFeeZIIiLVkrV
|
||||
YQUAAAAJcEhZcwAADsAAAA7AAWrWiQkAAAKcSURBVEhL3ZTLaxNRFMYLrvRfkD4yc5OgFeeZIIiLVkrV
|
||||
Jq1O6SNGqxUhCtZVkWBIbQitdOVS3AlZtXUnKAq1mUcmr6aPpCVod9KmuBbXn8z0NTMki9Yuij/4uDNn
|
||||
7jnfnLl3blPTf4PO0NBYAp2lkGFc0BgXVMaF/GUKzrnHQhbcSItepHkCjaWg827IXBt0jj4w0JhmKIwL
|
||||
CkdD4QhUjoLKUrsjR5l5Km/kEhRZYn8xxUeQET3QuGYU2BbzocpeRMZi8E8oAo0lznNQTObdWDS7cbzJ
|
||||
@@ -1531,8 +1557,8 @@
|
||||
k5Gfs7NnbQZ5f/0zp2g5izb7e1AJBbAWDmLtXi8q9wOoGKOhcBDrd4PYCPViIxTE5mDAXi9/xVvXoJHx
|
||||
kWlkYO1gJxxELdyH7Qe3URvtx86ohNrDO/g10ofS+HjCnulA9xEURQq6n0ZO9CInelAQPLAaLL17da4c
|
||||
f9FVTsS7ylMJU8tTcfPeXq0B890d7fPBPRnX3R3tzjlH5S88LZDGXf/36QAAAABJRU5ErkJggjMCAACJ
|
||||
UE5HDQoaCgAAAA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA7C
|
||||
AAAOwgEVKEqAAAAB1UlEQVRIS+2Uu24aQRSGz7hImqTLA1DQpIwiFCF5l9vewciSCysRRap0KEqRmhoW
|
||||
UE5HDQoaCgAAAA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA7A
|
||||
AAAOwAFq1okJAAAB1UlEQVRIS+2Uu24aQRSGz7hImqTLA1DQpIwiFCF5l9vewciSCysRRap0KEqRmhoW
|
||||
h1swVdLbZaS8gzsXKfwGlgs3thUMhuGPZmE3u3iXTBuJTxrtzsw58885c2aItvzXAGDh/vnHz/vhfiL1
|
||||
ev1pmwib2hEReozg+4yNPO7VXfx4++FFdLUY/EWa6ZeXbragullFdbO66v1nCmono6idV1nVt59Ubcz1
|
||||
HKZFLRBMxGWEL/R3Z//iyrHvFmUD3LbkfI5YNPRNnOzV0twpAZWKlL2HSE1fUoCXC1hU7MB2dFh7H7WI
|
||||
@@ -1541,7 +1567,7 @@
|
||||
z7cYw/GOjICoooTDGlsKpkYpdq7pCcT7RRARhKtIFukUiTcmKYJNiNv/VUZg8Ow57xFBqqZX9GgZtZtK
|
||||
3a3PxSIEjlc57RKhs3qfRBP/fl/MDRmh641J7D7M6PWbjrc4MbQZQ4vIa83VV1RNe2d56785B5/W/bdI
|
||||
8werE/HGFidAHwAAAABJRU5ErkJgghADAACJUE5HDQoaCgAAAA1JSERSAAAAGAAAABgIBgAAAOB3PfgA
|
||||
AAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA7CAAAOwgEVKEqAAAACsklEQVRIS8VVzW7TQBDOc/AeHKom
|
||||
AAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAA7AAAAOwAFq1okJAAACsklEQVRIS8VVzW7TQBDOc/AeHKom
|
||||
3t2Z3bVDy08R4gaqKvUZOHDoK3BDvAEHClVVceEaqKqCWtvrnyQOVPAKnHL50Dp2G6WtRNUIPmnl8ex4
|
||||
/vzNbqfzr1BqRmIJJyzgKEBqAqTUw4nqIWYvC5yqHhK/pwI42UMiu8ikQKYEYtGF4wA5CZQqwNH9dZw7
|
||||
H3IPLlRwTMhZISMB1zpjgZgEUpLImXAqAiRKoGBCyVQ7T5v3jCUcC4wNoSCJD0+fvKoDVMYgtuIi4hJQ
|
||||
@@ -1554,7 +1580,7 @@
|
||||
x5ef2pltYhVcSEj8cRNq5KGGM4T8Cjr/X2S0gpy7yGgVJa9i9/HG60WbW6FSBMcSZd/AD9HB883lBjix
|
||||
Ap+twlFf4zBivH229WbR5sZ492Djy9D/MBXUnPZyfV8bAX8LZiSR3XZ+Pobrg/1obbAfrQ8OogvZr/fR
|
||||
2uDArg8Wv5nHH4RP7Rpx+BP5AAAAAElFTkSuQmCC2gIAAIlQTkcNChoKAAAADUlIRFIAAAAYAAAAGAgG
|
||||
AAAA4Hc9+AAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAJ8SURBVEhL3VXNbtNA
|
||||
AAAA4Hc9+AAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsAAAA7AAWrWiQkAAAJ8SURBVEhL3VXNbtNA
|
||||
EPaBQx+CQ2t7HSde24l6yKGAk1IREBd+GnCjVgEunLkgVQj1CXgCDrlwRXkEUA48AGpVQqWIZmNDiNcO
|
||||
eYFB42Bn3VAoNFz4pNHO7oz9eXZnP0vSf4NAocA1CoFSgEgzISImcM2GQKUQEQtCzYSQUOCqEY8453HM
|
||||
jP0IY7ge55jAV3RIX/6x0XyZYVsA8EPSyeH2zsIJQoUKFTQfzRFw2QCuWhAoBoxVIfmM4Ct5gcDdzhAE
|
||||
@@ -1678,7 +1704,7 @@
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
|
||||
CAAAAk1TRnQBSQFMAgEBAgEAAXgBDAF4AQwBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
CAAAAk1TRnQBSQFMAgEBAgEAAYgBDAGIAQwBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
@@ -3114,6 +3140,12 @@
|
||||
<data name=">>BarButtonItem9.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>BarButtonItem3.Name" xml:space="preserve">
|
||||
<value>BarButtonItem3</value>
|
||||
</data>
|
||||
<data name=">>BarButtonItem3.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>frmMain</value>
|
||||
</data>
|
||||
|
||||
@@ -1598,6 +1598,7 @@ Public Class frmMain
|
||||
If Application.OpenForms().OfType(Of frmMassValidator).Any() Or
|
||||
Application.OpenForms().OfType(Of frmValidator).Any() Or
|
||||
Application.OpenForms().OfType(Of frmAdministration).Any() Or
|
||||
Application.OpenForms().OfType(Of frmCockpitConfig).Any() Or
|
||||
Application.OpenForms().OfType(Of frmAdmin2).Any() Then
|
||||
Exit Sub
|
||||
End If
|
||||
@@ -5239,4 +5240,7 @@ FROM VWPM_PROFILE_ACTIVE T WHERE T.GUID IN (SELECT PROFILE_ID FROM [dbo].[FNPM_G
|
||||
Public Const SW_RESTORE As Integer = 9
|
||||
End Class
|
||||
|
||||
Private Sub BarButtonItem3_ItemClick_3(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick
|
||||
frmCockpitConfig.Show()
|
||||
End Sub
|
||||
End Class
|
||||
150
app/TaskFlow/frmUserSelect.Designer.vb
generated
Normal file
150
app/TaskFlow/frmUserSelect.Designer.vb
generated
Normal file
@@ -0,0 +1,150 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class frmUserSelect
|
||||
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()
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmUserSelect))
|
||||
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
|
||||
Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
||||
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||
Me.GridControl1 = New DevExpress.XtraGrid.GridControl()
|
||||
Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView()
|
||||
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
|
||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.GridView1, 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.BarButtonItem2})
|
||||
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.RibbonControl1.MaxItemId = 2
|
||||
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(800, 158)
|
||||
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
|
||||
'
|
||||
'BarButtonItem2
|
||||
'
|
||||
Me.BarButtonItem2.Caption = "User wählen"
|
||||
Me.BarButtonItem2.Id = 1
|
||||
Me.BarButtonItem2.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.BarButtonItem2.Name = "BarButtonItem2"
|
||||
'
|
||||
'RibbonPage1
|
||||
'
|
||||
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1})
|
||||
Me.RibbonPage1.Name = "RibbonPage1"
|
||||
Me.RibbonPage1.Text = "Start"
|
||||
'
|
||||
'RibbonPageGroup1
|
||||
'
|
||||
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem2)
|
||||
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
|
||||
Me.RibbonPageGroup1.Text = "Aktionen"
|
||||
'
|
||||
'RibbonStatusBar1
|
||||
'
|
||||
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 428)
|
||||
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
|
||||
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
|
||||
Me.RibbonStatusBar1.Size = New System.Drawing.Size(800, 22)
|
||||
'
|
||||
'RibbonPage2
|
||||
'
|
||||
Me.RibbonPage2.Name = "RibbonPage2"
|
||||
Me.RibbonPage2.Text = "RibbonPage2"
|
||||
'
|
||||
'GridControl1
|
||||
'
|
||||
Me.GridControl1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.GridControl1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.GridControl1.Location = New System.Drawing.Point(0, 158)
|
||||
Me.GridControl1.MainView = Me.GridView1
|
||||
Me.GridControl1.Name = "GridControl1"
|
||||
Me.GridControl1.Size = New System.Drawing.Size(800, 270)
|
||||
Me.GridControl1.TabIndex = 10
|
||||
Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1})
|
||||
'
|
||||
'GridView1
|
||||
'
|
||||
Me.GridView1.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue
|
||||
Me.GridView1.Appearance.EvenRow.Options.UseBackColor = True
|
||||
Me.GridView1.GridControl = Me.GridControl1
|
||||
Me.GridView1.Name = "GridView1"
|
||||
Me.GridView1.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.[False]
|
||||
Me.GridView1.OptionsBehavior.AllowDeleteRows = DevExpress.Utils.DefaultBoolean.[False]
|
||||
Me.GridView1.OptionsBehavior.AllowFixedGroups = DevExpress.Utils.DefaultBoolean.[True]
|
||||
Me.GridView1.OptionsBehavior.AllowGroupExpandAnimation = DevExpress.Utils.DefaultBoolean.[True]
|
||||
Me.GridView1.OptionsBehavior.Editable = False
|
||||
Me.GridView1.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False]
|
||||
Me.GridView1.OptionsView.ColumnAutoWidth = False
|
||||
Me.GridView1.OptionsView.EnableAppearanceEvenRow = True
|
||||
Me.GridView1.OptionsView.ShowAutoFilterRow = True
|
||||
Me.GridView1.OptionsView.ShowErrorPanel = DevExpress.Utils.DefaultBoolean.[True]
|
||||
Me.GridView1.OptionsView.ShowViewCaption = True
|
||||
Me.GridView1.ViewCaption = "Bitte wählen Sie einen User"
|
||||
'
|
||||
'BarButtonItem1
|
||||
'
|
||||
Me.BarButtonItem1.Caption = "Ghost Modus aktivieren"
|
||||
Me.BarButtonItem1.Id = 1
|
||||
Me.BarButtonItem1.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem1.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.BarButtonItem1.Name = "BarButtonItem1"
|
||||
'
|
||||
'frmUserSelect
|
||||
'
|
||||
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.GridControl1)
|
||||
Me.Controls.Add(Me.RibbonStatusBar1)
|
||||
Me.Controls.Add(Me.RibbonControl1)
|
||||
Me.IconOptions.SvgImage = CType(resources.GetObject("frmUserSelect.IconOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||
Me.Name = "frmUserSelect"
|
||||
Me.Ribbon = Me.RibbonControl1
|
||||
Me.StatusBar = Me.RibbonStatusBar1
|
||||
Me.Text = "frmUserSelect"
|
||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.GridView1, 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 GridControl1 As DevExpress.XtraGrid.GridControl
|
||||
Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView
|
||||
Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
|
||||
End Class
|
||||
197
app/TaskFlow/frmUserSelect.resx
Normal file
197
app/TaskFlow/frmUserSelect.resx
Normal file
@@ -0,0 +1,197 @@
|
||||
<?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>
|
||||
<assembly alias="DevExpress.Data.v21.2" name="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="BarButtonItem2.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAMwEAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
|
||||
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5HcmVlbntmaWxsOiMwMzlD
|
||||
MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
|
||||
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk
|
||||
aXNwbGF5OmlubGluZTtmaWxsOiNGRkIxMTU7fQoJLnN0NHtkaXNwbGF5OmlubGluZTt9Cgkuc3Q1e2Rp
|
||||
c3BsYXk6aW5saW5lO29wYWNpdHk6MC43NTt9Cgkuc3Q2e2Rpc3BsYXk6aW5saW5lO29wYWNpdHk6MC41
|
||||
O30KCS5zdDd7ZGlzcGxheTppbmxpbmU7ZmlsbDojMDM5QzIzO30KCS5zdDh7ZGlzcGxheTppbmxpbmU7
|
||||
ZmlsbDojRDExQzFDO30KCS5zdDl7ZGlzcGxheTppbmxpbmU7ZmlsbDojMTE3N0Q3O30KCS5zdDEwe2Rp
|
||||
c3BsYXk6aW5saW5lO2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJMZWFkXzFfIj4NCiAg
|
||||
ICA8cGF0aCBkPSJNMTAuNSw5LjZDOS40LDYsMTAsMiwxNC44LDJjNS4yLDAsNS41LDMsNS41LDNzMi45
|
||||
LTAuMiwxLjEsNC43YzAuMS0wLjEsMC40LTAuMSwwLjUsMC4zICAgYzAuMSwwLjUtMC4xLDAuOS0wLjMs
|
||||
MS40Yy0wLjMsMC41LDAuMSwxLjctMC45LDEuNnYwLjFjLTAuNSwyLjMtMiw0LjktNC43LDQuOXMtNC4x
|
||||
LTIuNi00LjctNC45YzAtMC4xLDAtMC4yLDAtMC4yICAgYy0xLDAuMS0wLjctMS4xLTAuOS0xLjZTOS45
|
||||
LDEwLjQsMTAsOS45QzEwLjEsOS43LDEwLjQsOS42LDEwLjUsOS42eiBNMjAsMThsLTIuNCw3LjlMMTcs
|
||||
MjJsMC42LTJoLTMuMmwwLjYsMmwtMC42LDMuOUwxMiwxOCAgIGMtMi4zLDMuNS04LDEtOCw4LjVWMzBo
|
||||
MTBoMWgyaDFoMTB2LTMuNUMyOCwxOS4xLDIyLjMsMjEuNCwyMCwxOHoiIGlkPSJMZWFkIiBjbGFzcz0i
|
||||
QmxhY2siIC8+DQogIDwvZz4NCjwvc3ZnPgs=
|
||||
</value>
|
||||
</data>
|
||||
<data name="BarButtonItem1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAAIEAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
|
||||
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5HcmVlbntmaWxsOiMwMzlD
|
||||
MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
|
||||
Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk
|
||||
aXNwbGF5OmlubGluZTtmaWxsOiNGRkIxMTU7fQoJLnN0NHtkaXNwbGF5OmlubGluZTt9Cgkuc3Q1e2Rp
|
||||
c3BsYXk6aW5saW5lO29wYWNpdHk6MC43NTt9Cgkuc3Q2e2Rpc3BsYXk6aW5saW5lO29wYWNpdHk6MC41
|
||||
O30KCS5zdDd7ZGlzcGxheTppbmxpbmU7ZmlsbDojMDM5QzIzO30KCS5zdDh7ZGlzcGxheTppbmxpbmU7
|
||||
ZmlsbDojRDExQzFDO30KCS5zdDl7ZGlzcGxheTppbmxpbmU7ZmlsbDojMTE3N0Q3O30KCS5zdDEwe2Rp
|
||||
c3BsYXk6aW5saW5lO2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJSb2xlIj4NCiAgICA8
|
||||
cGF0aCBkPSJNNCwydjE2YzAsNi42LDUuNCwxMiwxMiwxMnMxMi01LjQsMTItMTJWMkg0eiBNMTEsOWMx
|
||||
LjcsMCwzLDEuMywzLDNIOEM4LDEwLjMsOS4zLDksMTEsOXogTTE2LDI0ICAgYy0zLjMsMC02LTIuNy02
|
||||
LTZjMCwxLjEsMi43LDIsNiwyczYtMC45LDYtMkMyMiwyMS4zLDE5LjMsMjQsMTYsMjR6IE0xOCwxMmMw
|
||||
LTEuNywxLjMtMywzLTNzMywxLjMsMywzSDE4eiIgY2xhc3M9IlllbGxvdyIgLz4NCiAgPC9nPg0KPC9z
|
||||
dmc+Cw==
|
||||
</value>
|
||||
</data>
|
||||
<data name="frmUserSelect.IconOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKEDAAAC77u/
|
||||
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
|
||||
ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz
|
||||
OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp
|
||||
dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlVzZXIiPg0KICAgIDxwYXRoIGQ9Ik0xMCw5LjljLTAu
|
||||
MSwwLjUsMC4yLDAuOSwwLjQsMS40YzAuMiwwLjUtMC4xLDEuNywwLjksMS42YzAsMCwwLDAuMSwwLDAu
|
||||
MmMwLjYsMi4zLDIsNC45LDQuNyw0LjkgICBjMi43LDAsNC4yLTIuNiw0LjctNC45YzAsMCwwLTAuMSww
|
||||
LTAuMWMxLDAuMSwwLjYtMS4xLDAuOS0xLjZjMC4yLTAuNSwwLjQtMC45LDAuMy0xLjRjLTAuMS0wLjQt
|
||||
MC40LTAuNC0wLjUtMC4zICAgYzEuOC00LjktMS4xLTQuNy0xLjEtNC43UzIwLDIsMTQuOCwyQzEwLDIs
|
||||
OS40LDYsMTAuNSw5LjZDMTAuNCw5LjYsMTAuMSw5LjcsMTAsOS45eiIgY2xhc3M9IkJsYWNrIiAvPg0K
|
||||
ICAgIDxwYXRoIGQ9Ik0yMCwxOGMtMC44LDEuNS0yLjEsNC00LDRjLTEuOSwwLTMuMi0yLjUtNC00Yy0y
|
||||
LjMsMy41LTgsMS04LDguNVYzMGgyNHYtMy41QzI4LDE5LjEsMjIuMywyMS40LDIwLDE4eiIgY2xhc3M9
|
||||
IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
73
app/TaskFlow/frmUserSelect.vb
Normal file
73
app/TaskFlow/frmUserSelect.vb
Normal file
@@ -0,0 +1,73 @@
|
||||
Public Class frmUserSelect
|
||||
Public SelectedUserName As String
|
||||
Public SelectedUserID As Integer
|
||||
Public SelectedUserLanguage As String
|
||||
Private Sub frmUserSelect_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
Dim oSQL = "SELECT [SQL_COMMAND] FROM TBDD_SQL_COMMANDS WITH (NOLOCK) where TITLE = 'GHOST_SELECT'"
|
||||
Dim DT_USER = DatabaseFallback.GetDatatableECM(oSQL)
|
||||
'
|
||||
If IsNothing(DT_USER) Then
|
||||
LOGGER.Info($"Ghost Select 1 [{oSQL}] was nothing, now trying 2nd..")
|
||||
oSQL = "SELECT CONFIG_VALUE FROM TBIDB_BASE WITH (NOLOCK) WHERE CONFIG_NAME = 'GHOST_SELECT'"
|
||||
If Not IsNothing(oSQL) Then
|
||||
oSQL = DatabaseFallback.GetScalarValueIDB(oSQL)
|
||||
DT_USER = DatabaseFallback.GetDatatableIDB(oSQL)
|
||||
Else
|
||||
LOGGER.Info($"GHOST Select 2 [{oSQL}] was nothing, Exit.")
|
||||
MsgBox("No SQL for Ghostmode via SQL. Check Your configuration.", MsgBoxStyle.Exclamation)
|
||||
Exit Sub
|
||||
End If
|
||||
End If
|
||||
|
||||
Try
|
||||
If Not IsNothing(DT_USER) Then
|
||||
oSQL = DT_USER.Rows(0).Item(0)
|
||||
DT_USER = DatabaseFallback.GetDatatableECM(oSQL)
|
||||
GridControl1.DataSource = DT_USER
|
||||
LOGGER.Info($"Received [{DT_USER.Rows.Count}] Users to select!")
|
||||
End If
|
||||
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("Error Load_Users:" & vbNewLine & ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
|
||||
Dim oFocusedUserName
|
||||
Try
|
||||
oFocusedUserName = GridView1.GetFocusedRowCellValue(GridView1.Columns("UserName"))
|
||||
|
||||
If IsNothing(oFocusedUserName) Then
|
||||
oFocusedUserName = GridView1.GetFocusedRowCellValue(GridView1.Columns("USERNAME"))
|
||||
End If
|
||||
If IsNothing(oFocusedUserName) Then
|
||||
oFocusedUserName = GridView1.GetFocusedRowCellValue(GridView1.Columns("USER_NAME"))
|
||||
End If
|
||||
If IsNothing(oFocusedUserName) Then
|
||||
oFocusedUserName = GridView1.GetFocusedRowCellValue(GridView1.Columns("USER"))
|
||||
End If
|
||||
Catch ex As Exception
|
||||
oFocusedUserName = GridView1.GetFocusedRowCellValue(GridView1.Columns("UserName"))
|
||||
If IsNothing(oFocusedUserName) Then
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
||||
Exit Sub
|
||||
End If
|
||||
End Try
|
||||
If oFocusedUserName <> String.Empty Then
|
||||
SelectedUserName = oFocusedUserName
|
||||
Dim oDT As DataTable = DatabaseFallback.GetDatatableECM("SELECT * FROM TBDD_USER WITH (NOLOCK) WHERE USERNAME = '" & oFocusedUserName & "'")
|
||||
If Not IsNothing(oDT) Then
|
||||
SelectedUserID = oDT.Rows(0).Item("GUID")
|
||||
SelectedUserLanguage = oDT.Rows(0).Item("LANGUAGE")
|
||||
Else
|
||||
MsgBox("Error: User not found in TBDD_USER!", MsgBoxStyle.Critical)
|
||||
Exit Sub
|
||||
End If
|
||||
Me.Close()
|
||||
|
||||
Else
|
||||
MsgBox("Please choose an user for ghostmode!", MsgBoxStyle.Information)
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user