diff --git a/GUIs.ZooFlow/ClassConstants.vb b/GUIs.ZooFlow/ClassConstants.vb index ba632e93..7a92b55c 100644 --- a/GUIs.ZooFlow/ClassConstants.vb +++ b/GUIs.ZooFlow/ClassConstants.vb @@ -18,4 +18,5 @@ Public Const ATTR_TYPE_INTEGER = "BIG INTEGER" Public Const ATTR_TYPE_DATE = "DATE" Public Const ATTR_TYPE_BOOLEAN = "BIT" + Public Const VECTORSEPARATOR = "╚" End Class diff --git a/GUIs.ZooFlow/ClassInit.vb b/GUIs.ZooFlow/ClassInit.vb index 4d540920..a7500bca 100644 --- a/GUIs.ZooFlow/ClassInit.vb +++ b/GUIs.ZooFlow/ClassInit.vb @@ -112,7 +112,7 @@ Public Class ClassInit Private Sub Initialize3rdParty(MyApplication As My.MyApplication) Try - Dim oSql = "SELECT * FROM TBCW_CONFIGURATION" + Dim oSql = "Select LICENSE FROM TBDD_3RD_PARTY_MODULES WHERE NAME = 'GDPICTURE'" Dim oDatatable As DataTable = My.Database.GetDatatable(oSql) If oDatatable.Rows.Count = 0 Then @@ -121,10 +121,11 @@ Public Class ClassInit Dim oRow As DataRow = oDatatable.Rows.Item(0) - MyApplication.Settings.GdPictureKey = NotNull(oRow.Item("GDPICTURE_LICENSE"), String.Empty) + MyApplication.Settings.GdPictureKey = NotNull(oRow.Item("LICENSE"), String.Empty) + My.Application.Settings.GdPictureKey = NotNull(oRow.Item("LICENSE"), String.Empty) Catch ex As Exception _Logger.Error(ex) - Throw New InitException("Fehler beim Laden der Konfiguration!") + Throw New InitException("Error initializing3rdParty!") End Try End Sub Private Sub InitBasicData(MyApplication As My.MyApplication) diff --git a/GUIs.ZooFlow/ClassFileDrop.vb b/GUIs.ZooFlow/Globix/ClassFileDrop.vb similarity index 100% rename from GUIs.ZooFlow/ClassFileDrop.vb rename to GUIs.ZooFlow/Globix/ClassFileDrop.vb diff --git a/GUIs.ZooFlow/ClassFilehandle.vb b/GUIs.ZooFlow/Globix/ClassFilehandle.vb similarity index 100% rename from GUIs.ZooFlow/ClassFilehandle.vb rename to GUIs.ZooFlow/Globix/ClassFilehandle.vb diff --git a/GUIs.ZooFlow/Globix/State.vb b/GUIs.ZooFlow/Globix/State.vb index 88c4dcec..623880dd 100644 --- a/GUIs.ZooFlow/Globix/State.vb +++ b/GUIs.ZooFlow/Globix/State.vb @@ -24,8 +24,9 @@ Public Property ECMDirect As Boolean = True Public Property CURRENT_PROFILE_LOG_INDEX As String Public Property ShowIndexResult As Boolean = True - Public Property CURR_MAN_INDEXE As DataTable - Public Property CURR_AUTO_INDEXE As DataTable + Public Property CURR_DT_MAN_INDEXE As DataTable + Public Property CURR_DT_AUTO_INDEXE As DataTable + Public Property CURR_DT_DOCTYPE As DataTable Public Property CURR_INDEX_MAN_POSTPROCESSING As DataTable Public Property FILE_DELIMITER As String Public Property VERSION_DELIMITER As String diff --git a/GUIs.ZooFlow/Globix/frmGlobix_Index.Designer.vb b/GUIs.ZooFlow/Globix/frmGlobix_Index.Designer.vb index 301159b2..bb59f7ce 100644 --- a/GUIs.ZooFlow/Globix/frmGlobix_Index.Designer.vb +++ b/GUIs.ZooFlow/Globix/frmGlobix_Index.Designer.vb @@ -48,6 +48,7 @@ Partial Class frmGlobix_Index Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl() Me.pnlIndex = New System.Windows.Forms.Panel() Me.Panel1 = New System.Windows.Forms.Panel() + Me.Label1 = New System.Windows.Forms.Label() Me.cmbDoctype = New System.Windows.Forms.ComboBox() Me.DocumentViewer1 = New DigitalData.Controls.DocumentViewer.DocumentViewer() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() @@ -141,6 +142,7 @@ Partial Class frmGlobix_Index Me.labelError.ImageOptions.SvgImage = CType(resources.GetObject("labelError.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.labelError.Name = "labelError" Me.labelError.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph + Me.labelError.Visibility = DevExpress.XtraBars.BarItemVisibility.Never ' 'labelNotice ' @@ -149,6 +151,7 @@ Partial Class frmGlobix_Index Me.labelNotice.ImageOptions.SvgImage = CType(resources.GetObject("labelNotice.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.labelNotice.Name = "labelNotice" Me.labelNotice.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph + Me.labelNotice.Visibility = DevExpress.XtraBars.BarItemVisibility.Never ' 'chkMultiindexing ' @@ -161,10 +164,11 @@ Partial Class frmGlobix_Index ' 'BarButtonItem1 ' - Me.BarButtonItem1.Caption = "Starten" + Me.BarButtonItem1.Caption = "Ablage-Flow" Me.BarButtonItem1.Id = 14 - Me.BarButtonItem1.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem1.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.BarButtonItem1.ImageOptions.Image = CType(resources.GetObject("BarButtonItem1.ImageOptions.Image"), System.Drawing.Image) Me.BarButtonItem1.Name = "BarButtonItem1" + Me.BarButtonItem1.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.Large ' 'RibbonPage1 ' @@ -177,7 +181,7 @@ Partial Class frmGlobix_Index Me.RibbonPageGroup3.AllowTextClipping = False Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem1) Me.RibbonPageGroup3.Name = "RibbonPageGroup3" - Me.RibbonPageGroup3.Text = "Datei verarbeiten" + Me.RibbonPageGroup3.Text = "Start" ' 'RibbonPageGroup1 ' @@ -242,27 +246,38 @@ Partial Class frmGlobix_Index 'pnlIndex ' Me.pnlIndex.Dock = System.Windows.Forms.DockStyle.Fill - Me.pnlIndex.Location = New System.Drawing.Point(0, 56) + Me.pnlIndex.Location = New System.Drawing.Point(0, 50) Me.pnlIndex.Name = "pnlIndex" - Me.pnlIndex.Size = New System.Drawing.Size(591, 359) + Me.pnlIndex.Size = New System.Drawing.Size(591, 365) Me.pnlIndex.TabIndex = 1 ' 'Panel1 ' + Me.Panel1.Controls.Add(Me.Label1) Me.Panel1.Controls.Add(Me.cmbDoctype) Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top Me.Panel1.Location = New System.Drawing.Point(0, 0) Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(591, 56) + Me.Panel1.Size = New System.Drawing.Size(591, 50) Me.Panel1.TabIndex = 0 ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label1.Location = New System.Drawing.Point(3, 3) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(192, 13) + Me.Label1.TabIndex = 2 + Me.Label1.Text = "Bitte wählen Sie einen Ablage-Flow:" + ' 'cmbDoctype ' Me.cmbDoctype.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.cmbDoctype.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.cmbDoctype.FormattingEnabled = True - Me.cmbDoctype.Location = New System.Drawing.Point(12, 17) + Me.cmbDoctype.Location = New System.Drawing.Point(6, 19) Me.cmbDoctype.Name = "cmbDoctype" Me.cmbDoctype.Size = New System.Drawing.Size(555, 25) Me.cmbDoctype.TabIndex = 0 @@ -291,6 +306,7 @@ Partial Class frmGlobix_Index CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit() Me.SplitContainerControl1.ResumeLayout(False) Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() Me.ResumeLayout(False) Me.PerformLayout() @@ -323,4 +339,5 @@ Partial Class frmGlobix_Index Friend WithEvents cmbDoctype As ComboBox Friend WithEvents DocumentViewer1 As Controls.DocumentViewer.DocumentViewer Friend WithEvents pnlIndex As Panel + Friend WithEvents Label1 As Label End Class diff --git a/GUIs.ZooFlow/Globix/frmGlobix_Index.resx b/GUIs.ZooFlow/Globix/frmGlobix_Index.resx index aadbd9b6..439bfe61 100644 --- a/GUIs.ZooFlow/Globix/frmGlobix_Index.resx +++ b/GUIs.ZooFlow/Globix/frmGlobix_Index.resx @@ -270,19 +270,27 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKMCAAAC77u/ + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKUEAAAC77u/ PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku - WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAz - OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh - Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQo8L3N0eWxl - Pg0KICA8ZyBpZD0iQ2hlY2tCb3giPg0KICAgIDxwYXRoIGQ9Ik0yNyw0SDVDNC41LDQsNCw0LjUsNCw1 - djIyYzAsMC41LDAuNSwxLDEsMWgyMmMwLjUsMCwxLTAuNSwxLTFWNUMyOCw0LjUsMjcuNSw0LDI3LDR6 - IE0xNCwyMmwtNi02bDItMmw0LDQgICBsOC04bDIsMkwxNCwyMnoiIGNsYXNzPSJHcmVlbiIgLz4NCiAg - PC9nPg0KPC9zdmc+Cw== + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ + LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD + MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw + MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu + bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRW1wbG95ZWVQcm9maWxlIj4NCiAg + ICA8cGF0aCBkPSJNMjksMEgzQzIuNSwwLDIsMC41LDIsMXYzMGMwLDAuNSwwLjUsMSwxLDFoMjZjMC41 + LDAsMS0wLjUsMS0xVjFDMzAsMC41LDI5LjUsMCwyOSwweiBNMjgsMzBINFYyaDI0VjMweiIgY2xhc3M9 + IkJsYWNrIiAvPg0KICAgIDxwYXRoIGQ9Ik0xMi4zLDEzLjhjLTAuMS0wLjMtMC4zLTAuNi0wLjMtMC45 + YzAuMS0wLjEsMC4zLTAuMiwwLjMtMC4yQzExLjYsMTAuNSwxMiw4LDE1LjIsOGMzLjUsMCwzLjcsMS45 + LDMuNywxLjkgICBzMS45LTAuMSwwLjcsMi45YzAuMS0wLjEsMC4zLTAuMSwwLjMsMC4yYzAuMSwwLjMt + MC4xLDAuNi0wLjIsMC45Yy0wLjIsMC4zLDAuMSwxLjEtMC42LDF2MC4xQzE4LjgsMTYuNCwxNy44LDE4 + LDE2LDE4ICAgcy0yLjctMS42LTMuMS0zLjFjMC0wLjEsMC0wLjEsMC0wLjFDMTIuMiwxNC45LDEyLjQs + MTQuMSwxMi4zLDEzLjh6IE0xOC43LDE4Yy0wLjUsMS0xLjQsMS45LTIuNywxLjljLTEuMywwLTIuMi0w + LjktMi43LTIgICBDMTEuNywyMC4zLDgsMTguNyw4LDIzLjdWMjRoMTZ2LTAuM0MyNCwxOC43LDIwLjMs + MjAuMiwxOC43LDE4eiIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs= @@ -403,24 +411,149 @@ cmVlbiIgLz4NCiAgPC9nPg0KPC9zdmc+Cw== - + + - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAANoCAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ - LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD - MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh - Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw - MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu - bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iR2V0dGluZ1N0YXJ0ZWQiPg0KICAg - IDxwYXRoIGQ9Ik0xNiwyQzguMywyLDIsOC4zLDIsMTZzNi4zLDE0LDE0LDE0czE0LTYuMywxNC0xNFMy - My43LDIsMTYsMnogTTEyLDIyVjEwbDEwLDZMMTIsMjJ6IiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4N - Cjwvc3ZnPgs= + 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 diff --git a/GUIs.ZooFlow/Globix/frmGlobix_Index.vb b/GUIs.ZooFlow/Globix/frmGlobix_Index.vb index 4298883c..627cda00 100644 --- a/GUIs.ZooFlow/Globix/frmGlobix_Index.vb +++ b/GUIs.ZooFlow/Globix/frmGlobix_Index.vb @@ -1,200 +1,206 @@ -Imports DigitalData.Modules.Logging +Imports System.IO +Imports System.Security.AccessControl +Imports System.Security.Principal +Imports System.Text.RegularExpressions +Imports DigitalData.Modules.Logging Public Class frmGlobix_Index #Region "+++++ Variablen ++++++" - Public vPathFile As String - Private MULTIFILES As Integer - Private akttxtbox As TextBox - Dim DT_INDEXEMAN As DataTable - Dim DT_DOKART As DataTable - Public FormLoaded As Boolean = False - Dim DropType As String - Private Shared WDDirect As Boolean = False + Public vPathFile As String + Private MULTIFILES As Integer + Private akttxtbox As TextBox + Dim DT_INDEXEMAN As DataTable + Dim DT_DOKART As DataTable + Public FormLoaded As Boolean = False + Dim DropType As String - Dim sql_history_INSERT_INTO As String - Dim sql_history_Index_Values As String + Dim sql_history_INSERT_INTO As String + Dim sql_history_Index_Values As String - Private NewFileString As String - Private CancelAttempts As Integer = 0 - Private Const MaxCancelAttempts = 2 + Private NewFileString As String + Private CancelAttempts As Integer = 0 + Private Const MaxCancelAttempts = 2 - Private Property ViewerString As String - - Private Const TEXT_MISSING_INPUT = "Bitte vervollständigen Sie die Eingaben!" - Private _LogConfig As LogConfig - Private _Logger As Logger - - Private clswindowLocation As ClassWindowLocation + Private Property ViewerString As String + Private Const TEXT_MISSING_INPUT = "Bitte vervollständigen Sie die Eingaben!" + Private _LogConfig As LogConfig + Private _Logger As Logger + Private clswindowLocation As ClassWindowLocation + Private clsPatterns As GlobixPatterns + Private clsPostProcessing As GlobixPostprocessing #End Region - Public Sub New(LogConfig As LogConfig) + Public Sub New(LogConfig As LogConfig) - ' Dieser Aufruf ist für den Designer erforderlich. - InitializeComponent() + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() - ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. - _Logger = LogConfig.GetLogger() - _LogConfig = LogConfig - clswindowLocation = New ClassWindowLocation(_LogConfig) - End Sub + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + _Logger = LogConfig.GetLogger() + _LogConfig = LogConfig + clswindowLocation = New ClassWindowLocation(_LogConfig) + clsPatterns = New GlobixPatterns(LogConfig) + clsPostProcessing = New GlobixPostprocessing(LogConfig) + End Sub - Private Sub frmGlobix_Index_Load(sender As Object, e As EventArgs) Handles MyBase.Load - ' Abbruchzähler zurücksetzen - CancelAttempts = 0 + Private Sub frmGlobix_Index_Load(sender As Object, e As EventArgs) Handles MyBase.Load + ' Abbruchzähler zurücksetzen + CancelAttempts = 0 - My.Application.Globix.INDEXING_ACTIVE = True + My.Application.Globix.INDEXING_ACTIVE = True - Try - My.Application.Globix.CURRENT_ISATTACHMENT = False - DropType = My.Database.GetScalarValue("SELECT HANDLE_TYPE FROM TBGI_FILES_USER WHERE GUID = " & My.Application.Globix.CURRENT_WORKFILE_GUID).ToString + Try + My.Application.Globix.CURRENT_ISATTACHMENT = False + DropType = My.Database.GetScalarValue("SELECT HANDLE_TYPE FROM TBGI_FILES_USER WHERE GUID = " & My.Application.Globix.CURRENT_WORKFILE_GUID).ToString - My.Application.Globix.CURR_DELETE_ORIGIN = My.UIConfig.Globix.DeleteOriginalFile - SourceDeleteItem.Enabled = True - SourceDeleteItem.Checked = My.UIConfig.Globix.DeleteOriginalFile + My.Application.Globix.CURR_DELETE_ORIGIN = My.UIConfig.Globix.DeleteOriginalFile + SourceDeleteItem.Enabled = True + SourceDeleteItem.Checked = My.UIConfig.Globix.DeleteOriginalFile - My.Application.GDPictureLicense = My.Database.GetScalarValue("SELECT LICENSE FROM TBDD_3RD_PARTY_MODULES WHERE NAME = 'GDPICTURE'") - DocumentViewer1.Init(_LogConfig, My.Application.GDPictureLicense) - If DropType Is Nothing Then - _Logger.Debug("File with Id [{0}] was not found in TBGI_FILES_USER. Exiting.", My.Application.Globix.CURRENT_WORKFILE_GUID) - CancelAttempts = MaxCancelAttempts - Close() + DocumentViewer1.Init(_LogConfig, My.Application.GDPictureLicense) + + If DropType Is Nothing Then + _Logger.Debug("File with Id [{0}] was not found in TBGI_FILES_USER. Exiting.", My.Application.Globix.CURRENT_WORKFILE_GUID) + CancelAttempts = MaxCancelAttempts + Close() + Else + My.Application.Globix.CURRENT_DROPTYPE = DropType.Replace("|", "") + + If DropType.StartsWith("|FW") Then + ' Eine Datei aus FolderWatch wird IMMER gelöscht, egal wie die Einstellung in der Config lautet + My.Application.Globix.CURR_DELETE_ORIGIN = True + SourceDeleteItem.Visibility = DevExpress.XtraBars.BarItemVisibility.Never + ElseIf DropType.Contains("|OUTLOOK_MESSAGE|") Then + ' Eine (DragDrop)-Outlook Nachricht wird NIE gelöscht, egal wie die Einstellung in der Config lautet + My.Application.Globix.CURR_DELETE_ORIGIN = False + SourceDeleteItem.Visibility = DevExpress.XtraBars.BarItemVisibility.Never Else - My.Application.Globix.CURRENT_DROPTYPE = DropType.Replace("|", "") + SourceDeleteItem.Visibility = DevExpress.XtraBars.BarItemVisibility.Always + End If - If DropType.StartsWith("|FW") Then - ' Eine Datei aus FolderWatch wird IMMER gelöscht, egal wie die Einstellung in der Config lautet - My.Application.Globix.CURR_DELETE_ORIGIN = True - SourceDeleteItem.Visibility = DevExpress.XtraBars.BarItemVisibility.Never - ElseIf DropType.Contains("|OUTLOOK_MESSAGE|") Then - ' Eine (DragDrop)-Outlook Nachricht wird NIE gelöscht, egal wie die Einstellung in der Config lautet - My.Application.Globix.CURR_DELETE_ORIGIN = False - SourceDeleteItem.Visibility = DevExpress.XtraBars.BarItemVisibility.Never + If DropType = "|DROPFROMFSYSTEM|" Then + If My.Application.User.Language <> "de-DE" Then + Me.Text = "Storage-Flow of dropped file" Else - SourceDeleteItem.Visibility = DevExpress.XtraBars.BarItemVisibility.Always + Me.Text = "Ablage-Flow - Dropped File" End If + ElseIf DropType = "|OUTLOOK_MESSAGE|" Or DropType = "|FW_MSGONLY|" Then + Select Case DropType + Case "|FW_MSGONLY|" + _Logger.Info(".msg-file from folderwatch") + If My.Application.User.Language <> "de-DE" Then + Me.Text = "Storage-Flow - msg-File (without Attachments) - from Folderwatch" + Else + Me.Text = "Ablage-Flow - msg-Datei (ohne Anhang) - aus Folderwatch" + End If + Case "|OUTLOOK_MESSAGE|" + _Logger.Info(".msg-file through dragdrop") + If My.Application.User.Language <> "de-DE" Then + Me.Text = "Storage-Flow - msg-File (without Attachments)" + Else + Me.Text = "Ablage-Flow - msg-Datei (ohne Anhang)" + End If + End Select - If DropType = "|DROPFROMFSYSTEM|" Then - If My.Application.User.Language <> "de-DE" Then - Me.Text = "Indexing of dropped file" - Else - Me.Text = "Indexierung der gedroppten Datei" - End If - ElseIf DropType = "|OUTLOOK_MESSAGE|" Or DropType = "|FW_MSGONLY|" Then - Select Case DropType - Case "|FW_MSGONLY|" - _Logger.Info(".msg-file from folderwatch") - If My.Application.User.Language <> "de-DE" Then - Me.Text = "Indexing of msg-File (without Attachments) - from Folderwatch" - Else - Me.Text = "Indexierung der msg-Datei (ohne Anhang) - aus Folderwatch" - End If - Case "|OUTLOOK_MESSAGE|" - _Logger.Info(".msg-file through dragdrop") - If My.Application.User.Language <> "de-DE" Then - Me.Text = "Indexing of msg-File (without Attachments)" - Else - Me.Text = "Indexierung der msg-Datei (ohne Anhang)" - End If - End Select - - ElseIf DropType = "|MSGONLY|" Then - If My.Application.User.Language = "de-DE" Then - Me.Text = "Indexierung der msg-Datei (ohne Anhang)" - Else - Me.Text = "Indexing of msg-File (without Attachments)" - End If - ElseIf DropType = "|ATTMNTEXTRACTED|" Or DropType = "|OUTLOOK_ATTACHMENT|" Then - My.Application.Globix.CURRENT_ISATTACHMENT = True - - If My.Application.User.Language = "de-DE" Then - Me.Text = "Indexierung eines Email-Attachments" - Else - Me.Text = "Indexing of email-Attachment" - End If - ElseIf DropType = "|FW_SIMPLEINDEXER|" Then - - If My.Application.User.Language = "de-DE" Then - Me.Text = "Indexierung einer Folderwatch-Datei" - Else - Me.Text = "Indexing of Folderwatch-File" - End If - End If - - labelFilePath.Caption = My.Application.Globix.CURRENT_WORKFILE - - clswindowLocation.LoadFormLocationSize(Me) - - SetFilePreview(My.UIConfig.Globix.FilePreview) - - SplitContainerControl1.SplitterPosition = My.UIConfig.Globix.SplitterDistanceViewer - - - - My.Application.Globix.DTTBGI_REGEX_DOCTYPE = My.Database.GetDatatable("SELECT DISTINCT T1.DOCTYPE as DocType, T.* FROM TBGI_REGEX_DOCTYPE T, VWGI_DOCTYPE T1 WHERE T.DOCTYPE_ID = T1.DOCTYPE_ID") - MULTIFILES = My.Database.GetScalarValue("SELECT COUNT(*) FROM TBGI_FILES_USER WHERE WORKED = 0 AND GUID <> " & My.Application.Globix.CURRENT_WORKFILE_GUID & " AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')") - My.Application.Globix.MULTIINDEXING_ACTIVE = False - If MULTIFILES > 0 Then - If My.Application.User.Language = "de-DE" Then - RibbonPageGroupMultiIndex.Text = "Alle nachfolgenden Dateien (" & MULTIFILES & ") identisch indexieren" - Else - RibbonPageGroupMultiIndex.Text = "All following files (" & MULTIFILES & ") will be indexed identically" - End If - - chkMultiindexing.Checked = False - chkMultiindexing.Visibility = DevExpress.XtraBars.BarItemVisibility.Always - + ElseIf DropType = "|MSGONLY|" Then + If My.Application.User.Language = "de-DE" Then + Me.Text = "Ablage-Flow der msg-Datei (ohne Anhang)" Else + Me.Text = "Storage-Flow of msg-File (without Attachments)" + End If + ElseIf DropType = "|ATTMNTEXTRACTED|" Or DropType = "|OUTLOOK_ATTACHMENT|" Then + My.Application.Globix.CURRENT_ISATTACHMENT = True - chkMultiindexing.Visibility = DevExpress.XtraBars.BarItemVisibility.Never + If My.Application.User.Language = "de-DE" Then + Me.Text = "Ablage-Flow eines Email-Attachments" + Else + Me.Text = "Storage-Flow of email-Attachment" + End If + ElseIf DropType = "|FW_SIMPLEINDEXER|" Then + If My.Application.User.Language = "de-DE" Then + Me.Text = "Ablage-Flow einer Folderwatch-Datei" + Else + Me.Text = "Storage-Flow of Folderwatch-File" End If End If + labelFilePath.Caption = My.Application.Globix.CURRENT_WORKFILE - Catch ex As Exception - _Logger.Warn(" - Unexpected error in Öffnen des Formulares - Fehler: " & vbNewLine & ex.Message) - _Logger.Error(ex.Message) - MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Öffnen des Formulares:") - End Try - End Sub - Private Sub SetFilePreview(ShowPreview As Boolean) - If ShowPreview Then - SplitContainerControl1.Collapsed = False - PreviewFile() - PreviewItem.Checked = True - Else - SplitContainerControl1.Collapsed = True - PreviewItem.Checked = False + clswindowLocation.LoadFormLocationSize(Me) + + SetFilePreview(My.UIConfig.Globix.FilePreview) + + SplitContainerControl1.SplitterPosition = My.UIConfig.Globix.SplitterDistanceViewer + + + + My.Application.Globix.DTTBGI_REGEX_DOCTYPE = My.Database.GetDatatable("SELECT DISTINCT T1.DOCTYPE as DocType, T.* FROM TBGI_REGEX_DOCTYPE T, VWGI_DOCTYPE T1 WHERE T.DOCTYPE_ID = T1.DOCTYPE_ID") + My.Application.Globix.CURR_INDEX_MAN_POSTPROCESSING = My.Database.GetDatatable("SELECT * FROM TBDD_INDEX_MAN_POSTPROCESSING") + MULTIFILES = My.Database.GetScalarValue("SELECT COUNT(*) FROM TBGI_FILES_USER WHERE WORKED = 0 AND GUID <> " & My.Application.Globix.CURRENT_WORKFILE_GUID & " AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')") + My.Application.Globix.MULTIINDEXING_ACTIVE = False + If MULTIFILES > 0 Then + If My.Application.User.Language = "de-DE" Then + RibbonPageGroupMultiIndex.Text = "Alle nachfolgenden Dateien (" & MULTIFILES & ") identisch indexieren" + Else + RibbonPageGroupMultiIndex.Text = "All following files (" & MULTIFILES & ") will be indexed identically" + End If + + chkMultiindexing.Checked = False + chkMultiindexing.Visibility = DevExpress.XtraBars.BarItemVisibility.Always + + Else + + chkMultiindexing.Visibility = DevExpress.XtraBars.BarItemVisibility.Never + + End If End If - End Sub - Sub PreviewFile() - Try - DocumentViewer1.LoadFile(My.Application.Globix.CURRENT_WORKFILE) - Catch ex As Exception - _Logger.Error(ex) - MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler in PreviewFile:") - End Try - End Sub - Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles SourceDeleteItem.ItemClick - If SourceDeleteItem.Visibility <> DevExpress.XtraBars.BarItemVisibility.Never Then - My.Application.Globix.CURR_DELETE_ORIGIN = SourceDeleteItem.Checked - My.UIConfig.Globix.DeleteOriginalFile = SourceDeleteItem.Checked - My.SystemConfigManager.Save() - End If - End Sub - Private Sub BarCheckItem5_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles PreviewItem.CheckedChanged + Catch ex As Exception + _Logger.Warn(" - Unexpected error in Öffnen des Formulares - Fehler: " & vbNewLine & ex.Message) + _Logger.Error(ex.Message) + MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Öffnen des Formulares:") + End Try + End Sub + Private Sub SetFilePreview(ShowPreview As Boolean) + If ShowPreview Then + SplitContainerControl1.Collapsed = False + PreviewFile() + PreviewItem.Checked = True + Else + SplitContainerControl1.Collapsed = True + PreviewItem.Checked = False + End If + End Sub + Sub PreviewFile() + Try + DocumentViewer1.LoadFile(My.Application.Globix.CURRENT_WORKFILE) + Catch ex As Exception + _Logger.Error(ex) + MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler in PreviewFile:") + End Try + End Sub - End Sub + Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles SourceDeleteItem.ItemClick + If SourceDeleteItem.Visibility <> DevExpress.XtraBars.BarItemVisibility.Never Then + My.Application.Globix.CURR_DELETE_ORIGIN = SourceDeleteItem.Checked + My.UIConfig.Globix.DeleteOriginalFile = SourceDeleteItem.Checked + My.SystemConfigManager.Save() + End If + End Sub - Private Sub SourceDeleteItem_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles SourceDeleteItem.CheckedChanged + Private Sub BarCheckItem5_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles PreviewItem.CheckedChanged - End Sub + End Sub + + Private Sub SourceDeleteItem_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles SourceDeleteItem.CheckedChanged + + End Sub 'Private Sub SaveProfileItem_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles SaveProfileItem.CheckedChanged ' My.UIConfig.Globix.ProfilePreselection = SaveProfileItem.Checked @@ -202,16 +208,877 @@ Public Class frmGlobix_Index 'End Sub Private Sub SkipItem_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles SkipItem.ItemClick - My.Database.ExecuteNonQuery($"DELETE FROM TBGI_FILES_USER WHERE GUID = {My.Application.Globix.CURRENT_WORKFILE_GUID}") - CancelAttempts = 2 - Close() - End Sub + My.Database.ExecuteNonQuery($"DELETE FROM TBGI_FILES_USER WHERE GUID = {My.Application.Globix.CURRENT_WORKFILE_GUID}") + CancelAttempts = 2 + Close() + End Sub - Private Sub BarCheckItem3_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles chkMultiindexing.CheckedChanged - If chkMultiindexing.Checked Then - chkMultiindexing.Caption = "Active" + Private Sub BarCheckItem3_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles chkMultiindexing.CheckedChanged + If chkMultiindexing.Checked Then + chkMultiindexing.Caption = "Active" + Else + chkMultiindexing.Caption = "Inactive" + End If + End Sub + + Private Sub frmGlobix_Index_Shown(sender As Object, e As EventArgs) Handles Me.Shown + BringToFront() + Focus() + Cursor = Cursors.Default + Refresh_Dokart() + pnlIndex.Controls.Clear() + + checkItemTopMost.Checked = My.UIConfig.Globix.TopMost + TopMost = My.UIConfig.Globix.TopMost + BringToFront() + + FormLoaded = True + + Try + ' Letzte Auswahl merken überschreibt die automatische selektion + If My.UIConfig.Globix.ProfilePreselection Then + checkItemPreselection.Checked = True + + If My.Application.Globix.CURRENT_LASTDOCTYPE <> "" Then + cmbDoctype.SelectedIndex = cmbDoctype.FindStringExact(My.Application.Globix.CURRENT_LASTDOCTYPE) + End If Else - chkMultiindexing.Caption = "Inactive" + If My.Application.Globix.DTTBGI_REGEX_DOCTYPE.Rows.Count > 0 Then + For Each oRoW As DataRow In My.Application.Globix.DTTBGI_REGEX_DOCTYPE.Rows + Dim oOnlyFilename = Path.GetFileName(My.Application.Globix.CURRENT_WORKFILE) + If Regex.IsMatch(oOnlyFilename, oRoW.Item("Regex")) Then + + _Logger.Debug("There is a match on REGEX_DOCTYPE: [{0}]", oRoW.Item("DOCTYPE")) + _Logger.Debug("Regex: [{0}], FileName: [{1}]", oRoW.Item("Regex"), oOnlyFilename) + cmbDoctype.SelectedIndex = cmbDoctype.FindStringExact(oRoW.Item("DOCTYPE")) + Exit For + End If + Next + End If End If - End Sub - End Class + Catch ex As Exception + _Logger.Warn("Unexpected error DTTBGI_REGEX_DOCTYPE - ErrorMessage: " & vbNewLine & ex.Message) + + End Try + End Sub + Sub Refresh_Dokart() + Try + Dim sql = String.Format("select * from VWGI_DOCTYPE where UPPER(USERNAME) = UPPER('{0}') ORDER BY SEQUENCE", Environment.UserName) + _Logger.Debug("SQL DoctypeList: " & sql) + DT_DOKART = My.Database.GetDatatable(sql) + cmbDoctype.DataSource = DT_DOKART + cmbDoctype.ValueMember = DT_DOKART.Columns("DOCTYPE_ID").ColumnName + cmbDoctype.DisplayMember = DT_DOKART.Columns("DOCTYPE").ColumnName + cmbDoctype.AutoCompleteMode = AutoCompleteMode.Suggest + cmbDoctype.AutoCompleteSource = AutoCompleteSource.ListItems + cmbDoctype.SelectedIndex = -1 + Catch ex As Exception + _Logger.Warn("Unexpected error in Refresh_Dokart: " & vbNewLine & ex.Message) + MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Laden der Dokumentarten:") + End Try + End Sub + + Private Sub cmbDoctype_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmbDoctype.SelectedValueChanged + + End Sub + + Private Sub cmbDoctype_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbDoctype.SelectedIndexChanged + If cmbDoctype.SelectedIndex <> -1 And FormLoaded = True Then + If cmbDoctype.SelectedValue.GetType.ToString = "System.Int32" Then + My.Application.Globix.CURRENT_DOCTYPE_ID = cmbDoctype.SelectedValue + + 'lblhinweis.Visible = False + ClearNotice() + + 'lblerror.Visible = False + ClearError() + + + Me.pnlIndex.Controls.Clear() + Dim sql As String = "Select * from TBDD_DOKUMENTART WHERE GUID = " & cmbDoctype.SelectedValue.ToString + My.Application.Globix.CURR_DT_DOCTYPE = My.Database.GetDatatable(sql) + + + My.Application.Globix.CURRENT_DOCTYPE_DuplicateHandling = My.Application.Globix.CURR_DT_DOCTYPE.Rows(0).Item("DUPLICATE_HANDLING").ToString + Refresh_IndexeMan(cmbDoctype.SelectedValue) + End If + + End If + End Sub + Private Sub Refresh_IndexeMan(dokartid As Integer) + Dim oSql + Try + oSql = "select T1.BEZEICHNUNG AS DOKUMENTART,T.* from TBDD_INDEX_MAN T, TBDD_DOKUMENTART T1 where T.ACTIVE = 1 AND T.DOK_ID = T1.GUID AND T.DOK_ID = " & dokartid & " ORDER BY T.SEQUENCE" + DT_INDEXEMAN = My.Database.GetDatatable(oSql) + pnlIndex.Visible = True + LoadIndexe_Man() + Catch ex As System.Exception + _Logger.Error(ex) + _Logger.Warn("Fehler Refresh_IndexeMan: DOKART-ID: " & dokartid & " - Fehler: " & vbNewLine & ex.Message & vbNewLine & oSql) + MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Refresh_IndexeMan:") + End Try + End Sub + Sub addLabel(indexname As String, hinweis As String, ylbl As Integer, anz As String) + Dim lbl As New Label With { + .Name = "lbl" & indexname, + .AutoSize = True, + .Text = hinweis, + .Location = New Point(11, ylbl) + } + + pnlIndex.Controls.Add(lbl) + End Sub + Sub ShowError(text As String) + 'lblerror.Visible = True + 'lblerror.Text = text + 'lblerror.ForeColor = Color.Red + labelError.Visibility = DevExpress.XtraBars.BarItemVisibility.Always + labelError.Caption = text + End Sub + Private Sub LoadIndexe_Man() + Try + Dim oControlCount As Integer = 1 + Dim oLabelPosition As Integer = 11 + Dim oControlPosition As Integer = 33 + Dim oControls As New GlobixControls(_LogConfig, pnlIndex, Me) + + If DT_INDEXEMAN.Rows.Count = 0 Then + ShowError("Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & cmbDoctype.Text & " definiert") + _Logger.Info(" - Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & cmbDoctype.Text & " definiert") + End If + + For Each oRow As DataRow In DT_INDEXEMAN.Rows + Dim oDataType = oRow.Item("DATATYPE") + Dim MultiSelect As Boolean = oRow.Item("MULTISELECT") + Dim AddNewItems As Boolean = oRow.Item("VKT_ADD_ITEM") + Dim PreventDuplicates As Boolean = oRow.Item("VKT_PREVENT_MULTIPLE_VALUES") + Dim oControlName As String = oRow.Item("NAME") + Dim oConnectionId = NotNull(oRow.Item("CONNECTION_ID"), 0) + Dim oSQLSuggestion = oRow.Item("SUGGESTION") + + If oDataType <> "BOOLEAN" Then + addLabel(oControlName, oRow.Item("COMMENT").ToString, oLabelPosition, oControlCount) + End If + + 'Dim DefaultValue = Check_HistoryValues(oControlName, oRow.Item("DOKUMENTART")) + ' If DefaultValue Is Nothing Then + Dim DefaultValue = GetPlaceholderValue(oRow.Item("DEFAULT_VALUE"), My.Application.Globix.CURRENT_WORKFILE, My.Application.User.ShortName) + ' End If + Select Case oDataType + Case "BOOLEAN" + Dim chk As CheckBox = oControls.AddCheckBox(oControlName, oControlPosition, DefaultValue, oRow.Item("COMMENT").ToString) + If Not IsNothing(chk) Then + pnlIndex.Controls.Add(chk) + End If + Case "INTEGER" + If (oSQLSuggestion = True And oRow.Item("SQL_RESULT").ToString.Length > 0) Or MultiSelect = True Then + Dim oControl = oControls.AddVorschlag_ComboBox(oControlName, oControlPosition, oConnectionId, oRow.Item("SQL_RESULT"), MultiSelect, oDataType, DefaultValue, AddNewItems, PreventDuplicates, oSQLSuggestion) + If Not IsNothing(oControl) Then + pnlIndex.Controls.Add(oControl) + End If + Else + 'nur eine Textbox + Dim oControl = oControls.AddTextBox(oControlName, oControlPosition, DefaultValue, oDataType) + If Not IsNothing(oControl) Then + pnlIndex.Controls.Add(oControl) + End If + End If + Case "VARCHAR" + If (oSQLSuggestion = True And oRow.Item("SQL_RESULT").ToString.Length > 0) Or MultiSelect = True Then + Dim oControl = oControls.AddVorschlag_ComboBox(oControlName, oControlPosition, oConnectionId, oRow.Item("SQL_RESULT"), MultiSelect, oDataType, DefaultValue, AddNewItems, PreventDuplicates, oSQLSuggestion) + If Not IsNothing(oControl) Then + pnlIndex.Controls.Add(oControl) + End If + Else + If oControlName.ToString.ToLower = "dateiname" Then + Dim oControl = oControls.AddTextBox(oControlName, oControlPosition, System.IO.Path.GetFileNameWithoutExtension(My.Application.Globix.CURRENT_WORKFILE), oDataType) + If Not IsNothing(oControl) Then + pnlIndex.Controls.Add(oControl) + End If + Else + Dim VORBELGUNG As String = DefaultValue + Dim oControl = oControls.AddTextBox(oControlName, oControlPosition, VORBELGUNG, oDataType) + If Not IsNothing(oControl) Then + pnlIndex.Controls.Add(oControl) + End If + End If + End If + Case "DATE" + Dim oPicker = oControls.AddDateTimePicker(oControlName, oControlPosition, oDataType, DefaultValue) + pnlIndex.Controls.Add(oPicker) + + Case Else + If My.Application.User.Language = "de-DE" Then + MsgBox("Bitte überprüfen Sie den Datentyp des hinterlegten Indexwertes!", MsgBoxStyle.Critical, "Achtung:") + Else + MsgBox("Please check Datatype of Indexvalue!", MsgBoxStyle.Critical, "Warning:") + End If + + _Logger.Warn(" - Datentyp nicht hinterlegt - LoadIndexe_Man") + End Select + + oControlCount += 1 + oLabelPosition += 50 + oControlPosition += 50 + 'make y as height in fom + Next + Dim oPanelHeight = oControlPosition - 30 + + If pnlIndex.Height < oPanelHeight Then + If (Me.Height - 315) < oPanelHeight Then + Me.Height = (Me.Height - 315) + oPanelHeight + End If + pnlIndex.Height = oPanelHeight + End If + + SendKeys.Send("{TAB}") + Catch ex As Exception + _Logger.Error(ex) + MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in LoadIndexe_Man:") + End Try + End Sub + Function GetPlaceholderValue(InputValue As String, FileName As String, UserShortName As String) As String + Dim oResult As String + + Try + Select Case InputValue.ToString.ToUpper + Case "$filename_ext".ToUpper + oResult = Path.GetFileName(FileName) + Case "$filename".ToUpper + oResult = Path.GetFileNameWithoutExtension(FileName) + Case "$extension".ToUpper + oResult = Path.GetExtension(FileName).Replace(".", "") + Case "$FileCreateDate".ToUpper + Dim oFileInfo As New FileInfo(FileName) + Dim oCreationDate As Date = oFileInfo.CreationTime + oResult = oCreationDate.ToShortDateString + Case "$FileCreatedWho".ToUpper + Dim oFileSecurity As FileSecurity = File.GetAccessControl(FileName) + Dim oSecurityId As IdentityReference = oFileSecurity.GetOwner(GetType(SecurityIdentifier)) + Dim oNTAccount As IdentityReference = oSecurityId.Translate(GetType(NTAccount)) + Dim oOwner As String = oNTAccount.ToString() + oResult = oOwner + Case "$DateDDMMYYY".ToUpper + oResult = System.DateTime.Now.ToShortDateString + Case "$Username".ToUpper + oResult = Environment.UserName + Case "$Usercode".ToUpper + oResult = UserShortName + Case Else + oResult = InputValue + End Select + Catch ex As Exception + _Logger.Warn("Error in ReplacePlaceholders: " & ex.Message) + _Logger.Error(ex.Message) + oResult = Nothing + End Try + + Return oResult + End Function + 'Function Check_HistoryValues(Indexname As String, Dokart As String) As String + ' Try + ' Dim result = Nothing + ' Dim DT As DataTable = MyDataset.TBTEMP_INDEXRESULTS + ' If DT.Rows.Count > 0 Then + ' For Each row As DataRow In DT.Rows + ' If row.Item("Indexname") = Indexname And row.Item("Dokumentart") = Dokart Then + ' result = row.Item("Value") + ' Return result + ' End If + ' Next + ' Else + ' Return Nothing + ' End If + ' Catch ex As Exception + ' _Logger.Error(ex) + ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Check_HistoryValues:") + ' Return Nothing + ' End Try + 'End Function + Sub ClearError() + labelError.Visibility = DevExpress.XtraBars.BarItemVisibility.Never + labelError.Caption = String.Empty + End Sub + + Sub ShowNotice(text As String) + 'lblhinweis.Visible = True + 'lblhinweis.Text = text + labelNotice.Visibility = DevExpress.XtraBars.BarItemVisibility.Always + labelNotice.Caption = text + End Sub + + Sub ClearNotice() + labelNotice.Visibility = DevExpress.XtraBars.BarItemVisibility.Never + labelNotice.Caption = String.Empty + End Sub + + Private Sub frmGlobix_Index_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing + If File.Exists(My.Application.Globix.CURRENT_FILENAME) Then + Select Case CancelAttempts + Case 0 + If My.Application.User.Language = "de-DE" Then + MsgBox("Bitte indexieren Sie die Datei vollständig!" & vbNewLine & "(Abbruch 1 des Indexierungsvorgangs)", MsgBoxStyle.Information) + Else + MsgBox("Please Index file completely" & vbNewLine & "(Abort 1 of Indexdialog)", MsgBoxStyle.Information) + End If + CancelAttempts = CancelAttempts + 1 + e.Cancel = True + Case 1 + Dim result As MsgBoxResult + If My.Application.User.Language = "de-DE" Then + result = MessageBox.Show("Sie brechen nun zum zweiten Mal den Indexierungsvorgang ab!" & vbNewLine & "Wollen Sie die Indexierung aller Dateien abbrechen?", "Bestätigung erforderlich:", MessageBoxButtons.YesNo, MessageBoxIcon.Question) + Else + result = MessageBox.Show("You abort the indexdialog for the 2nd time!" & vbNewLine & "Do You want to abort indexing?", "Confirmation needed:", MessageBoxButtons.YesNo, MessageBoxIcon.Question) + End If + + If result = MsgBoxResult.Yes Then + Dim containsfw_file As Boolean = False + Try + My.Application.Globix.ABORT_INDEXING = True + Dim sql As String = $"SELECT * FROM TBGI_FILES_USER WHERE WORKED = 0 AND UPPER(USER@WORK) = UPPER('{My.Application.User.UserName}')" + Dim DT As DataTable = My.Database.GetDatatable(sql) + + Dim anz = DT.Rows.Count + For Each Filerow As DataRow In DT.Rows + Dim filestring As String = Filerow.Item("FILENAME2WORK") + Dim handletype As String = Filerow.Item("HANDLE_TYPE") + + If handletype = "|MSGONLY|" Or handletype = "|ATTMNTEXTRACTED|" Then + Try + System.IO.File.Delete(filestring) + Catch ex As Exception + + End Try + + ElseIf handletype.StartsWith("|FW") Then + containsfw_file = True + End If + Next + 'Zuerst die Daten des Ablaufs löschen + If My.Database.ExecuteNonQuery($"DELETE FROM TBGI_FILES_USER WHERE UPPER(USER@WORK) = UPPER('{My.Application.User.UserName}')") = True Then + If containsfw_file = True Then + If My.Application.User.Language = "de-DE" Then + MsgBox("Der Indexierungsprozess beinhaltete (auch) Dateien per Folderwatch!" & vbNewLine & "Diese Dateien wurden nicht gelöscht und verbleiben im Folderwatch-Verzeichnis!" & vbNewLine & "Bitte verschieben Sie die Dateien ggfls.", MsgBoxStyle.Information, "Achtung - Hinweis:") + Else + MsgBox("The Indexingprocess contained (also) files from folderwatch!" & vbNewLine & "These files weren't deleted and will stay in the folderwatch-folder!" & vbNewLine & "Please move these files manually.", MsgBoxStyle.Information, "Achtung - Hinweis:") + End If + + End If + End If + + + Catch ex As Exception + _Logger.Error(ex) + MsgBox("Unexpected Error in Abort Indexing: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) + End Try + + Try + My.Application.Globix.INDEXING_ACTIVE = False + + DocumentViewer1.CloseDocument() + DocumentViewer1.Done() + clswindowLocation.SaveFormLocationSize(Me) + My.Settings.Save() + Catch ex As Exception + _Logger.Info(" - Unexpected error in Schliessen des Formulares - Fehler: " & vbNewLine & ex.Message) + _Logger.Error(ex.Message) + MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Schliessen des Formulares:") + End Try + + e.Cancel = False + Else + e.Cancel = True + End If + Case Else + Try + My.Application.Globix.INDEXING_ACTIVE = False + + DocumentViewer1.CloseDocument() + DocumentViewer1.Done() + clswindowLocation.SaveFormLocationSize(Me) + My.Settings.Save() + Catch ex As Exception + _Logger.Warn(" - Unexpected error in Schliessen des Formulares - Fehler: " & vbNewLine & ex.Message) + _Logger.Error(ex) + MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Schliessen des Formulares:") + End Try + End Select + Else + My.Application.Globix.INDEXING_ACTIVE = False + End If + End Sub + + Private Sub BarButtonItem1_ItemClick_1(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick + 'ClearError() + 'ClearNotice() + 'Me.Cursor = Cursors.WaitCursor + 'Refresh_RegexTable() + 'For Each rowregex As DataRow In My.Application.BASE_DATA_DT_REGEX.Rows + ' If rowregex.Item("FUNCTION_NAME") = "CLEAN_FILENAME" Then + ' My.Application.Globix.REGEX_CLEAN_FILENAME = rowregex.Item("REGEX") + ' End If + 'Next + 'If chkMultiindexing.Visibility = DevExpress.XtraBars.BarItemVisibility.Always And chkMultiindexing.Checked = True Then + ' 'Die erste Datei indexieren + ' If WORK_FILE() = True Then + ' 'Und nun die folgenden + ' Dim DTFiles2Work As DataTable = My.Database.GetDatatable("SELECT * FROM TBGI_FILES_USER WHERE WORKED = 0 AND GUID <> " & My.Application.Globix.CURRENT_WORKFILE_GUID & " AND UPPER(USER@WORK) = UPPER('" & My.Application.User.UserName & "')") + ' If Not DTFiles2Work Is Nothing Then + ' Dim err = False + ' For Each filerow As DataRow In DTFiles2Work.Rows + ' My.Application.Globix.CURRENT_WORKFILE_GUID = filerow.Item("GUID") + ' My.Application.Globix.CURRENT_WORKFILE = filerow.Item("FILENAME2WORK") + ' DropType = filerow.Item("HANDLE_TYPE") + + ' If WORK_FILE() = False Then + ' err = True + ' Exit For + ' End If + ' Next + ' Me.Cursor = Cursors.Default + ' If err = False Then + ' If My.Application.User.Language = "de-DE" Then + ' MsgBox("Alle Dateien wurden mit Multiindexing erfolgreich verarbeitet!", MsgBoxStyle.Information, "Erfolgsmeldung:") + ' Else + ' MsgBox("All files were successfully processed through Multiindexing", MsgBoxStyle.Information, "Success") + ' End If + + ' 'DTACTUAL_FILES.Clear() + + ' DocumentViewer1.CloseDocument() + ' DocumentViewer1.Done() + + ' CancelAttempts = 2 + ' Me.Close() + ' End If + ' End If + ' End If + 'Else + ' If WORK_FILE() = True Then + ' Me.Cursor = Cursors.Default + ' If My.UIConfig.Globix.ShowIndexResult = True Then + ' If My.Application.User.Language = "de-DE" Then + ' MsgBox("Die Datei wurde erfolgreich verarbeitet!" & vbNewLine & "Ablagepfad:" & vbNewLine & My.Application.Globix.CURRENT_NEWFILENAME, MsgBoxStyle.Information, "Erfolgsmeldung") + ' Else + ' MsgBox("File sucessfully processed!" & vbNewLine & "Path:" & vbNewLine & My.Application.Globix.CURRENT_NEWFILENAME, MsgBoxStyle.Information, "Success") + ' End If + ' End If + + ' DocumentViewer1.CloseDocument() + ' DocumentViewer1.Done() + + ' CancelAttempts = 2 + ' Me.Close() + ' End If + 'End If + 'Me.Cursor = Cursors.Default + End Sub + + 'Private Function WORK_FILE() + ' Try + ' Dim oSQL = $"SELECT * FROM VWDDINDEX_MAN WHERE DOK_ID = {My.Application.Globix.CURRENT_DOCTYPE_ID}" + ' My.Application.Globix.CURR_DT_MAN_INDEXE = My.Database.GetDatatable(oSQL) + + ' _Logger.Debug("Manuelle Indexe geladen") + + ' If My.Application.Globix.CURR_DT_MAN_INDEXE.Rows.Count > 0 Then + ' My.Application.Globix.CURRENT_DOCTYPE_ID = Me.cmbDoctype.SelectedValue + ' If CheckWrite_IndexeMan(Me.cmbDoctype.SelectedValue) = True Then + ' '##### Manuelle Indexe indexiert ##### + ' _Logger.Info("Datei [" & My.Application.Globix.CURRENT_WORKFILE & "] wird nun indexiert...") + ' If FillIndexe_Autom(Me.cmbDoctype.SelectedValue) = True Then + ' _Logger.Debug(" ...FillIndexe_Autom durchlaufen") + + ' 'Den Zielnamen zusammenbauen + ' If Name_Generieren() = True Then + ' 'Dokumentenviewer ausblenden um keinen Zugriffsfehler zu produzieren + ' DocumentViewer1.Done() + ' DocumentViewer1.CloseDocument() + + ' _Logger.Debug(" ...Viewer geschlossen") + ' 'Die Datei verschieben + ' If Move_File2_Target() = True Then + ' _Logger.Debug(" ...Move_File2_Target durchlaufen") + ' My.Application.Globix.CURRENT_LASTDOCTYPE = cmbDoctype.Text + ' _Logger.Info("Datei '" & My.Application.Globix.CURRENT_NEWFILENAME & "' erfolgreich erzeugt.") + ' Dim oDEL As String = "DELETE FROM TBGI_FILES_USER WHERE GUID = " & My.Application.Globix.CURRENT_WORKFILE_GUID + ' My.Database.ExecuteNonQuery(oDEL) + ' Return True + ' End If + + ' Else + ' If My.Application.User.Language = "de-DE" Then + ' MsgBox("Unerwarteter Fehler in Name_Generieren - Bitte überprüfen sie die Logdatei", MsgBoxStyle.Critical) + ' Else + ' MsgBox("Unexpected error in Name_Generieren - Please check the Logfile", MsgBoxStyle.Critical) + ' End If + ' Return False + ' End If + ' Else + ' If My.Application.User.Language = "de-DE" Then + ' MsgBox("Unerwarteter Fehler in FillIndexe_Autom - Bitte überprüfen sie die Logdatei", MsgBoxStyle.Critical) + ' Else + ' MsgBox("Unexpected error in FillIndexe_Autom - Please check the Logfile", MsgBoxStyle.Critical) + ' End If + ' Return False + ' End If + ' '#### Automatische Werte indexieren #### + ' End If + ' Else + ' If My.Application.User.Language = "de-DE" Then + ' MsgBox("Bitte überprüfen Sie die Konfiguration dieser Dokumentart." & vbNewLine & "Es sind KEINE manuellen Indizes konfiguriert oder aktiv geschaltet!", MsgBoxStyle.Exclamation) + ' Else + ' MsgBox("Please check the configuration for this document-type." & vbNewLine & "There are NO manual indicies that are either configured or set to active!", MsgBoxStyle.Exclamation) + ' End If + ' Return False + ' End If + ' Catch ex As Exception + ' _Logger.Error(ex) + ' MsgBox("Unexpected Error in WORK_FILE:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) + ' Return False + ' End Try + 'End Function + 'Function CheckWrite_IndexeMan(dokartid As Integer) + ' '#### Zuerst manuelle Werte indexieren #### + ' Try + ' _Logger.Info("In CheckWrite_IndexeMan") + ' Dim result As Boolean = False + ' For Each oControl As Control In Me.pnlIndex.Controls + ' ' MsgBox(ctrl.Name) + ' If oControl.Name.StartsWith("txt") Then + ' Dim box As DevExpress.XtraEditors.TextEdit = oControl + ' If box.Text = "" Then + ' Dim oIndexName = Replace(box.Name, "txt", "") + ' Dim optional_index As Boolean = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = dokartid AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "", False) + ' 'My.Database.ExecuteNonQuery("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & dokartid & " AND NAME = '" & Replace(box.Name, "txt", "") & "'", MyConnectionString, True) + ' If optional_index = False Then + ' MsgBox(TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, "Fehlende Eingabe:") + ' box.Focus() + ' Return False + ' Else + ' Indexwert_Postprocessing(Replace(box.Name, "txt", ""), "") + ' result = True + ' End If + ' Else + ' If Indexwert_checkValueDB(Replace(box.Name, "txt", ""), box.Text) = False Then + ' _Logger.Info(" - Der eingegebene Wert wurde nicht in der Datenbank gefunden") + ' MsgBox("Der eingegebene Wert wurde nicht in der Datenbank gefunden!", MsgBoxStyle.Exclamation, "Fehlerhafte Indexierung:") + ' box.Focus() + ' Return False + ' Else + ' Indexwert_Postprocessing(Replace(box.Name, "txt", ""), box.Text) + ' result = True + ' End If + ' End If + ' End If + + ' If oControl.Name.StartsWith("cmbMulti") Then + ' Dim oLookup = DirectCast(oControl, DigitalData.Controls.LookupGrid.LookupControl2) + ' Dim values As List(Of String) = oLookup.SelectedValues + + ' If values.Count = 0 Then + ' Dim oIndexName = Replace(oLookup.Name, "cmbMulti", "") + ' Dim optional_index As Boolean = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = dokartid AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "", False) + ' 'ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & dokartid & " AND NAME = '" & Replace(oLookup.Name, "cmbMulti", "") & "'", MyConnectionString, True) + + ' If optional_index = False Then + ' MsgBox(TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, Text) + ' oLookup.Focus() + ' Return False + ' Else + ' Indexwert_Postprocessing(Replace(oLookup.Name, "cmbMulti", ""), "") + ' result = True + ' End If + ' Else + ' Dim vectorValue = String.Join(ClassConstants.VECTORSEPARATOR, values) + ' Indexwert_Postprocessing(Replace(oLookup.Name, "cmbMulti", ""), vectorValue) + ' result = True + ' End If + ' ElseIf oControl.Name.StartsWith("cmbSingle") Then + ' Dim cmbSingle As TextBox = oControl + + ' If cmbSingle.Text = "" Then + ' Dim oIndexName = Replace(cmbSingle.Name, "cmbSingle", "") + ' Dim optional_index As Boolean = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = dokartid AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "", False) + ' 'ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & dokartid & " AND NAME = '" & Replace(cmbSingle.Name, "cmbSingle", "") & "'", MyConnectionString, True) + + ' If optional_index = False Then + ' MsgBox(TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, Text) + ' cmbSingle.Focus() + ' Return False + ' Else + ' Indexwert_Postprocessing(Replace(cmbSingle.Name, "cmbSingle", ""), "") + ' result = True + ' End If + ' Else + ' Indexwert_Postprocessing(Replace(cmbSingle.Name, "cmbSingle", ""), cmbSingle.Text) + ' result = True + ' End If + ' ElseIf oControl.Name.StartsWith("cmb") Then + ' Dim cmb As ComboBox = oControl + ' If cmb.Text = "" Then + ' Dim oIndexName = Replace(cmb.Name, "cmb", "") + ' Dim optional_index As Boolean = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = dokartid AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "", False) + ' 'Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & dokartid & " AND NAME = '" & Replace(cmb.Name, "cmb", "") & "'", MyConnectionString, True) + ' If optional_index = False Then + ' MsgBox(TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, Text) + ' cmb.Focus() + ' Return False + ' Else + ' Indexwert_Postprocessing(Replace(cmb.Name, "cmb", ""), "") + ' result = True + ' End If + ' Else + ' Indexwert_Postprocessing(Replace(cmb.Name, "cmb", ""), cmb.Text) + ' result = True + ' End If + ' End If + ' If oControl.Name.StartsWith("dtp") Then + ' Dim dtp As DevExpress.XtraEditors.DateEdit = oControl + ' Dim oIndexName As String = Replace(dtp.Name, "dtp", "") + + ' If dtp.Text = String.Empty Then + ' Dim optional_index As Boolean = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = dokartid AND INDEXNAME = '{oIndexName}'", "OPTIONAL", "", False) + ' 'ClassDatabase.Execute_Scalar($"SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = {dokartid} AND NAME = '{oIndexName}'", MyConnectionString, True) + + ' If optional_index = False Then + ' MsgBox(TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, Text) + ' dtp.Focus() + ' Return False + ' Else + ' Indexwert_Postprocessing(oIndexName, "") + ' result = True + ' End If + ' Else + ' Indexwert_Postprocessing(Replace(dtp.Name, "dtp", ""), dtp.Text) + ' result = True + ' End If + ' End If + ' If oControl.Name.StartsWith("chk") Then + ' Dim chk As CheckBox = oControl + ' Indexwert_Postprocessing(Replace(chk.Name, "chk", ""), chk.Checked) + ' result = True + ' End If + ' If TypeOf (oControl) Is Button Then + ' Continue For + ' End If + ' If oControl.Name.StartsWith("lbl") = False And result = False Then + ' _Logger.Info("Die Überprüfung der manuellen Indices ist fehlerhaft. Bitte informieren Sie den Systembetreuer") + ' Return False + ' End If + ' Next + + ' Return True + ' Catch ex As Exception + ' _Logger.Warn(" - Unvorhergesehener Fehler in CheckWrite_IndexeMan - Fehler: " & vbNewLine & ex.Message) + ' _Logger.Error(ex.Message) + ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Unerwarteter Unexpected error in CheckWrite_IndexeMan:") + ' Return False + ' End Try + 'End Function + 'Function FillIndexe_Autom(dokart_id As Integer) + ' Try + + ' Dim oSQL = $"SELECT * FROM VWDDINDEX_AUTOM WHERE DOK_ID = {My.Application.Globix.CURRENT_DOCTYPE_ID}" + ' My.Application.Globix.CURR_DT_AUTO_INDEXE = My.Database.GetDatatable(oSQL) + + ' Dim oRegex As New Regex("\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}") + + ' If My.Application.Globix.CURR_DT_AUTO_INDEXE.Rows.Count = 0 Then + ' Return True + ' End If + + ' ' 1. Schritt: Einfach-Indexe und Platzhalter ersetzen + ' For Each oAutoIndexRow As DataRow In My.Application.Globix.CURR_DT_AUTO_INDEXE.Rows + ' _Logger.Info("Working on AutomaticIndex: " & oAutoIndexRow.Item("INDEXNAME") & "...") + ' Dim oSqlResult As String = NotNull(oAutoIndexRow.Item("SQL_RESULT"), "") + ' Dim oSqlActive As Boolean = NotNull(oAutoIndexRow.Item("SQL_ACTIVE"), False) + ' Dim oSqlConnectionId As Integer = NotNull(oAutoIndexRow.Item("CONNECTION_ID"), -1) + ' Dim oSqlProvider As String = NotNull(oAutoIndexRow.Item("SQL_PROVIDER"), "") + ' Dim oEndResult As New List(Of String) + + ' ' Wenn kein SQL Befehl vorhanden oder aktiv ist, + ' ' versuchen wir, die Spalte VALUE zu ersetzen + ' If oSqlResult = String.Empty Or oSqlActive = 0 Then + ' Dim oPlaceholderResult As String + ' Dim oValue As String = NotNull(oAutoIndexRow.Item("VALUE"), "") + + ' oPlaceholderResult = GetPlaceholderValue(oValue, My.Application.Globix.CURRENT_WORKFILE, My.Application.User.ShortName) + + ' If Not IsNothing(oPlaceholderResult) Then + ' oValue = oPlaceholderResult + ' End If + + ' oAutoIndexRow.Item("Indexiert") = True + ' oAutoIndexRow.Item("Indexwert") = oValue + + ' Continue For + ' End If + + ' ' Wenn ein SQL Befehl vorhanden und aktiv ist + ' ' Alle Platzhalter finden + ' Dim oMatches As MatchCollection = oRegex.Matches(oSqlResult) + + ' For Each oMatch As Match In oMatches + ' Dim oIndexValue As String = StripPlaceholder(oMatch.Value) + ' Dim oOptionalIndex = False + ' Dim oPlaceholderResult As String = Nothing + ' Dim oManualIndexResult As String = Nothing + + ' ' Einfachen Platzhalter Wert erzeugen + ' oPlaceholderResult = GetPlaceholderValue(oIndexValue, My.Application.Globix.CURRENT_WORKFILE, My.Application.User.ShortName) + + ' ' Einfachen Platzhalter ersetzen + ' If Not IsNothing(oPlaceholderResult) Then + ' oSqlResult = oSqlResult.Replace(oMatch.Value, oPlaceholderResult) + ' End If + + ' oOptionalIndex = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {My.Application.Globix.CURRENT_DOCTYPE_ID} AND INDEXNAME = '{oIndexValue}'", "OPTIONAL", "", False) + + ' 'ClassDatabase.Execute_Scalar($"SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = {CURRENT_DOKART_ID} AND UPPER(NAME) = UPPER('{oIndexValue}')", MyConnectionString, True) + ' oManualIndexResult = GetManIndex_Value(oIndexValue, "IDX_AUTO", oOptionalIndex) + + ' ' Wenn Ergebnis den VektorPlatzhalter enthält, soll nichts ersetzt werden. + ' ' Werden im nächsten Schritt ersetzt. + ' If oManualIndexResult.Contains(ClassConstants.VECTORSEPARATOR) Then + ' oManualIndexResult = Nothing + ' End If + + ' If Not IsNothing(oManualIndexResult) Then + ' oSqlResult = oSqlResult.Replace(oMatch.Value, oManualIndexResult) + ' End If + ' Next + + + ' 'TODO: Replace Windream Patterns? + ' oSqlResult = clsPatterns.ReplaceControlValues(oSqlResult, pnlIndex) + ' oSqlResult = clsPatterns.ReplaceInternalValues(oSqlResult) + ' If oSqlResult <> String.Empty Then + ' _Logger.Debug("oSqlResult after Replace [" & oSqlResult & "]") + ' End If + ' ' Ergebnis: Es wurden alle einfachen Platzhalter ersetzt, jetzt haben wir einen SQL Befehl, + ' ' der nur noch vektorfelder-platzhalter enthält + + ' ' 2. Schritt: Vektorfelder ersetzen + ' Dim oVectorMatches As MatchCollection = oRegex.Matches(oSqlResult) + ' If oVectorMatches.Count > 0 Then + ' _Logger.Info(" There are " & oVectorMatches.Count & " matches for vectors!") + ' Dim oIsFirstMatch = True + + ' For Each oVectorMatch As Match In oVectorMatches + ' Dim oIndexValue As String = StripPlaceholder(oVectorMatch.Value) + ' Dim oOptionalIndex = False + ' Dim oManualIndexResult As String = Nothing + + ' oOptionalIndex = FilterDatatable(My.Application.Globix.CURR_DT_MAN_INDEXE, $"DOK_ID = {My.Application.Globix.CURRENT_DOCTYPE_ID} AND INDEXNAME = '{oIndexValue}'", "OPTIONAL", "", False) + ' ' ClassDatabase.Execute_Scalar($"SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = {CURRENT_DOKART_ID} AND UPPER(NAME) = UPPER('{oIndexValue}')", MyConnectionString, True) + ' oManualIndexResult = GetManIndex_Value(oIndexValue, "IDX_AUTO", oOptionalIndex) + + ' Dim oVectorIndexValues = oManualIndexResult.Split(ClassConstants.VECTORSEPARATOR).ToList() + + ' For Each oVectorIndexValue In oVectorIndexValues + ' Dim oTempSql = oSqlResult.Replace(oVectorMatch.Value, oVectorIndexValue) + ' Dim oResult = GetAutomaticIndexSQLValue(oTempSql, oSqlConnectionId, oSqlProvider) + ' oEndResult.Add(oResult) + ' Next + + ' ' Verhindert, dass die Schleife mehrmals durchlaufen wird + ' If oIsFirstMatch Then + ' Exit For + ' End If + ' oAutoIndexRow.Item("Indexiert") = True + ' oAutoIndexRow.Item("Indexwert") = String.Join(ClassConstants.VECTORSEPARATOR, oEndResult.ToArray) + ' Next + ' Else + ' Dim oResult = GetAutomaticIndexSQLValue(oSqlResult, oSqlConnectionId, oSqlProvider) + ' _Logger.Info("Got a simple SQLResult: " & oResult.ToString) + ' oAutoIndexRow.Item("Indexiert") = True + ' oAutoIndexRow.Item("Indexwert") = oResult + + ' End If + ' Next + + ' Return True + ' Catch ex As Exception + ' _Logger.Error(ex) + ' MsgBox(ex.Message) + ' Return False + ' End Try + 'End Function + 'Function GetAutomaticIndexSQLValue(SQLCommand As String, vconnectionID As Integer, vProvider As String) As String + ' Try + ' Dim oConnectionString As String + ' oConnectionString = My.Database.Get_ConnectionStringforID(vconnectionID) + ' If oConnectionString <> "" Then + ' 'NEU + ' Dim oErgebnis + ' 'Welcher Provider? + ' 'If vProvider.ToLower = "oracle" Then + ' 'oErgebnis = My.Database.leExecute_Scalar(SQLCommand, oConnectionString) + ' 'Else 'im Moment nur SQL-Server + ' oErgebnis = My.Database.GetScalarValueConStr(SQLCommand, oConnectionString) + ' 'End If + + + ' _Logger.Debug("SQL-ConnectionString: " & oConnectionString.Substring(0, oConnectionString.LastIndexOf("="))) + + + ' If oErgebnis Is Nothing Then + ' 'showlblhinweis("Kein Ergebnis für automatisches SQL: " & vsqlstatement) + ' Return "" + ' Else + ' Return oErgebnis + ' End If + ' End If + + ' Catch ex As Exception + ' _Logger.Warn(" - Unexpected error in Get_AutomatischerIndex_SQL - Fehler: " & vbNewLine & ex.Message) + ' _Logger.Error(ex.Message) + ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Get_AutomatischerIndex_SQL:") + ' Return "" + ' End Try + 'End Function + 'Sub Indexwert_Postprocessing(indexname As String, wert_in As String) + ' Try + + ' Dim value_post As String = "" + ' For Each oDataRow As DataRow In My.Application.Globix.CURR_DT_MAN_INDEXE.Rows + ' If oDataRow.Item("INDEXNAME") = indexname Then + ' Dim idxid As Integer = oDataRow.Item("GUID") + ' If idxid > 0 Then + ' ' In jedem Fall schon mal den Wert einfügen + ' oDataRow.Item("Indexwert") = wert_in + ' 'Die Nachbearbeitungsschritte laden + ' 'FILE AND INDEX + ' 'Zuerst nur die Fälle für die Variante ONLY FILE/FOLDER + ' Dim DTNB As DataTable = FilterDatatable(My.Application.Globix.CURR_INDEX_MAN_POSTPROCESSING, "IDXMAN_ID = " & idxid & " AND VARIANT = 'ONLY FILE/FOLDER'", "", "SEQUENCE", True) + ' 'ClassDatabase.Return_Datatable("SELECT * FROM TBDD_INDEX_MAN_POSTPROCESSING WHERE IDXMAN_ID = " & idxid & " AND VARIANT = 'ONLY FILE/FOLDER' ORDER BY SEQUENCE") + ' If DTNB Is Nothing = False Then + ' If DTNB.Rows.Count > 0 Then + ' value_post = clsPostProcessing.Get_Nachbearbeitung_Wert(wert_in, DTNB) + ' oDataRow.Item("Indexwert") = wert_in + ' oDataRow.Item("Indexwert_File") = value_post + ' End If + ' End If + ' 'Jetzt die Fälle für die Variante FILE AND INDEX + ' DTNB = Nothing + + ' DTNB = FilterDatatable(My.Application.Globix.CURR_INDEX_MAN_POSTPROCESSING, "IDXMAN_ID = " & idxid & " AND VARIANT = 'FILE AND INDEX'", "", "SEQUENCE", True) + ' 'ClassDatabase.Return_Datatable("SELECT * FROM TBDD_INDEX_MAN_POSTPROCESSING WHERE IDXMAN_ID = " & idxid & " AND VARIANT = 'FILE AND INDEX' ORDER BY SEQUENCE") + ' If DTNB Is Nothing = False Then + ' If DTNB.Rows.Count > 0 Then + ' value_post = clsPostProcessing.Get_Nachbearbeitung_Wert(wert_in, DTNB) + ' oDataRow.Item("Indexwert") = value_post + ' End If + ' End If + ' End If + ' oDataRow.Item("Indexiert") = True + ' End If + ' Next + ' Catch ex As Exception + ' _Logger.Warn(" - Unvorhergesehener Unexpected error in Indexwert_Postprocessing - Indexname: " & indexname & " - Fehler: " & vbNewLine & ex.Message) + ' _Logger.Error(ex.Message) + ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Indexwert_Postprocessing:") + ' End Try + 'End Sub +End Class diff --git a/GUIs.ZooFlow/ModuleHelpers.vb b/GUIs.ZooFlow/ModuleHelpers.vb index fb3e6f45..b2e1b966 100644 --- a/GUIs.ZooFlow/ModuleHelpers.vb +++ b/GUIs.ZooFlow/ModuleHelpers.vb @@ -56,5 +56,26 @@ Module ModuleHelpers Public Sub Refresh_RegexTable() My.Application.BASE_DATA_DT_REGEX = My.Database.GetDatatable("SELECT * FROM TBGI_FUNCTION_REGEX") End Sub + Public Function FilterDatatable(myDatatable As DataTable, myFilter As String, mycheckColumn As String, pSortString As String, returnDT As Boolean) As Object + Try + Dim dv As DataView = myDatatable.DefaultView + dv.RowFilter = myFilter + If dv.Count = 1 And returnDT = False Then + For Each rowView As DataRowView In dv + Dim row As DataRow = rowView.Row + Return row.Item(mycheckColumn) + Next + Else + Dim dt_copy As DataTable = New DataTable() + dt_copy = myDatatable.Select(myFilter, pSortString).CopyToDataTable() + + Return dt_copy + End If + Catch ex As Exception + MsgBox("Unexpected error in FilterDatatable: " + ex.Message, MsgBoxStyle.Critical) + Return Nothing + End Try + + End Function End Module diff --git a/GUIs.ZooFlow/ClassControlCreator.vb b/GUIs.ZooFlow/Search/ClassControlCreator.vb similarity index 100% rename from GUIs.ZooFlow/ClassControlCreator.vb rename to GUIs.ZooFlow/Search/ClassControlCreator.vb diff --git a/GUIs.ZooFlow/frmSearchPredefined.Designer.vb b/GUIs.ZooFlow/Search/frmSearchPredefined.Designer.vb similarity index 100% rename from GUIs.ZooFlow/frmSearchPredefined.Designer.vb rename to GUIs.ZooFlow/Search/frmSearchPredefined.Designer.vb diff --git a/GUIs.ZooFlow/frmSearchPredefined.resx b/GUIs.ZooFlow/Search/frmSearchPredefined.resx similarity index 100% rename from GUIs.ZooFlow/frmSearchPredefined.resx rename to GUIs.ZooFlow/Search/frmSearchPredefined.resx diff --git a/GUIs.ZooFlow/frmSearchPredefined.vb b/GUIs.ZooFlow/Search/frmSearchPredefined.vb similarity index 100% rename from GUIs.ZooFlow/frmSearchPredefined.vb rename to GUIs.ZooFlow/Search/frmSearchPredefined.vb diff --git a/GUIs.ZooFlow/frmSearchStart.Designer.vb b/GUIs.ZooFlow/Search/frmSearchStart.Designer.vb similarity index 98% rename from GUIs.ZooFlow/frmSearchStart.Designer.vb rename to GUIs.ZooFlow/Search/frmSearchStart.Designer.vb index d572c143..122afffb 100644 --- a/GUIs.ZooFlow/frmSearchStart.Designer.vb +++ b/GUIs.ZooFlow/Search/frmSearchStart.Designer.vb @@ -126,7 +126,8 @@ Partial Class frmSearchStart ' Me.BarButtonNewSearch.Caption = "Neue Suche" Me.BarButtonNewSearch.Id = 1 - Me.BarButtonNewSearch.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonNewSearch.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.BarButtonNewSearch.ImageOptions.Image = CType(resources.GetObject("BarButtonNewSearch.ImageOptions.Image"), System.Drawing.Image) + Me.BarButtonNewSearch.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonNewSearch.ImageOptions.LargeImage"), System.Drawing.Image) Me.BarButtonNewSearch.Name = "BarButtonNewSearch" ' 'BarButtonSaveSearch @@ -186,7 +187,7 @@ Partial Class frmSearchStart ' 'BarButtonStartSearch ' - Me.BarButtonStartSearch.Caption = "Suche starten (F2)" + Me.BarButtonStartSearch.Caption = "Finden (F2)" Me.BarButtonStartSearch.Id = 9 Me.BarButtonStartSearch.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonStartSearch.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.BarButtonStartSearch.Name = "BarButtonStartSearch" diff --git a/GUIs.ZooFlow/frmSearchStart.resx b/GUIs.ZooFlow/Search/frmSearchStart.resx similarity index 98% rename from GUIs.ZooFlow/frmSearchStart.resx rename to GUIs.ZooFlow/Search/frmSearchStart.resx index e343c8eb..91b7a812 100644 --- a/GUIs.ZooFlow/frmSearchStart.resx +++ b/GUIs.ZooFlow/Search/frmSearchStart.resx @@ -135,22 +135,24 @@ Zz4L - + + - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGICAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z - ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz - OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp - dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IkFkZENpcmNsZWQiPg0KICAgIDxwYXRoIGQ9Ik0xNiw0 - QzkuNCw0LDQsOS40LDQsMTZzNS40LDEyLDEyLDEyczEyLTUuNCwxMi0xMlMyMi42LDQsMTYsNHogTTI0 - LDE4aC02djZoLTR2LTZIOHYtNGg2VjhoNHY2aDZWMTh6IiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4N - Cjwvc3ZnPgs= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAG3RFWHRUaXRsZQBBZGQ7UGx1 + cztCYXJzO1JpYmJvbjuVBjMvAAAAYElEQVQ4T92MUQqAMAxDd0Ev5am8XbTSlEwyRBwIfrzRpelrAF5h + Q7KsG5KYbceG5EeCnG3HhkQFI86HxadMFRTxJ1q85NXtAiXzEuiOzBOMOEqdQHfEhoSCOP5GcA/aDplf + q/kc1pC+AAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAG3RFWHRUaXRsZQBBZGQ7UGx1 + cztCYXJzO1JpYmJvbjuVBjMvAAAAj0lEQVRYR+3OUQqEMAxFUTfoplyVu4vNhyDpRR4Sokg+DsKdafsW + M3sVxkoYK2GshLESRsW67XYVf1dhVPSAHtAD/j0gXp4lvuOm4OhwhviOm4KjwxniO24Kjg5niO+4KaiU + yxUYFTRgfG9dz58wKsaF3xvwBEZFD6AB44v/vYNR0QOyYKyEsRLGShjr2HIAeeWOhN7Trl4AAAAASUVO + RK5CYII= @@ -190,20 +192,15 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAANoCAAAC77u/ + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALcBAAAC77u/ PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ - LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD - MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh - Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw - MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu - bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iR2V0dGluZ1N0YXJ0ZWQiPg0KICAg - IDxwYXRoIGQ9Ik0xNiwyQzguMywyLDIsOC4zLDIsMTZzNi4zLDE0LDE0LDE0czE0LTYuMywxNC0xNFMy - My43LDIsMTYsMnogTTEyLDIyVjEwbDEwLDZMMTIsMjJ6IiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4N - Cjwvc3ZnPgs= + Y2U9InByZXNlcnZlIiBpZD0iTmV4dCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzIg + MzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KPC9zdHls + ZT4NCiAgPHBhdGggZD0iTTguOSw0LjFDOC40LDMuOCw4LDQuMSw4LDQuNnYyMC43YzAsMC42LDAuNCww + LjgsMC45LDAuNWwxNi44LTEwLjNjMC41LTAuMywwLjUtMC44LDAtMS4xTDguOSw0LjF6IiBjbGFzcz0i + Qmx1ZSIgLz4NCjwvc3ZnPgs= @@ -275,7 +272,6 @@ 73 - AAABAAYAAAAAAAEAIABNFwAAZgAAAICAAAABACAAKAgBALMXAABAQAAAAQAgAChCAADbHwEAMDAAAAEA diff --git a/GUIs.ZooFlow/frmSearchStart.vb b/GUIs.ZooFlow/Search/frmSearchStart.vb similarity index 89% rename from GUIs.ZooFlow/frmSearchStart.vb rename to GUIs.ZooFlow/Search/frmSearchStart.vb index 4d07cbbd..553dcf74 100644 --- a/GUIs.ZooFlow/frmSearchStart.vb +++ b/GUIs.ZooFlow/Search/frmSearchStart.vb @@ -33,6 +33,7 @@ Public Class frmSearchStart Public DataLoaded As Boolean = False Private DatatableAttributes As DataTable + Private DatatableAttributeLinks As DataTable Private DatatableSearchProfiles As DataTable Private LastSearchForm As frmDocumentResultList @@ -139,12 +140,17 @@ Public Class frmSearchStart Dim oWatch1 As New Watch("Getting data from Database") Dim oSQL = $"SELECT * FROM VWIDB_SEARCH_PROFILE_ATTRIBUTES WHERE SEARCH_PROFIL_ID = {SEARCH_ID} ORDER BY [SEQUENCE]" Dim oDT As DataTable = Await My.DatabaseIDB.GetDatatableAsync(oSQL) + oSQL = $"SELECT * FROM VWIDB_SEARCH_ATTRIBUTES_LINKS WHERE SEARCH_PROFIL_ID = {SEARCH_ID} ORDER BY DEP_ATTR_ID" + Dim oDT1 As DataTable = Await My.DatabaseIDB.GetDatatableAsync(oSQL) oWatch1.Stop() Dim oWatch2 As New Watch("Procesing Dataset") DatatableAttributes = Nothing DatatableAttributes = oDT.Clone() oDT.Select("", "SEQUENCE").CopyToDataTable(DatatableAttributes, LoadOption.PreserveChanges) + DatatableAttributeLinks = Nothing + DatatableAttributeLinks = oDT1.Clone() + oDT1.Select("", "DEP_ATTR_ID").CopyToDataTable(DatatableAttributeLinks, LoadOption.PreserveChanges) oWatch2.Stop() Dim oControlCount As Integer = 1 @@ -154,7 +160,7 @@ Public Class frmSearchStart Dim YActControlHeight As Integer = 0 Dim XActControlWidth As Integer = 0 - For Each oAttributeRow As DataRow In oDT.Rows + For Each oAttributeRow As DataRow In DatatableAttributes.Rows Dim oXPosition As Integer Dim oYPositionControl As Integer Dim oYPositionLabel As Integer @@ -236,6 +242,12 @@ Public Class frmSearchStart oMyLastGridView = oView oView.FocusInvalidRow() + 'Prüfen ob für dieses Grid eine Abhängigkeit definiert ist? + For Each oROW As DataRow In DatatableAttributeLinks.Rows + If CInt(oROW.Item("LINKED_ATTR_ID")) = oAttriID Then + AddHandler oView.FocusedRowChanged, AddressOf FocusedRowChanged + End If + Next ElseIf oAttributeType = ATTR_TYPE_DATE Then oMyControl = oControls.CreateExistingDatepicker(oAttributeRow, oXPosition, oYPositionControl) @@ -373,21 +385,66 @@ Public Class frmSearchStart End Select Next End Sub + Private Sub Link2ControlActivated(pAttributeID) + + + For Each oControl As Control In SelectedTab.Controls + Dim octrlType = oControl.GetType.ToString + Dim oAttrID As Integer + Dim oAttrTitle As String + Select Case oControl.GetType.FullName + Case GetType(GridControl).FullName + Dim oMyGridControl As GridControl = CType(oControl, GridControl) + Dim oMyGridView As GridView = CType(oMyGridControl.MainView, GridView) + oAttrID = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeID + oAttrTitle = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle + If pAttributeID = oAttrID Then + MsgBox("Attribute" & oAttrTitle & " is linked") + Continue For + End If + + Case GetType(DateEdit).FullName + ' MsgBox("Date") + Dim oDateEdit As DateEdit = CType(oControl, DateEdit) + oAttrID = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeID + oAttrTitle = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle + If pAttributeID = oAttrID Then + + Continue For + End If + + Case GetType(CheckBox).FullName + Dim myCheckBox As CheckBox = CType(oControl, CheckBox) + oAttrID = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeID + oAttrTitle = DirectCast(oControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle + + Case Else + 'MsgBox(oControl.GetType.ToString) + End Select + Next + End Sub Private Sub FocusedRowChanged(sender As Object, e As Views.Base.FocusedRowChangedEventArgs) If DataLoaded = False Then Exit Sub - Dim oCurrentView As GridView = DirectCast(sender, GridView) - Dim oCurrentControl As GridControl = oCurrentView.GridControl - Dim oRowView As DataRowView = CType(oCurrentView.GetFocusedRow(), DataRowView) - If IsNothing(oRowView) = False Then - Dim oResult As String = CType(oRowView.Item(0), String) - Dim oAttrID = DirectCast(oCurrentControl.Tag, ClassControlCreator.ControlMetadata).AttributeID - Dim oAttrTitle = DirectCast(oCurrentControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle - ' RenewSearchAttributes() - ' AddSearchAttribute(oAttrID, oAttrTitle, oResult) + Dim oMyGridView As GridView = DirectCast(sender, GridView) + Dim oMyGridControl As GridControl = oMyGridView.GridControl + Dim oSelectedRows As Integer() = oMyGridView.GetSelectedRows() + If oSelectedRows.Count = 0 Then + Exit Sub End If + Dim oAttrID As Integer + Dim oAttrTitle As String + oAttrID = DirectCast(oMyGridControl.Tag, ClassControlCreator.ControlMetadata).AttributeID + oAttrTitle = DirectCast(oMyGridControl.Tag, ClassControlCreator.ControlMetadata).AttributeTitle + For Each orow As DataRow In DatatableAttributeLinks.Rows + If CInt(orow.Item("LINKED_ATTR_ID")) = oAttrID Then + ' Nun die Controls durchlaufen + Link2ControlActivated(CInt(orow.Item("DEP_ATTR_ID"))) + End If + Next + End Sub Private Sub CheckBox_CheckedChanged(sender As Object, e As EventArgs) diff --git a/GUIs.ZooFlow/ZooFlow.vbproj b/GUIs.ZooFlow/ZooFlow.vbproj index b2221d76..5bef7657 100644 --- a/GUIs.ZooFlow/ZooFlow.vbproj +++ b/GUIs.ZooFlow/ZooFlow.vbproj @@ -114,9 +114,9 @@ - - - + + + @@ -153,16 +153,16 @@ Form - + frmSearchPredefined.vb - + Form - + frmSearchStart.vb - + Form @@ -223,10 +223,10 @@ frmGlobix_Index.vb - + frmSearchPredefined.vb - + frmSearchStart.vb @@ -368,7 +368,9 @@ - + + +