Add config items, clear documents and controls when no record id is available

This commit is contained in:
Jonathan Jenne
2023-09-28 10:49:14 +02:00
parent b06a399eaa
commit a7dc616690
7 changed files with 316 additions and 361 deletions

View File

@@ -18,64 +18,57 @@ Imports DigitalData.Modules.Database
Public Class frmNodeNavigation
#Region "Laufzeitvariablen & Konstanten"
Private DT_STRUCTURE_NODES As DataTable
Private DT_ADDING_USERS As DataTable
Private DT_VWPMO_CONSTRUCTOR_FORMS As DataTable
Private RunningTask As Task
Private RunningTaskTokenSource As New CancellationTokenSource
Private RunningTaskToken = RunningTaskTokenSource.Token
Private _EntityId As Short
Private oConstructID As Short
Private CONSTRUCTORID As Integer
Private CONSTRUCTOR_DETAIL_ID As Short
Private _FilterActive As Boolean = False
Private _RowReadOnly As Boolean = False
Private ADD_RECORDS_CONSTR As Boolean = True
Private TV_Collapse_ExpandState = "Collapse"
Private Property DT_STRUCTURE_NODES As DataTable
Private Property DT_ADDING_USERS As DataTable
Private Property DT_VWPMO_CONSTRUCTOR_FORMS As DataTable
Private Property RunningTaskTokenSource As New CancellationTokenSource
Private Property _EntityId As Short
Private Property oConstructID As Short
Private Property CONSTRUCTORID As Integer
Private Property CONSTRUCTOR_DETAIL_ID As Short
Private Property _RowReadOnly As Boolean = False
Private Property ADD_RECORDS_CONSTR As Boolean = True
Private Property TV_Collapse_ExpandState = "Collapse"
Private WindowsEx As WindowsEx
Private Property WindowsEx As WindowsEx
Private DT_CONTROLS_ENTITY As DataTable
Private DT_COLUMNS_GRID_ENTITY As DataTable
Private DT_DOCRESULT_DROPDOWN_ITEMS As DataTable
Private DT_RESULTLIST_OPTIONS As DataTable
Private DT_RESULTLIST_VARIABLE_VALUE As DataTable
Private DT_ENTITY_DATA As DataTable
Private DT_TBPMO_FORM_VIEW As DataTable
Private DT_CONSTRUCT_VIEW As DataTable
Private COUNT_RO_CONTROLS As Integer = 0
Private SELECTED_NODE_RECORD_ID As Integer
Private SELECTED_NODE_CAPTION As String
Private ENTITY_RECORD_COUNT As Integer = 0
Private FORMVIEW_ID As Integer
Private FORM_LOADED As Boolean = False
Private FORM_SHOWN As Boolean = False
Private SAVE_ROUTINE_ACTIVE As Boolean = False
Private Property DT_CONTROLS_ENTITY As DataTable
Private Property DT_COLUMNS_GRID_ENTITY As DataTable
Private Property DT_DOCRESULT_DROPDOWN_ITEMS As DataTable
Private Property DT_RESULTLIST_OPTIONS As DataTable
Private Property DT_RESULTLIST_VARIABLE_VALUE As DataTable
Private Property DT_ENTITY_DATA As DataTable
Private Property DT_TBPMO_FORM_VIEW As DataTable
Private Property DT_CONSTRUCT_VIEW As DataTable
Private Property COUNT_RO_CONTROLS As Integer = 0
Private Property SELECTED_NODE_RECORD_ID As Integer
Private Property SELECTED_NODE_CAPTION As String
Private Property FORMVIEW_ID As Integer
Private Property FORM_LOADED As Boolean = False
Private Property FORM_SHOWN As Boolean = False
Private Property SAVE_ROUTINE_ACTIVE As Boolean = False
Private ENTITY_LOADING_PROCESS As Boolean = False
Private RECORD_ENABLED As Boolean = False
Private BACKGROUND_HELPER As ClassBackgroundHelper
Private Node_AfterSelect As Boolean = False
Private EDIT_STATE As EditState = EditState.None
Private POS_ENABLED As Boolean = False
Private ERROR_WHILE_SAVING As Boolean = False
Private taskToken As CancellationTokenSource
Private IW_USER As String
Private IW_COMMENT As String
Private INWORK_FILE As Boolean
Private CONTROL_DOCTYPE_MATCH As Integer = 0
Private FocusedNode As TreeListNode
Private MyTreeListViewState As ClassTreeListViewState
Private Property ENTITY_LOADING_PROCESS As Boolean = False
Private Property RECORD_ENABLED As Boolean = False
Private Property Node_AfterSelect As Boolean = False
Private Property EDIT_STATE As EditState = EditState.None
Private Property ERROR_WHILE_SAVING As Boolean = False
Private Property IW_USER As String
Private Property IW_COMMENT As String
Private Property INWORK_FILE As Boolean
Private Property CONTROL_DOCTYPE_MATCH As Integer = 0
Private Property FocusedNode As TreeListNode
Private Property MyTreeListViewState As ClassTreeListViewState
Private AvailableConfigNodes As New List(Of frmNewNode.NodeConfig)
Private CurrentNodeConfigId As Integer = 0
Private Property AvailableConfigNodes As New List(Of frmNewNode.NodeConfig)
Private Property CurrentNodeConfigId As Integer = 0
Private DocList As ClassWindreamDocGrid
Private Property DocList As ClassWindreamDocGrid
Public CtrlBuilder As ClassControlBuilder
Public CtrlCommandUI As ClassControlCommandsUI
Private ClassNodeCommands As ClassNodeCommands
Private Property ClassNodeCommands As ClassNodeCommands
Private Debug As Boolean = False
@@ -101,20 +94,13 @@ Public Class frmNodeNavigation
ClassNodeCommands = New ClassNodeCommands(LOGCONFIG, MYDB_ECM)
End Sub
Private Function Get_Splitter_Layout_Filename()
Dim Filename As String = String.Format("{0}-{1}-SplitterLayout.xml", CONSTRUCTOR_DETAIL_ID, CONSTRUCTOR_DETAIL_ID.ToString)
Return Path.Combine(Application.UserAppDataPath(), Filename)
End Function
Sub Save_Splitter_Layout()
Try
Dim XMLPath = Get_Splitter_Layout_Filename()
Dim layout As New ClassLayout(XMLPath)
Dim settings As New List(Of ClassSetting) From {
New ClassSetting("SplitViewDetailsSplitterPosition", SplitContainer1.SplitterDistance),
New ClassSetting("SplitViewMainSplitterPosition", SplitContainerMain.SplitterPosition)
}
layout.Save(settings)
CONFIG.Config.TreeListSplitterWidth = SplitContainerTreeList.SplitterPosition
CONFIG.Config.DocumentViewerSplitterWidth = SplitContainerDocView.SplitterPosition
CONFIG.Config.DocumentSearchSplitterWidth = SplitContainerDocumentSearch.SplitterPosition
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
End Try
@@ -122,31 +108,17 @@ Public Class frmNodeNavigation
Sub Load_Splitter_Layout()
Try
Dim XMLPath As String = Get_Splitter_Layout_Filename()
Dim layout As New ClassLayout(XMLPath)
Dim settings As System.Collections.Generic.List(Of ClassSetting)
settings = layout.Load()
If CONFIG.Config.TreeListSplitterWidth > 0 Then
SplitContainerTreeList.SplitterPosition = CONFIG.Config.TreeListSplitterWidth
End If
'If settings.Count = 0 Then
' settings.Add(New ClassSetting("SplitViewTopSplitterPosition", SplitContainerTop.SplitterPosition))
' If CONSTRUCTOR_DETAIL_ID > 0 Then
' settings.Add(New ClassSetting("SplitViewMainSplitterPosition_" & CONSTRUCTOR_DETAIL_ID.ToString, SplitContainerMain.SplitterPosition))
' Else
' settings.Add(New ClassSetting("SplitViewMainSplitterPosition_0", SplitContainerMain.SplitterPosition))
' End If
If CONFIG.Config.DocumentViewerSplitterWidth > 0 Then
SplitContainerDocView.SplitterPosition = CONFIG.Config.DocumentViewerSplitterWidth
End If
' settings.Add(New ClassSetting("SplitViewDetailsSplitterPosition_" & CONSTRUCTOR_DETAIL_ID.ToString, SplitContainerDetails.SplitterPosition))
' layout.Save(settings)
'End If
For Each setting As ClassSetting In settings
Select Case setting._name
Case "SplitViewMainSplitterPosition"
SplitContainerMain.SplitterPosition = Integer.Parse(setting._value)
Case "SplitViewDetailsSplitterPosition"
SplitContainer1.SplitterDistance = Integer.Parse(setting._value)
End Select
Next
If CONFIG.Config.DocumentSearchSplitterWidth > 0 Then
SplitContainerDocumentSearch.SplitterPosition = CONFIG.Config.DocumentSearchSplitterWidth
End If
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace)
End Try
@@ -326,6 +298,8 @@ Public Class frmNodeNavigation
Dim oNodeId = e.Node.Id
Console.Write($"Node ID: {oNodeId}")
Dim oRowObject = TreeListDevexpress.GetRow(oNodeId)
If TypeOf oRowObject IsNot DataRowView Then
@@ -346,6 +320,11 @@ Public Class frmNodeNavigation
Dim oIsConfigNode = (oNodeConfigId = 1000)
Dim oParentNode = e.Node.ParentNode
CURRENT_NODE_GUID = oNodeId
CURRENT_RECORD_ID = oRecordId
CURRENT_ENTITY_ID = _EntityId
SELECTED_NODE_CAPTION = oNodeCaption
' BEGIN NEW NODE
Dim oConfigNodeChildren = FocusedNode.Nodes.Where(Function(n) n.Item("TYPE_NODE") = 1000)
Dim oHasConfigNodeChildren = oConfigNodeChildren.Any()
@@ -370,24 +349,12 @@ Public Class frmNodeNavigation
If oHasRecordId Then
Update_Status_Label(True, $"NodeGUID {oGuid} - RecordID {oRecordId}", EditState.None)
Else
Update_Status_Label(True, $"NodeGUID {oGuid}", EditState.None)
End If
If oHasRecordId Then
'oNodeInfo += $" - RecordID {oRecordId}"
Node_AfterSelect = True
'Dim sw As New SW("TreeViewMain_AfterSelect1")
' Dim swAll As New SW("TreeViewMain_AfterSelect")
DisableEditMode()
' ClassNodeNavigation.Check_NODE_CONFIG_ID(oEntityID, SelectedNode)
CURRENT_RECORD_ID = oRecordId
ClassHelper.GetDocrecordLinks(CURRENT_RECORD_ID)
CURRENT_ENTITY_ID = _EntityId
CURRENT_NODE_GUID = oNodeId
SELECTED_NODE_CAPTION = oNodeCaption
CURRENT_SEARCH_TYPE = "RECORD"
DisableEditMode()
' muss vor show selected record data kommen,
@@ -397,33 +364,30 @@ Public Class frmNodeNavigation
CtrlBuilder.WatchRecordChanges = True
Await Show_Selected_Record_Data(CURRENT_RECORD_ID)
ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, _EntityId)
CONTROL_HANDLING()
If CURRENT_RECORD_ID > 0 Then
If RIGHT_RECORD_AND_FILE_READ_ONLY = False And CtrlCommandUI.IsInsert = False Then
If DT_CONTROLS_ENTITY.Rows.Count = COUNT_RO_CONTROLS Then
bbtnitmRecEdit.Enabled = False
bbtnitmRecSave.Enabled = False
Else
bbtnitmRecEdit.Enabled = True
In_Visible_Record_Group(True)
End If
End If
If RIGHT_RECORD_AND_FILE_READ_ONLY = True Then
If RIGHT_RECORD_AND_FILE_READ_ONLY = False And CtrlCommandUI.IsInsert = False Then
If DT_CONTROLS_ENTITY.Rows.Count = COUNT_RO_CONTROLS Then
bbtnitmRecEdit.Enabled = False
bbtnitmRecSave.Enabled = False
btnCreateNewNode.Enabled = False
Else
bbtnitmRecEdit.Enabled = True
In_Visible_Record_Group(True)
btnCreateNewNode.Enabled = True
End If
End If
If RIGHT_RECORD_AND_FILE_READ_ONLY = True Then
bbtnitmRecEdit.Enabled = False
bbtnitmRecSave.Enabled = False
btnCreateNewNode.Enabled = False
Else
bbtnitmRecEdit.Enabled = True
In_Visible_Record_Group(True)
btnCreateNewNode.Enabled = True
End If
If RIGHT_READ_ONLY_DOC = False Then
Doc_ReadOnlyHandler(True)
@@ -438,9 +402,89 @@ Public Class frmNodeNavigation
'swAll.Done()
Node_AfterSelect = False
Else
Update_Status_Label(True, $"NodeGUID {oGuid}", EditState.None)
ClassControlValues.ClearControlValues(pnlControls.Controls)
Await Show_Selected_Record_Data(0)
End If
End Sub
Public Sub Update_Document_Label(pDocumentCount As Integer)
Dim oMessage
If pDocumentCount = 0 Then
oMessage = "Keine Dateien für '"
If CURRENT_SEARCH_TYPE = "ENTITY" Then
oMessage &= " Entität gefunden"
If USER_LANGUAGE <> "de-DE" Then
oMessage = "No files found for entity: "
End If
ElseIf CURRENT_SEARCH_TYPE = "RECORD" Then
oMessage &= SELECTED_NODE_CAPTION & "' gefunden"
If USER_LANGUAGE <> "de-DE" Then
oMessage = "No files found for object '" & SELECTED_NODE_CAPTION & "'"
End If
If USER_LANGUAGE <> "de-DE" Then
oMessage = "No files found for record " & SELECTED_NODE_RECORD_ID
End If
ElseIf CURRENT_SEARCH_TYPE = "NODE_DOWN" Then
oMessage = "Keine Dateien für Knotenunterstruktur gefunden"
If USER_LANGUAGE <> "de-DE" Then
oMessage = "No files found in Node-Substructure"
End If
Else
oMessage = "Keine Dateien für Volltextsuche (" & CURRENT_FULLTEXT_PATTERN & ") gefunden"
If USER_LANGUAGE <> "de-DE" Then
oMessage = "No files found for fulltext-search (" & CURRENT_FULLTEXT_PATTERN & ")"
End If
End If
Else
oMessage = "Dateien für Record: " & SELECTED_NODE_RECORD_ID
If CURRENT_SEARCH_TYPE = "ENTITY" Then
oMessage = "Dateien für Entität: "
If USER_LANGUAGE <> "de-DE" Then
oMessage = "files for entity: "
End If
oMessage &= " (" & pDocumentCount.ToString & ")"
ElseIf CURRENT_SEARCH_TYPE = "RECORD" Then
oMessage = String.Format("Dateien für Objekt '{0}' ", SELECTED_NODE_CAPTION)
If USER_LANGUAGE <> "de-DE" Then
oMessage = String.Format("Files for Object '{0}'", SELECTED_NODE_CAPTION)
End If
oMessage &= " (" & pDocumentCount.ToString & ")"
ElseIf CURRENT_SEARCH_TYPE = "NODE_DOWN" Then
oMessage = "Dateien für Knotenunterstruktur"
If USER_LANGUAGE <> "de-DE" Then
oMessage = "files found in Node-Substructure"
End If
oMessage &= " (" & pDocumentCount.ToString & ")"
Else
oMessage = String.Format("Ergebnis der Volltextsuche")
If USER_LANGUAGE <> "de-DE" Then
oMessage = String.Format("Result of Fulltext-Search")
End If
oMessage &= " (" & pDocumentCount.ToString & ")"
End If
End If
GridViewDoc_Search.ViewCaption = oMessage
End Sub
Public Sub Update_Status_Label(visible As Boolean, Optional text As String = "", Optional state As EditState = EditState.None)
bsiInfo.Caption = text
If visible = True Then
@@ -658,13 +702,9 @@ Public Class frmNodeNavigation
Dim QuickViewSQL = query.Single().Item("SQL_QUICK_VIEW")
CURRENT_ENTITYSQL = Get_Grid_Sql_NODE_NAV(CONSTRUCTORID, _EntityId, CURRENT_CONSTRUCTOR_DETAIL_ID, USER_GUID)
' CURRENT_ENTITYSQL = GridSQL
'Anzahl der Datensätze
ENTITY_RECORD_COUNT = MYDB_ECM.GetScalarValue("SELECT COUNT(*) FROM TBPMO_RECORD where PARENT_RECORD = 0 AND FORM_ID = " & _EntityId)
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 = " & _EntityId & " AND SCREEN_ID = " & CURRENT_SCREEN_ID, "")
CURRENT_ENTITYSTRING = DT_TBPMO_FORM_VIEW.Rows(0).Item("FORM_TITLE")
@@ -706,12 +746,6 @@ Public Class frmNodeNavigation
LOGGER.Warn("Could not set the primary Key(Record-ID): " & ex.Message)
End Try
CtrlBuilder.WatchRecordChanges = False
ClassControlValues.LoadControlValuesList(_EntityId, CtrlBuilder.MasterPanel.Controls)
CtrlBuilder.WatchRecordChanges = True
@@ -720,8 +754,6 @@ Public Class frmNodeNavigation
ENTITY_LOADING_PROCESS = True
Dim RecLoaded As Boolean = False
End If
Load_Splitter_Layout()
sw.Done()
@@ -776,24 +808,22 @@ Public Class frmNodeNavigation
End Try
End Sub
Private Async Function Show_Selected_Record_Data(Rec_ID As Integer) As Threading.Tasks.Task
Private Async Function Show_Selected_Record_Data(pRecordId As Integer) As Task
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
Try
LOGGER.Debug("Show_Selected_Record_Data: " & Rec_ID.ToString)
LOGGER.Debug("Show_Selected_Record_Data: " & pRecordId.ToString)
Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable()
Select form
Where form.Item("GUID") = _EntityId).Single()
'Update_Status_Label(False, "")
LOGGER.Debug("RECORD ID: " & Rec_ID.ToString)
LOGGER.Debug("RECORD ID: " & pRecordId.ToString)
'Me.pnlControls.Visible = True
SELECTED_NODE_RECORD_ID = Rec_ID
SELECTED_NODE_RECORD_ID = pRecordId
CURRENT_PARENT_RECORD_ID = 0
RIGHT_CONTROL_CHANGED = False
ENTITY_RELOAD_AFT_CONTROL_LOAD = False
@@ -808,12 +838,14 @@ Public Class frmNodeNavigation
'Refresh_Navpane()
Update_Record_Label(SELECTED_NODE_RECORD_ID)
Dim oDocumentsFounnd = Await RUN_WDSEARCH_GRID(True)
Dim oDocumentsFound = Await RUN_WDSEARCH_GRID(True)
If oDocumentsFounnd = 0 Then
If oDocumentsFound = 0 Then
DocumentViewer.CloseDocument()
End If
Update_Document_Label(oDocumentsFound)
sw.Done()
Catch ex As Exception
@@ -821,7 +853,6 @@ Public Class frmNodeNavigation
Finally
SplashScreenManager.CloseOverlayForm(oHandle)
End Try
End Function
#Region "Controls"
@@ -1011,84 +1042,84 @@ Public Class frmNodeNavigation
LastFindFilterText = oFilterText
End Sub
Private Async Sub LoadRecord(pRecord As Integer)
Try
CURRENT_RECORD_ID = pRecord
CURRENT_SEARCH_TYPE = "RECORD"
ClassHelper.GetDocrecordLinks(CURRENT_RECORD_ID)
'Private Async Sub LoadRecord(pRecord As Integer)
' Try
' CURRENT_RECORD_ID = pRecord
' CURRENT_SEARCH_TYPE = "RECORD"
' ClassHelper.GetDocrecordLinks(CURRENT_RECORD_ID)
'Wird jetzt bei BeforeRowChange überprüft
' 'Wird jetzt bei BeforeRowChange überprüft
DisableEditMode()
' DisableEditMode()
' muss vor show selected record data kommen,
' sodass die datasource für die angehakten werte existiert (checked list box)
CtrlBuilder.WatchRecordChanges = False
' ' muss vor show selected record data kommen,
' ' sodass die datasource für die angehakten werte existiert (checked list box)
' CtrlBuilder.WatchRecordChanges = False
ClassControlValues.LoadControlValuesListWithPlaceholders(CURRENT_ENTITY_ID, CURRENT_RECORD_ID, 0, CtrlBuilder.AllControls, _EntityId)
CtrlBuilder.WatchRecordChanges = True
If CURRENT_RECORD_ID > 0 Then
Await Show_Selected_Record_Data(CURRENT_RECORD_ID)
End If
' ClassControlValues.LoadControlValuesListWithPlaceholders(CURRENT_ENTITY_ID, CURRENT_RECORD_ID, 0, CtrlBuilder.AllControls, _EntityId)
' CtrlBuilder.WatchRecordChanges = True
' If CURRENT_RECORD_ID > 0 Then
' Await Show_Selected_Record_Data(CURRENT_RECORD_ID)
' End If
ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, _EntityId)
CONTROL_HANDLING()
' ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, _EntityId)
' CONTROL_HANDLING()
If CURRENT_RECORD_ID > 0 Then
If RIGHT_RECORD_AND_FILE_READ_ONLY = False And CtrlCommandUI.IsInsert = False Then
If DT_CONTROLS_ENTITY.Rows.Count = COUNT_RO_CONTROLS Then
bbtnitmRecEdit.Enabled = False
bbtnitmRecSave.Enabled = False
'tsButtonDelete.Enabled = False
Else
' bbtnitmEditRec.Enabled = True
End If
' If CURRENT_RECORD_ID > 0 Then
' If RIGHT_RECORD_AND_FILE_READ_ONLY = False And CtrlCommandUI.IsInsert = False Then
' If DT_CONTROLS_ENTITY.Rows.Count = COUNT_RO_CONTROLS Then
' bbtnitmRecEdit.Enabled = False
' bbtnitmRecSave.Enabled = False
' 'tsButtonDelete.Enabled = False
' Else
' ' bbtnitmEditRec.Enabled = True
' End If
End If
If RIGHT_RECORD_AND_FILE_READ_ONLY = True Then
' bbtniCopyRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
' bbtniNewVariant2.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
' bbtniParentLink.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
' bbtniWFTask.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
Else
' bbtniCopyRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
' bbtniNewVariant2.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
' bbtniParentLink.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
' bbtniWFTask.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
End If
' End If
' If RIGHT_RECORD_AND_FILE_READ_ONLY = True Then
' ' bbtniCopyRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
' ' bbtniNewVariant2.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
' ' bbtniParentLink.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
' ' bbtniWFTask.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
' Else
' ' bbtniCopyRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
' ' bbtniNewVariant2.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
' ' bbtniParentLink.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
' ' bbtniWFTask.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
' End If
'tsButtonAdd.Enabled = False
'MsgBox(SplitContainerFORM.Collapsed)
'MsgBox(SplitContainerMain.Collapsed)
'MsgBox(SplitContainerTop.Collapsed)
' 'tsButtonAdd.Enabled = False
' 'MsgBox(SplitContainerFORM.Collapsed)
' 'MsgBox(SplitContainerMain.Collapsed)
' 'MsgBox(SplitContainerTop.Collapsed)
End If
'Liste der geänderten Control Values leeren
CtrlBuilder.ControlsChanged.Clear()
' End If
' 'Liste der geänderten Control Values leeren
' CtrlBuilder.ControlsChanged.Clear()
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error:", ex.Message & vbNewLine & ex.StackTrace)
End Try
End Sub
' Catch ex As Exception
' ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error:", ex.Message & vbNewLine & ex.StackTrace)
' End Try
'End Sub
Private Sub DateiÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DateiÖffnenToolStripMenuItem.Click
Open_File()
End Sub
Private Sub frmNodeNavigation_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
If TrySave_Automatic() = False Then
e.Cancel = True
End If
Save_Splitter_Layout()
ClassWindowLocation.SaveFormLocationSize(Me, CONSTRUCTORID, CURRENT_SCREEN_ID, "NODE_NAVIGATION")
CURRENT_OPEN_CONSTRUCTOR_FORMS.Remove(CONSTRUCTORID)
@@ -1115,13 +1146,13 @@ Public Class frmNodeNavigation
Private Sub GridControlDocSearch_MouseDown(sender As Object, e As MouseEventArgs) Handles GridControlDocSearch.MouseDown
In_Visible_Record_Group(False)
End Sub
Private Sub pnlControls_MouseDown(sender As Object, e As MouseEventArgs) Handles pnlControls.MouseDown
End Sub
Sub In_Visible_Record_Group(oBool As Boolean)
RibbonPageGroupRecord.Visible = oBool
RibbonPageGroupRecord.Enabled = oBool
End Sub
Private Sub bbtnitmEditRec_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitmRecEdit.ItemClick
If RECORD_ENABLED = False Then
EnableEditMode()
@@ -1132,6 +1163,7 @@ Public Class frmNodeNavigation
End If
End If
End Sub
Sub EnableEditMode()
Dim EditingUser = ClassRecordState.IsRecordLocked(SELECTED_NODE_RECORD_ID)
' Überprüfen, ob der Record gerade bearbeitet wird
@@ -1222,7 +1254,6 @@ Public Class frmNodeNavigation
Lock_RecordControls(True)
RECORD_ENABLED = False
POS_ENABLED = False
CURRENT_RECORD_ENABLED = False
@@ -1444,13 +1475,18 @@ Public Class frmNodeNavigation
Dim oHandle As IOverlaySplashScreenHandle
If pShowSplashscreen Then
oHandle = SplashScreenManager.ShowOverlayForm(Me)
taskToken = New CancellationTokenSource()
End If
Dim sw As New SW("RUN_WDSEARCH_GRID")
Dim oFilesFound As Integer = 0
Try
If CURRENT_RECORD_ID = 0 Then
GridControlDocSearch.DataSource = Nothing
Return 0
End If
bsitmtInfoDoc.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
If CURRENT_SEARCH_TYPE = "NODE_DOWN" Then
@@ -1477,41 +1513,6 @@ Public Class frmNodeNavigation
Else
If DT_RESULT.Rows.Count > 0 Then 'Es gibt Suchergebnisse
Dim msg = "Dateien für Record: " & SELECTED_NODE_RECORD_ID
If CURRENT_SEARCH_TYPE = "ENTITY" Then
msg = "Dateien für Entität: "
If USER_LANGUAGE <> "de-DE" Then
msg = "files for entity: "
End If
msg &= " (" & DT_RESULT.Rows.Count.ToString & ")"
ElseIf CURRENT_SEARCH_TYPE = "RECORD" Then
'If NODE_TEXT.Contains(" (") Then
' NODE_TEXT = NODE_TEXT.Substring(0, NODE_TEXT.IndexOf("(") - 1)
' End If
msg = String.Format("Dateien für Objekt '{0}' ", SELECTED_NODE_CAPTION)
If USER_LANGUAGE <> "de-DE" Then
msg = String.Format("Files for Object '{0}'", SELECTED_NODE_CAPTION)
End If
msg &= " (" & DT_RESULT.Rows.Count.ToString & ")"
ElseIf CURRENT_SEARCH_TYPE = "NODE_DOWN" Then
msg = "Dateien für Knotenunterstruktur"
If USER_LANGUAGE <> "de-DE" Then
msg = "files found in Node-Substructure"
End If
msg &= " (" & DT_RESULT.Rows.Count.ToString & ")"
Else
msg = String.Format("Ergebnis der Volltextsuche")
If USER_LANGUAGE <> "de-DE" Then
msg = String.Format("Result of Fulltext-Search")
End If
msg &= " (" & DT_RESULT.Rows.Count.ToString & ")"
End If
GridViewDoc_Search.ViewCaption = msg
If DT_RESULT.Rows.Count > 0 Then
If CURRENT_SEARCH_TYPE = "FULLTEXT" Then
GridViewDoc_Search.ShowFindPanel()
@@ -1541,47 +1542,11 @@ Public Class frmNodeNavigation
oFilesFound = DT_RESULT.Rows.Count
Else
Dim msg = "Keine Dateien für '"
If CURRENT_SEARCH_TYPE = "ENTITY" Then
msg &= " Entität gefunden"
If USER_LANGUAGE <> "de-DE" Then
msg = "No files found for entity: "
End If
ElseIf CURRENT_SEARCH_TYPE = "RECORD" Then
'If NODE_TEXT.Contains(" (") Then
' NODE_TEXT = NODE_TEXT.Substring(0, NODE_TEXT.IndexOf("(") - 1)
' End If
msg &= SELECTED_NODE_CAPTION & "' gefunden"
If USER_LANGUAGE <> "de-DE" Then
msg = "No files found for object '" & SELECTED_NODE_CAPTION & "'"
End If
If USER_LANGUAGE <> "de-DE" Then
msg = "No files found for record " & SELECTED_NODE_RECORD_ID
End If
ElseIf CURRENT_SEARCH_TYPE = "NODE_DOWN" Then
msg = "Keine Dateien für Knotenunterstruktur gefunden"
If USER_LANGUAGE <> "de-DE" Then
msg = "No files found in Node-Substructure"
End If
Else
msg = "Keine Dateien für Volltextsuche (" & CURRENT_FULLTEXT_PATTERN & ") gefunden"
If USER_LANGUAGE <> "de-DE" Then
msg = "No files found for fulltext-search (" & CURRENT_FULLTEXT_PATTERN & ")"
End If
End If
GridViewDoc_Search.ViewCaption = msg
GridControlDocSearch.DataSource = Nothing
'Clear_Windream_ResultList()
oFilesFound = 0
End If
End If
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Run WD-Search Database: ", ex.Message)
Finally
@@ -1779,13 +1744,6 @@ Public Class frmNodeNavigation
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in OnCheckboxValueChanged: ", ex.Message)
End Try
End Sub
Private Sub SplitContainer1_SplitterMoved(sender As Object, e As SplitterEventArgs) Handles SplitContainer1.SplitterMoved
If FORM_LOADED Then
Save_Splitter_Layout()
End If
End Sub
#Region "GridViewEvents"
Private Sub GridViewDoc_Search_LayoutSave(sender As Object, e As EventArgs) Handles GridViewDoc_Search.ColumnFilterChanged, GridViewDoc_Search.ColumnWidthChanged, GridViewDoc_Search.ColumnPositionChanged
Save_DocGrid_Layout()
@@ -2091,11 +2049,11 @@ Public Class frmNodeNavigation
Private Sub pnlControls_DragEnter(sender As Object, e As DragEventArgs) Handles pnlControls.DragEnter
Drag_Enter(e)
End Sub
Private Sub SplitContainer1_DragEnter(sender As Object, e As DragEventArgs) Handles SplitContainer1.DragEnter
Private Sub SplitContainer1_DragEnter(sender As Object, e As DragEventArgs)
Drag_Enter(e)
End Sub
Private Async Sub SplitContainer1_DragDrop(sender As Object, e As DragEventArgs) Handles SplitContainer1.DragDrop
Private Async Sub SplitContainer1_DragDrop(sender As Object, e As DragEventArgs)
Await Drag_Drop(e)
End Sub
#End Region
@@ -2989,5 +2947,4 @@ Public Class frmNodeNavigation
.Name = pRow.ItemEx("NAME", "")
}
End Function
End Class