Add new nodes

This commit is contained in:
Jonathan Jenne 2023-09-21 15:09:28 +02:00
parent 16b2026a24
commit 1cf5c979db
15 changed files with 733 additions and 227 deletions

View File

@ -6,6 +6,9 @@ Public Class ClassNodeNavigation
Public Shared Datatable_Nodes As DataTable
Public Shared TREEVIEW_IMAGELIST As ImageList
Public Shared IMAGE_COLLECTION As ImageCollection
Public Shared Function CreateNodeProcedure(RECORD_ID As Integer, NODE_CONFIG_ID As Integer, NODE_CAPTION As String, NODE_ID1 As String, NODE_PARENT_ID As String, ADDED_WHO As String)
Try
Dim connection As New SqlConnection
@ -38,56 +41,56 @@ Public Class ClassNodeNavigation
End Function
Public Shared Function CREATE_IMAGE_COLL(DT_IMAGELIST As DataTable)
IMAGE_COLLECTION = New ImageCollection
For Each row As DataRow In DT_IMAGELIST.Rows
Try
Dim bimage = row.Item("NODE_IMAGE")
If Not IsDBNull(bimage) Then
Dim Node_image = ByteArrayToBitmap(bimage)
IMAGE_COLLECTION.AddImage(Node_image, row.Item("GUID")) 'row.Item("GUID").ToString & "#" & row.Item("ENTITY_ID")
'Public Shared Function CREATE_IMAGE_COLL(DT_IMAGELIST As DataTable)
' IMAGE_COLLECTION = New ImageCollection
' For Each row As DataRow In DT_IMAGELIST.Rows
' Try
' Dim bimage = row.Item("NODE_IMAGE")
' If Not IsDBNull(bimage) Then
' Dim Node_image = ByteArrayToBitmap(bimage)
' IMAGE_COLLECTION.AddImage(Node_image, row.Item("GUID")) 'row.Item("GUID").ToString & "#" & row.Item("ENTITY_ID")
End If
Catch ex As Exception
' End If
' Catch ex As Exception
End Try
' End Try
Next
End Function
' Next
'End Function
Public Shared Function Return_Node(PARENT_ID As Integer, ParentNode As TreeNode)
Dim expression As String
expression = "PARENT_GUID = " & PARENT_ID 'Einschränkung auf Type und Parent_Guid
Dim foundRows() As DataRow
foundRows = Datatable_Nodes.Select(expression)
Dim q As Integer
For q = 0 To foundRows.GetUpperBound(0)
Dim ID9 = foundRows(q)("GUID")
Dim LevelEntity9 = foundRows(q)("ENTITY_ID")
Dim controlID9 = foundRows(q)("CONTROL_ID")
Dim nodetext9 = foundRows(q)("NODE_CAPTION")
Dim RECORD_ID = foundRows(q)("RECORD_ID")
Dim NODE_CONFIG_ID = foundRows(q)("NODE_CONFIG_ID")
' Node erstellen..
Dim NEW_NODE As TreeNode
NEW_NODE = New TreeNode(nodetext9)
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity9, NEW_NODE)
NEW_NODE.Tag = ClassNodeNavigation.CreateNODE_TAG(LevelEntity9, ID9, RECORD_ID, NODE_CONFIG_ID)
'Public Shared Function Return_Node(PARENT_ID As Integer, ParentNode As TreeNode)
' Dim expression As String
' expression = "PARENT_GUID = " & PARENT_ID 'Einschränkung auf Type und Parent_Guid
' Dim foundRows() As DataRow
' foundRows = Datatable_Nodes.Select(expression)
' Dim q As Integer
' For q = 0 To foundRows.GetUpperBound(0)
' Dim ID9 = foundRows(q)("GUID")
' Dim LevelEntity9 = foundRows(q)("ENTITY_ID")
' Dim controlID9 = foundRows(q)("CONTROL_ID")
' Dim nodetext9 = foundRows(q)("NODE_CAPTION")
' Dim RECORD_ID = foundRows(q)("RECORD_ID")
' Dim NODE_CONFIG_ID = foundRows(q)("NODE_CONFIG_ID")
' ' Node erstellen..
' Dim NEW_NODE As TreeNode
' NEW_NODE = New TreeNode(nodetext9)
' ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity9, NEW_NODE)
' NEW_NODE.Tag = ClassNodeNavigation.CreateNODE_TAG(LevelEntity9, ID9, RECORD_ID, NODE_CONFIG_ID)
Dim index = 0
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
If img.Replace("LEVEL#ENTITY", "") = "6" & LevelEntity9.ToString Then
Exit For
End If
index += 1
Next
NEW_NODE.ImageIndex = index
NEW_NODE.SelectedImageIndex = index
' ..und einfügen
ParentNode.Nodes.Add(NEW_NODE)
Next '
End Function
' Dim index = 0
' For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
' If img.Replace("LEVEL#ENTITY", "") = "6" & LevelEntity9.ToString Then
' Exit For
' End If
' index += 1
' Next
' NEW_NODE.ImageIndex = index
' NEW_NODE.SelectedImageIndex = index
' ' ..und einfügen
' ParentNode.Nodes.Add(NEW_NODE)
' Next '
'End Function
Public Shared Sub Check_NODE_CONFIG_ID(ENTITY_ID As Integer, myTreeNode As TreeNode)
Try
If myTreeNode Is Nothing Then

View File

@ -0,0 +1,39 @@
Imports DevExpress.Utils
Imports DevExpress.XtraTreeList.Nodes
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging
Public Class ClassNodeCreator
Inherits BaseClass
Private ReadOnly _ImageList As ImageCollection
Public Sub New(pLogConfig As LogConfig, pImageList As ImageCollection)
MyBase.New(pLogConfig)
_ImageList = pImageList
End Sub
Public Function AddNode(pEntityId As Integer, pNodeCaption As String, pParentNodeId As Integer, pNodeConfigId As Integer) As Boolean
' Create a new Record in the given Entity
Dim oRecordId = ClassRecordCommands.CreateRecordProcedure(pEntityId)
If oRecordId = 0 Then
Logger.Warn("Could not create a record. Exiting.")
Return False
End If
' Update the proxy?
ClassProxy.PRPROXY_RECORD_UPD_INS(pEntityId, oRecordId)
' Create the Node in the Database
Dim oNodeIdentifier = $"CONFIG {oRecordId}-{pNodeConfigId}"
Dim oNodeId = ClassNodeNavigation.CreateNodeProcedure(oRecordId, pNodeConfigId, pNodeCaption, oNodeIdentifier, pParentNodeId, USER_USERNAME)
If oNodeId = 0 Then
Logger.Warn("Node could not be created in database. Exiting.")
Return False
End If
Return True
End Function
End Class

View File

@ -0,0 +1,34 @@
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
Public Class ClassNodeLoader
Inherits BaseClass
Private ReadOnly Database As MSSQLServer
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer)
MyBase.New(pLogConfig)
Database = pDatabase
End Sub
Public Async Function LoadNodes(pEntityId As Integer) As Task(Of DataTable)
Dim oStructureNodeSql = $"SELECT
T.GUID,
T.RECORD_ID,
T.NODE_CONFIG_ID,
T.NODE_CAPTION,
T.ID1,
T.BACK_COLOR,
T.PARENT_GUID,
T.SEQUENCE,
T.TYPE_NODE
FROM
VWPMO_STRUCTURE_NODES T
INNER JOIN VWPMO_CONSTRUCTOR_FORMS T1 ON T.ENTITY_ID = T1.FORM_ID
WHERE T.ENTITY_ID = {pEntityId}"
Dim oTable = Await Database.GetDatatableAsync(oStructureNodeSql)
Return oTable
End Function
End Class

View File

@ -1,5 +1,9 @@
DevExpress.XtraMap.MapControl, DevExpress.XtraMap.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.XtraTreeList.TreeList, DevExpress.XtraTreeList.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.XtraTreeList.TreeList, DevExpress.XtraTreeList.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.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.XtraMap.MapControl, DevExpress.XtraMap.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ButtonEdit, 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.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@ -306,6 +306,8 @@
<Compile Include="Classes\ClassWDRights.vb" />
<Compile Include="Classes\ClassWindreamDocGrid.vb" />
<Compile Include="Classes\ClassWorkflow.vb" />
<Compile Include="Classes\NodeNavigation\ClassNodeCreator.vb" />
<Compile Include="Classes\NodeNavigation\ClassNodeLoader.vb" />
<Compile Include="DD_DMSDataSet.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
@ -404,6 +406,12 @@
<Compile Include="frmMessageBox.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmNewNode.Designer.vb">
<DependentUpon>frmNewNode.vb</DependentUpon>
</Compile>
<Compile Include="frmNewNode.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmNewVariant.Designer.vb">
<DependentUpon>frmNewVariant.vb</DependentUpon>
</Compile>
@ -872,6 +880,9 @@
<EmbeddedResource Include="frmMessageBox.resx">
<DependentUpon>frmMessageBox.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmNewNode.resx">
<DependentUpon>frmNewNode.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmNewVariant.en-US.resx">
<DependentUpon>frmNewVariant.vb</DependentUpon>
</EmbeddedResource>

View File

