238 lines
10 KiB
VB.net
238 lines
10 KiB
VB.net
Imports DevExpress.XtraTreeList
|
|
Imports DevExpress.XtraTreeList.Columns
|
|
Imports DevExpress.XtraTreeList.Nodes.Operations
|
|
Imports DevExpress.XtraTreeList.Nodes
|
|
Imports DevExpress.XtraSplashScreen
|
|
Imports System.Threading
|
|
|
|
Public Class frmNodeNavigation
|
|
Dim DTNODES As DataTable
|
|
Dim DT_ADDING_USERS As DataTable
|
|
Dim DT_VWPMO_CONSTRUCTOR_FORMS As DataTable
|
|
Private RunningTask As Task
|
|
Private RunningTaskTokenSource As New CancellationTokenSource
|
|
Private RunningTaskToken = RunningTaskTokenSource.Token
|
|
Private oEntityID As Int16
|
|
Private oConstructID As Int16
|
|
Private CONSTRUCTOR_DETAIL_ID As Int16
|
|
|
|
Public Sub New(pEntityID As Int16, oConstructID As Int16)
|
|
|
|
' Dieser Aufruf ist für den Designer erforderlich.
|
|
InitializeComponent()
|
|
oEntityID = pEntityID
|
|
oConstructID = oConstructID
|
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
|
|
|
End Sub
|
|
|
|
Private Sub frmNodeNavigation_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
|
|
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)
|
|
|
|
DT_VWPMO_CONSTRUCTOR_FORMS = ClassDatabase.Return_Datatable(Sql, True)
|
|
Load_nodes()
|
|
End Sub
|
|
Async Function Load_nodes() As Threading.Tasks.Task
|
|
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
|
|
Try
|
|
Load_Datafor_Entity()
|
|
Dim oToken = RunningTaskTokenSource.Token
|
|
Dim Sql = String.Format("select T.GUID,T.RECORD_ID, T.NODE_CONFIG_ID,T.NODE_CAPTION,T.ID1, T.BACK_COLOR,T.PARENT_GUID from VWPMO_STRUCTURE_NODES T INNER JOIN VWPMO_CONSTRUCTOR_FORMS T1 ON T.ENTITY_ID = T1.FORM_ID WHERE T1.CONSTRUCT_ID = {0}", 1)
|
|
DTNODES = ClassDatabase.Return_Datatable(Sql, True)
|
|
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 T1.CONSTRUCT_ID = {0}", 1)
|
|
Dim DT_TREEVIEW_CONFIGURATION = ClassDatabase.Return_Datatable(Sql)
|
|
For Each row As DataRow In DT_TREEVIEW_CONFIGURATION.Rows
|
|
Try
|
|
Dim bimage = row.Item("NODE_IMAGE")
|
|
If Not IsDBNull(bimage) Then
|
|
Dim Node_image = ByteArrayToBitmap(bimage)
|
|
ImageCollection1.AddImage(Node_image, row.Item("GUID"))
|
|
End If
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
Next
|
|
|
|
|
|
|
|
TreeListDevexpress.DataSource = DTNODES
|
|
TreeListDevexpress.KeyFieldName = "GUID"
|
|
TreeListDevexpress.ParentFieldName = "PARENT_GUID"
|
|
TreeListDevexpress.StateImageList = ImageCollection1
|
|
Try
|
|
TreeListDevexpress.Columns.ColumnByName("colRECORD_ID").Visible = False
|
|
Catch ex As Exception
|
|
|
|
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
|
|
|
|
|
|
Catch ex As Exception
|
|
Finally
|
|
SplashScreenManager.CloseOverlayForm(oHandle)
|
|
End Try
|
|
|
|
|
|
End Function
|
|
Private Sub TreeListDevexpress_ColumnFilterChanged(sender As Object, e As EventArgs)
|
|
Dim tree As TreeList = TryCast(sender, TreeList)
|
|
Dim filteredColumns As List(Of TreeListColumn) = tree.Columns.Cast(Of TreeListColumn)().Where(Function(c) c.FilterInfo.AutoFilterRowValue IsNot Nothing).ToList()
|
|
If filteredColumns.Count = 0 Then
|
|
tree.CollapseAll()
|
|
Return
|
|
End If
|
|
|
|
tree.BeginUpdate()
|
|
For Each col As TreeListColumn In filteredColumns
|
|
Dim op As New CollapseChildrenOperation(col.FilterInfo.AutoFilterRowValue.ToString(), col)
|
|
tree.NodesIterator.DoOperation(op)
|
|
Next col
|
|
tree.EndUpdate()
|
|
End Sub
|
|
Public Class CollapseChildrenOperation
|
|
Inherits TreeListOperation
|
|
|
|
Private filterValue As String
|
|
Private column As TreeListColumn
|
|
|
|
Public Sub New(ByVal filter As String, ByVal col As TreeListColumn)
|
|
filterValue = filter
|
|
column = col
|
|
End Sub
|
|
|
|
Private Function IsNodeMatchFilter(ByVal node As TreeListNode, ByVal column As TreeListColumn) As Boolean
|
|
Return node.GetDisplayText(column).Contains(filterValue)
|
|
End Function
|
|
Public Overrides Sub Execute(ByVal node As TreeListNode)
|
|
If IsNodeMatchFilter(node, column) Then
|
|
node.TreeList.MakeNodeVisible(node)
|
|
CollapseChildren(node)
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub CollapseChildren(ByVal node As TreeListNode)
|
|
'node.Visible = true;
|
|
For Each childNode As TreeListNode In node.Nodes
|
|
CollapseChildren(childNode)
|
|
Next childNode
|
|
node.Expanded = False
|
|
End Sub
|
|
End Class
|
|
|
|
Private Sub TreeListDevexpress_FocusedNodeChanged(sender As Object, e As FocusedNodeChangedEventArgs) Handles TreeListDevexpress.FocusedNodeChanged
|
|
For Each treeListNode As DevExpress.XtraTreeList.Nodes.TreeListNode In TreeListDevexpress.Selection
|
|
Dim oID = treeListNode.Id
|
|
Dim PID = treeListNode.ParentNode
|
|
Dim Column_RecID As DevExpress.XtraTreeList.Columns.TreeListColumn = TreeListDevexpress.Columns("RECORD_ID")
|
|
Dim RecID = e.Node.GetDisplayText(Column_RecID)
|
|
Console.WriteLine(oID)
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub TreeListDevexpress_GetStateImage(sender As Object, e As GetStateImageEventArgs) Handles TreeListDevexpress.GetStateImage
|
|
Dim Column_Config_ID As DevExpress.XtraTreeList.Columns.TreeListColumn = TreeListDevexpress.Columns("NODE_CONFIG_ID")
|
|
Dim configid = e.Node.GetDisplayText(Column_Config_ID)
|
|
|
|
e.Node.StateImageIndex = ImageCollection1.Images.Keys.IndexOf(configid)
|
|
End Sub
|
|
Sub Load_Adding_users()
|
|
Try
|
|
Dim oSql = String.Format("SELECT * FROM TBPMO_ENTITY_USERRIGHT_ADDING where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", oConstructID)
|
|
DT_ADDING_USERS = ClassDatabase.Return_Datatable(oSql, False)
|
|
Catch ex As Exception
|
|
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Error in Load_Adding_users")
|
|
End Try
|
|
End Sub
|
|
Private Sub Load_Configurable_Nodes()
|
|
Try
|
|
Dim oSql = String.Format("SELECT * FROM TBPMO_STRUCTURE_NODES_CONFIGURATION where TYPE_NODE = 1000 AND ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", oConstructID)
|
|
NODE_CONFIGURABLE_NODES_DT = ClassDatabase.Return_Datatable(oSql, False)
|
|
Catch ex As Exception
|
|
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Error in Load_Configurable_Nodes")
|
|
End Try
|
|
End Sub
|
|
Sub Load_Datafor_Entity()
|
|
|
|
Try
|
|
|
|
If oEntityID <> CURRENT_ENTITY_ID Then
|
|
LOGGER.Info("Entity-Data needs to be reloaded...")
|
|
|
|
CURRENT_ENTITY_ID = oEntityID
|
|
CURRENT_CONSTRUCTOR_ID = oConstructID
|
|
Load_Adding_users()
|
|
Load_Configurable_Nodes()
|
|
|
|
End If
|
|
|
|
|
|
Dim sw As New SW("Load_Datafor_Entity")
|
|
|
|
|
|
'If NODE_NAVIGATION = True Then
|
|
' ENTITY_ID = ClassNodeNavigation.Return_ENTITY_FOR_TAG(SelectedNode.Tag)
|
|
' CURRENT_ENTITY_ID = ENTITY_ID
|
|
'End If
|
|
|
|
Dim result = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
|
|
Select form
|
|
Where form.Item("FORM_ID") = oEntityID).Single()
|
|
CONSTRUCTOR_DETAIL_ID = result.Item("GUID")
|
|
' CONSTRUCT_EXPAND = result.Item("EXPAND")
|
|
Dim FORM_DATE_FORMAT = result.Item("DATE_FORMAT")
|
|
If FORM_DATE_FORMAT <> USER_DATE_FORMAT Then
|
|
CURRENT_DATE_FORMAT = USER_DATE_FORMAT
|
|
Else
|
|
CURRENT_DATE_FORMAT = FORM_DATE_FORMAT
|
|
End If
|
|
'LOCK_CONTROLS_BG_LOAD = result.Item("LOCK_CONTROLS_BG_LOAD")
|
|
|
|
|
|
FAU_AD_DOMAIN = ""
|
|
FAU_AD_SERVER = ""
|
|
FAU_AD_USER = ""
|
|
FAU_AD_USER_PW = ""
|
|
|
|
If DT_ADDING_USERS.Rows.Count > 0 Then
|
|
'Überprüfen ob für diese Entität ein spezifischer windream-User verwendet wird, wenn Dateien abgelegt werden?
|
|
Dim query1 = From _user In DT_ADDING_USERS.AsEnumerable()
|
|
Select _user Where _user.Item("ENTITY_ID") = oEntityID
|
|
Dim Rows1 = query1.ToList()
|
|
For Each _row In Rows1
|
|
FAU_AD_DOMAIN = _row.Item("AD_DOMAIN").ToString()
|
|
FAU_AD_SERVER = _row.Item("AD_SERVER").ToString()
|
|
FAU_AD_USER = _row.Item("AD_USER").ToString()
|
|
Dim wrapper As New ClassEncryption("!35452didalog=")
|
|
Dim PWplainText As String
|
|
' DecryptData throws if the wrong password is used.
|
|
Try
|
|
PWplainText = wrapper.DecryptData(_row.Item("AD_USER_PW").ToString())
|
|
Catch ex As Exception
|
|
LOGGER.Warn("- the Password for FileAddingUser '" & FAU_AD_USER & "' could not be decrypted")
|
|
PWplainText = ""
|
|
End Try
|
|
FAU_AD_USER_PW = PWplainText
|
|
Next
|
|
End If
|
|
sw.Done()
|
|
' Load_Entity_Data_CONTROLS_RECORDS()
|
|
|
|
Catch ex As Exception
|
|
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Load_Datafor_Entity: " & ex.StackTrace)
|
|
End Try
|
|
|
|
End Sub
|
|
End Class |