diff --git a/app/DD-Record-Organizer/Classes/ClassWindreamDocGrid.vb b/app/DD-Record-Organizer/Classes/ClassWindreamDocGrid.vb index 1007b76..cca39fa 100644 --- a/app/DD-Record-Organizer/Classes/ClassWindreamDocGrid.vb +++ b/app/DD-Record-Organizer/Classes/ClassWindreamDocGrid.vb @@ -16,8 +16,12 @@ Public Class ClassWindreamDocGrid Public Shared SELECTED_DOC_RIGHT As Integer 'Public Shared RESULT_DISPLAYNAME As String Public Shared RESULT_CONFIG_IDS As Hashtable - Private Shared DATE_COLUMNS As New List(Of String) - Private Shared DATE_COLUMNS_CONFIG As New List(Of String) + Private Shared ReadOnly DATE_COLUMNS As New List(Of String) + Private Shared ReadOnly DATE_COLUMNS_CONFIG As New List(Of String) + + ' This should replace DT_RESULTFILES and also + ' SELECTED_INWORK, SELECTED_DOC_ID, SELECTED_DOC_RIGHT, SELECTED_DOC_PATH + Public Shared SELECTED_DOCUMENTS As New List(Of WindreamDoc) Public Shared DT_RESULTFILES As DataTable Private Shared DT_DROPDOWN_ITEMS As DataTable @@ -27,10 +31,18 @@ Public Class ClassWindreamDocGrid Private Shared _textValueChangedHandler As EventHandler Private Shared _checkValueChangedHandler As EventHandler + Public Class WindreamDoc + Public Property DocId As Integer + Public Property DocPath As String + Public Property DisplayName As String + End Class + Private Shared Function Init_Table() Try - Dim table As New DataTable - table.TableName = "TBSELECTED_FILES" + Dim table As New DataTable With { + .TableName = "TBSELECTED_FILES" + } + ' Create two columns, ID and Name. table.Columns.Add("DOC_ID", GetType(Integer)) table.Columns.Add("DOC_PATH", GetType(System.String)) @@ -47,6 +59,26 @@ Public Class ClassWindreamDocGrid End Try End Function + + Public Shared Function GetSelectedDocuments(pGridView As GridView) + Dim oSelectedRows As List(Of Integer) = pGridView.GetSelectedRows().ToList() + Dim oDocuments As New List(Of WindreamDoc) + + For Each oRowHandle In oSelectedRows + Dim oDocId = pGridView.GetRowCellValue(oRowHandle, "DocID") + Dim oDisplayName = pGridView.GetRowCellValue(oRowHandle, "Displayname") + Dim oDocPath = pGridView.GetRowCellValue(oRowHandle, "FULLPATH") + + oDocuments.Add(New WindreamDoc With { + .DocId = oDocId, + .DocPath = oDocPath, + .DisplayName = oDisplayName + }) + Next + + Return oDocuments + End Function + Public Shared Sub GetDocItems(gridView As GridView) _Helper = New ClassHelper SELECTED_DOC_ID = 0 diff --git a/app/DD-Record-Organizer/My Project/licenses.licx b/app/DD-Record-Organizer/My Project/licenses.licx index 0eadaf2..ca26f57 100644 --- a/app/DD-Record-Organizer/My Project/licenses.licx +++ b/app/DD-Record-Organizer/My Project/licenses.licx @@ -1,3 +1,4 @@ +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 diff --git a/app/DD-Record-Organizer/OrgFlow.vbproj b/app/DD-Record-Organizer/OrgFlow.vbproj index 6aa8879..dcbaf2c 100644 --- a/app/DD-Record-Organizer/OrgFlow.vbproj +++ b/app/DD-Record-Organizer/OrgFlow.vbproj @@ -169,6 +169,9 @@ False + + ..\..\..\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll + ..\..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll @@ -187,7 +190,7 @@ ..\..\lib\DLLLicenseManager.dll - D:\ProgramFiles\ERPConnect\ERPConnect35.dll + P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\ERPConnect35.dll ..\..\3rdparty\lib\MSG.NET\Independentsoft.Msg.dll diff --git a/app/DD-Record-Organizer/frmMain.vb b/app/DD-Record-Organizer/frmMain.vb index b7f7542..534e2f7 100644 --- a/app/DD-Record-Organizer/frmMain.vb +++ b/app/DD-Record-Organizer/frmMain.vb @@ -954,12 +954,12 @@ Public Class frmMain Private Sub ribbonMain_Merge(sender As Object, e As RibbonMergeEventArgs) Handles ribbonMain.Merge ' Zeigt im Ribbon Control den Kalender-Tab an, wenn der Kalender Maximiert wurde - If e.MergedChild.Name = "ribbonCalendar" Then - For Each page As RibbonPage In e.MergeOwner.MergedPages - If page.Name = "pageCalendar" Then - e.MergeOwner.SelectedPage = page - End If - Next + Dim oMergeableRibbons = New List(Of String) From {"ribbonCalendar", "ribbonNodeNavigation"} + Dim oMergedRibbonControl = e.MergedChild + + If oMergeableRibbons.Contains(oMergedRibbonControl.Name) Then + Dim oMergedPage = e.MergeOwner.MergedPages.First() + e.MergeOwner.SelectedPage = oMergedPage End If End Sub diff --git a/app/DD-Record-Organizer/frmNodeNavigation.Designer.vb b/app/DD-Record-Organizer/frmNodeNavigation.Designer.vb index 2047a7e..2544c1f 100644 --- a/app/DD-Record-Organizer/frmNodeNavigation.Designer.vb +++ b/app/DD-Record-Organizer/frmNodeNavigation.Designer.vb @@ -24,8 +24,8 @@ Partial Class frmNodeNavigation Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmNodeNavigation)) - Dim GridLevelNode1 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode() - Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() + Dim GridLevelNode2 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode() + Me.ribbonNodeNavigation = New DevExpress.XtraBars.Ribbon.RibbonControl() Me.bbtnitmRecEdit = New DevExpress.XtraBars.BarButtonItem() Me.bsiInfo = New DevExpress.XtraBars.BarStaticItem() Me.bbtnitmRecSave = New DevExpress.XtraBars.BarButtonItem() @@ -80,7 +80,7 @@ Partial Class frmNodeNavigation Me.tsmiFileDelete = New System.Windows.Forms.ToolStripMenuItem() Me.TimerFileHandle = New System.Windows.Forms.Timer(Me.components) Me.TimerClearResultfiles = New System.Windows.Forms.Timer(Me.components) - CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.ribbonNodeNavigation, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerMain, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerMain.Panel1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainerMain.Panel1.SuspendLayout() @@ -99,23 +99,23 @@ Partial Class frmNodeNavigation Me.cmsResultFileDetail.SuspendLayout() Me.SuspendLayout() ' - 'RibbonControl1 + 'ribbonNodeNavigation ' - Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.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.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 18 - Me.RibbonControl1.Name = "RibbonControl1" - Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) - Me.RibbonControl1.PopupMenuAlignment = DevExpress.XtraBars.PopupMenuAlignment.Left - Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] - Me.RibbonControl1.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.[False] - Me.RibbonControl1.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.[True] - Me.RibbonControl1.ShowMoreCommandsButton = DevExpress.Utils.DefaultBoolean.[False] - Me.RibbonControl1.ShowToolbarCustomizeItem = False - Me.RibbonControl1.Size = New System.Drawing.Size(1307, 158) - Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 - Me.RibbonControl1.Toolbar.ShowCustomizeItem = False + 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.ribbonNodeNavigation.Location = New System.Drawing.Point(0, 0) + Me.ribbonNodeNavigation.MaxItemId = 18 + Me.ribbonNodeNavigation.Name = "ribbonNodeNavigation" + Me.ribbonNodeNavigation.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) + Me.ribbonNodeNavigation.PopupMenuAlignment = DevExpress.XtraBars.PopupMenuAlignment.Left + Me.ribbonNodeNavigation.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] + Me.ribbonNodeNavigation.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.[False] + Me.ribbonNodeNavigation.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.[True] + Me.ribbonNodeNavigation.ShowMoreCommandsButton = DevExpress.Utils.DefaultBoolean.[False] + Me.ribbonNodeNavigation.ShowToolbarCustomizeItem = False + Me.ribbonNodeNavigation.Size = New System.Drawing.Size(1307, 147) + Me.ribbonNodeNavigation.StatusBar = Me.RibbonStatusBar1 + Me.ribbonNodeNavigation.Toolbar.ShowCustomizeItem = False ' 'bbtnitmRecEdit ' @@ -229,7 +229,7 @@ Partial Class frmNodeNavigation ' Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroupRecord, Me.RibbonPageGroupDocResult, Me.RibbonPageGroup1, Me.RPGNodes}) Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "Start" + Me.RibbonPage1.Text = "Node Navigation" ' 'RibbonPageGroupRecord ' @@ -271,10 +271,10 @@ Partial Class frmNodeNavigation Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitmRecordID) Me.RibbonStatusBar1.ItemLinks.Add(Me.BarStaticItemLocked) Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitmtInfoDoc) - Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 822) + Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 821) Me.RibbonStatusBar1.Name = "RibbonStatusBar1" - Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 - Me.RibbonStatusBar1.Size = New System.Drawing.Size(1307, 22) + Me.RibbonStatusBar1.Ribbon = Me.ribbonNodeNavigation + Me.RibbonStatusBar1.Size = New System.Drawing.Size(1307, 23) ' 'RibbonPage2 ' @@ -284,7 +284,7 @@ Partial Class frmNodeNavigation 'SplitContainerMain ' Me.SplitContainerMain.Dock = System.Windows.Forms.DockStyle.Fill - Me.SplitContainerMain.Location = New System.Drawing.Point(0, 158) + Me.SplitContainerMain.Location = New System.Drawing.Point(0, 147) Me.SplitContainerMain.Name = "SplitContainerMain" ' 'SplitContainerMain.Panel1 @@ -296,7 +296,7 @@ Partial Class frmNodeNavigation ' Me.SplitContainerMain.Panel2.Controls.Add(Me.SplitContainer1) Me.SplitContainerMain.Panel2.Text = "Panel2" - Me.SplitContainerMain.Size = New System.Drawing.Size(1307, 664) + Me.SplitContainerMain.Size = New System.Drawing.Size(1307, 674) Me.SplitContainerMain.SplitterPosition = 451 Me.SplitContainerMain.TabIndex = 2 ' @@ -332,7 +332,7 @@ Partial Class frmNodeNavigation Me.TreeListDevexpress.OptionsView.ShowTreeLines = DevExpress.Utils.DefaultBoolean.[False] Me.TreeListDevexpress.OptionsView.ShowVertLines = False Me.TreeListDevexpress.OptionsView.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Dark - Me.TreeListDevexpress.Size = New System.Drawing.Size(451, 664) + Me.TreeListDevexpress.Size = New System.Drawing.Size(451, 674) Me.TreeListDevexpress.StateImageList = Me.ImageCollection1 Me.TreeListDevexpress.TabIndex = 1 ' @@ -355,8 +355,8 @@ Partial Class frmNodeNavigation 'SplitContainer1.Panel2 ' Me.SplitContainer1.Panel2.Controls.Add(Me.GridControlDocSearch) - Me.SplitContainer1.Size = New System.Drawing.Size(846, 664) - Me.SplitContainer1.SplitterDistance = 216 + Me.SplitContainer1.Size = New System.Drawing.Size(844, 674) + Me.SplitContainer1.SplitterDistance = 219 Me.SplitContainer1.TabIndex = 0 ' 'pnlControls @@ -366,7 +366,7 @@ Partial Class frmNodeNavigation Me.pnlControls.Dock = System.Windows.Forms.DockStyle.Fill Me.pnlControls.Location = New System.Drawing.Point(0, 0) Me.pnlControls.Name = "pnlControls" - Me.pnlControls.Size = New System.Drawing.Size(846, 216) + Me.pnlControls.Size = New System.Drawing.Size(844, 219) Me.pnlControls.TabIndex = 0 ' 'GridControlDocSearch @@ -374,12 +374,12 @@ Partial Class frmNodeNavigation Me.GridControlDocSearch.AllowDrop = True Me.GridControlDocSearch.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center Me.GridControlDocSearch.Dock = System.Windows.Forms.DockStyle.Fill - GridLevelNode1.RelationName = "Level1" - Me.GridControlDocSearch.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode1}) + GridLevelNode2.RelationName = "Level1" + Me.GridControlDocSearch.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode2}) Me.GridControlDocSearch.Location = New System.Drawing.Point(0, 0) Me.GridControlDocSearch.MainView = Me.GridViewDoc_Search Me.GridControlDocSearch.Name = "GridControlDocSearch" - Me.GridControlDocSearch.Size = New System.Drawing.Size(846, 444) + Me.GridControlDocSearch.Size = New System.Drawing.Size(844, 451) Me.GridControlDocSearch.TabIndex = 8 Me.GridControlDocSearch.TabStop = False Me.GridControlDocSearch.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewDoc_Search}) @@ -566,13 +566,13 @@ Partial Class frmNodeNavigation Me.ClientSize = New System.Drawing.Size(1307, 844) Me.Controls.Add(Me.SplitContainerMain) Me.Controls.Add(Me.RibbonStatusBar1) - Me.Controls.Add(Me.RibbonControl1) + Me.Controls.Add(Me.ribbonNodeNavigation) Me.IconOptions.SvgImage = CType(resources.GetObject("frmNodeNavigation.IconOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.Name = "frmNodeNavigation" - Me.Ribbon = Me.RibbonControl1 + Me.Ribbon = Me.ribbonNodeNavigation Me.StatusBar = Me.RibbonStatusBar1 Me.Text = "frmNodeNavigation" - CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.ribbonNodeNavigation, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.SplitContainerMain.Panel1, System.ComponentModel.ISupportInitialize).EndInit() Me.SplitContainerMain.Panel1.ResumeLayout(False) CType(Me.SplitContainerMain.Panel2, System.ComponentModel.ISupportInitialize).EndInit() @@ -594,7 +594,7 @@ Partial Class frmNodeNavigation End Sub - Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl + Friend WithEvents ribbonNodeNavigation As DevExpress.XtraBars.Ribbon.RibbonControl Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage Friend WithEvents RibbonPageGroupRecord As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar diff --git a/app/DD-Record-Organizer/frmNodeNavigation.resx b/app/DD-Record-Organizer/frmNodeNavigation.resx index cc85f24..557aaa5 100644 --- a/app/DD-Record-Organizer/frmNodeNavigation.resx +++ b/app/DD-Record-Organizer/frmNodeNavigation.resx @@ -429,6 +429,9 @@ 17, 17 + + 17, 17 + diff --git a/app/DD-Record-Organizer/frmNodeNavigation.vb b/app/DD-Record-Organizer/frmNodeNavigation.vb index 3d1a55d..2f7b7f6 100644 --- a/app/DD-Record-Organizer/frmNodeNavigation.vb +++ b/app/DD-Record-Organizer/frmNodeNavigation.vb @@ -3,20 +3,17 @@ Imports DevExpress.XtraTreeList.Columns Imports DevExpress.XtraTreeList.Nodes.Operations Imports DevExpress.XtraTreeList.Nodes Imports DevExpress.XtraSplashScreen -Imports System.Threading -Imports DevExpress.Utils Imports DevExpress.XtraScheduler Imports DevExpress.Data -Imports DD_Record_Organizer.frmConstructor_Main -Imports DevExpress.Data.Filtering.Helpers.SubExprHelper.CriteriaTokens Imports DevExpress.XtraEditors Imports DevExpress.XtraGrid.Views.Grid +Imports DevExpress.XtraPrinting +Imports System.Threading Imports System.Text Imports System.IO -Imports DD_LIB_Standards Imports System.Runtime.InteropServices - - +Imports DD_LIB_Standards +Imports DigitalData.Modules.Base Public Class frmNodeNavigation @@ -399,109 +396,117 @@ Public Class frmNodeNavigation End Sub End Class + + Private Sub TreeListDevexpress_FocusedNodeChanged(sender As Object, e As FocusedNodeChangedEventArgs) Handles TreeListDevexpress.FocusedNodeChanged FocusedNode = Nothing + If oFilterActive Then Exit Sub End If - For Each treeListNode As DevExpress.XtraTreeList.Nodes.TreeListNode In TreeListDevexpress.Selection - FocusedNode = treeListNode - RPGNodes.Enabled = True - Dim oID = treeListNode.Id - Console.Write($"Node ID: {oID}") - Dim PID = treeListNode.ParentNode - Dim Column_pRecord As DevExpress.XtraTreeList.Columns.TreeListColumn = TreeListDevexpress.Columns("RECORD_ID") - Dim Column_Caption As DevExpress.XtraTreeList.Columns.TreeListColumn = TreeListDevexpress.Columns("NODE_CAPTION") - Dim pRecord = e.Node.GetDisplayText(Column_pRecord) - Dim oNode_Caption = e.Node.GetDisplayText(Column_Caption) - If oID > 0 Then - Update_Status_Label(True, oID) - Else - Exit Sub - End If - Dim oNodeInfo = $"NodeGUID {oID}" - Console.Write(oNodeInfo) - If pRecord.Length > 0 Then - oNodeInfo += $" - RecordID {pRecord}" - Node_AfterSelect = True - 'Dim sw As New SW("TreeViewMain_AfterSelect1") - ' Dim swAll As New SW("TreeViewMain_AfterSelect") - DisableEditMode() - Dim fl = FORM_LOADED - Dim firstORFOLLWOWIN = False + If e.Node Is Nothing Then + Exit Sub + End If - ' ClassNodeNavigation.Check_NODE_CONFIG_ID(oEntityID, SelectedNode) + 'For Each treeListNode As TreeListNode In TreeListDevexpress.Selection + 'FocusedNode = TreeListNode - CURRENT_RECORD_ID = pRecord - ClassHelper.GetDocrecordLinks(CURRENT_RECORD_ID) - CURRENT_ENTITY_ID = oEntityID - CURRENT_NODE_GUID = oID - SELECTED_NODE_CAPTION = oNode_Caption - CURRENT_SEARCH_TYPE = "RECORD" - DisableEditMode() - ' muss vor show selected record data kommen, - ' sodass die datasource für die angehakten werte existiert (checked list box) - CtrlBuilder.WatchRecordChanges = False - ClassControlValues.LoadControlValuesListWithPlaceholders(oEntityID, CURRENT_RECORD_ID, 0, CtrlBuilder.AllControls, oEntityID) - CtrlBuilder.WatchRecordChanges = True - Show_Selected_Record_Data(CURRENT_RECORD_ID) + FocusedNode = e.Node + + RPGNodes.Enabled = True + + Dim oNodeId = e.Node.Id + Console.Write($"Node ID: {oNodeId}") + + Dim oRowObject = TreeListDevexpress.GetRow(oNodeId) + + If TypeOf oRowObject IsNot DataRowView Then + Exit Sub + End If + + If oNodeId = 0 Then + Exit Sub + End If + + Dim oRowView As DataRowView = oRowObject + Dim oRow As DataRow = oRowView.Row + Dim oGuid = oRow.Item("GUID") + Dim oNodeCaption = oRow.Item("NODE_CAPTION") + Dim oRecordId = oRow.ItemEx("RECORD_ID", 0) + Dim oHasRecordId = (oRecordId > 0) + Dim oParentNode = e.Node.ParentNode + + 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 = oEntityID + CURRENT_NODE_GUID = oNodeId + SELECTED_NODE_CAPTION = oNodeCaption + CURRENT_SEARCH_TYPE = "RECORD" + DisableEditMode() + ' muss vor show selected record data kommen, + ' sodass die datasource für die angehakten werte existiert (checked list box) + CtrlBuilder.WatchRecordChanges = False + ClassControlValues.LoadControlValuesListWithPlaceholders(oEntityID, CURRENT_RECORD_ID, 0, CtrlBuilder.AllControls, oEntityID) + CtrlBuilder.WatchRecordChanges = True + Show_Selected_Record_Data(CURRENT_RECORD_ID) - ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, oEntityID) - CONTROL_HANDLING() + ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, oEntityID) + 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 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 - ' 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 - If RIGHT_READ_ONLY_DOC = False Then - Doc_ReadOnlyHandler(True) + If RIGHT_RECORD_AND_FILE_READ_ONLY = True Then + bbtnitmRecEdit.Enabled = False + bbtnitmRecSave.Enabled = False + Else + bbtnitmRecEdit.Enabled = True + In_Visible_Record_Group(True) End If - 'Liste der geänderten Control Values leeren - CtrlBuilder.ControlsChanged.Clear() - - Load_DocGrid_Layout() - 'Load_Grid_Layout() - 'Load_Variants_Grid_Layout() - - 'swAll.Done() - Node_AfterSelect = False - Else End If - Update_Status_Label(True, oNodeInfo, EditState.None) - Next + If RIGHT_READ_ONLY_DOC = False Then + Doc_ReadOnlyHandler(True) + + End If + 'Liste der geänderten Control Values leeren + CtrlBuilder.ControlsChanged.Clear() + + Load_DocGrid_Layout() + 'Load_Grid_Layout() + 'Load_Variants_Grid_Layout() + + 'swAll.Done() + Node_AfterSelect = False + + End If End Sub Public Sub Update_Status_Label(visible As Boolean, Optional text As String = "", Optional state As EditState = EditState.None) @@ -800,23 +805,38 @@ Public Class frmNodeNavigation End Sub Sub Update_Record_Label(RecordId As Integer) Try - Dim SQL As String = "SELECT ADDED_WHO, CONVERT(VARCHAR(16),ADDED_WHEN,20) AS ADDED_WHEN, COALESCE(CHANGED_WHO,'') AS CHANGED_WHO, COALESCE(CONVERT(VARCHAR(16),CHANGED_WHEN,20),'') AS CHANGED_WHEN FROM TBPMO_RECORD WHERE GUID = " & RecordId - Dim expression = "[Record-ID] = " & RecordId - Dim resultDT As DataTable - resultDT = MYDB_ECM.GetDatatable(SQL) + Dim oSql As String = $"SELECT + ADDED_WHO, + CONVERT(VARCHAR(16),ADDED_WHEN,20) AS ADDED_WHEN, + COALESCE(CHANGED_WHO,'') AS CHANGED_WHO, + COALESCE(CONVERT(VARCHAR(16),CHANGED_WHEN,20),'') AS CHANGED_WHEN + FROM TBPMO_RECORD WHERE GUID = {RecordId}" + Dim oTable As DataTable + oTable = MYDB_ECM.GetDatatable(oSql) - If Not IsNothing(resultDT) Then - If resultDT.Rows.Count = 0 Then + If Not IsNothing(oTable) Then + If oTable.Rows.Count = 0 Then Exit Sub End If + + Dim oRow As DataRow = oTable.Rows(0) + bsitmRecordID.Visibility = DevExpress.XtraBars.BarItemVisibility.Never - Dim CreateChangeString = String.Format("Added by '{0}', when: {1}", resultDT.Rows(0).Item(0), resultDT.Rows(0).Item(1)) - If CtrlCommandUI.IsInsert = False Then - CreateChangeString = CreateChangeString + String.Format(" - Changed by '{0}', when: {1}", resultDT.Rows(0).Item(2), resultDT.Rows(0).Item(3)) + + Dim oAddedWho = oRow.Item(0) + Dim oAddedWhen = oRow.Item(1) + Dim oChangedWho = oRow.Item(2) + Dim oChangedWhen = oRow.Item(3) + + Dim CreateChangeString = String.Format("Added by '{0}', when: {1}", oAddedWho, oAddedWhen) + + If CtrlCommandUI.IsInsert = False AndAlso (oRow.ItemEx(2, "") <> "") Then + CreateChangeString += String.Format(" - Changed by '{0}', when: {1}", oChangedWho, oChangedWhen) End If - bsitmRecordID.Caption = String.Format("Record ({0}) - {1}", RecordId, CreateChangeString.ToString) + 'bsitmRecordID.Caption = String.Format("Record ({0}) - {1}", RecordId, CreateChangeString.ToString) + bsitmRecordID.Caption = String.Format("{0}", CreateChangeString.ToString) bsitmRecordID.Visibility = DevExpress.XtraBars.BarItemVisibility.Always End If Catch ex As Exception @@ -824,7 +844,7 @@ Public Class frmNodeNavigation End Try End Sub - Async Function Show_Selected_Record_Data(Rec_ID As Integer) As Threading.Tasks.Task + Function Show_Selected_Record_Data(Rec_ID As Integer) As Threading.Tasks.Task Dim oHandle = SplashScreenManager.ShowOverlayForm(Me) Try @@ -833,7 +853,7 @@ Public Class frmNodeNavigation Select form Where form.Item("GUID") = oEntityID).Single() - Update_Status_Label(False, "") + 'Update_Status_Label(False, "") LOGGER.Debug("RECORD ID: " & Rec_ID.ToString) 'Me.pnlControls.Visible = True @@ -1472,7 +1492,7 @@ Public Class frmNodeNavigation ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Customer_Run_Procedures: ", ex.Message) End Try End Sub - Async Function RUN_WDSEARCH_GRID(osplashscreen As Boolean) As Threading.Tasks.Task + Function RUN_WDSEARCH_GRID(osplashscreen As Boolean) As Threading.Tasks.Task Dim oHandle As IOverlaySplashScreenHandle If osplashscreen Then oHandle = SplashScreenManager.ShowOverlayForm(Me) @@ -2859,4 +2879,8 @@ Public Class frmNodeNavigation Private Sub bbtnitmRecSave_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitmRecSave.ItemClick Save_Record() End Sub + + Private Sub GridViewDoc_Search_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles GridViewDoc_Search.SelectionChanged + Dim oDocuments = ClassWindreamDocGrid.GetSelectedDocuments(GridViewDoc_Search) + End Sub End Class \ No newline at end of file