@ -496,7 +496,7 @@
<value>0, 0</value>
</data>
<data name="GridControlMain.Size" type="System.Drawing.Size, System.Drawing">
<value>910, 237</value>
<value>908, 237</value>
</data>
<data name="GridControlMain.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@ -592,7 +592,7 @@
<value>0, 0</value>
</data>
<data name="pnlDetails.Size" type="System.Drawing.Size, System.Drawing">
<value>699, 223</value>
<value>699, 231</value>
</data>
<data name="pnlDetails.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
@ -634,7 +634,7 @@
<value>0, 0</value>
</data>
<data name="pnlDocFill.Size" type="System.Drawing.Size, System.Drawing">
<value>488, 198</value>
<value>486, 206</value>
</data>
<data name="pnlDocFill.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -681,10 +681,10 @@
<value>Ansicht eingeschränkt - Klick Bearbeiten für Entsperren</value>
</data>
<data name="statStripDoc.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 198</value>
<value>0, 206</value>
</data>
<data name="statStripDoc.Size" type="System.Drawing.Size, System.Drawing">
<value>488, 25</value>
<value>486, 25</value>
</data>
<data name="statStripDoc.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -720,7 +720,7 @@
<value>1</value>
</data>
<data name="SplitContainerDetails.Size" type="System.Drawing.Size, System.Drawing">
<value>1201, 227</value>
<value>1201, 235</value>
</data>
<data name="SplitContainerDetails.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -896,7 +896,7 @@
<value>1</value>
</data>
<data name="TabDetails.Size" type="System.Drawing.Size, System.Drawing">
<value>1201, 254</value>
<value>1201, 262</value>
</data>
<data name="TabDetails.Text" xml:space="preserve">
<value>Detailansicht</value>
@ -914,7 +914,7 @@
<value>0</value>
</data>
<data name="TCDetails.Size" type="System.Drawing.Size, System.Drawing">
<value>1203, 282</value>
<value>1203, 290</value>
</data>
<data name="TCDetails.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -1889,7 +1889,7 @@
<value>0, 0</value>
</data>
<data name="TreeListDevexpress.Size" type="System.Drawing.Size, System.Drawing">
<value>1201, 254</value>
<value>1201, 264</value>
</data>
<metadata name="ImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>301, 17</value>
@ -1918,7 +1918,7 @@
<value>0</value>
</data>
<data name="XtraTabPage1.Size" type="System.Drawing.Size, System.Drawing">
<value>1201, 254</value>
<value>1201, 264</value>
</data>
<data name="XtraTabPage1.Text" xml:space="preserve">
<value>NodeNavigation(beta)</value>
@ -1963,7 +1963,7 @@
<value>1</value>
</data>
<data name="SplitContainerMain.Size" type="System.Drawing.Size, System.Drawing">
<value>1203, 529</value>
<value>1203, 539</value>
</data>
<data name="SplitContainerMain.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@ -1987,7 +1987,7 @@
<value>Fill</value>
</data>
<data name="SplitContainerFORM.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 158</value>
<value>0, 147</value>
</data>
<data name="SplitContainerFORM.Panel1.Text" xml:space="preserve">
<value>Panel1</value>
@ -2020,7 +2020,7 @@
<value>1</value>
</data>
<data name="SplitContainerFORM.Size" type="System.Drawing.Size, System.Drawing">
<value>1203, 529</value>
<value>1203, 539</value>
</data>
<data name="SplitContainerFORM.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
@ -3085,13 +3085,13 @@
<value>Funktionen</value>
</data>
<data name="RibbonControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>1203, 158</value>
<value>1203, 147</value>
</data>
<data name="RibbonStatusBar1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 687</value>
<value>0, 686</value>
</data>
<data name="RibbonStatusBar1.Size" type="System.Drawing.Size, System.Drawing">
<value>1203, 22</value>
<value>1203, 23</value>
</data>
<data name="&gt;&gt;RibbonStatusBar1.Name" xml:space="preserve">
<value>RibbonStatusBar1</value>

View File

