MS Structure Nodes

This commit is contained in:
Digital Data - Marlon Schreiber
2018-10-02 17:15:26 +02:00
parent 04ffe61b4d
commit 609df5b5c5
39 changed files with 2504 additions and 2023 deletions

View File

@@ -15,6 +15,11 @@ Imports DD_Rights
Imports DD_LIB_Standards
Imports DevExpress.LookAndFeel
Imports System.ComponentModel
Imports System.Threading
Imports DevExpress.XtraTreeList
Imports DevExpress.XtraTreeList.Columns
Imports DevExpress.XtraTreeList.Nodes.Operations
Imports DevExpress.XtraTreeList.Nodes
Public Class frmConstructor_Main
<DllImport("Shell32", CharSet:=CharSet.Auto, SetLastError:=True)>
@@ -54,7 +59,9 @@ Public Class frmConstructor_Main
Private DT_CONSTRUCT_VIEW As DataTable
Private DT_VWPMO_CONSTRUCTOR_FORMS As DataTable
Private DT_ENTITY_DATA As DataTable
Private DT_TREEVIEW_NODES As DataTable
Private DT_TREEVIEW_NODES_ALL As DataTable
Private DT_TREEVIEW_NODES_FIRST As DataTable
Private DT_TREEVIEW_NODES_DEVEXPRESS As DataTable
Private DT_TREEVIEW_CONFIGURATION As DataTable
Private DT_CONTROLS_ENTITY As DataTable
@@ -286,9 +293,6 @@ Public Class frmConstructor_Main
FormDesignerToolStripMenuItem.Visible = False
End If
'Try
If LICENSE_PROXY = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
SQL = "SELECT * FROM TBPROXY_SYNC_ENTITY"
DT_PROXY_ENTITY = ClassDatabase.Return_Datatable(SQL, True)
@@ -349,7 +353,37 @@ Public Class frmConstructor_Main
Dim DT As DataTable = ClassDatabase.Return_Datatable(SQL, True)
If DT.Rows.Count > 1 Then
TreeView_perControl = True
DT_TREEVIEW_NODES = DT
DT_TREEVIEW_NODES_ALL = DT
DT_TREEVIEW_NODES_DEVEXPRESS = DT_TREEVIEW_NODES_ALL.Copy()
Try
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("ID1")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("ID2")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("ID3")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("BOOL1")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("BOOL2")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("ADDED_WHO")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("ADDED_WHEN")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("CHANGED_WHO")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("CHANGED_WHEN")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("CONTROL_ID")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("CREATE_RECORD")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("ENTITY_ID")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("SEQUENCE")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("EXPAND_NODE")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("NAME")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("TYPE_NODE")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("FONT_FAMILY")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("FONT_COLOR")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("FONT_SIZE")
DT_TREEVIEW_NODES_DEVEXPRESS.Columns.Remove("FONT_STYLE")
DT_TREEVIEW_NODES_DEVEXPRESS.AcceptChanges()
Catch ex As Exception
End Try
DT_TREEVIEW_NODES_FIRST = ClassHelper.FILTER_DATATABLE(DT, "EXPAND_NODE = 1", "")
SQL = String.Format("select * from TBPMO_STRUCTURE_NODES_CONFIGURATION where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", CONSTRUCTORID)
DT_TREEVIEW_CONFIGURATION = ClassDatabase.Return_Datatable(SQL)
@@ -382,9 +416,12 @@ Public Class frmConstructor_Main
SplitContainerMain.Collapsed = True
NODE_NAVIGATION = True
tsmiNodedownSearch.Visible = True
tsmi_NewNode.Visible = True
tsmiNodeNew.Visible = True
tsmiNodeRename.Visible = True
Else
tsmi_NewNode.Visible = False
tsmiNodeNew.Visible = False
tsmiNodeRename.Visible = False
If DT_VWPMO_CONSTRUCTOR_FORMS.Rows.Count = 1 Then
SplitContainerTop.PanelVisibility = SplitPanelVisibility.Both
SplitContainerTop.CollapsePanel = SplitCollapsePanel.Panel1
@@ -1061,6 +1098,8 @@ Public Class frmConstructor_Main
If RIGHT_RECORD_AND_FILE_READ_ONLY = False And CtrlCommandUI.IsInsert = False Then
If DT_CONTROLS_ENTITY.Rows.Count = COUNT_RO_CONTROLS Then
tsButtonEdit.Enabled = False
tsButtonSave.Enabled = False
tsButtonDelete.Enabled = False
Else
' tsButtonEdit.Enabled = True
End If
@@ -1110,9 +1149,10 @@ Public Class frmConstructor_Main
If SQL_RECORD_AND_FILE_READ_ONLY <> "" Or SQL_DOC_READ_ONLY <> "" Then
If RIGHT_RECORD_AND_FILE_READ_ONLY = True Then
tsButtonEdit.Enabled = False
tsButtonSave.Enabled = False
tsButtonDelete.Enabled = False
tsButtonEdit.Enabled = False
tslblLocked.Visible = True
TabFollowUp.PageEnabled = False
tsmiMassChanges.Enabled = False
@@ -1134,6 +1174,8 @@ Public Class frmConstructor_Main
If RIGHT_EDIT_R = False Then
tslblLocked.Visible = True
tsButtonEdit.Enabled = False
tsButtonSave.Enabled = False
tsButtonDelete.Enabled = False
tsmiMassChanges.Enabled = False
If RIGHT_ADD_R = False Then
tsButtonSave.Enabled = False
@@ -1215,6 +1257,7 @@ Public Class frmConstructor_Main
If Not IsNothing(TreeViewMain.SelectedNode) Then
TreeViewMain.SelectedNode.NodeFont = New Font(TreeViewMain.Font.FontFamily, TreeViewMain.Font.Size, FontStyle.Regular)
End If
End If
End Sub
Private Sub TreeViewMain_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeViewMain.AfterSelect
@@ -1310,40 +1353,102 @@ Public Class frmConstructor_Main
End Sub
Sub Load_TreeView_Node_Navigation()
MyTreeview = Nothing
Dim newTreeview As TreeView
'If DT_TREEVIEW_NODES.Rows.Count > 500 Then
' newTreeview = ClassNodeNavigation.CreateTreeViewNodes(DT_TREEVIEW_NODES, TREEVIEW_IMAGELIST)
'Else
newTreeview = ClassNodeNavigation.CreateTreeViewNodes(DT_TREEVIEW_NODES, TREEVIEW_IMAGELIST)
'End If
Try
MyTreeview = Nothing
'If DT_TREEVIEW_NODES.Rows.Count > 500 Then
' newTreeview = ClassNodeNavigation.CreateTreeViewNodes(DT_TREEVIEW_NODES, TREEVIEW_IMAGELIST)
'Else
Try
Dim async As New ClassAsyncNodeBuild(DT_TREEVIEW_NODES_ALL, TREEVIEW_IMAGELIST)
async.bw.RunWorkerAsync()
While async.bw.IsBusy
Application.DoEvents()
progressLoadEntity.Visible = True
labelLoadEntity.Visible = True
labelLoadEntity.Text = "Loading TreeView..."
End While
progressLoadEntity.Visible = False
labelLoadEntity.Visible = False
MyTreeview = async.newTreeview
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in Async NodeBuild", ex.Message & vbNewLine & "ADDI will try an alternative method!", ex.StackTrace)
MyTreeview = ClassNodeNavigation.CreateTreeViewNodes(DT_TREEVIEW_NODES_ALL, TREEVIEW_IMAGELIST)
End Try
'End If
Dim sw As New SW("ADD TV to Form")
If Not IsNothing(MyTreeview) Then
MyTreeview.BeginUpdate()
For Each node As TreeNode In MyTreeview.Nodes
TreeViewMain.Nodes.Add(node.Clone)
Next
MyTreeview.EndUpdate()
End If
' Start the asynchronous operation.
'backgroundWorkerTreeView.RunWorkerAsync()
sw.Done()
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in Load_TreeView_Node_Navigation", ex.Message, ex.StackTrace)
End Try
If Not IsNothing(newTreeview) Then
For Each node As TreeNode In newTreeview.Nodes
TreeViewMain.Nodes.Add(node.Clone)
Next
End If
'If CONSTRUCT_EXPAND = True Then
' TreeViewMain.ExpandAll()
'End If
End Sub
Sub START_BW_LoadTreeView()
If BW_LoadTreeView.IsBusy <> True Then
TreeViewMain.Nodes.Clear()
BW_LoadTreeView.RunWorkerAsync()
End If
End Sub
Sub Load_Tree_View()
Try
TreeViewMain.Nodes.Clear()
Dim sw As New SW("Load_Tree_View")
If NODE_NAVIGATION = True Then
Load_TreeView_Node_Navigation()
Try
Load_TreeView_Node_Navigation()
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")) 'row.Item("GUID").ToString & "#" & row.Item("ENTITY_ID")
End If
Catch ex As Exception
End Try
Next
Dim sw As New SW("Devexpress TreeView")
TreeList1.DataSource = DT_TREEVIEW_NODES_DEVEXPRESS
TreeList1.KeyFieldName = "GUID"
TreeList1.ParentFieldName = "PARENT_GUID"
Try
TreeList1.Columns.ColumnByName("colRECORD_ID").Visible = False
Catch ex As Exception
End Try
Try
TreeList1.Columns.ColumnByName("colNODE_CONFIG_ID").Visible = False
Catch ex As Exception
End Try
Try
TreeList1.Columns.ColumnByName("colBACK_COLOR").Visible = False
Catch ex As Exception
End Try
sw.Done()
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in Load_TreeView_Node_Navigation", ex.Message, ex.StackTrace)
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in Devexpress TreeView Load", ex.Message, ex.StackTrace)
End Try
Else
Dim sw As New SW("Load_Tree_View")
' LINQ für Zugriff auf DT_VWPMO_CONSTRUCTOR_FORMS
Dim query1 = From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
Select form
@@ -1410,10 +1515,11 @@ Public Class frmConstructor_Main
Next
Next
Next
sw.Done()
End If
sw.Done()
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
End Try
@@ -1427,11 +1533,9 @@ Public Class frmConstructor_Main
End Sub
Private Sub BW_Load_EntityData_DoWork(sender As Object, e As DoWorkEventArgs) Handles BW_LoadTreeView.DoWork
Try
Load_Tree_View()
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in BW_Load_EntityData_DoWork", ex.Message, ex.StackTrace)
End Try
Load_Tree_View()
End Sub
Sub Create_variable_node()
@@ -1813,61 +1917,61 @@ Public Class frmConstructor_Main
End If
End If
Me.Cursor = Cursors.WaitCursor
' Try
If TCDetails.SelectedTabPage.Text.StartsWith("Pos") = False Then
SELECTED_RECORD_ID = 0
' Lock_RecordControls(False)
Try
If TCDetails.SelectedTabPage.Text.StartsWith("Pos") = False Then
SELECTED_RECORD_ID = 0
' Lock_RecordControls(False)
CURRENT_PARENT_ENTITY_ID = PARENT_ENTITYID
' Den Record anlegen, damit wir eine RECORD_ID bekommen
CURRENT_PARENT_ENTITY_ID = PARENT_ENTITYID
' Den Record anlegen, damit wir eine RECORD_ID bekommen
Dim recordId = ClassRecordCommands.CreateRecordProcedure(ENTITY_ID)
Dim recordId = ClassRecordCommands.CreateRecordProcedure(ENTITY_ID)
If recordId > 0 Then
Lock_RecordControls(False)
tsButtonCancel.Visible = True
' Die RECORD_ID auslesen und setzen
NEW_RECORD_ID = recordId
CURRENT_RECORD_ID = NEW_RECORD_ID
RECORD_ID = NEW_RECORD_ID
SELECTED_RECORD_ID = NEW_RECORD_ID
ClassProxy.PRPROXY_RECORD_UPD_INS(ENTITY_ID, SELECTED_RECORD_ID)
If PARENT_ENTITYID > 0 And PARENT_RECORDID > 0 Then
If ClassRecordCommands.ConnectRecord(PARENT_RECORDID, CURRENT_RECORD_ID, "INSERT RECORD") = False Then
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "In Connecting Record - Check the log!")
Else
ClassProxy.PRPROXY_RECORD_CONNECT(PARENT_RECORDID, CURRENT_RECORD_ID)
If recordId > 0 Then
Lock_RecordControls(False)
tsButtonCancel.Visible = True
' Die RECORD_ID auslesen und setzen
NEW_RECORD_ID = recordId
CURRENT_RECORD_ID = NEW_RECORD_ID
RECORD_ID = NEW_RECORD_ID
SELECTED_RECORD_ID = NEW_RECORD_ID
ClassProxy.PRPROXY_RECORD_UPD_INS(ENTITY_ID, SELECTED_RECORD_ID)
If PARENT_ENTITYID > 0 And PARENT_RECORDID > 0 Then
If ClassRecordCommands.ConnectRecord(PARENT_RECORDID, CURRENT_RECORD_ID, "INSERT RECORD") = False Then
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "In Connecting Record - Check the log!")
Else
ClassProxy.PRPROXY_RECORD_CONNECT(PARENT_RECORDID, CURRENT_RECORD_ID)
End If
End If
End If
ClassControlValues.LoadDefaultValues(ENTITY_ID, SELECTED_RECORD_ID, pnlDetails.Controls, CURRENT_PARENT_ENTITY_ID, ENTITY_ID)
ClassControlValues.Enable_Depending_Controls(ENTITY_ID, RECORD_ID, PARENT_RECORDID, CtrlBuilder.AllControls, ENTITY_ID)
' Das StatusLabel aktualisieren
Update_Record_Label(NEW_RECORD_ID)
Doc_ReadOnlyHandler(True)
RUN_WDSEARCH_GRID()
' Im gegensatz zu EnableEditMode muss hier nur der save button enabled werden
tsButtonSave.Enabled = True
' Muss aktiviert werden, sonst funktionieren die Combobox Abhängigkeits Events nicht
CURRENT_RECORD_ENABLED = True
' EDIT_STATE muss hier (immer?) Update sein, sonst wird beim Speichern noch ein Datensatz angelegt
EDIT_STATE = EditState.Update
RECORD_CHANGED = True
'tsslblRecord.Text = "Adding record ......"
RIGHT_RECORD_AND_FILE_READ_ONLY = False
tslblLocked.Visible = False
tslblFileslocked.Visible = False
tsButtonAdd.Enabled = False
Else
Me.Cursor = Cursors.Default
MsgBox("Could not create a new record. Please check the log for further informations!", MsgBoxStyle.Critical)
ClassControlValues.LoadDefaultValues(ENTITY_ID, SELECTED_RECORD_ID, pnlDetails.Controls, CURRENT_PARENT_ENTITY_ID, ENTITY_ID)
ClassControlValues.Enable_Depending_Controls(ENTITY_ID, RECORD_ID, PARENT_RECORDID, CtrlBuilder.AllControls, ENTITY_ID)
' Das StatusLabel aktualisieren
Update_Record_Label(NEW_RECORD_ID)
Doc_ReadOnlyHandler(True)
RUN_WDSEARCH_GRID()
' Im gegensatz zu EnableEditMode muss hier nur der save button enabled werden
tsButtonSave.Enabled = True
' Muss aktiviert werden, sonst funktionieren die Combobox Abhängigkeits Events nicht
CURRENT_RECORD_ENABLED = True
' EDIT_STATE muss hier (immer?) Update sein, sonst wird beim Speichern noch ein Datensatz angelegt
EDIT_STATE = EditState.Update
RECORD_CHANGED = True
'tsslblRecord.Text = "Adding record ......"
RIGHT_RECORD_AND_FILE_READ_ONLY = False
tslblLocked.Visible = False
tslblFileslocked.Visible = False
tsButtonAdd.Enabled = False
Else
Me.Cursor = Cursors.Default
MsgBox("Could not create a new record. Please check the log for further informations!", MsgBoxStyle.Critical)
End If
End If
End If
' Catch ex As Exception
'ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error tsButtonAdd", ex.Message, ex.StackTrace)
' Finally
'Me.Cursor = Cursors.Default
' End Try
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error tsButtonAdd", ex.Message, ex.StackTrace)
Finally
Me.Cursor = Cursors.Default
End Try
End Sub
Private Sub tsButtonSave_Click(sender As Object, e As EventArgs) Handles tsButtonSave.Click
@@ -2322,8 +2426,12 @@ Public Class frmConstructor_Main
Next
If DT_CONTROLS_ENTITY.Rows.Count = COUNT_RO_CONTROLS Then
tsButtonEdit.Enabled = False
tsButtonSave.Enabled = False
tsButtonDelete.Enabled = False
Else
tsButtonEdit.Enabled = True
tsButtonSave.Enabled = True
tsButtonDelete.Enabled = True
End If
Dim resultDT_VWPMO_CONSTRUCTOR_FORMS = (From form In DT_VWPMO_CONSTRUCTOR_FORMS.AsEnumerable()
@@ -2370,7 +2478,7 @@ Public Class frmConstructor_Main
'sql = String.Format("select * from TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE VISIBLE = 1 AND ENTITY_ID = {0} AND LANGUAGE = '{1}' ORDER BY SEQUENCE", ENTITY_ID, USER_LANGUAGE) 'TBPMO_WINDREAM_RESULTLIST_CONFIG"
expression = String.Format("VISIBLE = 1 AND ENTITY_ID = {0} AND LANGUAGE = '{1}'", ENTITY_ID, USER_LANGUAGE)
expression = String.Format("ENTITY_ID = {0} AND LANGUAGE = '{1}'", ENTITY_ID, USER_LANGUAGE)
DT_WINDREAM_COLUMNS_GRID = ClassHelper.FILTER_DATATABLE(CURRENT_RESULTLIST_CONFIG, expression, "SEQUENCE") 'ClassDatabase.Return_Datatable(sql, True)
expression = String.Format("ENTITY_ID = {0} AND TYPE_ID = 3 AND LANGUAGE = '{1}'", ENTITY_ID, USER_LANGUAGE)
'sql = String.Format("select T.*, T1.HEADER_CAPTION from TBPMO_DOCRESULT_DROPDOWN_ITEMS T, TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 WHERE T.CONFIG_ID = T1.GUID AND T.CONFIG_ID IN (SELECT GUID FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = {0} AND TYPE_ID = 3 AND LANGUAGE = '{1}') ORDER BY T.SEQUENCE ", ENTITY_ID, USER_LANGUAGE)
@@ -2379,7 +2487,7 @@ Public Class frmConstructor_Main
'sql = String.Format("select * from TBPMO_DOCSEARCH_VARIABLE_CONTROLS WHERE ENTITY_ID = {0}", ENTITY_ID)
DT_RESULTLIST_OPTIONS = ClassHelper.FILTER_DATATABLE(CURRENT_VARIABLE_CONTROLS, "ENTITY_ID = " & ENTITY_ID, "") ' ClassDatabase.Return_Datatable(sql, True)
' sql = String.Format("select * from TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE VISIBLE = 1 AND ENTITY_ID = {0} AND LANGUAGE = '{1}' AND COLUMN_VIEW LIKE 'VALUE%' ORDER BY SEQUENCE", ENTITY_ID, USER_LANGUAGE)
expression = String.Format("VISIBLE = 1 AND ENTITY_ID = {0} AND LANGUAGE = '{1}' AND COLUMN_VIEW LIKE 'VALUE%'", ENTITY_ID, USER_LANGUAGE)
expression = String.Format("ENTITY_ID = {0} AND LANGUAGE = '{1}' AND COLUMN_VIEW LIKE 'VALUE%'", ENTITY_ID, USER_LANGUAGE)
DT_RESULTLIST_VARIABLE_VALUE = ClassHelper.FILTER_DATATABLE(CURRENT_RESULTLIST_CONFIG, expression, "SEQUENCE") 'ClassDatabase.Return_Datatable(sql, True)
Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable()
Select form
@@ -2610,7 +2718,7 @@ Public Class frmConstructor_Main
progressLoadEntity.Visible = True
labelLoadEntity.Visible = True
labelLoadEntity.Text = "Loading record-data..."
If LOCK_CONTROLS_BG_LOAD = True Then
SplitContainerMain.Panel2.Enabled = False
End If
@@ -2639,7 +2747,7 @@ Public Class frmConstructor_Main
CURRENT_DT_ENTITY_RECORDS.TableName = "VWPMO_ENTITY_TABLE" & ENTITY_ID
' 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 = " & ENTITY_ID
Dim DT_AUTOVALUES = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_CONTROL, "CONNECTION_ID_1 <> '' AND SQL_COMMAND_1 <> '' AND FORM_ID = " & ENTITY_ID, "")
Dim DT_AUTOVALUES = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_CONTROL, "CONNECTION_ID_1 > 0 AND SQL_COMMAND_1 <> '' AND FORM_ID = " & ENTITY_ID, "")
'Dim DT_AUTOVALUES As DataTable = ClassDatabase.Return_Datatable(SQL_AutoValues, True)
CURRENT_SQL_AUTO_VALUES_DT = DT_AUTOVALUES
@@ -4184,7 +4292,7 @@ Public Class frmConstructor_Main
End If
Load_DocGrid_Layout()
Case "TabFollowUp"
'tsButtonEdit.Enabled = False
Refresh_FollowUps()
dtpFollowUp.Enabled = False
lblWiedervorlage_Control.Text = "<< Waiting for Selection:"
@@ -4192,7 +4300,7 @@ Public Class frmConstructor_Main
Load_Variants()
Case "TabPos"
Dim stg As String
'tsButtonEdit.Enabled = False
If POS_ENABLED = True Then
tslblPoslocked.Visible = False
BindingNavigatorAddNewItem.Enabled = True
@@ -4372,6 +4480,14 @@ Public Class frmConstructor_Main
If DropType.ToString.Contains("SCAN") = False Then
ClassLogger.Add(">> Check_Dropped_Files:" & Str.ToString, False)
Dim CURRENT_WORKFILE = Str.Substring(Str.LastIndexOf("@") + 1)
If CURRENT_WORKFILE.ToString.Contains("@") Then
MsgBox("File contains invalid operator @!" & vbNewLine & "Please rename file and try again!", MsgBoxStyle.Exclamation)
Continue For
End If
If CURRENT_WORKFILE.ToString.Contains("'") Then
MsgBox("File contains invalid operator '!" & vbNewLine & "Please rename file and try again!", MsgBoxStyle.Exclamation)
Continue For
End If
ClassFolderWatcher.Insert_USER_File(CURRENT_WORKFILE, DropType)
End If
End If
@@ -4895,7 +5011,7 @@ Public Class frmConstructor_Main
End Sub
Private Sub grvwGridPos_CellValueChanged(sender As Object, e As CellValueChangedEventArgs) Handles grvwGridPos.CellValueChanged
Private Sub grvwGridPos_CellValueChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs) Handles grvwGridPos.CellValueChanged
Try
Dim column = e.Column.FieldName
Dim sql = String.Format("select guid from TBPMO_CONTROL where COL_NAME = '{0}' and FORM_ID = {1}", column, POS_ENTITY)
@@ -5194,7 +5310,7 @@ Public Class frmConstructor_Main
End If
End Sub
Private Sub GridViewDoc_Search_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles GridViewDoc_Search.FocusedColumnChanged
Private Sub GridViewDoc_Search_FocusedColumnChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedColumnChangedEventArgs) Handles GridViewDoc_Search.FocusedColumnChanged
GridViewDoc_Search.EndSelection()
ClassWindreamDocGrid.GetDocItems(GridViewDoc_Search)
Refresh_DocID()
@@ -5512,11 +5628,6 @@ Public Class frmConstructor_Main
End Function
#End Region
Private Sub grvwGrid_CellValueChanged(sender As Object, e As CellValueChangedEventArgs) Handles grvwGrid.CellValueChanged
End Sub
Private Sub SucheAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SucheAnzeigenToolStripMenuItem.Click
grvwGrid.ShowFindPanel()
grvwGrid.FindFilterText = ""
@@ -5591,18 +5702,7 @@ Public Class frmConstructor_Main
End Sub
Private Sub DateiMitDatensatzVerknüpfenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles docCM_linkRecord.Click
Try
ClassWindreamDocGrid.GetDocItems(GridViewDoc_Search)
If IsNothing(ClassWindreamDocGrid.DT_RESULTFILES) Then
MsgBox("Could not read File Parameters (LinkRecord)!", MsgBoxStyle.Exclamation)
Exit Sub
End If
Refresh_Selected_Table()
Dim frm As New frmDocRecordLink ' frmDocLink_Record_Entities() 'fileName, ClassWindreamDocGrid.RESULT_OBJECTTYPE)
frm.Show()
Catch ex As Exception
MsgBox("Unexpected Error in Linking Record: " & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub DetailAnsichtDatensatzToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DetailAnsichtDatensatzToolStripMenuItem.Click
@@ -6111,7 +6211,7 @@ Public Class frmConstructor_Main
If DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED = True Then
msg = "Sie benutzen einen Proxyserver. Die Daten des neu verlinkten Datensatzes werden Sie evtl. erst nach vollständiger Proxysynchronisation einsehen können!"
If USER_LANGUAGE <> "de-DE" Then
msg = String.Format("You are using a proxy-Server. The new linked record in entity '{0}' will only be displayed after a full synchronisation!", ENTITY_STRING)
msg = String.Format("You are using a proxy-Server. The new linked record in entity '{0}' might only be displayed after a full synchronisation!", ENTITY_STRING)
End If
MsgBox(msg, MessageBoxIcon.Information)
End If
@@ -6398,14 +6498,32 @@ Public Class frmConstructor_Main
e.Cancel = True
End If
If CURRENT_NODE_CONFIGURABLE_ID <> 0 Then
tsmi_NewNode.Visible = True
tsmiNodeNew.Visible = True
Else
tsmi_NewNode.Visible = False
tsmiNodeNew.Visible = False
End If
If Not IsNothing(TreeViewMain.SelectedNode) Then
Dim nodetag = TreeViewMain.SelectedNode.Tag.ToString
Console.WriteLine(nodetag)
If nodetag.StartsWith("CONFIG_NODE") Then
Dim oNODE_GUID = ClassNodeNavigation.Return_NODEID_forTag(TreeViewMain.SelectedNode.Tag.ToString)
Try
Dim oExpression As String
oExpression = "GUID = " & oNODE_GUID
Dim oRowNode() As DataRow = DT_TREEVIEW_NODES_ALL.Select(oExpression)
If oRowNode.Length = 1 Then
Dim oAllowRenameNode = oRowNode(0)("BOOL1")
If oAllowRenameNode = True Then
Me.tsmiNodeRename.Visible = True
Else
Me.tsmiNodeRename.Visible = False
End If
End If
Catch ex As Exception
End Try
If TreeViewMain.SelectedNode.Tag.ToString.StartsWith("CONFIG_NODE") Then
tsmiNodeDelete.Visible = True
End If
End If
@@ -6567,12 +6685,9 @@ Public Class frmConstructor_Main
ElseIf where = "BELOW" Then
PARENT_ID = ClassNodeNavigation.Return_NODEID_forTag(TreeViewMain.SelectedNode.Tag)
End If
Dim NEWRECORD As Integer
If RECORD_CREATE = True Then
Dim recordId = ClassRecordCommands.CreateRecordProcedure(ENTITY_ID)
If recordId = 0 Then
ClassLogger.Add("Error in ADD_NODE: Could not create Record", True)
ClassHelper.MSGBOX_Handler("ERROR", "Error in ADD_NODE", "Could not create Record")
@@ -6581,7 +6696,6 @@ Public Class frmConstructor_Main
NEWRECORD = recordId
End If
End If
'Dim NEWRECORD As Integer = ClassControlCommandsUI.GetLastRecord(ENTITY_ID)
Dim NEWNODE = New TreeNode(tsmINewText.Text)
If Not IsNothing(NEWRECORD) Then
@@ -6598,18 +6712,20 @@ Public Class frmConstructor_Main
NEWNODE.ImageIndex = index
NEWNODE.SelectedImageIndex = index
End If
Dim ins
If RECORD_CREATE Then
ins = String.Format("INSERT INTO TBPMO_STRUCTURE_NODES (RECORD_ID,NODE_CONFIG_ID, NODE_CAPTION, ID1, PARENT_GUID, ADDED_WHO) VALUES (" &
"{0},{1},'{2}','{3}','{4}','{5}')", NEWRECORD, CURRENT_NODE_CONFIGURABLE_ID, tsmINewText.Text, "CONFIG " & NEWRECORD & "-" & CURRENT_NODE_CONFIGURABLE_ID, PARENT_ID, USER_USERNAME)
Else
ins = String.Format("INSERT INTO TBPMO_STRUCTURE_NODES (NODE_CONFIG_ID, NODE_CAPTION, ID1, PARENT_GUID, ADDED_WHO) VALUES (" &
"{1},'{2}','{3}','{4}','{5}')", NEWRECORD, CURRENT_NODE_CONFIGURABLE_ID, tsmINewText.Text, "CONFIG " & NEWRECORD & "-" & CURRENT_NODE_CONFIGURABLE_ID, PARENT_ID, USER_USERNAME)
End If
If ClassDatabase.Execute_non_Query(ins) Then
Dim sel = String.Format("SELECT MAX(GUID) FROM TBPMO_STRUCTURE_NODES WHERE NODE_CONFIG_ID = {0} AND NODE_CAPTION = '{1}'", CURRENT_NODE_CONFIGURABLE_ID, tsmINewText.Text)
'Dim ins
'If RECORD_CREATE Then
Dim NEW_GUID = ClassDatabase.Execute_Scalar(sel)
' sdd
' ins = String.Format("INSERT INTO TBPMO_STRUCTURE_NODES (RECORD_ID,NODE_CONFIG_ID, NODE_CAPTION, ID1, PARENT_GUID, ADDED_WHO) VALUES (" &
' "{0},{1},'{2}','{3}','{4}','{5}')", NEWRECORD, CURRENT_NODE_CONFIGURABLE_ID, tsmINewText.Text, "CONFIG " & NEWRECORD & "-" & CURRENT_NODE_CONFIGURABLE_ID, PARENT_ID, USER_USERNAME)
'Else
' ins = String.Format("INSERT INTO TBPMO_STRUCTURE_NODES (NODE_CONFIG_ID, NODE_CAPTION, ID1, PARENT_GUID, ADDED_WHO) VALUES (" &
' "{0},'{1}','{2}','{3}','{4}')", CURRENT_NODE_CONFIGURABLE_ID, tsmINewText.Text, "CONFIG " & NEWRECORD & "-" & CURRENT_NODE_CONFIGURABLE_ID, PARENT_ID, USER_USERNAME)
'End If
'If ClassDatabase.Execute_non_Query(ins) Then
Dim NEW_GUID = ClassNodeNavigation.CreateNodeProcedure(NEWRECORD, CURRENT_NODE_CONFIGURABLE_ID, tsmINewText.Text, "CONFIG " & NEWRECORD & "-" & CURRENT_NODE_CONFIGURABLE_ID, PARENT_ID, USER_USERNAME)
If NEW_GUID > 0 Then
ClassNodeNavigation.Check_NODE_CONFIG_ID(ENTITY_ID, Nothing)
NEWNODE.Tag = ClassNodeNavigation.CreateNODE_TAG(ENTITY_ID, NEW_GUID, NEWRECORD, CURRENT_NODE_CONFIGURABLE_ID)
@@ -6620,7 +6736,9 @@ Public Class frmConstructor_Main
TreeViewMain.SelectedNode.Nodes.Add(NEWNODE)
TreeViewMain.SelectedNode.Expand()
End If
' End If
End If
End If
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Unexpected Error in Adding ConfigNode: ", ex.Message)
@@ -6642,14 +6760,10 @@ Public Class frmConstructor_Main
Dim result As MsgBoxResult
result = MessageBox.Show(msg, "Confirmation:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = MsgBoxResult.Yes Then
Dim delete = String.Format("DELETE FROM TBPMO_STRUCTURE_NODES WHERE GUID = {0}", NODE_GUID)
If ClassDatabase.Execute_non_Query(delete) Then
If REC_Exists = True Then
If ClassHelper.DeleteRecord(SELECTED_RECORD_ID, "NodeDelete-Click") = True Then
ClassHelper.InsertEssential_Log(SELECTED_RECORD_ID, "RECORD-ID", "RECORD WAS DELETED MANUALLY by USER: " & USER_USERNAME)
TreeViewMain.Nodes.Remove(TreeViewMain.SelectedNode)
End If
End If
Dim oDelete = String.Format("EXEC PRPMO_DELETE_NODE {0},'{1}'", NODE_GUID, USER_USERNAME)
If ClassDatabase.Execute_non_Query(oDelete) Then
TreeViewMain.Nodes.Remove(TreeViewMain.SelectedNode)
Refresh_Entity_Data()
End If
End If
End If
@@ -6765,7 +6879,7 @@ Public Class frmConstructor_Main
End Sub
Private Sub grvwGridPos_FocusedColumnChanged(sender As Object, e As FocusedColumnChangedEventArgs) Handles grvwGridPos.FocusedColumnChanged
Private Sub grvwGridPos_FocusedColumnChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedColumnChangedEventArgs) Handles grvwGridPos.FocusedColumnChanged
Pos_COLROW_Changer()
End Sub
@@ -6939,5 +7053,125 @@ Public Class frmConstructor_Main
End If
End Sub
Private Sub TreeViewMain_BeforeExpand(sender As Object, e As TreeViewCancelEventArgs) Handles TreeViewMain.BeforeExpand
End Sub
Private Sub TreeList1_GetStateImage(sender As Object, e As DevExpress.XtraTreeList.GetStateImageEventArgs) Handles TreeList1.GetStateImage
Dim Column_Config_ID As DevExpress.XtraTreeList.Columns.TreeListColumn = TreeList1.Columns("NODE_CONFIG_ID")
Dim configid = e.Node.GetDisplayText(Column_Config_ID)
e.Node.StateImageIndex = ImageCollection1.Images.Keys.IndexOf(configid)
End Sub
Private Sub TreeList1_ColumnFilterChanged(sender As Object, e As EventArgs) Handles TreeList1.ColumnFilterChanged
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 AusDieserEntitätToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AusDieserEntitätToolStripMenuItem.Click
Try
ClassWindreamDocGrid.GetDocItems(GridViewDoc_Search)
If IsNothing(ClassWindreamDocGrid.DT_RESULTFILES) Then
MsgBox("Could not read File Parameters (LinkRecord)!", MsgBoxStyle.Exclamation)
Exit Sub
End If
Refresh_Selected_Table()
Dim frm As New frmDocRecordLink ' frmDocLink_Record_Entities() 'fileName, ClassWindreamDocGrid.RESULT_OBJECTTYPE)
frm.Show()
Catch ex As Exception
MsgBox("Unexpected Error in Linking Record: " & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub AusAndererEntitätToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AusAndererEntitätToolStripMenuItem.Click
Try
ClassWindreamDocGrid.GetDocItems(GridViewDoc_Search)
If IsNothing(ClassWindreamDocGrid.DT_RESULTFILES) Then
MsgBox("Could not read File Parameters (LinkRecord)!", MsgBoxStyle.Exclamation)
Exit Sub
End If
Refresh_Selected_Table()
Dim frm As New frmDocLink_Record_Entities() 'fileName, ClassWindreamDocGrid.RESULT_OBJECTTYPE)
frm.Show()
Catch ex As Exception
MsgBox("Unexpected Error in Linking Record: " & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub tstxtRenameNode_KeyUp(sender As Object, e As KeyEventArgs) Handles tstxtRenameNode.KeyUp
If e.KeyCode = Keys.Return Then
Try
Dim oTag = TreeViewMain.SelectedNode.Tag
Dim oRecExists As Boolean = False
If oTag.ToString.ToString.Contains("RECORD-ID") Then
oRecExists = True
End If
Dim NODE_GUID = ClassNodeNavigation.Return_NODEID_forTag(oTag)
If IsNumeric(NODE_GUID) Then
Dim OMsg = "Sind Sie sicher, dass Sie den Knoten '" & TreeViewMain.SelectedNode.Text & "' umbenennen wollen?"
If USER_LANGUAGE <> "de-DE" Then
OMsg = "Are You sure You want to rename the node'" & TreeViewMain.SelectedNode.Text & "'?"
End If
Dim oResult As MsgBoxResult
oResult = MessageBox.Show(OMsg, "Confirmation:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If oResult = MsgBoxResult.Yes Then
Dim oUpdate = String.Format("UPDATE TBPMO_STRUCTURE_NODES SET NODE_CAPTION = '{0}', CHANGED_WHO = '{1}' WHERE GUID = {2}", Me.tstxtRenameNode.Text, USER_USERNAME, NODE_GUID)
If ClassDatabase.Execute_non_Query(oUpdate) Then
TreeViewMain.SelectedNode.Text = Me.tstxtRenameNode.Text
End If
End If
End If
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Unexpected Error in Renaming ConfigNode: ", ex.Message)
End Try
End If
End Sub
Private Sub tsmiNodeRename_MouseHover(sender As Object, e As EventArgs) Handles tsmiNodeRename.MouseHover
If Not IsNothing(TreeViewMain.SelectedNode) Then
Me.tstxtRenameNode.Text = TreeViewMain.SelectedNode.Text
End If
End Sub
End Class