From eee2c83eea8b77151712f328723a4a35ecea2229 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Fri, 24 Jun 2022 13:24:05 +0200 Subject: [PATCH] Rework validation for grids --- .../ClassAllgemeineFunktionen.vb | 2 +- app/DD_PM_WINDREAM/My Project/licenses.licx | 10 +- .../frmColumn_Detail.Designer.vb | 39 +- app/DD_PM_WINDREAM/frmColumn_Detail.resx | 12 +- app/DD_PM_WINDREAM/frmMain.resx | 2 +- app/DD_PM_WINDREAM/frmValidator.resx | 348 +++++++------ app/DD_PM_WINDREAM/frmValidator.vb | 469 +++++++++++++----- 7 files changed, 576 insertions(+), 306 deletions(-) diff --git a/app/DD_PM_WINDREAM/ClassAllgemeineFunktionen.vb b/app/DD_PM_WINDREAM/ClassAllgemeineFunktionen.vb index 5f3266c..c296840 100644 --- a/app/DD_PM_WINDREAM/ClassAllgemeineFunktionen.vb +++ b/app/DD_PM_WINDREAM/ClassAllgemeineFunktionen.vb @@ -205,7 +205,7 @@ Public Class ClassAllgemeineFunktionen Do While Check_File_exists(_Ziel, clsWD) = True Dim neuername As String = Stammname & "~" & version & extension _Ziel = neuername - version = version + 1 + version += 1 Loop My.Computer.FileSystem.MoveFile(vMove_File, _Ziel) LOGGER.Info("Datei erfolgreich verschoben - Ziel: " & _Ziel) diff --git a/app/DD_PM_WINDREAM/My Project/licenses.licx b/app/DD_PM_WINDREAM/My Project/licenses.licx index a593206..41c69df 100644 --- a/app/DD_PM_WINDREAM/My Project/licenses.licx +++ b/app/DD_PM_WINDREAM/My Project/licenses.licx @@ -1,6 +1,10 @@ -DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.LookUpEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.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.XtraLayout.LayoutControl, DevExpress.XtraLayout.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.Repository.RepositoryItemProgressBar, DevExpress.XtraEditors.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.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.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 diff --git a/app/DD_PM_WINDREAM/frmColumn_Detail.Designer.vb b/app/DD_PM_WINDREAM/frmColumn_Detail.Designer.vb index 7a375c2..f660b46 100644 --- a/app/DD_PM_WINDREAM/frmColumn_Detail.Designer.vb +++ b/app/DD_PM_WINDREAM/frmColumn_Detail.Designer.vb @@ -37,6 +37,7 @@ Partial Class frmColumn_Detail Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() + Me.LU_CAPTIONTextBox = New System.Windows.Forms.TextBox() Me.TYPE_COLUMNComboBox = New System.Windows.Forms.ComboBox() Me.GUIDTextBox = New DevExpress.XtraEditors.TextEdit() Me.SPALTENNAMETextBox = New DevExpress.XtraEditors.TextEdit() @@ -73,6 +74,7 @@ Partial Class frmColumn_Detail Me.LayoutControlItem11 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem13 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup() + Me.LayoutControlItem16 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem14 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem15 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem17 = New DevExpress.XtraLayout.LayoutControlItem() @@ -80,9 +82,7 @@ Partial Class frmColumn_Detail Me.LayoutControlItem18 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem19 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem22 = New DevExpress.XtraLayout.LayoutControlItem() - Me.LU_CAPTIONTextBox = New System.Windows.Forms.TextBox() Me.LayoutControlItem23 = New DevExpress.XtraLayout.LayoutControlItem() - Me.LayoutControlItem16 = New DevExpress.XtraLayout.LayoutControlItem() CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() @@ -121,6 +121,7 @@ Partial Class frmColumn_Detail CType(Me.LayoutControlItem11, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem13, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem16, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem14, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem15, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem17, System.ComponentModel.ISupportInitialize).BeginInit() @@ -129,7 +130,6 @@ Partial Class frmColumn_Detail CType(Me.LayoutControlItem19, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem22, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem23, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.LayoutControlItem16, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'TBPM_CONTROL_TABLEBindingSource @@ -252,6 +252,12 @@ Partial Class frmColumn_Detail Me.LayoutControl1.Name = "LayoutControl1" Me.LayoutControl1.Root = Me.Root ' + 'LU_CAPTIONTextBox + ' + Me.LU_CAPTIONTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBPM_CONTROL_TABLEBindingSource, "LU_CAPTION", True)) + resources.ApplyResources(Me.LU_CAPTIONTextBox, "LU_CAPTIONTextBox") + Me.LU_CAPTIONTextBox.Name = "LU_CAPTIONTextBox" + ' 'TYPE_COLUMNComboBox ' Me.TYPE_COLUMNComboBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBPM_CONTROL_TABLEBindingSource, "TYPE_COLUMN", True)) @@ -575,6 +581,15 @@ Partial Class frmColumn_Detail Me.LayoutControlGroup1.Size = New System.Drawing.Size(553, 156) resources.ApplyResources(Me.LayoutControlGroup1, "LayoutControlGroup1") ' + 'LayoutControlItem16 + ' + Me.LayoutControlItem16.Control = Me.VALIDATIONCheckbox + Me.LayoutControlItem16.Location = New System.Drawing.Point(0, 0) + Me.LayoutControlItem16.Name = "LayoutControlItem16" + Me.LayoutControlItem16.Size = New System.Drawing.Size(264, 24) + Me.LayoutControlItem16.TextSize = New System.Drawing.Size(0, 0) + Me.LayoutControlItem16.TextVisible = False + ' 'LayoutControlItem14 ' Me.LayoutControlItem14.Control = Me.READ_ONLYCheckBox @@ -641,12 +656,6 @@ Partial Class frmColumn_Detail Me.LayoutControlItem22.Size = New System.Drawing.Size(553, 41) Me.LayoutControlItem22.TextSize = New System.Drawing.Size(112, 13) ' - 'LU_CAPTIONTextBox - ' - Me.LU_CAPTIONTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.TBPM_CONTROL_TABLEBindingSource, "LU_CAPTION", True)) - resources.ApplyResources(Me.LU_CAPTIONTextBox, "LU_CAPTIONTextBox") - Me.LU_CAPTIONTextBox.Name = "LU_CAPTIONTextBox" - ' 'LayoutControlItem23 ' Me.LayoutControlItem23.Control = Me.LU_CAPTIONTextBox @@ -657,15 +666,6 @@ Partial Class frmColumn_Detail Me.LayoutControlItem23.Size = New System.Drawing.Size(553, 40) Me.LayoutControlItem23.TextSize = New System.Drawing.Size(112, 13) ' - 'LayoutControlItem16 - ' - Me.LayoutControlItem16.Control = Me.VALIDATIONCheckbox - Me.LayoutControlItem16.Location = New System.Drawing.Point(0, 0) - Me.LayoutControlItem16.Name = "LayoutControlItem16" - Me.LayoutControlItem16.Size = New System.Drawing.Size(264, 24) - Me.LayoutControlItem16.TextSize = New System.Drawing.Size(0, 0) - Me.LayoutControlItem16.TextVisible = False - ' 'frmColumn_Detail ' Me.Appearance.Options.UseFont = True @@ -680,7 +680,6 @@ Partial Class frmColumn_Detail Me.Name = "frmColumn_Detail" Me.Ribbon = Me.RibbonControl1 Me.StatusBar = Me.RibbonStatusBar1 - Me.TopMost = True CType(Me.TBPM_CONTROL_TABLEBindingSource, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() @@ -719,6 +718,7 @@ Partial Class frmColumn_Detail CType(Me.LayoutControlItem11, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem13, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem16, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem14, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem15, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem17, System.ComponentModel.ISupportInitialize).EndInit() @@ -727,7 +727,6 @@ Partial Class frmColumn_Detail CType(Me.LayoutControlItem19, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem22, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem23, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.LayoutControlItem16, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout diff --git a/app/DD_PM_WINDREAM/frmColumn_Detail.resx b/app/DD_PM_WINDREAM/frmColumn_Detail.resx index 53bfb88..fa933b7 100644 --- a/app/DD_PM_WINDREAM/frmColumn_Detail.resx +++ b/app/DD_PM_WINDREAM/frmColumn_Detail.resx @@ -952,6 +952,12 @@ DevExpress.XtraLayout.LayoutControlGroup, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + LayoutControlItem16 + + + DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + LayoutControlItem14 @@ -1000,12 +1006,6 @@ DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - LayoutControlItem16 - - - DevExpress.XtraLayout.LayoutControlItem, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - frmColumn_Detail diff --git a/app/DD_PM_WINDREAM/frmMain.resx b/app/DD_PM_WINDREAM/frmMain.resx index 1ae2fd1..760ce75 100644 --- a/app/DD_PM_WINDREAM/frmMain.resx +++ b/app/DD_PM_WINDREAM/frmMain.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw - CAAAAk1TRnQBSQFMAgEBAgEAAcQBCAHEAQgBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CAAAAk1TRnQBSQFMAgEBAgEAAcwBCAHMAQgBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/app/DD_PM_WINDREAM/frmValidator.resx b/app/DD_PM_WINDREAM/frmValidator.resx index 9cecf0f..d4f5910 100644 --- a/app/DD_PM_WINDREAM/frmValidator.resx +++ b/app/DD_PM_WINDREAM/frmValidator.resx @@ -131,31 +131,6 @@ 0, 0 - - Top, Left, Right - - - Segoe UI Symbol, 12pt, style=Bold - - - 3, 4 - - - No - - - 433, 29 - - - - 1 - - - Label1 - - - MiddleLeft - TITLELabel1 @@ -168,30 +143,6 @@ 0 - - Bottom, Left, Right - - - Tahoma, 9.75pt - - - MiddleLeft - - - 7, 454 - - - 3, 4, 3, 4 - - - 445, 50 - - - 11 - - - Validierung speichern - Nächstes Dokument - btnSave @@ -204,21 +155,6 @@ 1 - - Top, Left, Right - - - 5, 33 - - - 447, 48 - - - 1 - - - Label3 - DESCRIPTIONLabel @@ -231,24 +167,6 @@ 2 - - Top, Bottom, Left, Right - - - True - - - 8, 85 - - - 3, 4, 3, 4 - - - 444, 361 - - - 18 - PanelValidatorControl @@ -273,6 +191,7 @@ 455, 511 + 24 @@ -319,7 +238,7 @@ DocumentViewerValidator - DigitalData.Controls.DocumentViewer.DocumentViewer, DigitalData.Controls.DocumentViewer, Version=1.7.0.1, Culture=neutral, PublicKeyToken=null + DigitalData.Controls.DocumentViewer.DocumentViewer, DigitalData.Controls.DocumentViewer, Version=1.8.0.0, Culture=neutral, PublicKeyToken=null SplitContainer1.Panel2 @@ -441,6 +360,135 @@ 0 + + Top, Left, Right + + + Segoe UI Symbol, 12pt, style=Bold + + + 3, 4 + + + No + + + 433, 29 + + + 1 + + + Label1 + + + MiddleLeft + + + TITLELabel1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel1 + + + 0 + + + Bottom, Left, Right + + + Tahoma, 9.75pt + + + MiddleLeft + + + 7, 454 + + + 3, 4, 3, 4 + + + 445, 50 + + + 11 + + + Validierung speichern - Nächstes Dokument + + + btnSave + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel1 + + + 1 + + + Top, Left, Right + + + 5, 33 + + + 447, 48 + + + 1 + + + Label3 + + + DESCRIPTIONLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel1 + + + 2 + + + Top, Bottom, Left, Right + + + True + + + 8, 85 + + + 3, 4, 3, 4 + + + 444, 361 + + + 18 + + + PanelValidatorControl + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel1 + + + 3 + 17, 17 @@ -1029,43 +1077,9 @@ 0, 0 - - Aktionen - - - Beendete Konversationen - - - Funktionen - Konversationen - - Datei - - - Aktionen - - - Anhänge zu Beleg - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAEluZm87bRIthgAAAVxJREFUWEfF - l7FxwzAMRT2Bq4yjPp1nyAAZxNu4dZkt0rnLCm4ZPF+gg5LPCLJko3h3Ovn/T5gCSWnXWitF3nwm48Uw - DHPsjYNxNM7Gxbj+wDX3+A0NWpUxsqSAF+Pd+DBaErR48KrMdAGvxslQg2TAS8af7EwBb8anoYKXQAZZ - k/y5AjB8GSrwHsiaFPFfAUzZFv/8N2SOj6NXAE2z5pnPQfatMXsF0LnKuCWMIQtg7aaXmvuCX+oEjLF3 - XwxgA1EGifuCX+o6HNwXA9jFlFjivuCXug5H98UAtlIllrgv+KWuw9l9MYD9XIkl7gt+qetwcV8M4FBR - Yon7gl/qOlzdFwPKCyh/BOVNWL4MF21EK5EbUflWDOnDyH3BL3WC7mEE5ccxlL6QOKWvZA6GLWaCjMng - kCkAmLI1PYF3nPZItgCgaejc9BI10OK5NZxiSQHOYz/NqpA3n0fbfQM/tJcKTygMggAAAABJRU5ErkJg - gg== - - - - Information - Start @@ -1993,6 +2007,39 @@ Zoom + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYyMS4yLCBWZXJzaW9uPTIxLjIu + NC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFlE + ZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVi + bGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29s + VGlwBwAAAA1BbGxvd0h0bWxUZXh0EUZpeGVkVG9vbFRpcFdpZHRoCkl0ZW1zQ291bnQJaXRlbVR5cGUw + BWl0ZW0wCWl0ZW1UeXBlMQVpdGVtMQQAAAQEBAQfRGV2RXhwcmVzcy5VdGlscy5EZWZhdWx0Qm9vbGVh + bgMAAAABCCVEZXZFeHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAgAAACFEZXZFeHByZXNz + LlV0aWxzLlRvb2xUaXBUaXRsZUl0ZW0CAAAAJURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29sVGlwSXRl + bVR5cGUCAAAAHERldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEl0ZW0CAAAAAgAAAAX8////H0RldkV4cHJl + c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4BAAAAB3ZhbHVlX18ACAMAAAACAAAAAAIAAAAF+////yVEZXZF + eHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAQAAAAd2YWx1ZV9fAAgCAAAAAQAAAAkGAAAA + Afn////7////AAAAAAkIAAAADAkAAABRU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs + dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhBQYAAAAhRGV2RXhwcmVz + cy5VdGlscy5Ub29sVGlwVGl0bGVJdGVtBwAAAA1BbGxvd0h0bWxUZXh0BEljb24MSW1hZ2VPcHRpb25z + CkxlZnRJbmRlbnQITWF4V2lkdGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJl + c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJl + c3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAH2/////P///wIAAAAKCQsA + AAAAAAAAPAEAAAAGDAAAAARab29tBQgAAAAcRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSXRlbQcAAAAN + QWxsb3dIdG1sVGV4dARJY29uDEltYWdlT3B0aW9ucwpMZWZ0SW5kZW50CE1heFdpZHRoEk93bmVyQWxs + b3dIdG1sVGV4dARUZXh0BAQEAAAAAR9EZXZFeHByZXNzLlV0aWxzLkRlZmF1bHRCb29sZWFuAwAAABNT + eXN0ZW0uRHJhd2luZy5JY29uCQAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJdGVtSW1hZ2VPcHRp + b25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAADwBAAAABg8AAAApw4RuZGVybiBkZXIg + Wm9vbS1TdHVmZSBkZXMgUERGLURva3VtZW50cy4FCwAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJ + dGVtSW1hZ2VPcHRpb25zBQAAAAhJbWFnZVVyaQxTdmdJbWFnZVNpemUJQWxpZ25tZW50CkltYWdlSW5k + ZXgTSW1hZ2VUb1RleHREaXN0YW5jZQEEBAAAE1N5c3RlbS5EcmF3aW5nLlNpemUJAAAAJkRldkV4cHJl + c3MuVXRpbHMuVG9vbFRpcEltYWdlQWxpZ25tZW50AgAAAAgIAgAAAAYQAAAAAAXv////E1N5c3RlbS5E + cmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdodAAACAgJAAAAAAAAAAAAAAAF7v///yZEZXZFeHByZXNz + LlV0aWxzLlRvb2xUaXBJbWFnZUFsaWdubWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAD/////DgAAAAEO + AAAACwAAAAkQAAAAAe3////v////AAAAAAAAAAAB7P///+7///8AAAAA/////w4AAAAL + + 10% @@ -2035,39 +2082,6 @@ sichtbare einpassen - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYyMS4yLCBWZXJzaW9uPTIxLjIu - NC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFlE - ZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVi - bGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29s - VGlwBwAAAA1BbGxvd0h0bWxUZXh0EUZpeGVkVG9vbFRpcFdpZHRoCkl0ZW1zQ291bnQJaXRlbVR5cGUw - BWl0ZW0wCWl0ZW1UeXBlMQVpdGVtMQQAAAQEBAQfRGV2RXhwcmVzcy5VdGlscy5EZWZhdWx0Qm9vbGVh - bgMAAAABCCVEZXZFeHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAgAAACFEZXZFeHByZXNz - LlV0aWxzLlRvb2xUaXBUaXRsZUl0ZW0CAAAAJURldkV4cHJlc3MuVXRpbHMuU3VwZXJUb29sVGlwSXRl - bVR5cGUCAAAAHERldkV4cHJlc3MuVXRpbHMuVG9vbFRpcEl0ZW0CAAAAAgAAAAX8////H0RldkV4cHJl - c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4BAAAAB3ZhbHVlX18ACAMAAAACAAAAAAIAAAAF+////yVEZXZF - eHByZXNzLlV0aWxzLlN1cGVyVG9vbFRpcEl0ZW1UeXBlAQAAAAd2YWx1ZV9fAAgCAAAAAQAAAAkGAAAA - Afn////7////AAAAAAkIAAAADAkAAABRU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3Vs - dHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhBQYAAAAhRGV2RXhwcmVz - cy5VdGlscy5Ub29sVGlwVGl0bGVJdGVtBwAAAA1BbGxvd0h0bWxUZXh0BEljb24MSW1hZ2VPcHRpb25z - CkxlZnRJbmRlbnQITWF4V2lkdGgST3duZXJBbGxvd0h0bWxUZXh0BFRleHQEBAQAAAABH0RldkV4cHJl - c3MuVXRpbHMuRGVmYXVsdEJvb2xlYW4DAAAAE1N5c3RlbS5EcmF3aW5nLkljb24JAAAAKERldkV4cHJl - c3MuVXRpbHMuVG9vbFRpcEl0ZW1JbWFnZU9wdGlvbnMCAAAACAgBAgAAAAH2/////P///wIAAAAKCQsA - AAAAAAAAPAEAAAAGDAAAAARab29tBQgAAAAcRGV2RXhwcmVzcy5VdGlscy5Ub29sVGlwSXRlbQcAAAAN - QWxsb3dIdG1sVGV4dARJY29uDEltYWdlT3B0aW9ucwpMZWZ0SW5kZW50CE1heFdpZHRoEk93bmVyQWxs - b3dIdG1sVGV4dARUZXh0BAQEAAAAAR9EZXZFeHByZXNzLlV0aWxzLkRlZmF1bHRCb29sZWFuAwAAABNT - eXN0ZW0uRHJhd2luZy5JY29uCQAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJdGVtSW1hZ2VPcHRp - b25zAgAAAAgIAQIAAAAB8/////z///8CAAAACgkOAAAAAAAAADwBAAAABg8AAAApw4RuZGVybiBkZXIg - Wm9vbS1TdHVmZSBkZXMgUERGLURva3VtZW50cy4FCwAAAChEZXZFeHByZXNzLlV0aWxzLlRvb2xUaXBJ - dGVtSW1hZ2VPcHRpb25zBQAAAAhJbWFnZVVyaQxTdmdJbWFnZVNpemUJQWxpZ25tZW50CkltYWdlSW5k - ZXgTSW1hZ2VUb1RleHREaXN0YW5jZQEEBAAAE1N5c3RlbS5EcmF3aW5nLlNpemUJAAAAJkRldkV4cHJl - c3MuVXRpbHMuVG9vbFRpcEltYWdlQWxpZ25tZW50AgAAAAgIAgAAAAYQAAAAAAXv////E1N5c3RlbS5E - cmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdodAAACAgJAAAAAAAAAAAAAAAF7v///yZEZXZFeHByZXNz - LlV0aWxzLlRvb2xUaXBJbWFnZUFsaWdubWVudAEAAAAHdmFsdWVfXwAIAgAAAAAAAAD/////DgAAAAEO - AAAACwAAAAkQAAAAAe3////v////AAAAAAAAAAAB7P///+7///8AAAAA/////w4AAAAL - - BarButtonItem1 @@ -2080,6 +2094,40 @@ 1029, 17 + + Funktionen + + + Aktionen + + + Beendete Konversationen + + + Datei + + + Aktionen + + + Anhänge zu Beleg + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAALdEVYdFRpdGxlAEluZm87bRIthgAAAVxJREFUWEfF + l7FxwzAMRT2Bq4yjPp1nyAAZxNu4dZkt0rnLCm4ZPF+gg5LPCLJko3h3Ovn/T5gCSWnXWitF3nwm48Uw + DHPsjYNxNM7Gxbj+wDX3+A0NWpUxsqSAF+Pd+DBaErR48KrMdAGvxslQg2TAS8af7EwBb8anoYKXQAZZ + k/y5AjB8GSrwHsiaFPFfAUzZFv/8N2SOj6NXAE2z5pnPQfatMXsF0LnKuCWMIQtg7aaXmvuCX+oEjLF3 + XwxgA1EGifuCX+o6HNwXA9jFlFjivuCXug5H98UAtlIllrgv+KWuw9l9MYD9XIkl7gt+qetwcV8M4FBR + Yon7gl/qOlzdFwPKCyh/BOVNWL4MF21EK5EbUflWDOnDyH3BL3WC7mEE5ccxlL6QOKWvZA6GLWaCjMng + kCkAmLI1PYF3nPZItgCgaejc9BI10OK5NZxiSQHOYz/NqpA3n0fbfQM/tJcKTygMggAAAABJRU5ErkJg + gg== + + + + Information + RibbonPage2 diff --git a/app/DD_PM_WINDREAM/frmValidator.vb b/app/DD_PM_WINDREAM/frmValidator.vb index e8c6d3b..e504b34 100644 --- a/app/DD_PM_WINDREAM/frmValidator.vb +++ b/app/DD_PM_WINDREAM/frmValidator.vb @@ -8,6 +8,7 @@ Imports DigitalData.Controls.LookupGrid Imports DevExpress.XtraGrid Imports DevExpress.XtraGrid.Views.Grid Imports DigitalData.Modules.Language.Utils +Imports DigitalData.Modules.Language Imports DigitalData.Modules.EDMI.API.DatabaseWithFallback Imports DigitalData.Modules.EDMI.API.Constants Imports DevExpress.XtraBars @@ -15,6 +16,7 @@ Imports DigitalData.GUIs.Common.DocumentResultList Imports DigitalData.Modules.ZooFlow Imports DigitalData.Modules.ZooFlow.Constants Imports DigitalData.GUIs.Common +Imports DevExpress.XtraGrid.Columns Public Class frmValidator Private Property Current_Document As DocumentResultList.Document = Nothing @@ -3772,7 +3774,7 @@ Public Class frmValidator LOGGER.Debug("frmValidation_Shown finished!") End Sub - Private Sub btnSave_Click(sender As System.Object, e As System.EventArgs) Handles btnSave.Click + Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click btnSave.Enabled = False ' TODO: Use when working on Validation @@ -3800,7 +3802,7 @@ Public Class frmValidator Continue For End If - If oView.UpdateCurrentRow() = False Then + If DoCellValidation(oView) = False Then oValidation = False End If @@ -3814,6 +3816,28 @@ Public Class frmValidator Return True End Function + Private Function DoCellValidation(pView As GridView) As Boolean + For i As Integer = 0 To pView.DataRowCount - 1 + Dim oRowHandle = i + + pView.FocusedRowHandle = oRowHandle + + For Each oColumn As GridColumn In pView.Columns + pView.FocusedColumn = oColumn + + If pView.PostEditor() = True Then + If pView.UpdateCurrentRow() = False Then + Return False + End If + Else + Return False + End If + Next + Next + + Return True + End Function + Private Function btnFinish_continue() Try Dim oSQL = PROFIL_FINISH_SQL @@ -5074,130 +5098,147 @@ Public Class frmValidator End Try Case "DevExpress.XtraGrid.GridControl" - Try - Dim dgv As GridControl = oControl - - Dim oRowCount As Integer = dgv.DataSource.Rows.Count - - LOGGER.Debug("Grid Row Count: [{0}]", oRowCount) - - 'Wenn kein Wert ausgewählt wurde und der Index aber gesetzt werden muss - If oIsRequired = True And oRowCount = 0 Then - oMissing = True - oErrMsgMissingInput = "Fehlende Eingabe in Tabelle '" & dgv.Name & "'" - oControl.BackColor = Color.Red - LOGGER.Warn(oErrMsgMissingInput) - Exit For - - - ElseIf oRowCount > 0 Then - Dim ZeilenGrid As Integer = 0 - Dim myVektorArr As String() - 'Jeden Werte des Datagridviews durchlaufen - For Each row As DataRow In dgv.DataSource.Rows - Dim exists = False - Select Case oControlType - Case "TABLE" - Dim oRowValue = row.Item(0) - If IsNothing(oRowValue) Then - oRowValue = String.Empty - ElseIf IsDBNull(oRowValue) Then - oRowValue = String.Empty - End If - ' MsgBox(row.Cells(0).Value.GetType.ToString) - Dim str As String = String.Empty - 'If oRowValue <> String.Empty Then - 'Das Array anpassen - ReDim Preserve myVektorArr(ZeilenGrid) - - Dim oValueList As New List(Of String) - - For Each item In row.ItemArray - item = NotNull(item, String.Empty) - If TypeOf item IsNot String Then item.ToString() - oValueList.Add(item) - Next - - str = String.Join(PMDelimiter, oValueList.ToArray) - - ' 22.10.2021 Attempt at fixing empty lines appearing in indexes - LOGGER.Debug("Grid Value before saving: [{0}]", str) - If str.Trim.Length = 0 Or str.Trim.Replace(PMDelimiter, "").Length = 0 Then - LOGGER.Debug("Empty line in Grid [{0}]. Skipping.", oControlName) - Continue For - End If - - 'Den Wert im Array speichern - myVektorArr(ZeilenGrid) = str - ZeilenGrid += 1 - 'End If - Case Else - ' MsgBox(row.Cells(0).Value.GetType.ToString) - If row.Item(0) Is Nothing = False Then - 'Das Array anpassen - ReDim Preserve myVektorArr(ZeilenGrid) - 'Den Wert im Array speichern - myVektorArr(ZeilenGrid) = row.Item(0).Value.ToString - ZeilenGrid += 1 - End If - End Select - - Next - - - If IDB_ACTIVE = False Then - If Indexiere_File(CURRENT_WMFILE, oIndexName, myVektorArr) = False Then - oMissing = True - oErrMsgMissingInput = $"Error while indexing table (1) {dgv.Name} - ERROR: " & idxerr_message - LOGGER.Warn(oErrMsgMissingInput) - Exit For - End If - Else - Dim oMyDT = DT_FOR_ARRAY(myVektorArr) - If oMyDT.Rows.Count > 0 Then - If IDBData.SetVariableValue(oIndexName, oMyDT, True, oIDBTyp) = False Then - oMissing = True - oErrMsgMissingInput = $"Error while indexing table IDB (1) {dgv.Name} - ERROR: " & idxerr_message - LOGGER.Warn(oErrMsgMissingInput) - Exit For - End If - End If - End If - - - Else - LOGGER.Debug("Required = False And RowCount > 0") - - Dim oValue As New List(Of Object) From {String.Empty} - - If IDB_ACTIVE = False Then - If Indexiere_File(CURRENT_WMFILE, oIndexName, oValue.ToArray) = False Then - oMissing = True - 'oErrorMessage = "Error while indexing der Tabelle - ERROR: " & idxerr_message - oErrMsgMissingInput = $"Error while indexing table (2) {dgv.Name} - ERROR: " & idxerr_message - LOGGER.Warn(oErrMsgMissingInput) - Exit For - End If - Else - Dim oOldAttributeResult = IDBData.GetVariableValue(oIndexName, oIDBTyp) - Dim oTypeOldResult = oOldAttributeResult.GetType.ToString - If oTypeOldResult = "System.Data.DataTable" Then - Dim oDT As DataTable = IDBData.GetVariableValue(oIndexName, oIDBTyp) - If oDT.Rows.Count > 0 Then - LOGGER.Debug("User cleared the grid, so data needs to be erased!") - IDBData.Delete_AttributeData(CURRENT_DOC_ID, oIndexName) - End If - Else - LOGGER.Debug("(String) User cleared the grid, so data needs to be erased!") - IDBData.Delete_AttributeData(CURRENT_DOC_ID, oIndexName) - End If - - End If + Dim oGrid As GridControl = oControl + Dim oSettings = New ControlSettings() With { + .IndexName = oIndexName, + .ControlType = Type, + .Name = oControlName, + .IsRequired = oIsRequired, + .IDBAttributeType = oIDBTyp + } + Dim oGridColumnDefinition As DataTable = DT_COLUMNS_GRID.Clone() + Dim oExpression = $"CONTROL_ID = {oControlRow.Item("GUID")}" + DT_COLUMNS_GRID.Select(oExpression, "SEQUENCE").CopyToDataTable(oGridColumnDefinition, LoadOption.PreserveChanges) + + Dim oResult = ValidateGridControl(oGrid, oSettings, oGridColumnDefinition, oMissing, oErrMsgMissingInput) + If oResult = False Then + Exit For + End If - End If - Catch ex As Exception - LOGGER.Error(ex) - End Try + 'Try + ' Dim dgv As GridControl = oControl + + ' Dim oRowCount As Integer = dgv.DataSource.Rows.Count + + ' LOGGER.Debug("Grid Row Count: [{0}]", oRowCount) + + ' 'Wenn kein Wert ausgewählt wurde und der Index aber gesetzt werden muss + ' If oIsRequired = True And oRowCount = 0 Then + ' oMissing = True + ' oErrMsgMissingInput = "Fehlende Eingabe in Tabelle '" & dgv.Name & "'" + ' oControl.BackColor = Color.Red + ' LOGGER.Warn(oErrMsgMissingInput) + ' Exit For + + + ' ElseIf oRowCount > 0 Then + ' Dim ZeilenGrid As Integer = 0 + ' Dim myVektorArr As String() + ' 'Jeden Werte des Datagridviews durchlaufen + ' For Each oRow As DataRow In dgv.DataSource.Rows + ' Dim exists = False + ' Select Case oControlType + ' Case "TABLE" + ' Dim oRowValue = oRow.Item(0) + ' If IsNothing(oRowValue) Then + ' oRowValue = String.Empty + ' ElseIf IsDBNull(oRowValue) Then + ' oRowValue = String.Empty + ' End If + ' ' MsgBox(row.Cells(0).Value.GetType.ToString) + ' Dim str As String = String.Empty + ' 'If oRowValue <> String.Empty Then + ' 'Das Array anpassen + ' ReDim Preserve myVektorArr(ZeilenGrid) + + ' Dim oValueList As New List(Of String) + + ' For Each item In oRow.ItemArray + ' item = NotNull(item, String.Empty) + ' If TypeOf item IsNot String Then item.ToString() + ' oValueList.Add(item) + ' Next + + ' str = String.Join(PMDelimiter, oValueList.ToArray) + + ' ' 22.10.2021 Attempt at fixing empty lines appearing in indexes + ' LOGGER.Debug("Grid Value before saving: [{0}]", str) + ' If str.Trim.Length = 0 Or str.Trim.Replace(PMDelimiter, "").Length = 0 Then + ' LOGGER.Debug("Empty line in Grid [{0}]. Skipping.", oControlName) + ' Continue For + ' End If + + ' 'Den Wert im Array speichern + ' myVektorArr(ZeilenGrid) = str + ' ZeilenGrid += 1 + ' 'End If + ' Case Else + ' ' MsgBox(row.Cells(0).Value.GetType.ToString) + ' If oRow.Item(0) Is Nothing = False Then + ' 'Das Array anpassen + ' ReDim Preserve myVektorArr(ZeilenGrid) + ' 'Den Wert im Array speichern + ' myVektorArr(ZeilenGrid) = oRow.Item(0).Value.ToString + ' ZeilenGrid += 1 + ' End If + ' End Select + + ' Next + + + ' If IDB_ACTIVE = False Then + ' If Indexiere_File(CURRENT_WMFILE, oIndexName, myVektorArr) = False Then + ' oMissing = True + ' oErrMsgMissingInput = $"Error while indexing table (1) {dgv.Name} - ERROR: " & idxerr_message + ' LOGGER.Warn(oErrMsgMissingInput) + ' Exit For + ' End If + ' Else + ' Dim oMyDT = DT_FOR_ARRAY(myVektorArr) + ' If oMyDT.Rows.Count > 0 Then + ' If IDBData.SetVariableValue(oIndexName, oMyDT, True, oIDBTyp) = False Then + ' oMissing = True + ' oErrMsgMissingInput = $"Error while indexing table IDB (1) {dgv.Name} - ERROR: " & idxerr_message + ' LOGGER.Warn(oErrMsgMissingInput) + ' Exit For + ' End If + ' End If + ' End If + + + ' Else + ' LOGGER.Debug("Required = False And RowCount > 0") + + ' Dim oValue As New List(Of Object) From {String.Empty} + + ' If IDB_ACTIVE = False Then + ' If Indexiere_File(CURRENT_WMFILE, oIndexName, oValue.ToArray) = False Then + ' oMissing = True + ' 'oErrorMessage = "Error while indexing der Tabelle - ERROR: " & idxerr_message + ' oErrMsgMissingInput = $"Error while indexing table (2) {dgv.Name} - ERROR: " & idxerr_message + ' LOGGER.Warn(oErrMsgMissingInput) + ' Exit For + ' End If + ' Else + ' Dim oOldAttributeResult = IDBData.GetVariableValue(oIndexName, oIDBTyp) + ' Dim oTypeOldResult = oOldAttributeResult.GetType.ToString + ' If oTypeOldResult = "System.Data.DataTable" Then + ' Dim oDT As DataTable = IDBData.GetVariableValue(oIndexName, oIDBTyp) + ' If oDT.Rows.Count > 0 Then + ' LOGGER.Debug("User cleared the grid, so data needs to be erased!") + ' IDBData.Delete_AttributeData(CURRENT_DOC_ID, oIndexName) + ' End If + ' Else + ' LOGGER.Debug("(String) User cleared the grid, so data needs to be erased!") + ' IDBData.Delete_AttributeData(CURRENT_DOC_ID, oIndexName) + ' End If + + ' End If + + ' End If + 'Catch ex As Exception + ' LOGGER.Error(ex) + 'End Try End Select End If 'End If für Control und ReadOnly = False Next @@ -5226,6 +5267,184 @@ Public Class frmValidator End Try End Function + + Private Class ControlSettings + Public Name As String + Public IsRequired As Boolean + Public IndexName As String + Public ControlType As String + Public IDBAttributeType As Integer + End Class + + Private Function ValidateGridControl(pGrid As GridControl, pSettings As ControlSettings, pColumnDefinition As DataTable, ByRef pMissing As Boolean, ByRef pMissingMessage As String) As Boolean + Try + Dim oRowCount As Integer = pGrid.DataSource.Rows.Count + + LOGGER.Debug("Grid Row Count: [{0}]", oRowCount) + + 'Wenn kein Wert ausgewählt wurde und der Index aber gesetzt werden muss + If pSettings.IsRequired = True And oRowCount = 0 Then + pMissing = True + pMissingMessage = "Fehlende Eingabe in Tabelle '" & pGrid.Name & "'" + pGrid.BackColor = Color.Red + LOGGER.Warn(pMissingMessage) + + 'Exit For + Return False + + End If + + If oRowCount > 0 Then + + Dim oView As GridView = pGrid.FocusedView + Dim oDatasource As DataTable = pGrid.DataSource + Dim oRowIndex As Integer = 0 + + For Each oRow As DataRow In oDatasource.Rows + For Each oColumn As DataColumn In oRow.Table.Columns + + Dim oValue = oRow.ItemEx(oColumn.ColumnName, "") + Dim oDefinition = pColumnDefinition.AsEnumerable(). + Where(Function(row) row.Item("SPALTENNAME") = oColumn.ColumnName). + FirstOrDefault() + + If oDefinition IsNot Nothing Then + Dim oIsRequired = oDefinition.Item("VALIDATION") + + If oIsRequired = True And oValue = String.Empty Then + + ' Translates the visible row index into the internal rowhandle + ' they might be different because of sorting + Dim oRowHandle = oView.GetRowHandle(oRowIndex) + + oView.FocusedRowHandle = oRowHandle + oView.FocusedColumn = oView.Columns.Item(oColumn.ColumnName) + + pMissing = True + pMissingMessage = $"Fehlende Eingabe in Tabelle '{pGrid.Name}' in Spalte '{oDefinition.Item("SPALTEN_HEADER")}', Zeile '{oRowHandle + 1}'" + Return False + End If + End If + Next + + oRowIndex += 1 + Next + + Dim ZeilenGrid As Integer = 0 + Dim myVektorArr As String() + 'Jeden Werte des Datagridviews durchlaufen + For Each oRow As DataRow In pGrid.DataSource.Rows + Dim exists = False + Select Case pSettings.ControlType + Case "TABLE" + Dim oRowValue = oRow.Item(0) + If IsNothing(oRowValue) Then + oRowValue = String.Empty + ElseIf IsDBNull(oRowValue) Then + oRowValue = String.Empty + End If + ' MsgBox(row.Cells(0).Value.GetType.ToString) + Dim str As String = String.Empty + 'If oRowValue <> String.Empty Then + 'Das Array anpassen + ReDim Preserve myVektorArr(ZeilenGrid) + + Dim oValueList As New List(Of String) + + For Each item In oRow.ItemArray + item = NotNull(item, String.Empty) + If TypeOf item IsNot String Then item.ToString() + oValueList.Add(item) + Next + + str = String.Join(PMDelimiter, oValueList.ToArray) + + ' 22.10.2021 Attempt at fixing empty lines appearing in indexes + LOGGER.Debug("Grid Value before saving: [{0}]", str) + If str.Trim.Length = 0 Or str.Trim.Replace(PMDelimiter, "").Length = 0 Then + LOGGER.Debug("Empty line in Grid [{0}]. Skipping.", pSettings.Name) + Continue For + End If + + 'Den Wert im Array speichern + myVektorArr(ZeilenGrid) = str + ZeilenGrid += 1 + 'End If + Case Else + ' MsgBox(row.Cells(0).Value.GetType.ToString) + If oRow.Item(0) Is Nothing = False Then + 'Das Array anpassen + ReDim Preserve myVektorArr(ZeilenGrid) + 'Den Wert im Array speichern + myVektorArr(ZeilenGrid) = oRow.Item(0).Value.ToString + ZeilenGrid += 1 + End If + End Select + + Next + + + If IDB_ACTIVE = False Then + If Indexiere_File(CURRENT_WMFILE, pSettings.IndexName, myVektorArr) = False Then + pMissing = True + pMissingMessage = $"Error while indexing table (1) {pGrid.Name} - ERROR: " & idxerr_message + LOGGER.Warn(pMissingMessage) + 'Exit For + Return False + End If + Else + Dim oMyDT = DT_FOR_ARRAY(myVektorArr) + If oMyDT.Rows.Count > 0 Then + If IDBData.SetVariableValue(pSettings.IndexName, oMyDT, True, pSettings.IDBAttributeType) = False Then + pMissing = True + pMissingMessage = $"Error while indexing table IDB (1) {pGrid.Name} - ERROR: " & idxerr_message + LOGGER.Warn(pMissingMessage) + 'Exit For + Return False + End If + End If + End If + + + Else ' Row Count = 0 + + Dim oValue As New List(Of Object) From {String.Empty} + + If IDB_ACTIVE = False Then + If Indexiere_File(CURRENT_WMFILE, pSettings.IndexName, oValue.ToArray) = False Then + pMissing = True + 'oErrorMessage = "Error while indexing der Tabelle - ERROR: " & idxerr_message + pMissingMessage = $"Error while indexing table (2) {pGrid.Name} - ERROR: " & idxerr_message + LOGGER.Warn(pMissingMessage) + 'Exit For + Return False + End If + Else + Dim oOldAttributeResult = IDBData.GetVariableValue(pSettings.IndexName, pSettings.IDBAttributeType) + Dim oTypeOldResult = oOldAttributeResult.GetType.ToString + If oTypeOldResult = "System.Data.DataTable" Then + Dim oDT As DataTable = IDBData.GetVariableValue(pSettings.IndexName, pSettings.IDBAttributeType) + If oDT.Rows.Count > 0 Then + LOGGER.Debug("User cleared the grid, so data needs to be erased!") + IDBData.Delete_AttributeData(CURRENT_DOC_ID, pSettings.IndexName) + End If + Else + LOGGER.Debug("(String) User cleared the grid, so data needs to be erased!") + IDBData.Delete_AttributeData(CURRENT_DOC_ID, pSettings.IndexName) + End If + + End If + + End If + + Return True + Catch ex As Exception + LOGGER.Error(ex) + Return False + End Try + End Function + + Private Function Indexiere_File(_dok As WINDREAMLib.WMObject, pIndexName As String, pIndexValues As Object) As Boolean Dim File_indexiert As Boolean = False idxerr_message = ""