@ -0,0 +1,171 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmNewNode
Inherits DevExpress.XtraEditors.XtraForm
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl()
Me.cmbNodeConfig = New DevExpress.XtraEditors.ComboBoxEdit()
Me.TextEdit1 = New DevExpress.XtraEditors.TextEdit()
Me.btnOK = New DevExpress.XtraEditors.SimpleButton()
Me.Root = New DevExpress.XtraLayout.LayoutControlGroup()
Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem()
Me.EmptySpaceItem2 = New DevExpress.XtraLayout.EmptySpaceItem()
Me.EmptySpaceItem1 = New DevExpress.XtraLayout.EmptySpaceItem()
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.LayoutControl1.SuspendLayout()
CType(Me.cmbNodeConfig.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.Root, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.EmptySpaceItem2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'LayoutControl1
'
Me.LayoutControl1.Controls.Add(Me.cmbNodeConfig)
Me.LayoutControl1.Controls.Add(Me.TextEdit1)
Me.LayoutControl1.Controls.Add(Me.btnOK)
Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill
Me.LayoutControl1.Location = New System.Drawing.Point(0, 0)
Me.LayoutControl1.Name = "LayoutControl1"
Me.LayoutControl1.Root = Me.Root
Me.LayoutControl1.Size = New System.Drawing.Size(441, 125)
Me.LayoutControl1.TabIndex = 0
Me.LayoutControl1.Text = "LayoutControl1"
'
'cmbNodeConfig
'
Me.cmbNodeConfig.Location = New System.Drawing.Point(73, 36)
Me.cmbNodeConfig.Name = "cmbNodeConfig"
Me.cmbNodeConfig.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.cmbNodeConfig.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor
Me.cmbNodeConfig.Size = New System.Drawing.Size(356, 20)
Me.cmbNodeConfig.StyleController = Me.LayoutControl1
Me.cmbNodeConfig.TabIndex = 4
'
'TextEdit1
'
Me.TextEdit1.Location = New System.Drawing.Point(73, 12)
Me.TextEdit1.Name = "TextEdit1"
Me.TextEdit1.Size = New System.Drawing.Size(356, 20)
Me.TextEdit1.StyleController = Me.LayoutControl1
Me.TextEdit1.TabIndex = 5
'
'btnOK
'
Me.btnOK.Location = New System.Drawing.Point(326, 91)
Me.btnOK.Name = "btnOK"
Me.btnOK.Size = New System.Drawing.Size(103, 22)
Me.btnOK.StyleController = Me.LayoutControl1
Me.btnOK.TabIndex = 6
Me.btnOK.Text = "OK"
'
'Root
'
Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
Me.Root.GroupBordersVisible = False
Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem2, Me.LayoutControlItem1, Me.LayoutControlItem3, Me.EmptySpaceItem2, Me.EmptySpaceItem1})
Me.Root.Name = "Root"
Me.Root.Size = New System.Drawing.Size(441, 125)
Me.Root.TextVisible = False
'
'LayoutControlItem2
'
Me.LayoutControlItem2.Control = Me.TextEdit1
Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlItem2.Name = "LayoutControlItem2"
Me.LayoutControlItem2.Size = New System.Drawing.Size(421, 24)
Me.LayoutControlItem2.Text = "Knoten Titel"
Me.LayoutControlItem2.TextSize = New System.Drawing.Size(57, 13)
'
'LayoutControlItem1
'
Me.LayoutControlItem1.Control = Me.cmbNodeConfig
Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 24)
Me.LayoutControlItem1.Name = "LayoutControlItem1"
Me.LayoutControlItem1.Size = New System.Drawing.Size(421, 24)
Me.LayoutControlItem1.Text = "Knoten Typ"
Me.LayoutControlItem1.TextSize = New System.Drawing.Size(57, 13)
'
'LayoutControlItem3
'
Me.LayoutControlItem3.Control = Me.btnOK
Me.LayoutControlItem3.Location = New System.Drawing.Point(314, 79)
Me.LayoutControlItem3.Name = "LayoutControlItem3"
Me.LayoutControlItem3.Size = New System.Drawing.Size(107, 26)
Me.LayoutControlItem3.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem3.TextVisible = False
'
'EmptySpaceItem2
'
Me.EmptySpaceItem2.AllowHotTrack = False
Me.EmptySpaceItem2.Location = New System.Drawing.Point(0, 79)
Me.EmptySpaceItem2.Name = "EmptySpaceItem2"
Me.EmptySpaceItem2.Size = New System.Drawing.Size(314, 26)
Me.EmptySpaceItem2.TextSize = New System.Drawing.Size(0, 0)
'
'EmptySpaceItem1
'
Me.EmptySpaceItem1.AllowHotTrack = False
Me.EmptySpaceItem1.Location = New System.Drawing.Point(0, 48)
Me.EmptySpaceItem1.Name = "EmptySpaceItem1"
Me.EmptySpaceItem1.Size = New System.Drawing.Size(421, 31)
Me.EmptySpaceItem1.TextSize = New System.Drawing.Size(0, 0)
'
'frmNewNode
'
Me.AcceptButton = Me.btnOK
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(441, 125)
Me.Controls.Add(Me.LayoutControl1)
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "frmNewNode"
Me.Text = "Neuen Knoten erstellen"
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.LayoutControl1.ResumeLayout(False)
CType(Me.cmbNodeConfig.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.Root, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.EmptySpaceItem2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl
Friend WithEvents Root As DevExpress.XtraLayout.LayoutControlGroup
Friend WithEvents cmbNodeConfig As DevExpress.XtraEditors.ComboBoxEdit
Friend WithEvents TextEdit1 As DevExpress.XtraEditors.TextEdit
Friend WithEvents btnOK As DevExpress.XtraEditors.SimpleButton
Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem1 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents LayoutControlItem3 As DevExpress.XtraLayout.LayoutControlItem
Friend WithEvents EmptySpaceItem2 As DevExpress.XtraLayout.EmptySpaceItem
Friend WithEvents EmptySpaceItem1 As DevExpress.XtraLayout.EmptySpaceItem
End Class

View File

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

View File

@ -0,0 +1,29 @@
Public Class frmNewNode
Public Property Title As String
Public Property Id As Integer
Public Property NodeConfigTypes As New List(Of NodeConfig)
Public Class NodeConfig
Public Property Id
Public Property Name
Public Overrides Function ToString() As String
Return Name
End Function
End Class
Private Sub frmNewNode_Load(sender As Object, e As EventArgs) Handles MyBase.Load
cmbNodeConfig.Properties.Items.AddRange(NodeConfigTypes)
cmbNodeConfig.SelectedIndex = 0
End Sub
Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles btnOK.Click
Try
Dim oSelectedNodeConfig As NodeConfig = cmbNodeConfig.EditValue
Id = oSelectedNodeConfig.Id
Title = TextEdit1.EditValue
DialogResult = DialogResult.OK
Catch ex As Exception
End Try
End Sub
End Class

View File

@ -42,6 +42,7 @@ Partial Class frmNodeNavigation
Me.BbtnitmNodeReorder = New DevExpress.XtraBars.BarButtonItem()
Me.bbtnItm_TV_Collape_Expand = New DevExpress.XtraBars.BarButtonItem()
Me.checkShowPreview = New DevExpress.XtraBars.BarCheckItem()
Me.btnCreateNewNode = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroupView = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroupRecord = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
@ -112,9 +113,9 @@ Partial Class frmNodeNavigation
'ribbonNodeNavigation
'
Me.ribbonNodeNavigation.ExpandCollapseItem.Id = 0
Me.ribbonNodeNavigation.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.ribbonNodeNavigation.ExpandCollapseItem, Me.ribbonNodeNavigation.SearchEditItem, Me.bbtnitmRecEdit, Me.bsiInfo, Me.bbtnitmRecSave, Me.bsiDocID, Me.bsitmRecordID, Me.bbtnitmDocResultExport, Me.bbtnitmDocResultLayoutSave, Me.bbtnitmDocResultLayoutReset, Me.bbtnitmDocResultRefresh, Me.BarStaticItemLocked, Me.bsitmtInfoDoc, Me.BarButtonItem1, Me.bbtnitmReloadView, Me.BbtnitmNodeReorder, Me.bbtnItm_TV_Collape_Expand, Me.checkShowPreview})
Me.ribbonNodeNavigation.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.ribbonNodeNavigation.ExpandCollapseItem, Me.ribbonNodeNavigation.SearchEditItem, Me.bbtnitmRecEdit, Me.bsiInfo, Me.bbtnitmRecSave, Me.bsiDocID, Me.bsitmRecordID, Me.bbtnitmDocResultExport, Me.bbtnitmDocResultLayoutSave, Me.bbtnitmDocResultLayoutReset, Me.bbtnitmDocResultRefresh, Me.BarStaticItemLocked, Me.bsitmtInfoDoc, Me.BarButtonItem1, Me.bbtnitmReloadView, Me.BbtnitmNodeReorder, Me.bbtnItm_TV_Collape_Expand, Me.checkShowPreview, Me.btnCreateNewNode})
Me.ribbonNodeNavigation.Location = New System.Drawing.Point(0, 0)
Me.ribbonNodeNavigation.MaxItemId = 19
Me.ribbonNodeNavigation.MaxItemId = 22
Me.ribbonNodeNavigation.Name = "ribbonNodeNavigation"
Me.ribbonNodeNavigation.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
Me.ribbonNodeNavigation.PopupMenuAlignment = DevExpress.XtraBars.PopupMenuAlignment.Left
@ -123,7 +124,7 @@ Partial Class frmNodeNavigation
Me.ribbonNodeNavigation.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.[True]
Me.ribbonNodeNavigation.ShowMoreCommandsButton = DevExpress.Utils.DefaultBoolean.[False]
Me.ribbonNodeNavigation.ShowToolbarCustomizeItem = False
Me.ribbonNodeNavigation.Size = New System.Drawing.Size(1307, 158)
Me.ribbonNodeNavigation.Size = New System.Drawing.Size(1307, 147)
Me.ribbonNodeNavigation.StatusBar = Me.RibbonStatusBar1
Me.ribbonNodeNavigation.Toolbar.ShowCustomizeItem = False
'
@ -230,7 +231,7 @@ Partial Class frmNodeNavigation
'
'bbtnItm_TV_Collape_Expand
'
Me.bbtnItm_TV_Collape_Expand.Caption = "Collaps/Expand"
Me.bbtnItm_TV_Collape_Expand.Caption = "Ein- / Ausklappen"
Me.bbtnItm_TV_Collape_Expand.Id = 17
Me.bbtnItm_TV_Collape_Expand.ImageOptions.SvgImage = CType(resources.GetObject("bbtnItm_TV_Collape_Expand.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.bbtnItm_TV_Collape_Expand.Name = "bbtnItm_TV_Collape_Expand"
@ -242,6 +243,14 @@ Partial Class frmNodeNavigation
Me.checkShowPreview.ImageOptions.SvgImage = CType(resources.GetObject("checkShowPreview.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.checkShowPreview.Name = "checkShowPreview"
'
'btnCreateNewNode
'
Me.btnCreateNewNode.Caption = "Neuen Knoten anlegen"
Me.btnCreateNewNode.Enabled = False
Me.btnCreateNewNode.Id = 19
Me.btnCreateNewNode.ImageOptions.SvgImage = CType(resources.GetObject("btnCreateNewNode.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.btnCreateNewNode.Name = "btnCreateNewNode"
'
'RibbonPage1
'
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroupView, Me.RibbonPageGroupRecord, Me.RibbonPageGroupDocResult, Me.RibbonPageGroup1, Me.RPGNodes})
@ -285,6 +294,7 @@ Partial Class frmNodeNavigation
'
Me.RPGNodes.ItemLinks.Add(Me.BbtnitmNodeReorder)
Me.RPGNodes.ItemLinks.Add(Me.bbtnItm_TV_Collape_Expand)
Me.RPGNodes.ItemLinks.Add(Me.btnCreateNewNode)
Me.RPGNodes.Name = "RPGNodes"
Me.RPGNodes.Text = "Knoten"
'
@ -295,10 +305,10 @@ Partial Class frmNodeNavigation
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitmRecordID)
Me.RibbonStatusBar1.ItemLinks.Add(Me.BarStaticItemLocked)
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitmtInfoDoc)
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 822)
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 667)
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
Me.RibbonStatusBar1.Ribbon = Me.ribbonNodeNavigation
Me.RibbonStatusBar1.Size = New System.Drawing.Size(1307, 22)
Me.RibbonStatusBar1.Size = New System.Drawing.Size(1307, 23)
'
'RibbonPage2
'
@ -320,7 +330,7 @@ Partial Class frmNodeNavigation
'
Me.SplitContainerMain.Panel2.Controls.Add(Me.SplitContainer1)
Me.SplitContainerMain.Panel2.Text = "Panel2"
Me.SplitContainerMain.Size = New System.Drawing.Size(1297, 664)
Me.SplitContainerMain.Size = New System.Drawing.Size(1295, 520)
Me.SplitContainerMain.SplitterPosition = 289
Me.SplitContainerMain.TabIndex = 2
'
@ -331,6 +341,7 @@ Partial Class frmNodeNavigation
Me.TreeListDevexpress.Appearance.FocusedRow.Options.UseBackColor = True
Me.TreeListDevexpress.Caption = "Instandhaltung View"
Me.TreeListDevexpress.Dock = System.Windows.Forms.DockStyle.Fill
Me.TreeListDevexpress.KeyFieldName = "GUID"
Me.TreeListDevexpress.Location = New System.Drawing.Point(0, 0)
Me.TreeListDevexpress.Name = "TreeListDevexpress"
Me.TreeListDevexpress.BeginUnboundLoad()
@ -356,7 +367,8 @@ Partial Class frmNodeNavigation
Me.TreeListDevexpress.OptionsView.ShowTreeLines = DevExpress.Utils.DefaultBoolean.[False]
Me.TreeListDevexpress.OptionsView.ShowVertLines = False
Me.TreeListDevexpress.OptionsView.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Dark
Me.TreeListDevexpress.Size = New System.Drawing.Size(289, 664)
Me.TreeListDevexpress.ParentFieldName = "PARENT_GUID"
Me.TreeListDevexpress.Size = New System.Drawing.Size(289, 520)
Me.TreeListDevexpress.StateImageList = Me.ImageCollection1
Me.TreeListDevexpress.TabIndex = 1
'
@ -379,8 +391,8 @@ Partial Class frmNodeNavigation
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.Controls.Add(Me.GridControlDocSearch)
Me.SplitContainer1.Size = New System.Drawing.Size(998, 664)
Me.SplitContainer1.SplitterDistance = 214
Me.SplitContainer1.Size = New System.Drawing.Size(994, 520)
Me.SplitContainer1.SplitterDistance = 167
Me.SplitContainer1.TabIndex = 0
'
'pnlControls
@ -390,7 +402,7 @@ Partial Class frmNodeNavigation
Me.pnlControls.Dock = System.Windows.Forms.DockStyle.Fill
Me.pnlControls.Location = New System.Drawing.Point(0, 0)
Me.pnlControls.Name = "pnlControls"
Me.pnlControls.Size = New System.Drawing.Size(998, 214)
Me.pnlControls.Size = New System.Drawing.Size(994, 167)
Me.pnlControls.TabIndex = 0
'
'GridControlDocSearch
@ -403,7 +415,7 @@ Partial Class frmNodeNavigation
Me.GridControlDocSearch.Location = New System.Drawing.Point(0, 0)
Me.GridControlDocSearch.MainView = Me.GridViewDoc_Search
Me.GridControlDocSearch.Name = "GridControlDocSearch"
Me.GridControlDocSearch.Size = New System.Drawing.Size(998, 446)
Me.GridControlDocSearch.Size = New System.Drawing.Size(994, 349)
Me.GridControlDocSearch.TabIndex = 8
Me.GridControlDocSearch.TabStop = False
Me.GridControlDocSearch.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewDoc_Search})
@ -591,7 +603,7 @@ Partial Class frmNodeNavigation
Me.SplitContainerDocView.Collapsed = True
Me.SplitContainerDocView.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2
Me.SplitContainerDocView.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainerDocView.Location = New System.Drawing.Point(0, 158)
Me.SplitContainerDocView.Location = New System.Drawing.Point(0, 147)
Me.SplitContainerDocView.Name = "SplitContainerDocView"
'
'SplitContainerDocView.Panel1
@ -603,7 +615,7 @@ Partial Class frmNodeNavigation
'
Me.SplitContainerDocView.Panel2.Controls.Add(Me.DocumentViewer)
Me.SplitContainerDocView.Panel2.Text = "Panel2"
Me.SplitContainerDocView.Size = New System.Drawing.Size(1307, 664)
Me.SplitContainerDocView.Size = New System.Drawing.Size(1307, 520)
Me.SplitContainerDocView.SplitterPosition = 969
Me.SplitContainerDocView.TabIndex = 0
'
@ -620,7 +632,7 @@ Partial Class frmNodeNavigation
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1307, 844)
Me.ClientSize = New System.Drawing.Size(1307, 690)
Me.Controls.Add(Me.SplitContainerDocView)
Me.Controls.Add(Me.RibbonStatusBar1)
Me.Controls.Add(Me.ribbonNodeNavigation)
@ -716,4 +728,5 @@ Partial Class frmNodeNavigation
Friend WithEvents DocumentViewer As DigitalData.Controls.DocumentViewer.DocumentViewer
Friend WithEvents RibbonPageGroupView As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents checkShowPreview As DevExpress.XtraBars.BarCheckItem
Friend WithEvents btnCreateNewNode As DevExpress.XtraBars.BarButtonItem
End Class

