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 Datatable_Nodes As DataTable
Public Shared TREEVIEW_IMAGELIST As ImageList Public Shared TREEVIEW_IMAGELIST As ImageList
Public Shared IMAGE_COLLECTION As ImageCollection 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) 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 Try
Dim connection As New SqlConnection Dim connection As New SqlConnection
@ -38,56 +41,56 @@ Public Class ClassNodeNavigation
End Function End Function
Public Shared Function CREATE_IMAGE_COLL(DT_IMAGELIST As DataTable) 'Public Shared Function CREATE_IMAGE_COLL(DT_IMAGELIST As DataTable)
IMAGE_COLLECTION = New ImageCollection ' IMAGE_COLLECTION = New ImageCollection
For Each row As DataRow In DT_IMAGELIST.Rows ' For Each row As DataRow In DT_IMAGELIST.Rows
Try ' Try
Dim bimage = row.Item("NODE_IMAGE") ' Dim bimage = row.Item("NODE_IMAGE")
If Not IsDBNull(bimage) Then ' If Not IsDBNull(bimage) Then
Dim Node_image = ByteArrayToBitmap(bimage) ' Dim Node_image = ByteArrayToBitmap(bimage)
IMAGE_COLLECTION.AddImage(Node_image, row.Item("GUID")) 'row.Item("GUID").ToString & "#" & row.Item("ENTITY_ID") ' IMAGE_COLLECTION.AddImage(Node_image, row.Item("GUID")) 'row.Item("GUID").ToString & "#" & row.Item("ENTITY_ID")
End If ' End If
Catch ex As Exception ' Catch ex As Exception
End Try ' End Try
Next ' Next
End Function 'End Function
Public Shared Function Return_Node(PARENT_ID As Integer, ParentNode As TreeNode) 'Public Shared Function Return_Node(PARENT_ID As Integer, ParentNode As TreeNode)
Dim expression As String ' Dim expression As String
expression = "PARENT_GUID = " & PARENT_ID 'Einschränkung auf Type und Parent_Guid ' expression = "PARENT_GUID = " & PARENT_ID 'Einschränkung auf Type und Parent_Guid
Dim foundRows() As DataRow ' Dim foundRows() As DataRow
foundRows = Datatable_Nodes.Select(expression) ' foundRows = Datatable_Nodes.Select(expression)
Dim q As Integer ' Dim q As Integer
For q = 0 To foundRows.GetUpperBound(0) ' For q = 0 To foundRows.GetUpperBound(0)
Dim ID9 = foundRows(q)("GUID") ' Dim ID9 = foundRows(q)("GUID")
Dim LevelEntity9 = foundRows(q)("ENTITY_ID") ' Dim LevelEntity9 = foundRows(q)("ENTITY_ID")
Dim controlID9 = foundRows(q)("CONTROL_ID") ' Dim controlID9 = foundRows(q)("CONTROL_ID")
Dim nodetext9 = foundRows(q)("NODE_CAPTION") ' Dim nodetext9 = foundRows(q)("NODE_CAPTION")
Dim RECORD_ID = foundRows(q)("RECORD_ID") ' Dim RECORD_ID = foundRows(q)("RECORD_ID")
Dim NODE_CONFIG_ID = foundRows(q)("NODE_CONFIG_ID") ' Dim NODE_CONFIG_ID = foundRows(q)("NODE_CONFIG_ID")
' Node erstellen.. ' ' Node erstellen..
Dim NEW_NODE As TreeNode ' Dim NEW_NODE As TreeNode
NEW_NODE = New TreeNode(nodetext9) ' NEW_NODE = New TreeNode(nodetext9)
ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity9, NEW_NODE) ' ClassNodeNavigation.Check_NODE_CONFIG_ID(LevelEntity9, NEW_NODE)
NEW_NODE.Tag = ClassNodeNavigation.CreateNODE_TAG(LevelEntity9, ID9, RECORD_ID, NODE_CONFIG_ID) ' NEW_NODE.Tag = ClassNodeNavigation.CreateNODE_TAG(LevelEntity9, ID9, RECORD_ID, NODE_CONFIG_ID)
Dim index = 0 ' Dim index = 0
For Each img As String In TREEVIEW_IMAGELIST.Images.Keys ' For Each img As String In TREEVIEW_IMAGELIST.Images.Keys
If img.Replace("LEVEL#ENTITY", "") = "6" & LevelEntity9.ToString Then ' If img.Replace("LEVEL#ENTITY", "") = "6" & LevelEntity9.ToString Then
Exit For ' Exit For
End If ' End If
index += 1 ' index += 1
Next ' Next
NEW_NODE.ImageIndex = index ' NEW_NODE.ImageIndex = index
NEW_NODE.SelectedImageIndex = index ' NEW_NODE.SelectedImageIndex = index
' ..und einfügen ' ' ..und einfügen
ParentNode.Nodes.Add(NEW_NODE) ' ParentNode.Nodes.Add(NEW_NODE)
Next ' ' Next '
End Function 'End Function
Public Shared Sub Check_NODE_CONFIG_ID(ENTITY_ID As Integer, myTreeNode As TreeNode) Public Shared Sub Check_NODE_CONFIG_ID(ENTITY_ID As Integer, myTreeNode As TreeNode)
Try Try
If myTreeNode Is Nothing Then 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.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.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\ClassWDRights.vb" />
<Compile Include="Classes\ClassWindreamDocGrid.vb" /> <Compile Include="Classes\ClassWindreamDocGrid.vb" />
<Compile Include="Classes\ClassWorkflow.vb" /> <Compile Include="Classes\ClassWorkflow.vb" />
<Compile Include="Classes\NodeNavigation\ClassNodeCreator.vb" />
<Compile Include="Classes\NodeNavigation\ClassNodeLoader.vb" />
<Compile Include="DD_DMSDataSet.Designer.vb"> <Compile Include="DD_DMSDataSet.Designer.vb">
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
<DesignTime>True</DesignTime> <DesignTime>True</DesignTime>
@ -404,6 +406,12 @@
<Compile Include="frmMessageBox.vb"> <Compile Include="frmMessageBox.vb">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Include="frmNewNode.Designer.vb">
<DependentUpon>frmNewNode.vb</DependentUpon>
</Compile>
<Compile Include="frmNewNode.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmNewVariant.Designer.vb"> <Compile Include="frmNewVariant.Designer.vb">
<DependentUpon>frmNewVariant.vb</DependentUpon> <DependentUpon>frmNewVariant.vb</DependentUpon>
</Compile> </Compile>
@ -872,6 +880,9 @@
<EmbeddedResource Include="frmMessageBox.resx"> <EmbeddedResource Include="frmMessageBox.resx">
<DependentUpon>frmMessageBox.vb</DependentUpon> <DependentUpon>frmMessageBox.vb</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="frmNewNode.resx">
<DependentUpon>frmNewNode.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmNewVariant.en-US.resx"> <EmbeddedResource Include="frmNewVariant.en-US.resx">
<DependentUpon>frmNewVariant.vb</DependentUpon> <DependentUpon>frmNewVariant.vb</DependentUpon>
</EmbeddedResource> </EmbeddedResource>