View File

@ -448,6 +448,27 @@
OCwyNCwxOCwyNHoiIGNsYXNzPSJCbHVlIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
</data>
<data name="btnCreateNewNode.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>
<metadata name="ImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="ImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>

View File

@ -20,28 +20,20 @@ Imports System.Configuration
Public Class frmNodeNavigation
#Region "Laufzeitvariablen & Konstanten"
Dim DT_STRUCTURE_NODES As DataTable
Dim DT_ADDING_USERS As DataTable
Dim DT_VWPMO_CONSTRUCTOR_FORMS As DataTable
Private DT_STRUCTURE_NODES As DataTable
Private DT_ADDING_USERS As DataTable
Private DT_VWPMO_CONSTRUCTOR_FORMS As DataTable
Private RunningTask As Task
Private RunningTaskTokenSource As New CancellationTokenSource
Private RunningTaskToken = RunningTaskTokenSource.Token
Private oEntityID As Int16
Private oConstructID As Int16
Private _EntityId As Short
Private oConstructID As Short
Private CONSTRUCTORID As Integer
Private CONSTRUCTOR_DETAIL_ID As Int16
Private oFilterActive As Boolean = False
Private ROW_READ_ONLY As Boolean = False
Private CONSTRUCTOR_DETAIL_ID As Short
Private _FilterActive As Boolean = False
Private _RowReadOnly As Boolean = False
Private ADD_RECORDS_CONSTR As Boolean = True
Private TV_Collapse_ExpandState = "Collapse"
Public CtrlBuilder As ClassControlBuilder
Public CtrlCommandUI As ClassControlCommandsUI
Public Enum EditState
None
Insert
Update
Delete
End Enum
Private WindowsEx As WindowsEx
@ -73,47 +65,63 @@ Public Class frmNodeNavigation
Private IW_USER As String
Private IW_COMMENT As String
Private INWORK_FILE As Boolean
Private Const SEE_MASK_INVOKEIDLIST = &HC
Private Const SEE_MASK_NOCLOSEPROCESS = &H40
Private Const SEE_MASK_FLAG_NO_UI = &H400
Public Const SW_SHOW As Short = 5
Private CONTROL_DOCTYPE_MATCH As Integer = 0
Private FocusedNode As TreeListNode
Private MyTreeListViewState As ClassTreeListViewState
#End Region
Private AvailableConfigNodes As New List(Of frmNewNode.NodeConfig)
Private CurrentNodeConfigId As Integer = 0
Private DocList As ClassWindreamDocGrid
Public CtrlBuilder As ClassControlBuilder
Public CtrlCommandUI As ClassControlCommandsUI
Private ClassNodeLoader As ClassNodeLoader
Private Debug As Boolean = False
Public Enum EditState
None
Insert
Update
Delete
End Enum
#End Region
Public Sub New(pEntityID As Int16, pConstructID As Int16)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
oEntityID = pEntityID
_EntityId = pEntityID
oConstructID = pConstructID
DocList = New ClassWindreamDocGrid(GridViewDoc_Search)
WindowsEx = New WindowsEx(LOGCONFIG)
ClassNodeLoader = New ClassNodeLoader(LOGCONFIG, MYDB_ECM)
End Sub
Private Function Get_Splitter_Layout_Filename()
Dim Filename As String = String.Format("{0}-{1}-SplitterLayout.xml", CONSTRUCTOR_DETAIL_ID, CONSTRUCTOR_DETAIL_ID.ToString)
Return Path.Combine(Application.UserAppDataPath(), Filename)
End Function
Sub Save_Splitter_Layout()
Try
Dim XMLPath = Get_Splitter_Layout_Filename()
Dim layout As New ClassLayout(XMLPath)
Dim settings As New System.Collections.Generic.List(Of ClassSetting)
settings.Add(New ClassSetting("SplitViewDetailsSplitterPosition", SplitContainer1.SplitterDistance))
settings.Add(New ClassSetting("SplitViewMainSplitterPosition", SplitContainerMain.SplitterPosition))
Dim settings As New List(Of ClassSetting) From {
New ClassSetting("SplitViewDetailsSplitterPosition", SplitContainer1.SplitterDistance),
New ClassSetting("SplitViewMainSplitterPosition", SplitContainerMain.SplitterPosition)
}
layout.Save(settings)
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
End Try
End Sub
Sub Load_Splitter_Layout()
Try
Dim XMLPath As String = Get_Splitter_Layout_Filename()
@ -145,7 +153,7 @@ Public Class frmNodeNavigation
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
End Try
End Sub
Private Sub frmNodeNavigation_Load(sender As Object, e As EventArgs) Handles Me.Load
Private Async Function frmNodeNavigation_Load(sender As Object, e As EventArgs) As Task Handles Me.Load
CONSTRUCTORID = CURRENT_CONSTRUCTOR_ID
Dim Sql = String.Format("SELECT *, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), FORM_VIEW_ID), {1}) AS 'CAPTION' " &
"FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {2} AND CONSTRUCT_ID = {3} ORDER BY SEQUENCE", USER_LANGUAGE, CURRENT_SCREEN_ID, CURRENT_SCREEN_ID, oConstructID)
@ -187,73 +195,69 @@ Public Class frmNodeNavigation
Load_Datafor_Entity()
FORM_LOADED = True
Catch ex As System.Exception
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Error in Loading Form part 4")
End Try
Load_nodes()
End Sub
Private Sub Load_nodes()
Await Load_nodes()
End Function
Private Async Function Load_nodes() As Task
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
Try
Dim oTable = Await ClassNodeLoader.LoadNodes(CURRENT_ENTITY_ID)
DT_STRUCTURE_NODES = oTable
'Dim oToken = RunningTaskTokenSource.Token
'Dim oStructureNodeSql = $"SELECT
' T.GUID,
' T.RECORD_ID,
' T.NODE_CONFIG_ID,
' T.NODE_CAPTION,
' T.ID1,
' T.BACK_COLOR,
' T.PARENT_GUID,
' T.SEQUENCE,
' T.TYPE_NODE
' FROM
' VWPMO_STRUCTURE_NODES T
'INNER JOIN VWPMO_CONSTRUCTOR_FORMS T1 ON T.ENTITY_ID = T1.FORM_ID
'WHERE T.ENTITY_ID = {CURRENT_ENTITY_ID}"
'DT_STRUCTURE_NODES = MYDB_ECM.GetDatatable(oStructureNodeSql)
Dim oToken = RunningTaskTokenSource.Token
Dim Sql = String.Format("select T.GUID,T.RECORD_ID, T.NODE_CONFIG_ID,T.NODE_CAPTION,T.ID1, T.BACK_COLOR,T.PARENT_GUID, T.SEQUENCE from VWPMO_STRUCTURE_NODES T
INNER JOIN VWPMO_CONSTRUCTOR_FORMS T1 ON T.ENTITY_ID = T1.FORM_ID WHERE T.ENTITY_ID = {0}", CURRENT_ENTITY_ID)
DT_STRUCTURE_NODES = MYDB_ECM.GetDatatable(Sql)
Sql = String.Format("select T.* from TBPMO_STRUCTURE_NODES_CONFIGURATION T INNER JOIN VWPMO_CONSTRUCTOR_FORMS T1 ON T.ENTITY_ID = T1.FORM_ID WHERE T.ENTITY_ID = {0}", CURRENT_ENTITY_ID)
Dim DT_TREEVIEW_CONFIGURATION = MYDB_ECM.GetDatatable(Sql)
Dim oNodeConfigSql = String.Format("select T.* from TBPMO_STRUCTURE_NODES_CONFIGURATION T INNER JOIN VWPMO_CONSTRUCTOR_FORMS T1 ON T.ENTITY_ID = T1.FORM_ID WHERE T.ENTITY_ID = {0}", CURRENT_ENTITY_ID)
Dim DT_TREEVIEW_CONFIGURATION = MYDB_ECM.GetDatatable(oNodeConfigSql)
For Each row As DataRow In DT_TREEVIEW_CONFIGURATION.Rows
Try
Dim bimage = row.Item("NODE_IMAGE")
If Not IsDBNull(bimage) Then
Dim Node_image = ByteArrayToBitmap(bimage)
ImageCollection1.AddImage(Node_image, row.Item("GUID"))
Dim bimage = row.ItemEx(Of Object)("NODE_IMAGE", Nothing)
If bimage Is Nothing Then
Continue For
End If
Dim oNodeImage = ByteArrayToBitmap(bimage)
ImageCollection1.AddImage(oNodeImage, row.Item("GUID"))
Catch ex As Exception
End Try
Next
TreeListDevexpress.DataSource = DT_STRUCTURE_NODES
TreeListDevexpress.KeyFieldName = "GUID"
TreeListDevexpress.ParentFieldName = "PARENT_GUID"
TreeListDevexpress.Columns("SEQUENCE").SortOrder = SortOrder.Ascending
TreeListDevexpress.StateImageList = ImageCollection1
Try
TreeListDevexpress.Columns.ColumnByName("colRECORD_ID").Visible = False
Catch ex As Exception
Dim oVisibleColumns = New List(Of String) From {"NODE_CAPTION"}
For Each oColumn In TreeListDevexpress.Columns
If oVisibleColumns.Contains(oColumn.FieldName) = False Then
oColumn.Visible = False
End If
Next
End Try
Try
TreeListDevexpress.Columns.ColumnByName("colNODE_CONFIG_ID").Visible = False
Catch ex As Exception
End Try
Try
TreeListDevexpress.Columns.ColumnByName("colBACK_COLOR").Visible = False
TreeListDevexpress.Columns.ColumnByName("colID1").Visible = False
Catch ex As Exception
End Try
Try
TreeListDevexpress.Columns.ColumnByName("SEQUENCE").Visible = False
Catch ex As Exception
End Try
Catch ex As Exception
LOGGER.Error(ex)
Finally
SplashScreenManager.CloseOverlayForm(oHandle)
End Try
End Sub
End Function
Private Sub TreeListDevexpress_ColumnFilterChanged(sender As Object, e As EventArgs)
Dim tree As TreeList = TryCast(sender, TreeList)
Dim filteredColumns As List(Of TreeListColumn) = tree.Columns.Cast(Of TreeListColumn)().Where(Function(c) c.FilterInfo.AutoFilterRowValue IsNot Nothing).ToList()
@ -299,12 +303,12 @@ Public Class frmNodeNavigation
End Sub
End Class
Private Async Sub TreeListDevexpress_FocusedNodeChanged(sender As Object, e As FocusedNodeChangedEventArgs) Handles TreeListDevexpress.FocusedNodeChanged
FocusedNode = Nothing
If oFilterActive Then
btnCreateNewNode.Enabled = False
If _FilterActive Then
Exit Sub
End If
@ -328,18 +332,42 @@ Public Class frmNodeNavigation
Exit Sub
End If
If oNodeId = 0 Then
Exit Sub
End If
'If oNodeId = 0 Then
' Exit Sub
'End If
Dim oRowView As DataRowView = oRowObject
Dim oRow As DataRow = oRowView.Row
Dim oGuid = oRow.Item("GUID")
Dim oNodeCaption = oRow.Item("NODE_CAPTION")
Dim oNodeConfigId = oRow.Item("NODE_CONFIG_ID")
Dim oRecordId = oRow.ItemEx("RECORD_ID", 0)
Dim oHasRecordId = (oRecordId > 0)
Dim oIsConfigNode = (oNodeConfigId = 1000)
Dim oParentNode = e.Node.ParentNode
' BEGIN NEW NODE
Dim oConfigNodeChildren = FocusedNode.Nodes.Where(Function(n) n.Item("TYPE_NODE") = 1000)
Dim oHasConfigNodeChildren = oConfigNodeChildren.Any()
Dim oConfigNodeChildrenList = oConfigNodeChildren.ToList()
CurrentNodeConfigId = oNodeConfigId
AvailableConfigNodes.Clear()
Dim oNodeConfigList = NODE_CONFIGURABLE_NODES_DT.Select($"PARENT_NODE = {oNodeConfigId}").
Cast(Of DataRow).
Select(Function(row) New frmNewNode.NodeConfig() With {
.Id = row.Item("GUID"),
.Name = row.Item("NAME")
}).ToList()
AvailableConfigNodes = oNodeConfigList
If AvailableConfigNodes.Count > 0 Then
btnCreateNewNode.Enabled = True
End If
' END NEW NODE
If oHasRecordId Then
Update_Status_Label(True, $"NodeGUID {oGuid} - RecordID {oRecordId}", EditState.None)
Else
@ -357,7 +385,7 @@ Public Class frmNodeNavigation
CURRENT_RECORD_ID = oRecordId
ClassHelper.GetDocrecordLinks(CURRENT_RECORD_ID)
CURRENT_ENTITY_ID = oEntityID
CURRENT_ENTITY_ID = _EntityId
CURRENT_NODE_GUID = oNodeId
SELECTED_NODE_CAPTION = oNodeCaption
CURRENT_SEARCH_TYPE = "RECORD"
@ -365,12 +393,12 @@ Public Class frmNodeNavigation
' muss vor show selected record data kommen,
' sodass die datasource für die angehakten werte existiert (checked list box)
CtrlBuilder.WatchRecordChanges = False
ClassControlValues.LoadControlValuesListWithPlaceholders(oEntityID, CURRENT_RECORD_ID, 0, CtrlBuilder.AllControls, oEntityID)
ClassControlValues.LoadControlValuesListWithPlaceholders(_EntityId, CURRENT_RECORD_ID, 0, CtrlBuilder.AllControls, _EntityId)
CtrlBuilder.WatchRecordChanges = True
Await Show_Selected_Record_Data(CURRENT_RECORD_ID)
ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, oEntityID)
ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, _EntityId)
CONTROL_HANDLING()
@ -474,10 +502,10 @@ Public Class frmNodeNavigation
Try
If oEntityID <> CURRENT_ENTITY_ID Then
If _EntityId <> CURRENT_ENTITY_ID Then
LOGGER.Info("Entity-Data needs to be reloaded...")
CURRENT_ENTITY_ID = oEntityID
CURRENT_ENTITY_ID = _EntityId
CURRENT_CONSTRUCTOR_ID = oConstructID
Load_Adding_users()
Load_Configurable_Nodes()
@ -495,7 +523,7 @@ Public Class frmNodeNavigation
Dim result = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Select form
Where form.Item("FORM_ID") = oEntityID).Single()
Where form.Item("FORM_ID") = _EntityId).Single()
CONSTRUCTOR_DETAIL_ID = result.Item("GUID")
' CONSTRUCT_EXPAND = result.Item("EXPAND")
Dim FORM_DATE_FORMAT = result.Item("DATE_FORMAT")
@ -517,7 +545,7 @@ Public Class frmNodeNavigation
If DT_ADDING_USERS.Rows.Count > 0 Then
'Überprüfen ob für diese Entität ein spezifischer windream-User verwendet wird, wenn Dateien abgelegt werden?
Dim query1 = From _user In DT_ADDING_USERS.AsEnumerable()
Select _user Where _user.Item("ENTITY_ID") = oEntityID
Select _user Where _user.Item("ENTITY_ID") = _EntityId
Dim Rows1 = query1.ToList()
For Each _row In Rows1
FAU_AD_DOMAIN = _row.Item("AD_DOMAIN").ToString()
@ -553,7 +581,7 @@ Public Class frmNodeNavigation
Dim expression As String
Dim sql
'Dim sql = "SELECT CONTROL_ID, CONTROL_READ_ONLY FROM VWPMO_CONTROL_SCREEN WHERE CTRLTYPE_ID NOT IN (1) AND CONTROL_ENTITY_ID = " & oEntityID
DT_CONTROLS_ENTITY = ClassHelper.FILTER_DATATABLE(DT_VWPMO_CONTROL_SCREEN, "CTRLTYPE_ID NOT IN (1) AND CONTROL_ENTITY_ID = " & oEntityID, "")
DT_CONTROLS_ENTITY = ClassHelper.FILTER_DATATABLE(DT_VWPMO_CONTROL_SCREEN, "CTRLTYPE_ID NOT IN (1) AND CONTROL_ENTITY_ID = " & _EntityId, "")
expression = "CONTROL_READ_ONLY = " & 1
@ -576,7 +604,7 @@ Public Class frmNodeNavigation
Dim resultDT_VWPMO_CONSTRUCTOR_FORMS = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Select form
Where form.Item("FORM_ID") = oEntityID).Single()
Where form.Item("FORM_ID") = _EntityId).Single()
CURRENT_CONSTRUCTOR_DETAIL_ID = resultDT_VWPMO_CONSTRUCTOR_FORMS.Item("GUID")
@ -591,25 +619,25 @@ Public Class frmNodeNavigation
expression = String.Format("ENTITY_ID = {0} AND LANGUAGE = '{1}'", oEntityID, USER_LANGUAGE)
expression = String.Format("ENTITY_ID = {0} AND LANGUAGE = '{1}'", _EntityId, USER_LANGUAGE)
DT_COLUMNS_GRID_ENTITY = ClassHelper.FILTER_DATATABLE(DT_DOCSEARCH_RESULTLIST_CONFIG, expression, "SEQUENCE")
expression = String.Format("ENTITY_ID = {0} AND TYPE_ID = 10 AND LANGUAGE = '{1}'", oEntityID, USER_LANGUAGE)
expression = String.Format("ENTITY_ID = {0} AND TYPE_ID = 10 AND LANGUAGE = '{1}'", _EntityId, USER_LANGUAGE)
DT_DOCRESULT_DROPDOWN_ITEMS = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_DOCRESULT_DROPDOWN_ITEMS, expression, "SEQUENCE")
LOGGER.Debug($"Found {DT_DOCRESULT_DROPDOWN_ITEMS.Rows.Count} DT_DOCRESULT_DROPDOWN_ITEMS!")
DT_RESULTLIST_OPTIONS = ClassHelper.FILTER_DATATABLE(CURRENT_VARIABLE_CONTROLS, "ENTITY_ID = " & oEntityID, "")
expression = String.Format("ENTITY_ID = {0} AND LANGUAGE = '{1}' AND COLUMN_VIEW LIKE 'VALUE%'", oEntityID, USER_LANGUAGE)
DT_RESULTLIST_OPTIONS = ClassHelper.FILTER_DATATABLE(CURRENT_VARIABLE_CONTROLS, "ENTITY_ID = " & _EntityId, "")
expression = String.Format("ENTITY_ID = {0} AND LANGUAGE = '{1}' AND COLUMN_VIEW LIKE 'VALUE%'", _EntityId, USER_LANGUAGE)
DT_RESULTLIST_VARIABLE_VALUE = ClassHelper.FILTER_DATATABLE(DT_DOCSEARCH_RESULTLIST_CONFIG, expression, "SEQUENCE")
Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable()
Select form
Where form.Item("GUID") = oEntityID).Single()
Where form.Item("GUID") = _EntityId).Single()
'sql = String.Format("select * from TBPMO_RIGHT_USER WHERE USER_ID = {0} AND oEntityID = {1}", USER_GUID, oEntityID)
DT_RIGHTS_USER = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_RIGHT_USER, "ENTITY_ID = " & oEntityID, "")
DT_RIGHTS_USER = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_RIGHT_USER, "ENTITY_ID = " & _EntityId, "")
expression = String.Format("")
sql = String.Format("SELECT DISTINCT EDIT_REC,ADD_REC,DELETE_REC,ADD_DOC,VIEW_DOC,DELETE_DOC FROM TBPMO_RIGHT_GROUP WHERE ENTITY_ID = {0} AND GROUP_ID IN (SELECT GROUP_ID FROM TBDD_GROUPS_USER WHERE USER_ID = {1})", oEntityID, USER_GUID)
sql = String.Format("SELECT DISTINCT EDIT_REC,ADD_REC,DELETE_REC,ADD_DOC,VIEW_DOC,DELETE_DOC FROM TBPMO_RIGHT_GROUP WHERE ENTITY_ID = {0} AND GROUP_ID IN (SELECT GROUP_ID FROM TBDD_GROUPS_USER WHERE USER_ID = {1})", _EntityId, USER_GUID)
DT_RIGHTS_GROUP = MYDB_ECM.GetDatatable(sql)
sql = String.Format("SELECT VIEW_ID FROM TBPMO_USER_CONSTR_VIEW_TYPE WHERE CONSTRUCTOR_DETAIL_ID = {0} AND [ENTITY_ID] = {1} AND USER_ID = {2}", CURRENT_CONSTRUCTOR_DETAIL_ID, oEntityID, USER_GUID)
sql = String.Format("SELECT VIEW_ID FROM TBPMO_USER_CONSTR_VIEW_TYPE WHERE CONSTRUCTOR_DETAIL_ID = {0} AND [ENTITY_ID] = {1} AND USER_ID = {2}", CURRENT_CONSTRUCTOR_DETAIL_ID, _EntityId, USER_GUID)
SELECTED_NODE_RECORD_ID = 0
@ -617,26 +645,26 @@ Public Class frmNodeNavigation
' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS
Dim result1 = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Select form
Where form.Item("FORM_ID") = oEntityID).Single()
Where form.Item("FORM_ID") = _EntityId).Single()
CURRENT_PARENT_ENTITY_ID = 0
' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS
Dim query = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Select form
Where form.Item("FORM_ID") = oEntityID
Where form.Item("FORM_ID") = _EntityId
Dim QuickViewSQL = query.Single().Item("SQL_QUICK_VIEW")
CURRENT_ENTITYSQL = Get_Grid_Sql_NODE_NAV(CONSTRUCTORID, oEntityID, CURRENT_CONSTRUCTOR_DETAIL_ID, USER_GUID)
CURRENT_ENTITYSQL = Get_Grid_Sql_NODE_NAV(CONSTRUCTORID, _EntityId, CURRENT_CONSTRUCTOR_DETAIL_ID, USER_GUID)
' CURRENT_ENTITYSQL = GridSQL
'Anzahl der Datensätze
ENTITY_RECORD_COUNT = MYDB_ECM.GetScalarValue("SELECT COUNT(*) FROM TBPMO_RECORD where PARENT_RECORD = 0 AND FORM_ID = " & oEntityID)
ENTITY_RECORD_COUNT = MYDB_ECM.GetScalarValue("SELECT COUNT(*) FROM TBPMO_RECORD where PARENT_RECORD = 0 AND FORM_ID = " & _EntityId)
ClassDOC_SEARCH.Get_DOC_RESULTTABLE(DT_RESULTLIST_OPTIONS, DT_RESULTLIST_VARIABLE_VALUE, DT_COLUMNS_GRID_ENTITY, oEntityID, SELECTED_NODE_RECORD_ID, True, True)
ClassDOC_SEARCH.Get_DOC_RESULTTABLE(DT_RESULTLIST_OPTIONS, DT_RESULTLIST_VARIABLE_VALUE, DT_COLUMNS_GRID_ENTITY, _EntityId, SELECTED_NODE_RECORD_ID, True, True)
DT_TBPMO_FORM_VIEW = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_FORM_VIEW, "FORM_ID = " & oEntityID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID, "")
DT_TBPMO_FORM_VIEW = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_FORM_VIEW, "FORM_ID = " & _EntityId & " AND SCREEN_ID = " & CURRENT_SCREEN_ID, "")
CURRENT_ENTITYSTRING = DT_TBPMO_FORM_VIEW.Rows(0).Item("FORM_TITLE")
FORMVIEW_ID = DT_TBPMO_FORM_VIEW.Rows(0).Item("GUID")
@ -658,10 +686,10 @@ Public Class frmNodeNavigation
If IsNothing(CURRENT_DT_ENTITY_RECORDS) Then
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in getting Entity-Data - Check logfile")
Else
CURRENT_DT_ENTITY_RECORDS.TableName = "VWPMO_ENTITY_TABLE" & oEntityID
CURRENT_DT_ENTITY_RECORDS.TableName = "VWPMO_ENTITY_TABLE" & _EntityId
' Dim SQL_AutoValues = "SELECT GUID AS CONTROL_ID, CONNECTION_ID_1 AS CONNECTION_ID, SQL_COMMAND_1 AS SQL_COMMAND FROM TBPMO_CONTROL WHERE CONNECTION_ID_1 <> '' AND SQL_COMMAND_1 <> '' AND FORM_ID = " & oEntityID
Dim DT_AUTOVALUES = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_CONTROL, "CONNECTION_ID_1 > 0 AND SQL_COMMAND_1 <> '' AND FORM_ID = " & oEntityID, "")
Dim DT_AUTOVALUES = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_CONTROL, "CONNECTION_ID_1 > 0 AND SQL_COMMAND_1 <> '' AND FORM_ID = " & _EntityId, "")
CURRENT_SQL_AUTO_VALUES_DT = DT_AUTOVALUES
@ -684,7 +712,7 @@ Public Class frmNodeNavigation
CtrlBuilder.WatchRecordChanges = False
ClassControlValues.LoadControlValuesList(oEntityID, CtrlBuilder.MasterPanel.Controls)
ClassControlValues.LoadControlValuesList(_EntityId, CtrlBuilder.MasterPanel.Controls)
CtrlBuilder.WatchRecordChanges = True
'Zurücksetzen
@ -754,7 +782,7 @@ Public Class frmNodeNavigation
LOGGER.Debug("Show_Selected_Record_Data: " & Rec_ID.ToString)
Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable()
Select form
Where form.Item("GUID") = oEntityID).Single()
Where form.Item("GUID") = _EntityId).Single()
'Update_Status_Label(False, "")
LOGGER.Debug("RECORD ID: " & Rec_ID.ToString)
@ -770,7 +798,7 @@ Public Class frmNodeNavigation
ENTITY_RELOAD_AFT_CONTROL_LOAD = False
CtrlBuilder.WatchRecordChanges = False
If pnlControls.Enabled = False Then pnlControls.Enabled = True
ClassControlValues.LoadControlValues(SELECTED_NODE_RECORD_ID, 0, oEntityID, CtrlBuilder.AllControls, oEntityID)
ClassControlValues.LoadControlValues(SELECTED_NODE_RECORD_ID, 0, _EntityId, CtrlBuilder.AllControls, _EntityId)
CtrlBuilder.WatchRecordChanges = True
Dim sw As New SW("Show Selected RecordData 2")
@ -799,14 +827,14 @@ Public Class frmNodeNavigation
Sub Load_Controls(frmview_id As Integer)
Dim sw As New SW("Load_Controls")
FORMVIEW_ID = frmview_id
oEntityID = DT_TBPMO_FORM_VIEW.Rows(0).Item("FORM_ID")
CURRENT_ENTITY_ID = oEntityID
_EntityId = DT_TBPMO_FORM_VIEW.Rows(0).Item("FORM_ID")
CURRENT_ENTITY_ID = _EntityId
CtrlBuilder = New ClassControlBuilder(pnlControls)
CtrlCommandUI = New ClassControlCommandsUI(CtrlBuilder,
ContextMenuDetails,
AddressOf NewEditAppointment)
CtrlCommandUI.LoadControls(oEntityID)
CtrlCommandUI.LoadControls(_EntityId)
Lock_RecordControls(True)
AddHandler CtrlBuilder.OnRecordChanged, AddressOf OnRecordChanged
@ -929,7 +957,7 @@ Public Class frmNodeNavigation
Sub NewEditAppointment(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Try
Dim ctrl As Windows.Forms.Control = sender
ClassFunctionCommandsUI.NewEditAppointment(ctrl.Name, oEntityID, SELECTED_NODE_RECORD_ID, pnlControls.Controls)
ClassFunctionCommandsUI.NewEditAppointment(ctrl.Name, _EntityId, SELECTED_NODE_RECORD_ID, pnlControls.Controls)
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
End Try
@ -996,14 +1024,14 @@ Public Class frmNodeNavigation
' sodass die datasource für die angehakten werte existiert (checked list box)
CtrlBuilder.WatchRecordChanges = False
ClassControlValues.LoadControlValuesListWithPlaceholders(CURRENT_ENTITY_ID, CURRENT_RECORD_ID, 0, CtrlBuilder.AllControls, oEntityID)
ClassControlValues.LoadControlValuesListWithPlaceholders(CURRENT_ENTITY_ID, CURRENT_RECORD_ID, 0, CtrlBuilder.AllControls, _EntityId)
CtrlBuilder.WatchRecordChanges = True
If CURRENT_RECORD_ID > 0 Then
Await Show_Selected_Record_Data(CURRENT_RECORD_ID)
End If
ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, oEntityID)
ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, _EntityId)
CONTROL_HANDLING()
@ -1165,7 +1193,7 @@ Public Class frmNodeNavigation
' Abhängige Listen laden
CtrlBuilder.WatchRecordChanges = False
'ClassControlValues.LoadControlValuesListWithPlaceholders(ENTITY_ID, RECORD_ID, PARENT_ID, CtrlBuilder.AllControls, ENTITY_ID)
ClassControlValues.Enable_Depending_Controls(oEntityID, SELECTED_NODE_RECORD_ID, 0, CtrlBuilder.AllControls, oEntityID)
ClassControlValues.Enable_Depending_Controls(_EntityId, SELECTED_NODE_RECORD_ID, 0, CtrlBuilder.AllControls, _EntityId)
CtrlBuilder.WatchRecordChanges = True
RECORD_ENABLED = True
@ -1208,7 +1236,7 @@ Public Class frmNodeNavigation
'ActivateAllTabs()
End If
If RECORD_ENABLED = True Then
ClassControlValues.UnloadControlValuesList(SELECTED_NODE_RECORD_ID, oEntityID, CtrlBuilder.AllControls)
ClassControlValues.UnloadControlValuesList(SELECTED_NODE_RECORD_ID, _EntityId, CtrlBuilder.AllControls)
End If
If Not IsNothing(CtrlCommandUI) Then
'If CtrlCommandUI.IsInsert Then
@ -1304,7 +1332,7 @@ Public Class frmNodeNavigation
Public Sub TrySave_DoSave()
ERROR_WHILE_SAVING = False
' Record Speichern
Dim ResultMessage = CtrlCommandUI.SaveRecord(SELECTED_NODE_RECORD_ID, oEntityID)
Dim ResultMessage = CtrlCommandUI.SaveRecord(SELECTED_NODE_RECORD_ID, _EntityId)
If ResultMessage <> "ERROR" Then
' Status anzeigen
Update_Status_Label(True, ResultMessage)
@ -1397,12 +1425,12 @@ Public Class frmNodeNavigation
#End Region
Private Sub Customer_Run_Procedures()
Try
Dim DT As DataTable = MYDB_ECM.GetDatatable("SELECT * FROM TBPMO_RUN_PROCEDURES WHERE FORM_ID = " & oEntityID)
Dim DT As DataTable = MYDB_ECM.GetDatatable("SELECT * FROM TBPMO_RUN_PROCEDURES WHERE FORM_ID = " & _EntityId)
If Not DT Is Nothing Then
For Each row As DataRow In DT.Rows
Dim prsql As String = row.Item("EXECUTE_COMMAND")
prsql = prsql.ToUpper.Replace("@FORM_ID", oEntityID)
prsql = prsql.ToUpper.Replace("@ENTITY_ID", oEntityID)
prsql = prsql.ToUpper.Replace("@FORM_ID", _EntityId)
prsql = prsql.ToUpper.Replace("@ENTITY_ID", _EntityId)
prsql = prsql.ToUpper.Replace("@RECORD_ID", SELECTED_NODE_RECORD_ID)
MYDB_ECM.ExecuteNonQuery(prsql)
Next
@ -1439,7 +1467,7 @@ Public Class frmNodeNavigation
End If
Dim DT_RESULT As DataTable
DT_RESULT = ClassDOC_SEARCH.Get_DOC_RESULTTABLE(DT_RESULTLIST_OPTIONS, DT_RESULTLIST_VARIABLE_VALUE, DT_COLUMNS_GRID_ENTITY, oEntityID, SELECTED_NODE_RECORD_ID, True)
DT_RESULT = ClassDOC_SEARCH.Get_DOC_RESULTTABLE(DT_RESULTLIST_OPTIONS, DT_RESULTLIST_VARIABLE_VALUE, DT_COLUMNS_GRID_ENTITY, _EntityId, SELECTED_NODE_RECORD_ID, True)
If IsNothing(DT_RESULT) Then
Dim msg = "wrong DocSearch-Configuration or unexpected Error in Get_DOC_RESULTTABLE - Check logfile and contact Digital Data"
@ -1569,7 +1597,7 @@ Public Class frmNodeNavigation
Private Sub RUN_ENTITY_DOC_SEARCH()
Dim sw As New SW("RUN_ENTITY_DOC_SEARCH")
Try
Dim oSQL = $"SELECT ENTITY_DOC_SEARCH FROM TBPMO_FORM WHERE GUID = {oEntityID}"
Dim oSQL = $"SELECT ENTITY_DOC_SEARCH FROM TBPMO_FORM WHERE GUID = {_EntityId}"
CURRENT_DOCSEARCH_SQL = MYDB_ECM.GetScalarValue(oSQL)
If CURRENT_DOCSEARCH_SQL <> String.Empty Then
Dim oText = $"Die Entität-weite Suche wird im Hintergrund ausgeführt und in einem separaten Fenster angezeigt sobald sie fertig ist."
@ -1579,7 +1607,7 @@ Public Class frmNodeNavigation
MsgBox(oText, vbOKOnly, "Information")
CURRENT_DOCSEARCH_SQL = CURRENT_DOCSEARCH_SQL.Replace("@ENTITY_ID", oEntityID)
CURRENT_DOCSEARCH_SQL = CURRENT_DOCSEARCH_SQL.Replace("@ENTITY_ID", _EntityId)
CURRENT_DOCSEARCH_SQL = CURRENT_DOCSEARCH_SQL.Replace("@USER_LANGUAGE", USER_LANGUAGE)
CURRENT_DOCSEARCH_SQL = CURRENT_DOCSEARCH_SQL.Replace("@USER_ECM_ID", USERID_FK_INT_ECM)
CURRENT_DOCSEARCH_SQL = CURRENT_DOCSEARCH_SQL.Replace("@USER_ID", USER_GUID)
@ -1821,7 +1849,7 @@ Public Class frmNodeNavigation
End Sub
Private Function Get_DocGrid_Layout_Filename()
Dim EntityRegex As New RegularExpressions.Regex("\s+\(\d+\)")
Dim Filename As String = String.Format("GridViewDoc_Search_{0}_{1}_UserLayout.xml", "Entity" & oEntityID, CONSTRUCTOR_DETAIL_ID)
Dim Filename As String = String.Format("GridViewDoc_Search_{0}_{1}_UserLayout.xml", "Entity" & _EntityId, CONSTRUCTOR_DETAIL_ID)
LAYOUT_DOC_GRIDVIEW = System.IO.Path.Combine(Application.UserAppDataPath(), Filename)
Return LAYOUT_DOC_GRIDVIEW
End Function
@ -1862,7 +1890,7 @@ Public Class frmNodeNavigation
End Sub
#Region "Dropping Files"
Sub Drag_Enter(e As DragEventArgs)
If oEntityID <> 0 Then
If _EntityId <> 0 Then
ClassDragDrop.Drag_enter(e)
Else
Update_Status_Label(True, "No entity selected", EditState.Insert)
@ -1881,7 +1909,7 @@ Public Class frmNodeNavigation
ClassHelper.MSGBOX_Handler("INFO", "Attention", "Check Your windream-connection and restart ADDI afterwards.", "Could not create a windream session!")
Exit Function
End If
If oEntityID <> 0 And (RIGHT_READ_ONLY_DOC = False And GridControlDocSearch.ContextMenuStrip.Name = "ContextMenuStripResultFiles") Or RIGHT_ADD_DOC = True Then
If _EntityId <> 0 And (RIGHT_READ_ONLY_DOC = False And GridControlDocSearch.ContextMenuStrip.Name = "ContextMenuStripResultFiles") Or RIGHT_ADD_DOC = True Then
Dim sql = "select count(*) from VWPMO_DOKUMENTTYPES where FORMVIEW_ID = " & FORMVIEW_ID
Dim count_DT = MYDB_ECM.GetScalarValue(sql)
If count_DT = 0 And CURRENT_ENTITY_REDUNDANT_ID = 0 Then
@ -2201,7 +2229,7 @@ Public Class frmNodeNavigation
Dim oSelectedDocument = oSelectedDocs.First
Dim Result = ClassDOC_SEARCH.Get_File_Rights(oSelectedDocument.DocId)
If Not IsNothing(Result) Then
ROW_READ_ONLY = False
_RowReadOnly = False
Select Case Result.ToString
Case "R"
ContextMenu_Read()
@ -2215,7 +2243,7 @@ Public Class frmNodeNavigation
Else
LOGGER.Warn("FileRight is '' but User is Admin!! - Check the configuration!")
End If
ROW_READ_ONLY = True
_RowReadOnly = True
End Select
CURRENT_FILE_RIGHT = Result.ToString
Else
@ -2223,7 +2251,7 @@ Public Class frmNodeNavigation
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Getting rights - check the log")
e.Cancel = True
End If
If ROW_READ_ONLY = False Then
If _RowReadOnly = False Then
If RIGHT_READ_ONLY_DOC = True Then
If USER_IS_ADMIN = False Then
ContextMenu_Read()
@ -2510,8 +2538,8 @@ Public Class frmNodeNavigation
End Sub
Private Sub frmNodeNavigation_Click(sender As Object, e As EventArgs) Handles MyBase.Click
If CURRENT_ENTITY_ID <> oEntityID Then
CURRENT_ENTITY_ID = oEntityID
If CURRENT_ENTITY_ID <> _EntityId Then
CURRENT_ENTITY_ID = _EntityId
CURRENT_RECORD_ID = 0
End If
End Sub
@ -2698,15 +2726,15 @@ Public Class frmNodeNavigation
RUN_ENTITY_DOC_SEARCH()
End Sub
Private Sub bbtnitmReloadView_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitmReloadView.ItemClick
ReloadTreeView()
End Sub
Sub ReloadTreeView()
Private Async Function bbtnitmReloadView_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) As Task Handles bbtnitmReloadView.ItemClick
Await ReloadTreeView()
End Function
Async Function ReloadTreeView() As Task
TreeListDevexpress.Nodes.Clear()
Load_nodes()
End Sub
Await Load_nodes()
End Function
Private Sub UnterknotenNeuOrdnenToolStripMenuItem_Click(sender As Object, e As EventArgs)
Private Async Function UnterknotenNeuOrdnenToolStripMenuItem_Click(sender As Object, e As EventArgs) As Task
MyTreeListViewState = New ClassTreeListViewState(TreeListDevexpress)
Dim oQuestion = "Wollen Sie die gesamte Struktur unterhalb dieses Knotens neu ordnen lassen?" & vbNewLine & "Nein, wenn nur die direkten Unterknoten neu geordnet werden sollen!"
If USER_LANGUAGE <> "de-DE" Then
@ -2718,7 +2746,7 @@ Public Class frmNodeNavigation
If result = MsgBoxResult.Yes Then
oSubnodes = "1"
ElseIf result = MsgBoxResult.Cancel Then
Exit Sub
Exit Function
End If
Cursor = Cursors.WaitCursor
Dim oSQL = $"EXEC PRCUST_REORDER_CHILD_NODES "
@ -2733,7 +2761,7 @@ Public Class frmNodeNavigation
oNodeGUID = oID
oSQL += $" {oNodeGUID},{oSubnodes} "
MYDB_ECM.ExecuteNonQuery(oSQL)
ReloadTreeView()
Await ReloadTreeView()
MyTreeListViewState.LoadState()
TreeListDevexpress.FocusedNode = FocusedNode
@ -2741,7 +2769,7 @@ Public Class frmNodeNavigation
Cursor = Cursors.Default
End Sub
End Function
'Private Sub TreeListDevexpress_MouseUp(sender As Object, e As MouseEventArgs) Handles TreeListDevexpress.MouseUp
' Dim tree As TreeList = TryCast(sender, TreeList)
@ -2828,7 +2856,7 @@ Public Class frmNodeNavigation
'End If
End Sub
Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BbtnitmNodeReorder.ItemClick
Private Async Function BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) As Task Handles BbtnitmNodeReorder.ItemClick
MyTreeListViewState = New ClassTreeListViewState(TreeListDevexpress)
Dim oQuestion = "Wollen Sie die gesamte Struktur unterhalb dieses Knotens neu ordnen lassen?" & vbNewLine & "Nein, wenn nur die direkten Unterknoten neu geordnet werden sollen!"
If USER_LANGUAGE <> "de-DE" Then
@ -2840,7 +2868,7 @@ Public Class frmNodeNavigation
If result = MsgBoxResult.Yes Then
oSubnodes = "1"
ElseIf result = MsgBoxResult.Cancel Then
Exit Sub
Exit Function
End If
Cursor = Cursors.WaitCursor
Dim oSQL = $"EXEC PRCUST_REORDER_CHILD_NODES "
@ -2855,14 +2883,14 @@ Public Class frmNodeNavigation
oNodeGUID = oID
oSQL += $" {oNodeGUID},{oSubnodes} "
MYDB_ECM.ExecuteNonQuery(oSQL)
ReloadTreeView()
Await ReloadTreeView()
MyTreeListViewState.LoadState()
TreeListDevexpress.FocusedNode = FocusedNode
Update_Status_Label(True, "Nodes reordered")
End If
Cursor = Cursors.Default
End Sub
End Function
Private Sub bbtnItm_TV_Collape_Expand_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnItm_TV_Collape_Expand.ItemClick
If TV_Collapse_ExpandState = "Collapse" Then
@ -2893,4 +2921,28 @@ Public Class frmNodeNavigation
DocumentViewer.CloseDocument()
End If
End Sub
Private Async Sub btnCreateNewNode_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnCreateNewNode.ItemClick
Dim oForm As New frmNewNode() With {
.NodeConfigTypes = AvailableConfigNodes
}
If oForm.ShowDialog() <> DialogResult.OK Then
Exit Sub
End If
Dim oParentNodeGuid As Integer = FocusedNode.Item("GUID")
Dim oIsExpanded As Boolean = FocusedNode.Expanded
Dim oNodeCreator = New ClassNodeCreator(LOGCONFIG, ImageCollection1)
oNodeCreator.AddNode(_EntityId, oForm.Title, oParentNodeGuid, oForm.Id)
Await ReloadTreeView()
Dim oNode = TreeListDevexpress.FindNodeByFieldValue("GUID", oParentNodeGuid)
Dim oNodeIndex = TreeListDevexpress.MakeNodeVisible(oNode)
TreeListDevexpress.SetFocusedNode(oNode)
If oIsExpanded Then
oNode.Expand()
End If
End Sub
End Class

View File

@ -331,8 +331,9 @@ Partial Class frmStructureNodeConfig
'
Me.TYPE_NODENumericUpDown.DataBindings.Add(New System.Windows.Forms.Binding("Value", Me.TBPMO_STRUCTURE_NODES_CONFIGURATIONBindingSource, "TYPE_NODE", True))
Me.TYPE_NODENumericUpDown.Location = New System.Drawing.Point(659, 153)
Me.TYPE_NODENumericUpDown.Maximum = New Decimal(New Integer() {1000, 0, 0, 0})
Me.TYPE_NODENumericUpDown.Name = "TYPE_NODENumericUpDown"
Me.TYPE_NODENumericUpDown.Size = New System.Drawing.Size(39, 22)
Me.TYPE_NODENumericUpDown.Size = New System.Drawing.Size(55, 22)
Me.TYPE_NODENumericUpDown.TabIndex = 6
Me.TYPE_NODENumericUpDown.Value = New Decimal(New Integer() {1, 0, 0, 0})
'

View File

@ -154,7 +154,7 @@
<data name="BindingNavigatorAddNewItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC
wAAADsABataJCQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC
pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++
Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ
/5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA
@ -172,7 +172,7 @@
<data name="BindingNavigatorDeleteItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC
wAAADsABataJCQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC
DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC
rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV
i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG
@ -184,7 +184,7 @@
<data name="BindingNavigatorMoveFirstItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77
wAAADsABataJCQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77
wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0
v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg
UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA
@ -195,7 +195,7 @@
<data name="BindingNavigatorMovePreviousItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w
wAAADsABataJCQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w
5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f
Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+
08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC
@ -204,7 +204,7 @@
<data name="BindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78
wAAADsABataJCQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78
n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI
N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f
oAc0QjgAAAAASUVORK5CYII=
@ -213,7 +213,7 @@
<data name="BindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+//
wAAADsABataJCQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+//
h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B
twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA
kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG
@ -224,7 +224,7 @@
<data name="TBPMO_STRUCTURE_NODES_CONFIGURATIONBindingNavigatorSaveItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo
wAAADsABataJCQAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo
dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII=
</value>
</data>

View File

@ -402,6 +402,11 @@
Private Sub frmStructureNodeConfig_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Load_Image()
If cmbEntity.Items.Count > 0 Then
cmbEntity.SelectedIndex = 0
LoadData()
End If
End Sub
Private Sub TreeView1_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeView1.AfterSelect
@ -420,12 +425,15 @@
End Sub
Private Sub cmbEntity_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbEntity.SelectedIndexChanged
LoadData()
End Sub
Private Sub LoadData()
If cmbEntity.SelectedIndex <> -1 Then
Me.TBPMO_STRUCTURE_NODES_CONFIGURATIONTableAdapter.Fill(Me.DD_DMSDataSet.TBPMO_STRUCTURE_NODES_CONFIGURATION, cmbEntity.SelectedValue)
If DD_DMSDataSet.TBPMO_STRUCTURE_NODES_CONFIGURATION.Rows.Count > 0 Then
Load_TreeView()
End If
End If
End Sub