View File

@ -496,7 +496,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="GridControlMain.Size" type="System.Drawing.Size, System.Drawing"> <data name="GridControlMain.Size" type="System.Drawing.Size, System.Drawing">
<value>910, 237</value> <value>908, 237</value>
</data> </data>
<data name="GridControlMain.TabIndex" type="System.Int32, mscorlib"> <data name="GridControlMain.TabIndex" type="System.Int32, mscorlib">
<value>2</value> <value>2</value>
@ -592,7 +592,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="pnlDetails.Size" type="System.Drawing.Size, System.Drawing"> <data name="pnlDetails.Size" type="System.Drawing.Size, System.Drawing">
<value>699, 223</value> <value>699, 231</value>
</data> </data>
<data name="pnlDetails.TabIndex" type="System.Int32, mscorlib"> <data name="pnlDetails.TabIndex" type="System.Int32, mscorlib">
<value>4</value> <value>4</value>
@ -634,7 +634,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="pnlDocFill.Size" type="System.Drawing.Size, System.Drawing"> <data name="pnlDocFill.Size" type="System.Drawing.Size, System.Drawing">
<value>488, 198</value> <value>486, 206</value>
</data> </data>
<data name="pnlDocFill.TabIndex" type="System.Int32, mscorlib"> <data name="pnlDocFill.TabIndex" type="System.Int32, mscorlib">
<value>5</value> <value>5</value>
@ -681,10 +681,10 @@
<value>Ansicht eingeschränkt - Klick Bearbeiten für Entsperren</value> <value>Ansicht eingeschränkt - Klick Bearbeiten für Entsperren</value>
</data> </data>
<data name="statStripDoc.Location" type="System.Drawing.Point, System.Drawing"> <data name="statStripDoc.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 198</value> <value>0, 206</value>
</data> </data>
<data name="statStripDoc.Size" type="System.Drawing.Size, System.Drawing"> <data name="statStripDoc.Size" type="System.Drawing.Size, System.Drawing">
<value>488, 25</value> <value>486, 25</value>
</data> </data>
<data name="statStripDoc.TabIndex" type="System.Int32, mscorlib"> <data name="statStripDoc.TabIndex" type="System.Int32, mscorlib">
<value>0</value> <value>0</value>
@ -720,7 +720,7 @@
<value>1</value> <value>1</value>
</data> </data>
<data name="SplitContainerDetails.Size" type="System.Drawing.Size, System.Drawing"> <data name="SplitContainerDetails.Size" type="System.Drawing.Size, System.Drawing">
<value>1201, 227</value> <value>1201, 235</value>
</data> </data>
<data name="SplitContainerDetails.TabIndex" type="System.Int32, mscorlib"> <data name="SplitContainerDetails.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@ -896,7 +896,7 @@
<value>1</value> <value>1</value>
</data> </data>
<data name="TabDetails.Size" type="System.Drawing.Size, System.Drawing"> <data name="TabDetails.Size" type="System.Drawing.Size, System.Drawing">
<value>1201, 254</value> <value>1201, 262</value>
</data> </data>
<data name="TabDetails.Text" xml:space="preserve"> <data name="TabDetails.Text" xml:space="preserve">
<value>Detailansicht</value> <value>Detailansicht</value>
@ -914,7 +914,7 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="TCDetails.Size" type="System.Drawing.Size, System.Drawing"> <data name="TCDetails.Size" type="System.Drawing.Size, System.Drawing">
<value>1203, 282</value> <value>1203, 290</value>
</data> </data>
<data name="TCDetails.TabIndex" type="System.Int32, mscorlib"> <data name="TCDetails.TabIndex" type="System.Int32, mscorlib">
<value>3</value> <value>3</value>
@ -1889,7 +1889,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="TreeListDevexpress.Size" type="System.Drawing.Size, System.Drawing"> <data name="TreeListDevexpress.Size" type="System.Drawing.Size, System.Drawing">
<value>1201, 254</value> <value>1201, 264</value>
</data> </data>
<metadata name="ImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>301, 17</value> <value>301, 17</value>
@ -1918,7 +1918,7 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="XtraTabPage1.Size" type="System.Drawing.Size, System.Drawing"> <data name="XtraTabPage1.Size" type="System.Drawing.Size, System.Drawing">
<value>1201, 254</value> <value>1201, 264</value>
</data> </data>
<data name="XtraTabPage1.Text" xml:space="preserve"> <data name="XtraTabPage1.Text" xml:space="preserve">
<value>NodeNavigation(beta)</value> <value>NodeNavigation(beta)</value>
@ -1963,7 +1963,7 @@
<value>1</value> <value>1</value>
</data> </data>
<data name="SplitContainerMain.Size" type="System.Drawing.Size, System.Drawing"> <data name="SplitContainerMain.Size" type="System.Drawing.Size, System.Drawing">
<value>1203, 529</value> <value>1203, 539</value>
</data> </data>
<data name="SplitContainerMain.TabIndex" type="System.Int32, mscorlib"> <data name="SplitContainerMain.TabIndex" type="System.Int32, mscorlib">
<value>2</value> <value>2</value>
@ -1987,7 +1987,7 @@
<value>Fill</value> <value>Fill</value>
</data> </data>
<data name="SplitContainerFORM.Location" type="System.Drawing.Point, System.Drawing"> <data name="SplitContainerFORM.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 158</value> <value>0, 147</value>
</data> </data>
<data name="SplitContainerFORM.Panel1.Text" xml:space="preserve"> <data name="SplitContainerFORM.Panel1.Text" xml:space="preserve">
<value>Panel1</value> <value>Panel1</value>
@ -2020,7 +2020,7 @@
<value>1</value> <value>1</value>
</data> </data>
<data name="SplitContainerFORM.Size" type="System.Drawing.Size, System.Drawing"> <data name="SplitContainerFORM.Size" type="System.Drawing.Size, System.Drawing">
<value>1203, 529</value> <value>1203, 539</value>
</data> </data>
<data name="SplitContainerFORM.TabIndex" type="System.Int32, mscorlib"> <data name="SplitContainerFORM.TabIndex" type="System.Int32, mscorlib">
<value>4</value> <value>4</value>
@ -3085,13 +3085,13 @@
<value>Funktionen</value> <value>Funktionen</value>
</data> </data>
<data name="RibbonControl1.Size" type="System.Drawing.Size, System.Drawing"> <data name="RibbonControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>1203, 158</value> <value>1203, 147</value>
</data> </data>
<data name="RibbonStatusBar1.Location" type="System.Drawing.Point, System.Drawing"> <data name="RibbonStatusBar1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 687</value> <value>0, 686</value>
</data> </data>
<data name="RibbonStatusBar1.Size" type="System.Drawing.Size, System.Drawing"> <data name="RibbonStatusBar1.Size" type="System.Drawing.Size, System.Drawing">
<value>1203, 22</value> <value>1203, 23</value>
</data> </data>
<data name="&gt;&gt;RibbonStatusBar1.Name" xml:space="preserve"> <data name="&gt;&gt;RibbonStatusBar1.Name" xml:space="preserve">
<value>RibbonStatusBar1</value> <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.BbtnitmNodeReorder = New DevExpress.XtraBars.BarButtonItem()
Me.bbtnItm_TV_Collape_Expand = New DevExpress.XtraBars.BarButtonItem() Me.bbtnItm_TV_Collape_Expand = New DevExpress.XtraBars.BarButtonItem()
Me.checkShowPreview = New DevExpress.XtraBars.BarCheckItem() Me.checkShowPreview = New DevExpress.XtraBars.BarCheckItem()
Me.btnCreateNewNode = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroupView = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroupView = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroupRecord = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroupRecord = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
@ -112,9 +113,9 @@ Partial Class frmNodeNavigation
'ribbonNodeNavigation 'ribbonNodeNavigation
' '
Me.ribbonNodeNavigation.ExpandCollapseItem.Id = 0 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.Location = New System.Drawing.Point(0, 0)
Me.ribbonNodeNavigation.MaxItemId = 19 Me.ribbonNodeNavigation.MaxItemId = 22
Me.ribbonNodeNavigation.Name = "ribbonNodeNavigation" Me.ribbonNodeNavigation.Name = "ribbonNodeNavigation"
Me.ribbonNodeNavigation.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) Me.ribbonNodeNavigation.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
Me.ribbonNodeNavigation.PopupMenuAlignment = DevExpress.XtraBars.PopupMenuAlignment.Left Me.ribbonNodeNavigation.PopupMenuAlignment = DevExpress.XtraBars.PopupMenuAlignment.Left
@ -123,7 +124,7 @@ Partial Class frmNodeNavigation
Me.ribbonNodeNavigation.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.[True] Me.ribbonNodeNavigation.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.[True]
Me.ribbonNodeNavigation.ShowMoreCommandsButton = DevExpress.Utils.DefaultBoolean.[False] Me.ribbonNodeNavigation.ShowMoreCommandsButton = DevExpress.Utils.DefaultBoolean.[False]
Me.ribbonNodeNavigation.ShowToolbarCustomizeItem = 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.StatusBar = Me.RibbonStatusBar1
Me.ribbonNodeNavigation.Toolbar.ShowCustomizeItem = False Me.ribbonNodeNavigation.Toolbar.ShowCustomizeItem = False
' '
@ -230,7 +231,7 @@ Partial Class frmNodeNavigation
' '
'bbtnItm_TV_Collape_Expand '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.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.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" 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.ImageOptions.SvgImage = CType(resources.GetObject("checkShowPreview.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.checkShowPreview.Name = "checkShowPreview" 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 'RibbonPage1
' '
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroupView, Me.RibbonPageGroupRecord, Me.RibbonPageGroupDocResult, Me.RibbonPageGroup1, Me.RPGNodes}) 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.BbtnitmNodeReorder)
Me.RPGNodes.ItemLinks.Add(Me.bbtnItm_TV_Collape_Expand) Me.RPGNodes.ItemLinks.Add(Me.bbtnItm_TV_Collape_Expand)
Me.RPGNodes.ItemLinks.Add(Me.btnCreateNewNode)
Me.RPGNodes.Name = "RPGNodes" Me.RPGNodes.Name = "RPGNodes"
Me.RPGNodes.Text = "Knoten" Me.RPGNodes.Text = "Knoten"
' '
@ -295,10 +305,10 @@ Partial Class frmNodeNavigation
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitmRecordID) Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitmRecordID)
Me.RibbonStatusBar1.ItemLinks.Add(Me.BarStaticItemLocked) Me.RibbonStatusBar1.ItemLinks.Add(Me.BarStaticItemLocked)
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitmtInfoDoc) 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.Name = "RibbonStatusBar1"
Me.RibbonStatusBar1.Ribbon = Me.ribbonNodeNavigation Me.RibbonStatusBar1.Ribbon = Me.ribbonNodeNavigation
Me.RibbonStatusBar1.Size = New System.Drawing.Size(1307, 22) Me.RibbonStatusBar1.Size = New System.Drawing.Size(1307, 23)
' '
'RibbonPage2 'RibbonPage2
' '
@ -320,7 +330,7 @@ Partial Class frmNodeNavigation
' '
Me.SplitContainerMain.Panel2.Controls.Add(Me.SplitContainer1) Me.SplitContainerMain.Panel2.Controls.Add(Me.SplitContainer1)
Me.SplitContainerMain.Panel2.Text = "Panel2" 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.SplitterPosition = 289
Me.SplitContainerMain.TabIndex = 2 Me.SplitContainerMain.TabIndex = 2
' '
@ -331,6 +341,7 @@ Partial Class frmNodeNavigation
Me.TreeListDevexpress.Appearance.FocusedRow.Options.UseBackColor = True Me.TreeListDevexpress.Appearance.FocusedRow.Options.UseBackColor = True
Me.TreeListDevexpress.Caption = "Instandhaltung View" Me.TreeListDevexpress.Caption = "Instandhaltung View"
Me.TreeListDevexpress.Dock = System.Windows.Forms.DockStyle.Fill Me.TreeListDevexpress.Dock = System.Windows.Forms.DockStyle.Fill
Me.TreeListDevexpress.KeyFieldName = "GUID"
Me.TreeListDevexpress.Location = New System.Drawing.Point(0, 0) Me.TreeListDevexpress.Location = New System.Drawing.Point(0, 0)
Me.TreeListDevexpress.Name = "TreeListDevexpress" Me.TreeListDevexpress.Name = "TreeListDevexpress"
Me.TreeListDevexpress.BeginUnboundLoad() Me.TreeListDevexpress.BeginUnboundLoad()
@ -356,7 +367,8 @@ Partial Class frmNodeNavigation
Me.TreeListDevexpress.OptionsView.ShowTreeLines = DevExpress.Utils.DefaultBoolean.[False] Me.TreeListDevexpress.OptionsView.ShowTreeLines = DevExpress.Utils.DefaultBoolean.[False]
Me.TreeListDevexpress.OptionsView.ShowVertLines = False Me.TreeListDevexpress.OptionsView.ShowVertLines = False
Me.TreeListDevexpress.OptionsView.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Dark 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.StateImageList = Me.ImageCollection1
Me.TreeListDevexpress.TabIndex = 1 Me.TreeListDevexpress.TabIndex = 1
' '
@ -379,8 +391,8 @@ Partial Class frmNodeNavigation
'SplitContainer1.Panel2 'SplitContainer1.Panel2
' '
Me.SplitContainer1.Panel2.Controls.Add(Me.GridControlDocSearch) Me.SplitContainer1.Panel2.Controls.Add(Me.GridControlDocSearch)
Me.SplitContainer1.Size = New System.Drawing.Size(998, 664) Me.SplitContainer1.Size = New System.Drawing.Size(994, 520)
Me.SplitContainer1.SplitterDistance = 214 Me.SplitContainer1.SplitterDistance = 167
Me.SplitContainer1.TabIndex = 0 Me.SplitContainer1.TabIndex = 0
' '
'pnlControls 'pnlControls
@ -390,7 +402,7 @@ Partial Class frmNodeNavigation
Me.pnlControls.Dock = System.Windows.Forms.DockStyle.Fill Me.pnlControls.Dock = System.Windows.Forms.DockStyle.Fill
Me.pnlControls.Location = New System.Drawing.Point(0, 0) Me.pnlControls.Location = New System.Drawing.Point(0, 0)
Me.pnlControls.Name = "pnlControls" 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 Me.pnlControls.TabIndex = 0
' '
'GridControlDocSearch 'GridControlDocSearch
@ -403,7 +415,7 @@ Partial Class frmNodeNavigation
Me.GridControlDocSearch.Location = New System.Drawing.Point(0, 0) Me.GridControlDocSearch.Location = New System.Drawing.Point(0, 0)
Me.GridControlDocSearch.MainView = Me.GridViewDoc_Search Me.GridControlDocSearch.MainView = Me.GridViewDoc_Search
Me.GridControlDocSearch.Name = "GridControlDocSearch" 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.TabIndex = 8
Me.GridControlDocSearch.TabStop = False Me.GridControlDocSearch.TabStop = False
Me.GridControlDocSearch.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewDoc_Search}) 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.Collapsed = True
Me.SplitContainerDocView.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2 Me.SplitContainerDocView.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2
Me.SplitContainerDocView.Dock = System.Windows.Forms.DockStyle.Fill 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" Me.SplitContainerDocView.Name = "SplitContainerDocView"
' '
'SplitContainerDocView.Panel1 'SplitContainerDocView.Panel1
@ -603,7 +615,7 @@ Partial Class frmNodeNavigation
' '
Me.SplitContainerDocView.Panel2.Controls.Add(Me.DocumentViewer) Me.SplitContainerDocView.Panel2.Controls.Add(Me.DocumentViewer)
Me.SplitContainerDocView.Panel2.Text = "Panel2" 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.SplitterPosition = 969
Me.SplitContainerDocView.TabIndex = 0 Me.SplitContainerDocView.TabIndex = 0
' '
@ -620,7 +632,7 @@ Partial Class frmNodeNavigation
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font 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.SplitContainerDocView)
Me.Controls.Add(Me.RibbonStatusBar1) Me.Controls.Add(Me.RibbonStatusBar1)
Me.Controls.Add(Me.ribbonNodeNavigation) Me.Controls.Add(Me.ribbonNodeNavigation)
@ -716,4 +728,5 @@ Partial Class frmNodeNavigation
Friend WithEvents DocumentViewer As DigitalData.Controls.DocumentViewer.DocumentViewer Friend WithEvents DocumentViewer As DigitalData.Controls.DocumentViewer.DocumentViewer
Friend WithEvents RibbonPageGroupView As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonPageGroupView As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents checkShowPreview As DevExpress.XtraBars.BarCheckItem Friend WithEvents checkShowPreview As DevExpress.XtraBars.BarCheckItem
Friend WithEvents btnCreateNewNode As DevExpress.XtraBars.BarButtonItem
End Class End Class

View File

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

View File

@ -20,28 +20,20 @@ Imports System.Configuration
Public Class frmNodeNavigation Public Class frmNodeNavigation
#Region "Laufzeitvariablen & Konstanten" #Region "Laufzeitvariablen & Konstanten"
Dim DT_STRUCTURE_NODES As DataTable Private DT_STRUCTURE_NODES As DataTable
Dim DT_ADDING_USERS As DataTable Private DT_ADDING_USERS As DataTable
Dim DT_VWPMO_CONSTRUCTOR_FORMS As DataTable Private DT_VWPMO_CONSTRUCTOR_FORMS As DataTable
Private RunningTask As Task Private RunningTask As Task
Private RunningTaskTokenSource As New CancellationTokenSource Private RunningTaskTokenSource As New CancellationTokenSource
Private RunningTaskToken = RunningTaskTokenSource.Token Private RunningTaskToken = RunningTaskTokenSource.Token
Private oEntityID As Int16 Private _EntityId As Short
Private oConstructID As Int16 Private oConstructID As Short
Private CONSTRUCTORID As Integer Private CONSTRUCTORID As Integer
Private CONSTRUCTOR_DETAIL_ID As Int16 Private CONSTRUCTOR_DETAIL_ID As Short
Private oFilterActive As Boolean = False Private _FilterActive As Boolean = False
Private ROW_READ_ONLY As Boolean = False Private _RowReadOnly As Boolean = False
Private ADD_RECORDS_CONSTR As Boolean = True Private ADD_RECORDS_CONSTR As Boolean = True
Private TV_Collapse_ExpandState = "Collapse" 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 Private WindowsEx As WindowsEx
@ -73,47 +65,63 @@ Public Class frmNodeNavigation
Private IW_USER As String Private IW_USER As String
Private IW_COMMENT As String Private IW_COMMENT As String
Private INWORK_FILE As Boolean 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 CONTROL_DOCTYPE_MATCH As Integer = 0
Private FocusedNode As TreeListNode Private FocusedNode As TreeListNode
Private MyTreeListViewState As ClassTreeListViewState Private MyTreeListViewState As ClassTreeListViewState
#End Region Private AvailableConfigNodes As New List(Of frmNewNode.NodeConfig)
Private CurrentNodeConfigId As Integer = 0
Private DocList As ClassWindreamDocGrid 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) Public Sub New(pEntityID As Int16, pConstructID As Int16)
' Dieser Aufruf ist für den Designer erforderlich. ' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent() InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
oEntityID = pEntityID _EntityId = pEntityID
oConstructID = pConstructID oConstructID = pConstructID
DocList = New ClassWindreamDocGrid(GridViewDoc_Search) DocList = New ClassWindreamDocGrid(GridViewDoc_Search)
WindowsEx = New WindowsEx(LOGCONFIG) WindowsEx = New WindowsEx(LOGCONFIG)
ClassNodeLoader = New ClassNodeLoader(LOGCONFIG, MYDB_ECM)
End Sub End Sub
Private Function Get_Splitter_Layout_Filename() Private Function Get_Splitter_Layout_Filename()
Dim Filename As String = String.Format("{0}-{1}-SplitterLayout.xml", CONSTRUCTOR_DETAIL_ID, CONSTRUCTOR_DETAIL_ID.ToString) Dim Filename As String = String.Format("{0}-{1}-SplitterLayout.xml", CONSTRUCTOR_DETAIL_ID, CONSTRUCTOR_DETAIL_ID.ToString)
Return Path.Combine(Application.UserAppDataPath(), Filename) Return Path.Combine(Application.UserAppDataPath(), Filename)
End Function End Function
Sub Save_Splitter_Layout() Sub Save_Splitter_Layout()
Try Try
Dim XMLPath = Get_Splitter_Layout_Filename() Dim XMLPath = Get_Splitter_Layout_Filename()
Dim layout As New ClassLayout(XMLPath) Dim layout As New ClassLayout(XMLPath)
Dim settings As New System.Collections.Generic.List(Of ClassSetting) Dim settings As New List(Of ClassSetting) From {
New ClassSetting("SplitViewDetailsSplitterPosition", SplitContainer1.SplitterDistance),
settings.Add(New ClassSetting("SplitViewDetailsSplitterPosition", SplitContainer1.SplitterDistance)) New ClassSetting("SplitViewMainSplitterPosition", SplitContainerMain.SplitterPosition)
settings.Add(New ClassSetting("SplitViewMainSplitterPosition", SplitContainerMain.SplitterPosition)) }
layout.Save(settings) layout.Save(settings)
Catch ex As Exception Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace) ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
End Try End Try
End Sub End Sub
Sub Load_Splitter_Layout() Sub Load_Splitter_Layout()
Try Try
Dim XMLPath As String = Get_Splitter_Layout_Filename() 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) ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
End Try End Try
End Sub 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 CONSTRUCTORID = CURRENT_CONSTRUCTOR_ID
Dim Sql = String.Format("SELECT *, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), FORM_VIEW_ID), {1}) AS 'CAPTION' " & 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) "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() Load_Datafor_Entity()
FORM_LOADED = True 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") ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Error in Loading Form part 4")
End Try End Try
Load_nodes() Await Load_nodes()
End Sub End Function
Private Sub Load_nodes() Private Async Function Load_nodes() As Task
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me) Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
Try 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 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 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 Dim DT_TREEVIEW_CONFIGURATION = MYDB_ECM.GetDatatable(oNodeConfigSql)
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)
For Each row As DataRow In DT_TREEVIEW_CONFIGURATION.Rows For Each row As DataRow In DT_TREEVIEW_CONFIGURATION.Rows
Try Try
Dim bimage = row.Item("NODE_IMAGE") Dim bimage = row.ItemEx(Of Object)("NODE_IMAGE", Nothing)
If Not IsDBNull(bimage) Then If bimage Is Nothing Then
Dim Node_image = ByteArrayToBitmap(bimage) Continue For
ImageCollection1.AddImage(Node_image, row.Item("GUID"))
End If End If
Dim oNodeImage = ByteArrayToBitmap(bimage)
ImageCollection1.AddImage(oNodeImage, row.Item("GUID"))
Catch ex As Exception Catch ex As Exception
End Try End Try
Next Next
TreeListDevexpress.DataSource = DT_STRUCTURE_NODES TreeListDevexpress.DataSource = DT_STRUCTURE_NODES
TreeListDevexpress.KeyFieldName = "GUID" TreeListDevexpress.KeyFieldName = "GUID"
TreeListDevexpress.ParentFieldName = "PARENT_GUID" TreeListDevexpress.ParentFieldName = "PARENT_GUID"
TreeListDevexpress.Columns("SEQUENCE").SortOrder = SortOrder.Ascending TreeListDevexpress.Columns("SEQUENCE").SortOrder = SortOrder.Ascending
TreeListDevexpress.StateImageList = ImageCollection1 TreeListDevexpress.StateImageList = ImageCollection1
Try Dim oVisibleColumns = New List(Of String) From {"NODE_CAPTION"}
TreeListDevexpress.Columns.ColumnByName("colRECORD_ID").Visible = False For Each oColumn In TreeListDevexpress.Columns
Catch ex As Exception 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 Catch ex As Exception
LOGGER.Error(ex) LOGGER.Error(ex)
Finally Finally
SplashScreenManager.CloseOverlayForm(oHandle) SplashScreenManager.CloseOverlayForm(oHandle)
End Try End Try
End Function
End Sub
Private Sub TreeListDevexpress_ColumnFilterChanged(sender As Object, e As EventArgs) Private Sub TreeListDevexpress_ColumnFilterChanged(sender As Object, e As EventArgs)
Dim tree As TreeList = TryCast(sender, TreeList) 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() 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 Sub
End Class End Class
Private Async Sub TreeListDevexpress_FocusedNodeChanged(sender As Object, e As FocusedNodeChangedEventArgs) Handles TreeListDevexpress.FocusedNodeChanged Private Async Sub TreeListDevexpress_FocusedNodeChanged(sender As Object, e As FocusedNodeChangedEventArgs) Handles TreeListDevexpress.FocusedNodeChanged
FocusedNode = Nothing FocusedNode = Nothing
If oFilterActive Then btnCreateNewNode.Enabled = False
If _FilterActive Then
Exit Sub Exit Sub
End If End If
@ -328,18 +332,42 @@ Public Class frmNodeNavigation
Exit Sub Exit Sub
End If End If
If oNodeId = 0 Then 'If oNodeId = 0 Then
Exit Sub ' Exit Sub
End If 'End If
Dim oRowView As DataRowView = oRowObject Dim oRowView As DataRowView = oRowObject
Dim oRow As DataRow = oRowView.Row Dim oRow As DataRow = oRowView.Row
Dim oGuid = oRow.Item("GUID") Dim oGuid = oRow.Item("GUID")
Dim oNodeCaption = oRow.Item("NODE_CAPTION") Dim oNodeCaption = oRow.Item("NODE_CAPTION")
Dim oNodeConfigId = oRow.Item("NODE_CONFIG_ID")
Dim oRecordId = oRow.ItemEx("RECORD_ID", 0) Dim oRecordId = oRow.ItemEx("RECORD_ID", 0)
Dim oHasRecordId = (oRecordId > 0) Dim oHasRecordId = (oRecordId > 0)
Dim oIsConfigNode = (oNodeConfigId = 1000)
Dim oParentNode = e.Node.ParentNode 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 If oHasRecordId Then
Update_Status_Label(True, $"NodeGUID {oGuid} - RecordID {oRecordId}", EditState.None) Update_Status_Label(True, $"NodeGUID {oGuid} - RecordID {oRecordId}", EditState.None)
Else Else
@ -357,7 +385,7 @@ Public Class frmNodeNavigation
CURRENT_RECORD_ID = oRecordId CURRENT_RECORD_ID = oRecordId
ClassHelper.GetDocrecordLinks(CURRENT_RECORD_ID) ClassHelper.GetDocrecordLinks(CURRENT_RECORD_ID)
CURRENT_ENTITY_ID = oEntityID CURRENT_ENTITY_ID = _EntityId
CURRENT_NODE_GUID = oNodeId CURRENT_NODE_GUID = oNodeId
SELECTED_NODE_CAPTION = oNodeCaption SELECTED_NODE_CAPTION = oNodeCaption
CURRENT_SEARCH_TYPE = "RECORD" CURRENT_SEARCH_TYPE = "RECORD"
@ -365,12 +393,12 @@ Public Class frmNodeNavigation
' muss vor show selected record data kommen, ' muss vor show selected record data kommen,
' sodass die datasource für die angehakten werte existiert (checked list box) ' sodass die datasource für die angehakten werte existiert (checked list box)
CtrlBuilder.WatchRecordChanges = False 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 CtrlBuilder.WatchRecordChanges = True
Await Show_Selected_Record_Data(CURRENT_RECORD_ID) 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() CONTROL_HANDLING()
@ -474,10 +502,10 @@ Public Class frmNodeNavigation
Try Try
If oEntityID <> CURRENT_ENTITY_ID Then If _EntityId <> CURRENT_ENTITY_ID Then
LOGGER.Info("Entity-Data needs to be reloaded...") LOGGER.Info("Entity-Data needs to be reloaded...")
CURRENT_ENTITY_ID = oEntityID CURRENT_ENTITY_ID = _EntityId
CURRENT_CONSTRUCTOR_ID = oConstructID CURRENT_CONSTRUCTOR_ID = oConstructID
Load_Adding_users() Load_Adding_users()
Load_Configurable_Nodes() Load_Configurable_Nodes()
@ -495,7 +523,7 @@ Public Class frmNodeNavigation
Dim result = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() Dim result = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Select form Select form
Where form.Item("FORM_ID") = oEntityID).Single() Where form.Item("FORM_ID") = _EntityId).Single()
CONSTRUCTOR_DETAIL_ID = result.Item("GUID") CONSTRUCTOR_DETAIL_ID = result.Item("GUID")
' CONSTRUCT_EXPAND = result.Item("EXPAND") ' CONSTRUCT_EXPAND = result.Item("EXPAND")
Dim FORM_DATE_FORMAT = result.Item("DATE_FORMAT") Dim FORM_DATE_FORMAT = result.Item("DATE_FORMAT")
@ -517,7 +545,7 @@ Public Class frmNodeNavigation
If DT_ADDING_USERS.Rows.Count > 0 Then 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? 'Ü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() 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() Dim Rows1 = query1.ToList()
For Each _row In Rows1 For Each _row In Rows1
FAU_AD_DOMAIN = _row.Item("AD_DOMAIN").ToString() FAU_AD_DOMAIN = _row.Item("AD_DOMAIN").ToString()
@ -553,7 +581,7 @@ Public Class frmNodeNavigation
Dim expression As String Dim expression As String
Dim sql 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 '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 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() Dim resultDT_VWPMO_CONSTRUCTOR_FORMS = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Select form 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") 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") 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") 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!") 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, "") 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%'", oEntityID, USER_LANGUAGE) 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") DT_RESULTLIST_VARIABLE_VALUE = ClassHelper.FILTER_DATATABLE(DT_DOCSEARCH_RESULTLIST_CONFIG, expression, "SEQUENCE")
Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable() Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable()
Select form 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) '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("") 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) 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 SELECTED_NODE_RECORD_ID = 0
@ -617,26 +645,26 @@ Public Class frmNodeNavigation
' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS ' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS
Dim result1 = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() Dim result1 = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Select form Select form
Where form.Item("FORM_ID") = oEntityID).Single() Where form.Item("FORM_ID") = _EntityId).Single()
CURRENT_PARENT_ENTITY_ID = 0 CURRENT_PARENT_ENTITY_ID = 0
' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS ' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS
Dim query = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable() Dim query = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Select form Select form
Where form.Item("FORM_ID") = oEntityID Where form.Item("FORM_ID") = _EntityId
Dim QuickViewSQL = query.Single().Item("SQL_QUICK_VIEW") 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 ' CURRENT_ENTITYSQL = GridSQL
'Anzahl der Datensätze '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") CURRENT_ENTITYSTRING = DT_TBPMO_FORM_VIEW.Rows(0).Item("FORM_TITLE")
FORMVIEW_ID = DT_TBPMO_FORM_VIEW.Rows(0).Item("GUID") FORMVIEW_ID = DT_TBPMO_FORM_VIEW.Rows(0).Item("GUID")
@ -658,10 +686,10 @@ Public Class frmNodeNavigation
If IsNothing(CURRENT_DT_ENTITY_RECORDS) Then If IsNothing(CURRENT_DT_ENTITY_RECORDS) Then
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in getting Entity-Data - Check logfile") ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in getting Entity-Data - Check logfile")
Else 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 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 CURRENT_SQL_AUTO_VALUES_DT = DT_AUTOVALUES
@ -684,7 +712,7 @@ Public Class frmNodeNavigation
CtrlBuilder.WatchRecordChanges = False CtrlBuilder.WatchRecordChanges = False
ClassControlValues.LoadControlValuesList(oEntityID, CtrlBuilder.MasterPanel.Controls) ClassControlValues.LoadControlValuesList(_EntityId, CtrlBuilder.MasterPanel.Controls)
CtrlBuilder.WatchRecordChanges = True CtrlBuilder.WatchRecordChanges = True
'Zurücksetzen 'Zurücksetzen
@ -754,7 +782,7 @@ Public Class frmNodeNavigation
LOGGER.Debug("Show_Selected_Record_Data: " & Rec_ID.ToString) LOGGER.Debug("Show_Selected_Record_Data: " & Rec_ID.ToString)
Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable() Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable()
Select form Select form
Where form.Item("GUID") = oEntityID).Single() Where form.Item("GUID") = _EntityId).Single()
'Update_Status_Label(False, "") 'Update_Status_Label(False, "")
LOGGER.Debug("RECORD ID: " & Rec_ID.ToString) LOGGER.Debug("RECORD ID: " & Rec_ID.ToString)
@ -770,7 +798,7 @@ Public Class frmNodeNavigation
ENTITY_RELOAD_AFT_CONTROL_LOAD = False ENTITY_RELOAD_AFT_CONTROL_LOAD = False
CtrlBuilder.WatchRecordChanges = False CtrlBuilder.WatchRecordChanges = False
If pnlControls.Enabled = False Then pnlControls.Enabled = True 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 CtrlBuilder.WatchRecordChanges = True
Dim sw As New SW("Show Selected RecordData 2") Dim sw As New SW("Show Selected RecordData 2")
@ -799,14 +827,14 @@ Public Class frmNodeNavigation
Sub Load_Controls(frmview_id As Integer) Sub Load_Controls(frmview_id As Integer)
Dim sw As New SW("Load_Controls") Dim sw As New SW("Load_Controls")
FORMVIEW_ID = frmview_id FORMVIEW_ID = frmview_id
oEntityID = DT_TBPMO_FORM_VIEW.Rows(0).Item("FORM_ID") _EntityId = DT_TBPMO_FORM_VIEW.Rows(0).Item("FORM_ID")
CURRENT_ENTITY_ID = oEntityID CURRENT_ENTITY_ID = _EntityId
CtrlBuilder = New ClassControlBuilder(pnlControls) CtrlBuilder = New ClassControlBuilder(pnlControls)
CtrlCommandUI = New ClassControlCommandsUI(CtrlBuilder, CtrlCommandUI = New ClassControlCommandsUI(CtrlBuilder,
ContextMenuDetails, ContextMenuDetails,
AddressOf NewEditAppointment) AddressOf NewEditAppointment)
CtrlCommandUI.LoadControls(oEntityID) CtrlCommandUI.LoadControls(_EntityId)
Lock_RecordControls(True) Lock_RecordControls(True)
AddHandler CtrlBuilder.OnRecordChanged, AddressOf OnRecordChanged 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) Sub NewEditAppointment(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Try Try
Dim ctrl As Windows.Forms.Control = sender 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 Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace) ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
End Try End Try
@ -996,14 +1024,14 @@ Public Class frmNodeNavigation
' sodass die datasource für die angehakten werte existiert (checked list box) ' sodass die datasource für die angehakten werte existiert (checked list box)
CtrlBuilder.WatchRecordChanges = False 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 CtrlBuilder.WatchRecordChanges = True
If CURRENT_RECORD_ID > 0 Then If CURRENT_RECORD_ID > 0 Then
Await Show_Selected_Record_Data(CURRENT_RECORD_ID) Await Show_Selected_Record_Data(CURRENT_RECORD_ID)
End If End If
ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, oEntityID) ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, _EntityId)
CONTROL_HANDLING() CONTROL_HANDLING()
@ -1165,7 +1193,7 @@ Public Class frmNodeNavigation
' Abhängige Listen laden ' Abhängige Listen laden
CtrlBuilder.WatchRecordChanges = False CtrlBuilder.WatchRecordChanges = False
'ClassControlValues.LoadControlValuesListWithPlaceholders(ENTITY_ID, RECORD_ID, PARENT_ID, CtrlBuilder.AllControls, ENTITY_ID) '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 CtrlBuilder.WatchRecordChanges = True
RECORD_ENABLED = True RECORD_ENABLED = True
@ -1208,7 +1236,7 @@ Public Class frmNodeNavigation
'ActivateAllTabs() 'ActivateAllTabs()
End If End If
If RECORD_ENABLED = True Then 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 End If
If Not IsNothing(CtrlCommandUI) Then If Not IsNothing(CtrlCommandUI) Then
'If CtrlCommandUI.IsInsert Then 'If CtrlCommandUI.IsInsert Then
@ -1304,7 +1332,7 @@ Public Class frmNodeNavigation
Public Sub TrySave_DoSave() Public Sub TrySave_DoSave()
ERROR_WHILE_SAVING = False ERROR_WHILE_SAVING = False
' Record Speichern ' Record Speichern
Dim ResultMessage = CtrlCommandUI.SaveRecord(SELECTED_NODE_RECORD_ID, oEntityID) Dim ResultMessage = CtrlCommandUI.SaveRecord(SELECTED_NODE_RECORD_ID, _EntityId)
If ResultMessage <> "ERROR" Then If ResultMessage <> "ERROR" Then
' Status anzeigen ' Status anzeigen
Update_Status_Label(True, ResultMessage) Update_Status_Label(True, ResultMessage)
@ -1397,12 +1425,12 @@ Public Class frmNodeNavigation
#End Region #End Region
Private Sub Customer_Run_Procedures() Private Sub Customer_Run_Procedures()
Try 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 If Not DT Is Nothing Then
For Each row As DataRow In DT.Rows For Each row As DataRow In DT.Rows
Dim prsql As String = row.Item("EXECUTE_COMMAND") Dim prsql As String = row.Item("EXECUTE_COMMAND")
prsql = prsql.ToUpper.Replace("@FORM_ID", oEntityID) prsql = prsql.ToUpper.Replace("@FORM_ID", _EntityId)
prsql = prsql.ToUpper.Replace("@ENTITY_ID", oEntityID) prsql = prsql.ToUpper.Replace("@ENTITY_ID", _EntityId)
prsql = prsql.ToUpper.Replace("@RECORD_ID", SELECTED_NODE_RECORD_ID) prsql = prsql.ToUpper.Replace("@RECORD_ID", SELECTED_NODE_RECORD_ID)
MYDB_ECM.ExecuteNonQuery(prsql) MYDB_ECM.ExecuteNonQuery(prsql)
Next Next
@ -1439,7 +1467,7 @@ Public Class frmNodeNavigation
End If End If
Dim DT_RESULT As DataTable 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 If IsNothing(DT_RESULT) Then
Dim msg = "wrong DocSearch-Configuration or unexpected Error in Get_DOC_RESULTTABLE - Check logfile and contact Digital Data" 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() Private Sub RUN_ENTITY_DOC_SEARCH()
Dim sw As New SW("RUN_ENTITY_DOC_SEARCH") Dim sw As New SW("RUN_ENTITY_DOC_SEARCH")
Try 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) CURRENT_DOCSEARCH_SQL = MYDB_ECM.GetScalarValue(oSQL)
If CURRENT_DOCSEARCH_SQL <> String.Empty Then 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." 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") 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_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_ECM_ID", USERID_FK_INT_ECM)
CURRENT_DOCSEARCH_SQL = CURRENT_DOCSEARCH_SQL.Replace("@USER_ID", USER_GUID) CURRENT_DOCSEARCH_SQL = CURRENT_DOCSEARCH_SQL.Replace("@USER_ID", USER_GUID)
@ -1821,7 +1849,7 @@ Public Class frmNodeNavigation
End Sub End Sub
Private Function Get_DocGrid_Layout_Filename() Private Function Get_DocGrid_Layout_Filename()
Dim EntityRegex As New RegularExpressions.Regex("\s+\(\d+\)") 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) LAYOUT_DOC_GRIDVIEW = System.IO.Path.Combine(Application.UserAppDataPath(), Filename)
Return LAYOUT_DOC_GRIDVIEW Return LAYOUT_DOC_GRIDVIEW
End Function End Function
@ -1862,7 +1890,7 @@ Public Class frmNodeNavigation
End Sub End Sub
#Region "Dropping Files" #Region "Dropping Files"
Sub Drag_Enter(e As DragEventArgs) Sub Drag_Enter(e As DragEventArgs)
If oEntityID <> 0 Then If _EntityId <> 0 Then
ClassDragDrop.Drag_enter(e) ClassDragDrop.Drag_enter(e)
Else Else
Update_Status_Label(True, "No entity selected", EditState.Insert) 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!") ClassHelper.MSGBOX_Handler("INFO", "Attention", "Check Your windream-connection and restart ADDI afterwards.", "Could not create a windream session!")
Exit Function Exit Function
End If 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 sql = "select count(*) from VWPMO_DOKUMENTTYPES where FORMVIEW_ID = " & FORMVIEW_ID
Dim count_DT = MYDB_ECM.GetScalarValue(sql) Dim count_DT = MYDB_ECM.GetScalarValue(sql)
If count_DT = 0 And CURRENT_ENTITY_REDUNDANT_ID = 0 Then If count_DT = 0 And CURRENT_ENTITY_REDUNDANT_ID = 0 Then
@ -2201,7 +2229,7 @@ Public Class frmNodeNavigation
Dim oSelectedDocument = oSelectedDocs.First Dim oSelectedDocument = oSelectedDocs.First
Dim Result = ClassDOC_SEARCH.Get_File_Rights(oSelectedDocument.DocId) Dim Result = ClassDOC_SEARCH.Get_File_Rights(oSelectedDocument.DocId)
If Not IsNothing(Result) Then If Not IsNothing(Result) Then
ROW_READ_ONLY = False _RowReadOnly = False
Select Case Result.ToString Select Case Result.ToString
Case "R" Case "R"
ContextMenu_Read() ContextMenu_Read()
@ -2215,7 +2243,7 @@ Public Class frmNodeNavigation
Else Else
LOGGER.Warn("FileRight is '' but User is Admin!! - Check the configuration!") LOGGER.Warn("FileRight is '' but User is Admin!! - Check the configuration!")
End If End If
ROW_READ_ONLY = True _RowReadOnly = True
End Select End Select
CURRENT_FILE_RIGHT = Result.ToString CURRENT_FILE_RIGHT = Result.ToString
Else Else
@ -2223,7 +2251,7 @@ Public Class frmNodeNavigation
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Getting rights - check the log") ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Getting rights - check the log")
e.Cancel = True e.Cancel = True
End If End If
If ROW_READ_ONLY = False Then If _RowReadOnly = False Then
If RIGHT_READ_ONLY_DOC = True Then If RIGHT_READ_ONLY_DOC = True Then
If USER_IS_ADMIN = False Then If USER_IS_ADMIN = False Then
ContextMenu_Read() ContextMenu_Read()
@ -2510,8 +2538,8 @@ Public Class frmNodeNavigation
End Sub End Sub
Private Sub frmNodeNavigation_Click(sender As Object, e As EventArgs) Handles MyBase.Click Private Sub frmNodeNavigation_Click(sender As Object, e As EventArgs) Handles MyBase.Click
If CURRENT_ENTITY_ID <> oEntityID Then If CURRENT_ENTITY_ID <> _EntityId Then
CURRENT_ENTITY_ID = oEntityID CURRENT_ENTITY_ID = _EntityId
CURRENT_RECORD_ID = 0 CURRENT_RECORD_ID = 0
End If End If
End Sub End Sub
@ -2698,15 +2726,15 @@ Public Class frmNodeNavigation
RUN_ENTITY_DOC_SEARCH() RUN_ENTITY_DOC_SEARCH()
End Sub End Sub
Private Sub bbtnitmReloadView_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitmReloadView.ItemClick Private Async Function bbtnitmReloadView_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) As Task Handles bbtnitmReloadView.ItemClick
ReloadTreeView() Await ReloadTreeView()
End Sub End Function
Sub ReloadTreeView() Async Function ReloadTreeView() As Task
TreeListDevexpress.Nodes.Clear() TreeListDevexpress.Nodes.Clear()
Load_nodes() Await Load_nodes()
End Sub 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) 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!" 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 If USER_LANGUAGE <> "de-DE" Then
@ -2718,7 +2746,7 @@ Public Class frmNodeNavigation
If result = MsgBoxResult.Yes Then If result = MsgBoxResult.Yes Then
oSubnodes = "1" oSubnodes = "1"
ElseIf result = MsgBoxResult.Cancel Then ElseIf result = MsgBoxResult.Cancel Then
Exit Sub Exit Function
End If End If
Cursor = Cursors.WaitCursor Cursor = Cursors.WaitCursor
Dim oSQL = $"EXEC PRCUST_REORDER_CHILD_NODES " Dim oSQL = $"EXEC PRCUST_REORDER_CHILD_NODES "
@ -2733,7 +2761,7 @@ Public Class frmNodeNavigation
oNodeGUID = oID oNodeGUID = oID
oSQL += $" {oNodeGUID},{oSubnodes} " oSQL += $" {oNodeGUID},{oSubnodes} "
MYDB_ECM.ExecuteNonQuery(oSQL) MYDB_ECM.ExecuteNonQuery(oSQL)
ReloadTreeView() Await ReloadTreeView()
MyTreeListViewState.LoadState() MyTreeListViewState.LoadState()
TreeListDevexpress.FocusedNode = FocusedNode TreeListDevexpress.FocusedNode = FocusedNode
@ -2741,7 +2769,7 @@ Public Class frmNodeNavigation
Cursor = Cursors.Default Cursor = Cursors.Default
End Sub End Function
'Private Sub TreeListDevexpress_MouseUp(sender As Object, e As MouseEventArgs) Handles TreeListDevexpress.MouseUp 'Private Sub TreeListDevexpress_MouseUp(sender As Object, e As MouseEventArgs) Handles TreeListDevexpress.MouseUp
' Dim tree As TreeList = TryCast(sender, TreeList) ' Dim tree As TreeList = TryCast(sender, TreeList)
@ -2828,7 +2856,7 @@ Public Class frmNodeNavigation
'End If 'End If
End Sub 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) 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!" 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 If USER_LANGUAGE <> "de-DE" Then
@ -2840,7 +2868,7 @@ Public Class frmNodeNavigation
If result = MsgBoxResult.Yes Then If result = MsgBoxResult.Yes Then
oSubnodes = "1" oSubnodes = "1"
ElseIf result = MsgBoxResult.Cancel Then ElseIf result = MsgBoxResult.Cancel Then
Exit Sub Exit Function
End If End If
Cursor = Cursors.WaitCursor Cursor = Cursors.WaitCursor
Dim oSQL = $"EXEC PRCUST_REORDER_CHILD_NODES " Dim oSQL = $"EXEC PRCUST_REORDER_CHILD_NODES "
@ -2855,14 +2883,14 @@ Public Class frmNodeNavigation
oNodeGUID = oID oNodeGUID = oID
oSQL += $" {oNodeGUID},{oSubnodes} " oSQL += $" {oNodeGUID},{oSubnodes} "
MYDB_ECM.ExecuteNonQuery(oSQL) MYDB_ECM.ExecuteNonQuery(oSQL)
ReloadTreeView() Await ReloadTreeView()
MyTreeListViewState.LoadState() MyTreeListViewState.LoadState()
TreeListDevexpress.FocusedNode = FocusedNode TreeListDevexpress.FocusedNode = FocusedNode
Update_Status_Label(True, "Nodes reordered") Update_Status_Label(True, "Nodes reordered")
End If End If
Cursor = Cursors.Default 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 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 If TV_Collapse_ExpandState = "Collapse" Then
@ -2893,4 +2921,28 @@ Public Class frmNodeNavigation
DocumentViewer.CloseDocument() DocumentViewer.CloseDocument()
End If End If
End Sub 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 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.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.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.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.TabIndex = 6
Me.TYPE_NODENumericUpDown.Value = New Decimal(New Integer() {1, 0, 0, 0}) 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"> <data name="BindingNavigatorAddNewItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 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++ pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++
Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ
/5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA /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"> <data name="BindingNavigatorDeleteItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC wAAADsABataJCQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC
DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC
rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV
i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG 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"> <data name="BindingNavigatorMoveFirstItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 wAAADsABataJCQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77
wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0
v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg
UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA 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"> <data name="BindingNavigatorMovePreviousItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO 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 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f
Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+
08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC
@ -204,7 +204,7 @@
<data name="BindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="BindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 wAAADsABataJCQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78
n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI
N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f
oAc0QjgAAAAASUVORK5CYII= oAc0QjgAAAAASUVORK5CYII=
@ -213,7 +213,7 @@
<data name="BindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="BindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// wAAADsABataJCQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+//
h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B
twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA
kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG 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"> <data name="TBPMO_STRUCTURE_NODES_CONFIGURATIONBindingNavigatorSaveItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wgAADsIBFShKgAAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo wAAADsABataJCQAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo
dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII= dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII=
</value> </value>
</data> </data>

View File

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