diff --git a/app/.vs/DD-Record-Organizer/DesignTimeBuild/.dtbcache b/app/.vs/DD-Record-Organizer/DesignTimeBuild/.dtbcache index dd6b7f0..0b31d68 100644 Binary files a/app/.vs/DD-Record-Organizer/DesignTimeBuild/.dtbcache and b/app/.vs/DD-Record-Organizer/DesignTimeBuild/.dtbcache differ diff --git a/app/DD-Record-Organizer/ClassControlLoader.vb b/app/DD-Record-Organizer/ClassControlLoader.vb index f55a004..22f364d 100644 --- a/app/DD-Record-Organizer/ClassControlLoader.vb +++ b/app/DD-Record-Organizer/ClassControlLoader.vb @@ -326,7 +326,7 @@ control.Text = value End If Else - Dim drarray() As DataRow = CURRENT_SQL_AUTO_VALUES_DT.Select("CONTROL_ID = " & ControlId) + Dim drarray() As DataRow = CURRENT_SQL_AUTO_VALUES_DT.Select("GUID = " & ControlId) If drarray.Length > 0 Then Dim autoValue Dim ID diff --git a/app/DD-Record-Organizer/ClassDOC_SEARCH.vb b/app/DD-Record-Organizer/ClassDOC_SEARCH.vb index d7f5aac..92f79b8 100644 --- a/app/DD-Record-Organizer/ClassDOC_SEARCH.vb +++ b/app/DD-Record-Organizer/ClassDOC_SEARCH.vb @@ -110,12 +110,12 @@ Public Class ClassDOC_SEARCH "[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN2','{7}',TRL.RECORD_ID) AS DROPDOWN2," & vbNewLine & "[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN3','{7}',TRL.RECORD_ID) AS DROPDOWN3," & vbNewLine & "[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN4','{7}',TRL.RECORD_ID) AS DROPDOWN4," & vbNewLine & - "(SELECT DISTINCT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND RECORD_ID = TRL.RECORD_ID AND CONFIG_ID = TRC.GUID) AS VALUE1," & vbNewLine & - "(SELECT DISTINCT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND RECORD_ID = TRL.RECORD_ID AND CONFIG_ID = TRC1.GUID) AS VALUE2," & vbNewLine & - "(SELECT DISTINCT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND RECORD_ID = TRL.RECORD_ID AND CONFIG_ID = TRC2.GUID) AS VALUE3," & vbNewLine & - "(SELECT DISTINCT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND RECORD_ID = TRL.RECORD_ID AND CONFIG_ID = TRC3.GUID) AS VALUE4," & vbNewLine & - "dwAccessRight AS ACCESS_RIGHT" & vbNewLine & - "FROM " & vbNewLine & + "[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC.GUID) AS VALUE1," & vbNewLine & + "[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC1.GUID) AS VALUE2," & vbNewLine & + "[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC2.GUID) AS VALUE3," & vbNewLine & + "[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC3.GUID) AS VALUE4," & vbNewLine & + "dwAccessRight AS ACCESS_RIGHT" & vbNewLine & + "FROM " & vbNewLine & "VWPMO_DOC_SEARCH T " & vbNewLine & "INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID" & vbNewLine & "INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID" & vbNewLine & @@ -167,10 +167,10 @@ Public Class ClassDOC_SEARCH "[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN2','{7}',TRL.RECORD_ID) AS DROPDOWN2," & vbNewLine & "[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN3','{7}',TRL.RECORD_ID) AS DROPDOWN3," & vbNewLine & "[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN4','{7}',TRL.RECORD_ID) AS DROPDOWN4," & vbNewLine & - "(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC.GUID) AS VALUE1," & vbNewLine & - "(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC1.GUID) AS VALUE2," & vbNewLine & - "(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC2.GUID) AS VALUE3," & vbNewLine & - "(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC3.GUID) AS VALUE4" & vbNewLine & + "[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC.GUID) AS VALUE1," & vbNewLine & + "[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC1.GUID) AS VALUE2," & vbNewLine & + "[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC2.GUID) AS VALUE3," & vbNewLine & + "[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC3.GUID) AS VALUE4" & vbNewLine & "FROM " & vbNewLine & "VWPMO_DOC_SEARCH T " & vbNewLine & "INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID" & vbNewLine & diff --git a/app/DD-Record-Organizer/ClassDatabase.vb b/app/DD-Record-Organizer/ClassDatabase.vb index 2f0598e..a6cc5be 100644 --- a/app/DD-Record-Organizer/ClassDatabase.vb +++ b/app/DD-Record-Organizer/ClassDatabase.vb @@ -271,7 +271,34 @@ Public Class ClassDatabase Return False End Try End Function + Public Shared Function Execute_non_Query_withConnString(ExecuteCMD As String, theconnstring As String) + Try + Dim sw As New SW("Execute_non_Query_withConnString: " & ExecuteCMD) + + Dim SQLconnect As New SqlClient.SqlConnection + Dim SQLcommand As SqlClient.SqlCommand + SQLconnect.ConnectionString = theconnstring + SQLconnect.Open() + SQLcommand = SQLconnect.CreateCommand + 'Update Last Created Record in Foo + SQLcommand.CommandText = ExecuteCMD + SQLcommand.CommandTimeout = 120 + SQLcommand.ExecuteNonQuery() + SQLcommand.Dispose() + SQLconnect.Close() + + sw.Done() + + Return True + + + Catch ex As Exception + ClassLogger.Add("Error in Execute_non_Query_withConnString: " & ex.Message, True) + ClassLogger.Add("SQL: " & ExecuteCMD, False) + Return False + End Try + End Function 'TODO: Asynchrone Abfrage möglich machen Public Shared Sub Execute_non_Query_Async(ExecuteCMD As String, Optional Userinput As Boolean = False) Dim SQLconnect As New SqlClient.SqlConnection @@ -373,6 +400,28 @@ Public Class ClassDatabase Return Nothing End Try End Function + Public Shared Function Execute_ScalarWithConnectionString(connectionString As String, cmdscalar As String) + Dim result + Try + + Dim SQLconnect As New SqlClient.SqlConnection + Dim SQLcommand As SqlClient.SqlCommand + SQLconnect.ConnectionString = connectionString + SQLconnect.Open() + SQLcommand = SQLconnect.CreateCommand + 'Update Last Created Record in Foo + SQLcommand.CommandText = cmdscalar + SQLcommand.CommandTimeout = 120 + result = SQLcommand.ExecuteScalar() + SQLcommand.Dispose() + SQLconnect.Close() + Return result + Catch ex As Exception + ClassLogger.Add("Error in Execute_ScalarWithConnectionString: " & ex.Message, True) + ClassLogger.Add("SQL: " & cmdscalar, False) + Return Nothing + End Try + End Function Public Shared Function OracleExecute_Scalar(cmdscalar As String, OracleConnection As String) Dim result diff --git a/app/DD-Record-Organizer/ClassHelper.vb b/app/DD-Record-Organizer/ClassHelper.vb index 9e158e7..cc8819d 100644 --- a/app/DD-Record-Organizer/ClassHelper.vb +++ b/app/DD-Record-Organizer/ClassHelper.vb @@ -422,6 +422,5 @@ Public Class ClassHelper Return Nothing End Try - End Function End Class diff --git a/app/DD-Record-Organizer/ClassInit.vb b/app/DD-Record-Organizer/ClassInit.vb index 9713638..9a454ce 100644 --- a/app/DD-Record-Organizer/ClassInit.vb +++ b/app/DD-Record-Organizer/ClassInit.vb @@ -304,7 +304,7 @@ Public Class ClassInit End If If LICENSE_PROXY = True And clsDatabase.DB_PROXY_INITIALIZED Then - SQL_FULLTEXT = "SELECT DISTINCT [dwDocID] FROM [dbo].FullText WHERE CONTAINS([Text], '""*@FULLTEXT*""')" + SQL_FULLTEXT = "SELECT DISTINCT [dwDocID] FROM [dbo].FullText WHERE CONTAINS([Text], '""*@FULLTEXT*""') " End If Return True 'LabelLoggedIn.Caption = "Anzahl Angemeldete User: " & anzahl.ToString diff --git a/app/DD-Record-Organizer/ClassNodeNavigation.vb b/app/DD-Record-Organizer/ClassNodeNavigation.vb index e481d7c..d0c792e 100644 --- a/app/DD-Record-Organizer/ClassNodeNavigation.vb +++ b/app/DD-Record-Organizer/ClassNodeNavigation.vb @@ -103,9 +103,9 @@ Public Class ClassNodeNavigation End If If NODE_CONFIGURABLE_NODES_DT.Rows.Count > 0 And IsNumeric(NODE_ID) Then 'Prüfen ob es für dieses Level einen konfigurierbaren Knoten gibt - Dim table As DataTable = NODE_CONFIGURABLE_NODES_DT + Dim oTable As DataTable = NODE_CONFIGURABLE_NODES_DT ' Get rows with PARENT_ID = NODE_ID - Dim result() As DataRow = table.Select("PARENT_NODE = " & NODE_CONFIG_ID) + Dim result() As DataRow = oTable.Select("PARENT_NODE = " & NODE_CONFIG_ID) Dim count As Integer Dim ID ' Loop. @@ -126,12 +126,15 @@ Public Class ClassNodeNavigation ClassNodeNavigation.NODE_CONFIGURABLE_ID = ID CURRENT_NODE_CONFIGURABLE_ID = ID Else + ' If LogErrorsOnly = False Then ClassLogger.Add("CURRENT_NODE_CONFIGURABLE_ID would be nothing...", False) CURRENT_NODE_CONFIGURABLE_ID = 0 End If Else If LogErrorsOnly = False Then ClassLogger.Add("NO NODE_CONFIGURABLE_NODES_DT", False) + CURRENT_NODE_CONFIGURABLE_ID = 0 End If Catch ex As Exception + If LogErrorsOnly = False Then ClassLogger.Add("CURRENT_NODE_CONFIGURABLE_ID would be nothing(1)...", False) ClassNodeNavigation.NODE_CONFIGURABLE_ID = 0 CURRENT_NODE_CONFIGURABLE_ID = 0 End Try diff --git a/app/DD-Record-Organizer/ClassRecordState.vb b/app/DD-Record-Organizer/ClassRecordState.vb index f0b1a60..598b103 100644 --- a/app/DD-Record-Organizer/ClassRecordState.vb +++ b/app/DD-Record-Organizer/ClassRecordState.vb @@ -5,8 +5,7 @@ If RecordId = 0 Then Exit Sub End If - Dim Username As String = USER_USERNAME - Dim SQL As String = String.Format("UPDATE TBPMO_RECORD SET IN_WORK = 1, IN_WORK_WHO = '{0}' WHERE GUID = {1}", Username, RecordId) + Dim SQL As String = String.Format("UPDATE TBPMO_RECORD SET IN_WORK = 1, IN_WORK_WHO = '{0}' WHERE GUID = {1}", USER_USERNAME, RecordId) If DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then ClassDatabase.Execute_non_Query(SQL, True) End If diff --git a/app/DD-Record-Organizer/ClassWindreamDocGrid.vb b/app/DD-Record-Organizer/ClassWindreamDocGrid.vb index bcb449a..4c33371 100644 --- a/app/DD-Record-Organizer/ClassWindreamDocGrid.vb +++ b/app/DD-Record-Organizer/ClassWindreamDocGrid.vb @@ -51,14 +51,14 @@ Public Class ClassWindreamDocGrid _Helper = New ClassHelper SELECTED_DOC_ID = 0 If Init_Table() = True Then - SELECTED_DOC_ID = 0 Console.WriteLine("gridView.SelectedRowsCount: " & gridView.SelectedRowsCount.ToString) + gridView.EndSelection() + If gridView.SelectedRowsCount >= 1 Then DT_RESULTFILES.Clear() For Each row In gridView.GetSelectedRows Dim newRow As DataRow = DT_RESULTFILES.NewRow() Try - Dim DOC_ID = gridView.GetRowCellValue(row, "DocID") SELECTED_DOC_ID = DOC_ID newRow("DOC_ID") = gridView.GetRowCellValue(row, "DocID") @@ -114,9 +114,20 @@ Public Class ClassWindreamDocGrid End Try Try SELECTED_DOC_PATH = gridView.GetFocusedRowCellValue(gridView.Columns("FULLPATH")) - newRow("DOC_PATH") = gridView.GetFocusedRowCellValue(gridView.Columns("FULLPATH")) + If IsNothing(SELECTED_DOC_PATH) Then + SELECTED_DOC_PATH = gridView.GetFocusedRowCellValue(gridView.Columns("FULL_FILENAME")) + newRow("DOC_PATH") = gridView.GetFocusedRowCellValue(gridView.Columns("FULL_FILENAME")) + Else + newRow("DOC_PATH") = gridView.GetFocusedRowCellValue(gridView.Columns("FULLPATH")) + End If + Catch ex As Exception - newRow("DOC_PATH") = "" + Try + + Catch ex1 As Exception + newRow("DOC_PATH") = "" + End Try + End Try Try newRow("OBJECTTYPE") = gridView.GetFocusedRowCellValue(gridView.Columns("OBJECTTYPE")) @@ -216,7 +227,7 @@ Public Class ClassWindreamDocGrid Dim value As String = "" Try - value = ClassDatabase.Execute_Scalar(String.Format("SELECT VALUE FROM TBPMO_DOC_VALUES WHERE CONFIG_ID = {0} AND DocID = {1}", configId, docId)) + value = ClassDatabase.Execute_Scalar(String.Format("SELECT VALUE FROM TBPMO_DOC_VALUES WHERE CONFIG_ID = {0} AND DocID = {1} AND RECORD_ID = {2}", configId, docId, RECORD_ID)) Catch ex As Exception ClassLogger.Add(String.Format(">> Attention: Could not get Value from TBPMO_DOC_VALUES for ConfigId[{0}], DocId[{1}]: ", configId, docId) & ex.Message, False) End Try diff --git a/app/DD-Record-Organizer/DD-Record-Organizer.vbproj b/app/DD-Record-Organizer/DD-Record-Organizer.vbproj index f5b6ec5..66e49ea 100644 --- a/app/DD-Record-Organizer/DD-Record-Organizer.vbproj +++ b/app/DD-Record-Organizer/DD-Record-Organizer.vbproj @@ -312,6 +312,12 @@ Form + + frmDocSearchResult.vb + + + Form + frmDoc_Links.vb @@ -795,6 +801,9 @@ frmDocRecordLink.vb + + frmDocSearchResult.vb + frmDoc_Links.vb @@ -806,6 +815,7 @@ frmGeodataNavigation.vb + Designer frmGeodataSelect.vb @@ -848,6 +858,7 @@ frmRight_Management.vb + Designer frmSAP_FuBa.vb @@ -902,6 +913,7 @@ frmRecordView.vb + Designer frmDocLink_Record_Entities.vb @@ -1088,6 +1100,7 @@ frmUserKonfig_AddUsers.vb + Designer frmCalendar.vb @@ -1114,6 +1127,7 @@ frmDoctype_NameConvention.vb + Designer frmMenuDesigner.vb @@ -1126,6 +1140,7 @@ frmUserKonfig.vb + Designer frmWM_EntityImport.vb @@ -1148,6 +1163,7 @@ frmFollowUp.vb + Designer frmWMView_Config.vb diff --git a/app/DD-Record-Organizer/ModuleHelperMethods.vb b/app/DD-Record-Organizer/ModuleHelperMethods.vb index 9753463..0cdb087 100644 --- a/app/DD-Record-Organizer/ModuleHelperMethods.vb +++ b/app/DD-Record-Organizer/ModuleHelperMethods.vb @@ -267,12 +267,26 @@ Module ModuleHelperMethods Public Sub OpenFormConstructor(id As Integer, Optional recordId As Integer = -1) Try If CURRENT_OPEN_CONSTRUCTOR_FORMS.Contains(id) Then + Dim frm1 As New frmConstructor_Main + frm1.Tag = id + Dim frmCollection = System.Windows.Forms.Application.OpenForms + For i As Int16 = 0I To frmCollection.Count - 1I + If frmCollection.Item(i).Tag = id Then + frmCollection.Item(i).Activate() + frmCollection.Item(i).BringToFront() + If frmCollection.Item(i).WindowState = FormWindowState.Minimized Then + frmCollection.Item(i).WindowState = FormWindowState.Normal + End If + Exit Sub + End If + Next i Exit Sub End If CURRENT_CONSTRUCTOR_ID = id CURRENT_OPEN_CONSTRUCTOR_FORMS.Add(id) Dim frm As New frmConstructor_Main() + frm.Tag = id ' frm = frmForm_Constructor.Instance() Dim activeChild As Form = MAIN_FORM.ActiveMdiChild diff --git a/app/DD-Record-Organizer/ModuleRuntimeVariables.vb b/app/DD-Record-Organizer/ModuleRuntimeVariables.vb index e9e7f00..3a49e4d 100644 --- a/app/DD-Record-Organizer/ModuleRuntimeVariables.vb +++ b/app/DD-Record-Organizer/ModuleRuntimeVariables.vb @@ -182,4 +182,7 @@ Public INSERT_IN_ACTION As Boolean = False Public CURRENT_CONTROL_VALUE_COUNT As Integer = 1 Public LAYOUT_DOC_GRIDVIEW As String + + Public CURRENT_DOCSEARCH_SQL As String + Public CURRENT_DOCSEARCH_CAPTION As String End Module diff --git a/app/DD-Record-Organizer/My Project/AssemblyInfo.vb b/app/DD-Record-Organizer/My Project/AssemblyInfo.vb index 37b2819..099eb39 100644 --- a/app/DD-Record-Organizer/My Project/AssemblyInfo.vb +++ b/app/DD-Record-Organizer/My Project/AssemblyInfo.vb @@ -14,7 +14,7 @@ Imports System.Runtime.InteropServices - + @@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - + \ No newline at end of file diff --git a/app/DD-Record-Organizer/frmCockpit.Designer.vb b/app/DD-Record-Organizer/frmCockpit.Designer.vb index ba12b0b..becc22c 100644 --- a/app/DD-Record-Organizer/frmCockpit.Designer.vb +++ b/app/DD-Record-Organizer/frmCockpit.Designer.vb @@ -122,7 +122,7 @@ Partial Class frmCockpit ' 'GridView1 ' - Me.GridView1.Appearance.EvenRow.BackColor = System.Drawing.Color.Cyan + Me.GridView1.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue Me.GridView1.Appearance.EvenRow.Options.UseBackColor = True Me.GridView1.Appearance.FocusedRow.BackColor = System.Drawing.Color.Fuchsia Me.GridView1.Appearance.FocusedRow.Options.UseBackColor = True diff --git a/app/DD-Record-Organizer/frmConfig_Basic.vb b/app/DD-Record-Organizer/frmConfig_Basic.vb index fcbbbdc..0623778 100644 --- a/app/DD-Record-Organizer/frmConfig_Basic.vb +++ b/app/DD-Record-Organizer/frmConfig_Basic.vb @@ -566,7 +566,5 @@ Public Class frmConfig_Basic If formloaded = False Then Exit Sub GridDocResult_BestFitColumns = chkLogErrorsOnly.Checked SaveMySettingsValue("GridDocResult_BestFitColumns", GridDocResult_BestFitColumns, "ConfigMain") - - End Sub End Class \ No newline at end of file diff --git a/app/DD-Record-Organizer/frmConstructorDesigner.Designer.vb b/app/DD-Record-Organizer/frmConstructorDesigner.Designer.vb index a49e9c8..e4a74bc 100644 --- a/app/DD-Record-Organizer/frmConstructorDesigner.Designer.vb +++ b/app/DD-Record-Organizer/frmConstructorDesigner.Designer.vb @@ -1251,7 +1251,7 @@ Partial Class frmConstructorDesigner ' Me.dgvResult.AllowUserToAddRows = False Me.dgvResult.AllowUserToDeleteRows = False - DataGridViewCellStyle1.BackColor = System.Drawing.Color.Cyan + DataGridViewCellStyle1.BackColor = System.Drawing.Color.LightBlue Me.dgvResult.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1 resources.ApplyResources(Me.dgvResult, "dgvResult") Me.dgvResult.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize @@ -1262,7 +1262,7 @@ Partial Class frmConstructorDesigner ' Me.dgvPlaceholders.AllowUserToAddRows = False Me.dgvPlaceholders.AllowUserToDeleteRows = False - DataGridViewCellStyle2.BackColor = System.Drawing.Color.Cyan + DataGridViewCellStyle2.BackColor = System.Drawing.Color.LightBlue Me.dgvPlaceholders.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle2 Me.dgvPlaceholders.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize Me.dgvPlaceholders.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.colPlaceholder, Me.colReplace}) diff --git a/app/DD-Record-Organizer/frmConstructorDesigner.resx b/app/DD-Record-Organizer/frmConstructorDesigner.resx index 2539fd0..56af824 100644 --- a/app/DD-Record-Organizer/frmConstructorDesigner.resx +++ b/app/DD-Record-Organizer/frmConstructorDesigner.resx @@ -2310,7 +2310,7 @@ 537, 22 - Cyan + LightBlue Fuchsia @@ -2508,7 +2508,7 @@ 6, 22 - Cyan + LightBlue Fuchsia @@ -3044,7 +3044,7 @@ 9, 21 - Cyan + LightBlue Fuchsia @@ -9354,7 +9354,7 @@ Home Tab 579, 70 - Cyan + LightBlue Fuchsia @@ -9423,7 +9423,7 @@ Home Tab 941, 69 - Cyan + LightBlue Fuchsia diff --git a/app/DD-Record-Organizer/frmConstructor_Main.Designer.vb b/app/DD-Record-Organizer/frmConstructor_Main.Designer.vb index 6bcec94..286c8b6 100644 --- a/app/DD-Record-Organizer/frmConstructor_Main.Designer.vb +++ b/app/DD-Record-Organizer/frmConstructor_Main.Designer.vb @@ -24,9 +24,10 @@ Partial Class frmConstructor_Main Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmConstructor_Main)) + Dim GridLevelNode1 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode() + Dim GridLevelNode2 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode() + Dim GridLevelNode3 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode() Dim GridLevelNode4 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode() - Dim GridLevelNode5 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode() - Dim GridLevelNode6 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode() Me.SplitContainerMain = New DevExpress.XtraEditors.SplitContainerControl() Me.SplitContainerTop = New DevExpress.XtraEditors.SplitContainerControl() Me.TreeViewMain = New System.Windows.Forms.TreeView() @@ -444,12 +445,12 @@ Partial Class frmConstructor_Main Me.GridControlMain.AllowDrop = True Me.GridControlMain.ContextMenuStrip = Me.ContextMenuGrid resources.ApplyResources(Me.GridControlMain, "GridControlMain") - GridLevelNode4.LevelTemplate = Me.grvwGrid - GridLevelNode4.RelationName = "Level1" - GridLevelNode5.LevelTemplate = Me.grvwCarousel - GridLevelNode5.RelationName = "Level2" - GridLevelNode6.RelationName = "Level3" - Me.GridControlMain.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode4, GridLevelNode5, GridLevelNode6}) + GridLevelNode1.LevelTemplate = Me.grvwGrid + GridLevelNode1.RelationName = "Level1" + GridLevelNode2.LevelTemplate = Me.grvwCarousel + GridLevelNode2.RelationName = "Level2" + GridLevelNode3.RelationName = "Level3" + Me.GridControlMain.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode1, GridLevelNode2, GridLevelNode3}) Me.GridControlMain.MainView = Me.grvwTiles Me.GridControlMain.Name = "GridControlMain" Me.GridControlMain.TabStop = False @@ -970,6 +971,8 @@ Partial Class frmConstructor_Main Me.GridControlDocSearch.AllowDrop = True Me.GridControlDocSearch.ContextMenuStrip = Me.cmsResultFilesBasic resources.ApplyResources(Me.GridControlDocSearch, "GridControlDocSearch") + GridLevelNode4.RelationName = "Level1" + Me.GridControlDocSearch.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode4}) Me.GridControlDocSearch.MainView = Me.GridViewDoc_Search Me.GridControlDocSearch.Name = "GridControlDocSearch" Me.GridControlDocSearch.TabStop = False @@ -994,9 +997,8 @@ Partial Class frmConstructor_Main ' 'GridViewDoc_Search ' - Me.GridViewDoc_Search.Appearance.OddRow.BackColor = CType(resources.GetObject("GridViewDoc_Search.Appearance.OddRow.BackColor"), System.Drawing.Color) - Me.GridViewDoc_Search.Appearance.OddRow.BackColor2 = CType(resources.GetObject("GridViewDoc_Search.Appearance.OddRow.BackColor2"), System.Drawing.Color) - Me.GridViewDoc_Search.Appearance.OddRow.Options.UseBackColor = True + Me.GridViewDoc_Search.Appearance.EvenRow.BackColor = CType(resources.GetObject("GridViewDoc_Search.Appearance.EvenRow.BackColor"), System.Drawing.Color) + Me.GridViewDoc_Search.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewDoc_Search.DetailVerticalIndent = 10 Me.GridViewDoc_Search.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFullFocus Me.GridViewDoc_Search.GridControl = Me.GridControlDocSearch @@ -1010,7 +1012,7 @@ Partial Class frmConstructor_Main Me.GridViewDoc_Search.OptionsSelection.MultiSelect = True Me.GridViewDoc_Search.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CellSelect Me.GridViewDoc_Search.OptionsView.ColumnAutoWidth = False - Me.GridViewDoc_Search.OptionsView.EnableAppearanceOddRow = True + Me.GridViewDoc_Search.OptionsView.EnableAppearanceEvenRow = True Me.GridViewDoc_Search.OptionsView.ShowAutoFilterRow = True Me.GridViewDoc_Search.OptionsView.ShowHorizontalLines = DevExpress.Utils.DefaultBoolean.[True] ' diff --git a/app/DD-Record-Organizer/frmConstructor_Main.resx b/app/DD-Record-Organizer/frmConstructor_Main.resx index 17be10f..0bad7d7 100644 --- a/app/DD-Record-Organizer/frmConstructor_Main.resx +++ b/app/DD-Record-Organizer/frmConstructor_Main.resx @@ -134,483 +134,6 @@ 468, 56 - - 225, 235 - - - cmsTreeView - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fill - - - Segoe UI, 9.75pt - - - 0, 0 - - - 283, 237 - - - - 0 - - - TreeViewMain - - - System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SplitContainerTop.Panel1 - - - 0 - - - Panel1 - - - 299, 13 - - - 281, 314 - - - ContextMenuGrid - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fill - - - Tahoma, 9pt - - - Aqua - - - Ziehen Sie Spaltenüberschriften in diesen Bereich um nach diesen gruppieren zu lassen - - - 0, 27 - - - 988, 210 - - - 2 - - - GridControlMain - - - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - SplitContainerTop.Panel2 - - - 0 - - - 969, 56 - - - 0, 0 - - - 988, 27 - - - 1 - - - ToolStrip1 - - - ToolStripRecords - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SplitContainerTop.Panel2 - - - 1 - - - Panel2 - - - 1276, 237 - - - 0 - - - SplitContainerControl1 - - - SplitContainerTop - - - DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - SplitContainerMain.Panel1 - - - 0 - - - Panel1 - - - Fuchsia - - - 255, 192, 255 - - - Tahoma, 8.25pt, style=Bold, Italic - - - Fill - - - 0, 0 - - - 591, 17 - - - SplitContainerDetails - - - DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - TabDetails - - - 0 - - - ToolStripEdit - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabDetails - - - 1 - - - 1270, 412 - - - Detailansicht - - - TabDetails - - - DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - TCDetails - - - 0 - - - 1276, 443 - - - 3 - - - 799, 56 - - - GridControlPos - - - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - TabPos - - - 0 - - - BindingNavigatorPOS - - - System.Windows.Forms.BindingNavigator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabPos - - - 1 - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAASdEVYdFRpdGxlAExpc3Q7QnVsbGV0O1FzfzkAAABa - SURBVDhPY/j//z9FGEPAxsaGEYhBNF4MUw/TVADED0A0kkHMQMyCBbOCaHQDQJr/g2gkA0B8nBimDqYY - wwXEYqyCpGCsgqRgMEGxF6CaQYEzGogjMRD/MwAARTWKOO3Nn7MAAAAASUVORK5CYII= - - - - 1270, 412 - - - Positionen - - - TabPos - - - DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - TCDetails - - - 1 - - - 975, 17 - - - GridControlDocSearch - - - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - TabWindream - - - 0 - - - ToolStripDokumente - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabWindream - - - 1 - - - 1270, 412 - - - Dateien - - - TabWindream - - - DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - TCDetails - - - 2 - - - ListViewFollowUps - - - System.Windows.Forms.ListView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabFollowUp - - - 0 - - - grpbxFU_Profile - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabFollowUp - - - 1 - - - Label5 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabFollowUp - - - 2 - - - 1270, 412 - - - Wiedervorlage - - - TabFollowUp - - - DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - TCDetails - - - 3 - - - 1231, 56 - - - Crimson - - - Tahoma, 8.25pt, style=Bold, Italic - - - Black - - - GridControl1 - - - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - TabPageVariant - - - 0 - - - tsVariants - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabPageVariant - - - 1 - - - 1270, 412 - - - Vorgängervarianten - - - TabPageVariant - - - DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - TCDetails - - - 4 - - - TreeList1 - - - DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - XtraTabPage1 - - - 0 - - - 1270, 412 - - - NodeNavigation(beta) - - - XtraTabPage1 - - - DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - TCDetails - - - 5 - - - TCDetails - - - DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - SplitContainerMain.Panel2 - - - 0 - - - Panel2 - - - 1276, 685 - - - 2 - - - SplitContainerControl1 - - - SplitContainerMain - - - DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - SplitContainerFORM.Panel2 - - - 0 - 224, 26 @@ -644,33 +167,13 @@ Auswertung anzeigen - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIISURBVDhPY/jx4wdFGKsgFDMBsQMQpwFxAhBbAjGG - OgwBKHb5+v3HtkW3X5+vPPv0fv35Z3dW3X1zFijeBMTmSOqwGuB0/dWn/aFbbr03W37lPzJO3Hnn1dMP - X3YB1RjD1KNrZvr67fu2yKVX3llOOfs/etnVd4tPP70w58Tjy0ELL38CiaWtuf4CqK4OpgfdALvlp56c - s+w5+T9y3sV3IMOAYk5A7P3649cd3tPOfgXJnbn/9hBQTAGkB92AlPp1N+5Zthz9P+/gg0tAvhuSXFzr - ppu30eWQNYNwQvOaa3csaw78n7L99lUgPxxJLq1mxZX7ILnFB+9fAPJBLsMwQHf3uafHLUt3//eoP/D9 - 0cuPu4Fi+UBcfPHumwMOVXv/2JTv+Xv32fu9QDFhkB50A+JOXnt+2LZg2x/L3C3/HYu3/y6ZcfJRwdQT - T2Bik9ZduQZUB0obYD2omq88PeyUs/6XRerq/8FV2z6CaBi2zVj7Z9Kq8yDNWUDMBtMH13z8wsPDtvHz - fhmHz/yf1rjp+dev37fdf/xmz6b9105tP3zzxIvXH3YC1aUAMVwzCIMIpaNnbx82Der4pe3Z9D+hbCFQ - 8zdQ9OkDsSAQgxINiM0NxHCNMAwiQhv7VtxQssr4H5ndi6wZQzE2DCJAJmdNmbnw3JcvX0nSDMLIHDsg - BuVAZDEC+AcDADVk7WUUiqKZAAAAAElFTkSuQmCC - - - - 224, 26 - - - Dateisuchen - 233, 22 Diesem Knoten untergeordnet + False @@ -678,7 +181,7 @@ 233, 22 - Enitätssuche - "alle Dateien" + Entitätssuche - "alle Dateien" @@ -749,12 +252,36 @@ Volltextsuche + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIISURBVDhPY/jx4wdFGKsgFDMBsQMQpwFxAhBbAjGG + OgwBKHb5+v3HtkW3X5+vPPv0fv35Z3dW3X1zFijeBMTmSOqwGuB0/dWn/aFbbr03W37lPzJO3Hnn1dMP + X3YB1RjD1KNrZvr67fu2yKVX3llOOfs/etnVd4tPP70w58Tjy0ELL38CiaWtuf4CqK4OpgfdALvlp56c + s+w5+T9y3sV3IMOAYk5A7P3649cd3tPOfgXJnbn/9hBQTAGkB92AlPp1N+5Zthz9P+/gg0tAvhuSXFzr + ppu30eWQNYNwQvOaa3csaw78n7L99lUgPxxJLq1mxZX7ILnFB+9fAPJBLsMwQHf3uafHLUt3//eoP/D9 + 0cuPu4Fi+UBcfPHumwMOVXv/2JTv+Xv32fu9QDFhkB50A+JOXnt+2LZg2x/L3C3/HYu3/y6ZcfJRwdQT + T2Bik9ZduQZUB0obYD2omq88PeyUs/6XRerq/8FV2z6CaBi2zVj7Z9Kq8yDNWUDMBtMH13z8wsPDtvHz + fhmHz/yf1rjp+dev37fdf/xmz6b9105tP3zzxIvXH3YC1aUAMVwzCIMIpaNnbx82Der4pe3Z9D+hbCFQ + 8zdQ9OkDsSAQgxINiM0NxHCNMAwiQhv7VtxQssr4H5ndi6wZQzE2DCJAJmdNmbnw3JcvX0nSDMLIHDsg + BuVAZDEC+AcDADVk7WUUiqKZAAAAAElFTkSuQmCC + + + + 224, 26 + + + Dateisuchen + 221, 6 221, 6 + + 200, 23 + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO @@ -768,23 +295,6 @@ Knoten umbenennen - - 200, 23 - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAAFxJREFUOE/NjFEKgDAMQ3e23v88/Y1YOslqhE1hGHgfS5fXAHxCliuMD4q7o5Kn - yJTAzC72CM5PTBUwfXMT8OiJnwuYOmL6ZhBwlCBPkT2CSp4iUvAGWa4gy3nQDiNEflNl/3oXAAAAAElF - TkSuQmCC - - - - 224, 26 - - - Neuer Knoten - 212, 22 @@ -826,6 +336,20 @@ Unterhalb + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAFxJREFUOE/NjFEKgDAMQ3e23v88/Y1YOslqhE1hGHgfS5fXAHxCliuMD4q7o5Kn + yJTAzC72CM5PTBUwfXMT8OiJnwuYOmL6ZhBwlCBPkT2CSp4iUvAGWa4gy3nQDiNEflNl/3oXAAAAAElF + TkSuQmCC + + + + 224, 26 + + + Neuer Knoten + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6 @@ -860,6 +384,48 @@ Suche Knoten + + 225, 235 + + + cmsTreeView + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Fill + + + Segoe UI, 9.75pt + + + 0, 0 + + + 283, 237 + + + 0 + + + TreeViewMain + + + System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SplitContainerTop.Panel1 + + + 0 + + + Panel1 + + + 299, 13 + Segoe UI, 9pt, style=Bold @@ -872,12 +438,6 @@ 277, 6 - - 280, 26 - - - Ansicht umschalten - 182, 22 @@ -896,6 +456,12 @@ Detail View + + 280, 26 + + + Ansicht umschalten + 280, 26 @@ -959,6 +525,51 @@ Detail-Ansicht Datensatz + + 281, 314 + + + ContextMenuGrid + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Fill + + + Tahoma, 9pt + + + Aqua + + + Ziehen Sie Spaltenüberschriften in diesen Bereich um nach diesen gruppieren zu lassen + + + 0, 27 + + + 981, 210 + + + 2 + + + GridControlMain + + + DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + SplitContainerTop.Panel2 + + + 0 + + + 969, 56 + Segoe UI Semibold, 9pt, style=Bold, Italic @@ -968,15 +579,6 @@ tslbldisplayRecords - - Magenta - - - 122, 24 - - - Record-Funktionen - False @@ -1054,6 +656,15 @@ Anwendungscache freigeben + + Magenta + + + 122, 24 + + + Record-Funktionen + 6, 27 @@ -1078,6 +689,72 @@ Geodaten + + 0, 0 + + + 981, 27 + + + 1 + + + ToolStrip1 + + + ToolStripRecords + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SplitContainerTop.Panel2 + + + 1 + + + Panel2 + + + 1276, 237 + + + 0 + + + SplitContainerControl1 + + + SplitContainerTop + + + DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + SplitContainerMain.Panel1 + + + 0 + + + Panel1 + + + Fuchsia + + + 255, 192, 255 + + + Tahoma, 8.25pt, style=Bold, Italic + + + Fill + + + 0, 0 + ControlLight @@ -1100,7 +777,7 @@ 0, 0 - 699, 381 + 699, 374 4 @@ -1130,7 +807,7 @@ 0, 26 - 562, 330 + 555, 323 5 @@ -1150,78 +827,6 @@ 1113, 56 - - 0, 356 - - - 562, 25 - - - 0 - - - StatusStrip1 - - - statStripDoc - - - System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SplitContainerDetails.Panel2 - - - 1 - - - Top - - - 0, 0 - - - 562, 26 - - - 0 - - - pnlDocToolStrip - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SplitContainerDetails.Panel2 - - - 2 - - - Panel2 - - - 1270, 385 - - - 1 - - - SplitContainerControl1 - - - SplitContainerDetails - - - DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - TabDetails - - - 0 - 46, 20 @@ -1248,33 +853,81 @@ Ansicht eingeschränkt - Klick Bearbeiten für Entsperren + + 0, 349 + + + 555, 25 + + + 0 + + + StatusStrip1 + + + statStripDoc + + + System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SplitContainerDetails.Panel2 + + + 1 + + + Top + + + 0, 0 + + + 555, 26 + + + 0 + + + pnlDocToolStrip + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SplitContainerDetails.Panel2 + + + 2 + + + Panel2 + + + 1270, 378 + + + 1 + + + SplitContainerControl1 + + + SplitContainerDetails + + + DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + TabDetails + + + 0 + 591, 17 - - 0, 0 - - - 1270, 27 - - - 0 - - - ToolStrip1 - - - ToolStripEdit - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabDetails - - - 1 - False @@ -1403,6 +1056,54 @@ False + + 0, 0 + + + 1270, 27 + + + 0 + + + ToolStrip1 + + + ToolStripEdit + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabDetails + + + 1 + + + 1270, 405 + + + Detailansicht + + + TabDetails + + + DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + TCDetails + + + 0 + + + 1276, 436 + + + 3 + Fill @@ -1410,7 +1111,7 @@ 0, 27 - Cyan + LightBlue 255, 128, 0 @@ -1661,48 +1362,35 @@ 1 + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAASdEVYdFRpdGxlAExpc3Q7QnVsbGV0O1FzfzkAAABa + SURBVDhPY/j//z9FGEPAxsaGEYhBNF4MUw/TVADED0A0kkHMQMyCBbOCaHQDQJr/g2gkA0B8nBimDqYY + wwXEYqyCpGCsgqRgMEGxF6CaQYEzGogjMRD/MwAARTWKOO3Nn7MAAAAASUVORK5CYII= + + + + 1270, 412 + + + Positionen + + + TabPos + + + DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + TCDetails + + + 1 + 858, 95 - - 153, 56 - - - cmsResultFilesBasic - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fill - - - 0, 27 - - - Aqua - - - Aqua - - - 1270, 385 - - - 7 - - - GridControlDocSearch - - - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - TabWindream - - - 0 - 152, 26 @@ -1723,36 +1411,48 @@ Eigenschaften + + 153, 56 + + + cmsResultFilesBasic + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Fill + + + 0, 27 + + + LightBlue + + + 1270, 385 + + + 7 + + + GridControlDocSearch + + + DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + TabWindream + + + 0 + 975, 17 Tahoma, 9pt - - 0, 0 - - - 1270, 27 - - - 2 - - - ToolStrip2 - - - ToolStripDokumente - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabWindream - - - 1 - Segoe UI, 8.25pt, style=Bold, Italic @@ -1807,9 +1507,63 @@ Volltextsuche + + 0, 0 + + + 1270, 27 + + + 2 + + + ToolStrip2 + + + ToolStripDokumente + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabWindream + + + 1 + + + 1270, 412 + + + Dateien + + + TabWindream + + + DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + TCDetails + + + 2 + Top, Bottom, Left + + ID + + + 40 + + + Title + + + 200 + 14, 36 @@ -1831,204 +1585,12 @@ 0 - - ID - - - 40 - - - Title - - - 200 - Top, Bottom, Left - - GroupBox4 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpbxFU_Profile - - - 0 - - - lblFollowUp_save - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpbxFU_Profile - - - 1 - - - chkFollowUp - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpbxFU_Profile - - - 2 - - - dtpFollowUp - - - System.Windows.Forms.DateTimePicker, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpbxFU_Profile - - - 3 - - - lblWiedervorlage_Control - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpbxFU_Profile - - - 4 - - - 283, 28 - - - 774, 254 - - - 4 - - - grpbxFU_Profile - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabFollowUp - - - 1 - Top, Bottom, Left - - btnRemoveUser_FollowUp - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GroupBox4 - - - 0 - - - btnAddUser_FollowUp - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GroupBox4 - - - 1 - - - cmbFollowUpUser - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GroupBox4 - - - 2 - - - Label6 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GroupBox4 - - - 3 - - - ListBoxUser2Profile - - - System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GroupBox4 - - - 4 - - - Label7 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GroupBox4 - - - 5 - - - Segoe UI, 8.25pt, style=Bold - - - 177, 20 - - - 594, 228 - - - 4 - - - Individuelle Empfänger für diesen Datensatz: - - - GroupBox4 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - grpbxFU_Profile - - - 0 - Segoe UI, 8.25pt @@ -2217,6 +1779,33 @@ 5 + + Segoe UI, 8.25pt, style=Bold + + + 177, 20 + + + 594, 228 + + + 4 + + + Individuelle Empfänger für diesen Datensatz: + + + GroupBox4 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpbxFU_Profile + + + 0 + True @@ -2325,6 +1914,27 @@ 4 + + 283, 28 + + + 774, 254 + + + 4 + + + grpbxFU_Profile + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabFollowUp + + + 1 + True @@ -2352,6 +1962,33 @@ 2 + + 1270, 412 + + + Wiedervorlage + + + TabFollowUp + + + DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + TCDetails + + + 3 + + + Crimson + + + Tahoma, 8.25pt, style=Bold, Italic + + + Black + 169, 95 @@ -2365,7 +2002,7 @@ 0, 27 - Cyan + LightBlue ID @@ -2454,36 +2091,9 @@ 0 - - 1140, 17 - 1231, 56 - - 0, 0 - - - 1270, 27 - - - 1 - - - ToolStrip1 - - - tsVariants - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TabPageVariant - - - 1 - Segoe UI Semibold, 9pt, style=Bold, Italic @@ -2511,9 +2121,48 @@ Detail View - - 444, 17 - + + 0, 0 + + + 1270, 27 + + + 1 + + + ToolStrip1 + + + tsVariants + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + TabPageVariant + + + 1 + + + 1270, 412 + + + Vorgängervarianten + + + TabPageVariant + + + DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + TCDetails + + + 4 + Aqua @@ -2529,6 +2178,17 @@ 1270, 412 + + 444, 17 + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFtEZXZFeHByZXNzLlV0aWxzLnYxNS4yLCBWZXJzaW9uPTE1LjIu + MTYuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iODhkMTc1NGQ3MDBlNDlhBQEAAAAo + RGV2RXhwcmVzcy5VdGlscy5JbWFnZUNvbGxlY3Rpb25TdHJlYW1lcgAAAAACAAAACw== + + 0 @@ -2544,16 +2204,59 @@ 0 - - 444, 17 - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFtEZXZFeHByZXNzLlV0aWxzLnYxNS4yLCBWZXJzaW9uPTE1LjIu - MTYuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iODhkMTc1NGQ3MDBlNDlhBQEAAAAo - RGV2RXhwcmVzcy5VdGlscy5JbWFnZUNvbGxlY3Rpb25TdHJlYW1lcgAAAAACAAAACw== - + + 1270, 412 + + + NodeNavigation(beta) + + + XtraTabPage1 + + + DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + TCDetails + + + 5 + + + TCDetails + + + DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + SplitContainerMain.Panel2 + + + 0 + + + Panel2 + + + 1276, 685 + + + 2 + + + SplitContainerControl1 + + + SplitContainerMain + + + DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + SplitContainerFORM.Panel2 + + + 0 Fill @@ -2662,6 +2365,30 @@ Verknüpfungen anzeigen + + 152, 23 + + + Filename + + + 216, 22 + + + Dateinamen umbenennen + + + 152, 23 + + + Diplayname + + + 216, 22 + + + Displayname umbenennen + 255, 26 @@ -2671,6 +2398,25 @@ 252, 6 + + + iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAFFJREFUKFOdj0EKACAIBH2b/3+P16JwRTQzWphD0dhKIjI81GU9YuZNlE/YD17A + gEgp3EiCNq0DAeh1nS/BL9VxXBoDIibg8EKqpE3reLsXiCYgi0Ps3hQ2TwAAAABJRU5ErkJggg== + + + + 184, 22 + + + Datei versionieren + + + 184, 22 + + + Dokumentart ändern + 255, 26 @@ -2782,7 +2528,7 @@ Ansicht zurücksetzen - 256, 494 + 256, 516 ContextMenuStripResultFiles @@ -2790,49 +2536,6 @@ System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 216, 22 - - - Dateinamen umbenennen - - - 152, 23 - - - Filename - - - 216, 22 - - - Displayname umbenennen - - - 152, 23 - - - Diplayname - - - - iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAAFFJREFUKFOdj0EKACAIBH2b/3+P16JwRTQzWphD0dhKIjI81GU9YuZNlE/YD17A - gEgp3EiCNq0DAeh1nS/BL9VxXBoDIibg8EKqpE3reLsXiCYgi0Ps3hQ2TwAAAABJRU5ErkJggg== - - - - 184, 22 - - - Datei versionieren - - - 184, 22 - - - Dokumentart ändern - 17, 17 @@ -2929,6 +2632,12 @@ 720, 95 + + 172, 22 + + + Change Hidepanel + 173, 26 @@ -2938,12 +2647,6 @@ System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 172, 22 - - - Change Hidepanel - 17, 56 diff --git a/app/DD-Record-Organizer/frmConstructor_Main.vb b/app/DD-Record-Organizer/frmConstructor_Main.vb index 06b72c9..39823c4 100644 --- a/app/DD-Record-Organizer/frmConstructor_Main.vb +++ b/app/DD-Record-Organizer/frmConstructor_Main.vb @@ -260,7 +260,22 @@ Public Class frmConstructor_Main End If Next End Sub - + Private Sub Load_Configurable_Nodes() + Try + Dim oSql = String.Format("SELECT * FROM TBPMO_STRUCTURE_NODES_CONFIGURATION where TYPE_NODE = 1000 AND ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", CONSTRUCTORID) + NODE_CONFIGURABLE_NODES_DT = ClassDatabase.Return_Datatable(oSql, False) + Catch ex As Exception + ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Error in Load_Configurable_Nodes") + End Try + End Sub + Sub Load_Adding_users() + Try + Dim oSql = String.Format("SELECT * FROM TBPMO_ENTITY_USERRIGHT_ADDING where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", CONSTRUCTORID) + DT_ADDING_USERS = ClassDatabase.Return_Datatable(oSql, False) + Catch ex As Exception + ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Error in Load_Adding_users") + End Try + End Sub Private Sub frmForm_Constructor_Main_Load(sender As Object, e As EventArgs) Handles Me.Load Dim sw As New SW("Form Load") Dim DT_PROXY_ENTITY As DataTable @@ -341,10 +356,9 @@ Public Class frmConstructor_Main CURRENT_DT_TBPMO_ENTITY_RIGHT_CONTROLS = ClassDatabase.Return_Datatable(String.Format("SELECT * FROM TBPMO_ENTITY_RIGHT_CONTROLS where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", CONSTRUCTORID), False) - SQL = String.Format("SELECT * FROM TBPMO_ENTITY_USERRIGHT_ADDING where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", CONSTRUCTORID) - DT_ADDING_USERS = ClassDatabase.Return_Datatable(SQL, False) - SQL = String.Format("SELECT * FROM TBPMO_STRUCTURE_NODES_CONFIGURATION where TYPE_NODE = 1000 AND ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", CONSTRUCTORID) - NODE_CONFIGURABLE_NODES_DT = ClassDatabase.Return_Datatable(SQL, False) + Load_Adding_users() + Load_Configurable_Nodes() + Catch ex As System.Exception ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Error in Loading Form part 2") End Try @@ -1551,17 +1565,20 @@ Public Class frmConstructor_Main Dim SelectedNode As TreeNode = TryCast(TreeViewMain.SelectedNode, TreeNode) If SelectedNode IsNot Nothing Then Dim _TagENT_ID = ClassNodeNavigation.Return_ENTITY_FOR_TAG(SelectedNode.Tag) - If _TagENT_ID <> 0 And _TagENT_ID <> ENTITY_ID Then + If (_TagENT_ID <> 0 And _TagENT_ID <> ENTITY_ID) Or _TagENT_ID <> CURRENT_ENTITY_ID Then + ClassLogger.Add("Entity-Data needs to be reloaded...", False) + ENTITY_ID = _TagENT_ID CURRENT_ENTITY_ID = ENTITY_ID + CURRENT_CONSTRUCTOR_ID = CONSTRUCTORID + + Load_Adding_users() + Load_Configurable_Nodes() Else If pManually = False Then Exit Sub End If - End If - - End If 'If NODE_NAVIGATION = True Then @@ -2255,15 +2272,31 @@ Public Class frmConstructor_Main Dim EditingUser = ClassRecordState.IsRecordLocked(SELECTED_RECORD_ID) ' Überprüfen, ob der Record gerade bearbeitet wird If Not IsNothing(EditingUser) And EditingUser <> USER_USERNAME Then + If USER_IS_ADMIN = True Then + Dim msg = "Record is in work: " & vbNewLine & $"Dieser Datensatz wird gerade vom Benutzer '{EditingUser}' bearbeitet. Wollen Sie diesen entsperren?" + Dim msg1 = "Achtung" + If USER_LANGUAGE <> "de-DE" Then + msg = "Record is in work: " & vbNewLine & $"This Record is currently being edited by User '{EditingUser}'. Do You want to unlock the record?" + msg1 = "Attention" + End If + Dim result As DialogResult = MessageBox.Show(msg, msg1, MessageBoxButtons.YesNo, MessageBoxIcon.Question) + If result = System.Windows.Forms.DialogResult.Yes Then + ClassRecordState.UnlockRecord(SELECTED_RECORD_ID) + Exit Sub + End If + - tslblLocked.Visible = True - If USER_LANGUAGE = "de-DE" Then - ClassHelper.MSGBOX_Handler("INFO", "Achtung", "Record is in work: " & vbNewLine & String.Format("Dieser Datensatz wird gerade vom Benutzer '{0}' bearbeitet und kann nur lesend abgerufen werden.", EditingUser)) Else - ClassHelper.MSGBOX_Handler("INFO", "Attention", "Record is in work: " & vbNewLine & String.Format("This Record is currently being edited by User '{0}' and only available in Read-Only mode.", EditingUser)) + tslblLocked.Visible = True + If USER_LANGUAGE = "de-DE" Then + ClassHelper.MSGBOX_Handler("INFO", "Achtung", "Record is in work: " & vbNewLine & String.Format("Dieser Datensatz wird gerade vom Benutzer '{0}' bearbeitet und kann nur lesend abgerufen werden.", EditingUser)) + Else + ClassHelper.MSGBOX_Handler("INFO", "Attention", "Record is in work: " & vbNewLine & String.Format("This Record is currently being edited by User '{0}' and only available in Read-Only mode.", EditingUser)) + End If + ' Wenn Record bearbeitet wird, EnableEditMode abbrechen! + Exit Sub End If - ' Wenn Record bearbeitet wird, EnableEditMode abbrechen! - Exit Sub + Else 'Wenn Record bearbeitet werden kann, IN_WORK auf 1 setzen, um Bearbeitung durch andere zu verhindern! @@ -2480,17 +2513,12 @@ Public Class frmConstructor_Main ClassLogger.Add("ADDING RECORDS IS PROHIBITED FOR ENTITY: " & ENTITY_ID, False) End If - 'sql = String.Format("select * from TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE VISIBLE = 1 AND ENTITY_ID = {0} AND LANGUAGE = '{1}' ORDER BY SEQUENCE", ENTITY_ID, USER_LANGUAGE) 'TBPMO_WINDREAM_RESULTLIST_CONFIG" - expression = String.Format("ENTITY_ID = {0} AND LANGUAGE = '{1}'", ENTITY_ID, USER_LANGUAGE) DT_WINDREAM_COLUMNS_GRID = ClassHelper.FILTER_DATATABLE(CURRENT_RESULTLIST_CONFIG, expression, "SEQUENCE") 'ClassDatabase.Return_Datatable(sql, True) expression = String.Format("ENTITY_ID = {0} AND TYPE_ID = 3 AND LANGUAGE = '{1}'", ENTITY_ID, USER_LANGUAGE) - 'sql = String.Format("select T.*, T1.HEADER_CAPTION from TBPMO_DOCRESULT_DROPDOWN_ITEMS T, TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 WHERE T.CONFIG_ID = T1.GUID AND T.CONFIG_ID IN (SELECT GUID FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE ENTITY_ID = {0} AND TYPE_ID = 3 AND LANGUAGE = '{1}') ORDER BY T.SEQUENCE ", ENTITY_ID, USER_LANGUAGE) DT_DOCRESULT_DROPDOWN_ITEMS = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_DOCRESULT_DROPDOWN_ITEMS, expression, "SEQUENCE") 'ClassDatabase.Return_Datatable(sql, True) - 'sql = String.Format("select * from TBPMO_DOCSEARCH_VARIABLE_CONTROLS WHERE ENTITY_ID = {0}", ENTITY_ID) DT_RESULTLIST_OPTIONS = ClassHelper.FILTER_DATATABLE(CURRENT_VARIABLE_CONTROLS, "ENTITY_ID = " & ENTITY_ID, "") ' ClassDatabase.Return_Datatable(sql, True) - ' sql = String.Format("select * from TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE VISIBLE = 1 AND ENTITY_ID = {0} AND LANGUAGE = '{1}' AND COLUMN_VIEW LIKE 'VALUE%' ORDER BY SEQUENCE", ENTITY_ID, USER_LANGUAGE) expression = String.Format("ENTITY_ID = {0} AND LANGUAGE = '{1}' AND COLUMN_VIEW LIKE 'VALUE%'", ENTITY_ID, USER_LANGUAGE) DT_RESULTLIST_VARIABLE_VALUE = ClassHelper.FILTER_DATATABLE(CURRENT_RESULTLIST_CONFIG, expression, "SEQUENCE") 'ClassDatabase.Return_Datatable(sql, True) Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable() @@ -3728,6 +3756,50 @@ Public Class frmConstructor_Main sw.Done() Cursor = Cursors.Default End Sub + Private Sub RUN_ENTITY_DOC_SEARCH() + Dim sw As New SW("RUN_ENTITY_DOC_SEARCH") + Try + Dim oSQL = $"SELECT ENTITY_DOC_SEARCH FROM TBPMO_FORM WHERE GUID = {ENTITY_ID}" + CURRENT_DOCSEARCH_SQL = ClassDatabase.Execute_Scalar(oSQL, True) + Dim oText = $"Die Entität-weite Suche wird im Hintergrund ausgeführt und angezeigt sobald sie fertig ist." + If USER_LANGUAGE <> "de-De" Then + oText = $"The entity-wide search will be started in background. The result will be displayed when ready." + End If + MsgBox(oText, vbOKOnly, "Information") + + + If CURRENT_DOCSEARCH_SQL = "" Then + CURRENT_DOCSEARCH_SQL = String.Format("SELECT DISTINCT T.* " & vbNewLine & + "FROM " & vbNewLine & + "VWPMO_DOC_SEARCH T" & vbNewLine & + "WHERE T.DocID IN (select DISTINCT T.DOC_ID from TBPMO_DOC_RECORD_LINK T, TBPMO_RECORD T1 WHERE T.RECORD_ID = T1.GUID AND T1.FORM_ID = {0}) " & vbNewLine & + "AND T.DocID IN (SELECT dwObjectID FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {2} AND dwObjectID = T.DocID)", ENTITY_ID, USER_LANGUAGE, USERID_FK_INT_ECM) + Else + CURRENT_DOCSEARCH_SQL = CURRENT_DOCSEARCH_SQL.Replace("@ENTITY_ID", ENTITY_ID) + CURRENT_DOCSEARCH_SQL = CURRENT_DOCSEARCH_SQL.Replace("@USER_LANGUAGE", USER_LANGUAGE) + CURRENT_DOCSEARCH_SQL = CURRENT_DOCSEARCH_SQL.Replace("@USER_ECM_ID", USERID_FK_INT_ECM) + CURRENT_DOCSEARCH_SQL = CURRENT_DOCSEARCH_SQL.Replace("@USER_ID", USER_GUID) + End If + + + If USER_LANGUAGE <> "de-DE" Then + CURRENT_DOCSEARCH_CAPTION = "Entity-wide search" + Else + CURRENT_DOCSEARCH_CAPTION = "Entitätssuche" + End If + Dim myformThread = New Thread(Sub() + Using frm As New frmDocSearchResult + Application.Run(frm) + + End Using + End Sub) + myformThread.Start() + + Catch ex As Exception + ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error RUN_ENTITY_DOC_SEARCH", ex.Message, ex.StackTrace) + End Try + sw.Done() + End Sub Private Sub RUN_WDSEARCH_GRID() Me.Cursor = Cursors.WaitCursor Dim sw As New SW("RUN_WDSEARCH_GRID") @@ -4250,16 +4322,30 @@ Public Class frmConstructor_Main End If End Sub Private Sub ButtonResetView_Click(sender As Object, e As EventArgs) Handles ButtonResetView.Click - 'TODO: Ansicht zurücksetzen + Reset_View_layout + End Sub + Sub Reset_View_layout() Try - Dim XMLPath = Get_Grid_Layout_Filename() + Dim XMLPath = Get_DocGrid_Layout_Filename() If File.Exists(XMLPath) Then + Me.Cursor = Cursors.WaitCursor File.Delete(XMLPath) - Load_Entity_Data_CONTROLS_RECORDS() + GridControlDocSearch.DataSource = Nothing + GridViewDoc_Search.Columns.Clear() + + RUN_WDSEARCH_GRID() + + Else + MsgBox("Set back of Layout not successfull - File not existing!", MsgBoxStyle.Information) End If Catch ex As Exception - ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Reset Layout Grid: ", ex.Message) + ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Reset Layout DocGrid: ", ex.Message) End Try + Me.Cursor = Cursors.Default + End Sub + Private Sub AnsichtZurücksetzenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles docCM_ResetView.Click + ' TODO: Ansicht zurücksetzen + Reset_View_layout() End Sub #End Region @@ -5319,13 +5405,13 @@ Public Class frmConstructor_Main End Sub Private Sub GridViewDoc_Search_FocusedColumnChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedColumnChangedEventArgs) Handles GridViewDoc_Search.FocusedColumnChanged - GridViewDoc_Search.EndSelection() + ClassWindreamDocGrid.GetDocItems(GridViewDoc_Search) Refresh_DocID() End Sub Private Sub GridViewDoc_Search_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) Handles GridViewDoc_Search.FocusedRowChanged - GridViewDoc_Search.EndSelection() + ClassWindreamDocGrid.GetDocItems(GridViewDoc_Search) Refresh_DocID() End Sub @@ -5767,11 +5853,14 @@ Public Class frmConstructor_Main Dim rowcolorname As String = "" 'Die Color für den value auswählen For Each matchingRow As DataRow In matchingRows - - rowcolorname = matchingRow.Item("COLOR") - If rowcolorname <> "" Then - Exit For + rowcolorname = "" + If Not IsDBNull(matchingRow.Item("COLOR")) Then + rowcolorname = matchingRow.Item("COLOR") End If + + If rowcolorname <> "" Then + Exit For + End If Next If rowcolorname <> "" Then ColorRow = Color.FromName(rowcolorname) @@ -5824,7 +5913,7 @@ Public Class frmConstructor_Main e.Cancel = True End If Me.Cursor = Cursors.WaitCursor - GridViewDoc_Search.EndSelection() + ClassWindreamDocGrid.GetDocItems(GridViewDoc_Search) If IsNothing(ClassWindreamDocGrid.DT_RESULTFILES) Then e.Cancel = True @@ -5947,26 +6036,7 @@ Public Class frmConstructor_Main RUN_WDSEARCH_GRID() End If End Sub - Private Sub AnsichtZurücksetzenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles docCM_ResetView.Click - ' TODO: Ansicht zurücksetzen - Try - Dim XMLPath = Get_DocGrid_Layout_Filename() - If File.Exists(XMLPath) Then - Me.Cursor = Cursors.WaitCursor - File.Delete(XMLPath) - GridControlDocSearch.DataSource = Nothing - GridViewDoc_Search.Columns.Clear() - RUN_WDSEARCH_GRID() - - Else - MsgBox("Set back of Layout not successfull - File not existing!", MsgBoxStyle.Information) - End If - Catch ex As Exception - ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Reset Layout DocGrid: ", ex.Message) - End Try - Me.Cursor = Cursors.Default - End Sub Sub Set_Displayname() Try If ClassWindreamDocGrid.DT_RESULTFILES.Rows.Count = 1 Then @@ -6423,7 +6493,7 @@ Public Class frmConstructor_Main End Sub Private Sub docCMEntityWideSearch_Click(sender As Object, e As EventArgs) Handles docCMEntityWideSearch.Click CURRENT_SEARCH_TYPE = "ENTITY" - RUN_WDSEARCH_GRID() + RUN_ENTITY_DOC_SEARCH() End Sub Private Sub tsbtnDoc_Refresh_Click(sender As Object, e As EventArgs) Handles tsbtnDoc_Refresh.Click @@ -6668,7 +6738,7 @@ Public Class frmConstructor_Main Private Sub EnitätssucheToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles tsmientitySearch.Click CURRENT_SEARCH_TYPE = "ENTITY" - RUN_WDSEARCH_GRID() + RUN_ENTITY_DOC_SEARCH() End Sub Private Sub OberhalbToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OberhalbToolStripMenuItem.Click @@ -7243,4 +7313,8 @@ Public Class frmConstructor_Main MsgBox("Unexpected Error in Showing DocLinks: " & ex.Message, MsgBoxStyle.Critical) End Try End Sub + + Private Sub tsmiNodeNew_Click(sender As Object, e As EventArgs) Handles tsmiNodeNew.Click + + End Sub End Class \ No newline at end of file diff --git a/app/DD-Record-Organizer/frmDocRecordLink.vb b/app/DD-Record-Organizer/frmDocRecordLink.vb index b1a6435..2186bfe 100644 --- a/app/DD-Record-Organizer/frmDocRecordLink.vb +++ b/app/DD-Record-Organizer/frmDocRecordLink.vb @@ -230,7 +230,7 @@ Public Class frmDocRecordLink ResultViewName = $"VWPMO_ENTITY_TABLE{entity.id}" ResultSQL = $"SELECT T.* FROM {ResultViewName} T" txtEntity.Text = cmbConstructorForms.Text - + If LogErrorsOnly = False Then ClassLogger.Add(" >> ResultSQL: " & ResultSQL, False) Me.Cursor = Cursors.WaitCursor Dim DT_RESULT = clsDatabase.Return_Datatable(ResultSQL, True) If Not IsNothing(DT_RESULT) Then diff --git a/app/DD-Record-Organizer/frmDocSearchResult.Designer.vb b/app/DD-Record-Organizer/frmDocSearchResult.Designer.vb new file mode 100644 index 0000000..8ff3c1e --- /dev/null +++ b/app/DD-Record-Organizer/frmDocSearchResult.Designer.vb @@ -0,0 +1,220 @@ + _ +Partial Class frmDocSearchResult + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim GridLevelNode1 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmDocSearchResult)) + Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() + Me.tslblDocID = New System.Windows.Forms.ToolStripStatusLabel() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.ToolStripLabelCaption = New System.Windows.Forms.ToolStripLabel() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.GridControlDocSearch = New DevExpress.XtraGrid.GridControl() + Me.ContextMenuStripResultFiles = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.docCM_Open = New System.Windows.Forms.ToolStripMenuItem() + Me.OrdnerÖffnenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.docCM_Copy = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator20 = New System.Windows.Forms.ToolStripSeparator() + Me.docCM_Showlinks = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator22 = New System.Windows.Forms.ToolStripSeparator() + Me.docCM_PropertiesFile = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator25 = New System.Windows.Forms.ToolStripSeparator() + Me.GridViewDoc_Search = New DevExpress.XtraGrid.Views.Grid.GridView() + Me.StatusStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + CType(Me.GridControlDocSearch, System.ComponentModel.ISupportInitialize).BeginInit() + Me.ContextMenuStripResultFiles.SuspendLayout() + CType(Me.GridViewDoc_Search, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'StatusStrip1 + ' + Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tslblDocID}) + Me.StatusStrip1.Location = New System.Drawing.Point(0, 623) + Me.StatusStrip1.Name = "StatusStrip1" + Me.StatusStrip1.Size = New System.Drawing.Size(1083, 22) + Me.StatusStrip1.TabIndex = 0 + Me.StatusStrip1.Text = "StatusStrip1" + ' + 'tslblDocID + ' + Me.tslblDocID.Name = "tslblDocID" + Me.tslblDocID.Size = New System.Drawing.Size(92, 17) + Me.tslblDocID.Text = "No row selected" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripLabelCaption, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(1083, 25) + Me.ToolStrip1.TabIndex = 1 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'ToolStripLabelCaption + ' + Me.ToolStripLabelCaption.Name = "ToolStripLabelCaption" + Me.ToolStripLabelCaption.Size = New System.Drawing.Size(88, 22) + Me.ToolStripLabelCaption.Text = "ToolStripLabel1" + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right + Me.ToolStripButton1.Image = Global.DD_Record_Organizer.My.Resources.Resources.refresh_16xLG + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(95, 22) + Me.ToolStripButton1.Text = "Aktualisieren" + ' + 'GridControlDocSearch + ' + Me.GridControlDocSearch.ContextMenuStrip = Me.ContextMenuStripResultFiles + Me.GridControlDocSearch.Dock = System.Windows.Forms.DockStyle.Fill + GridLevelNode1.RelationName = "Level1" + Me.GridControlDocSearch.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode1}) + Me.GridControlDocSearch.Location = New System.Drawing.Point(0, 25) + Me.GridControlDocSearch.MainView = Me.GridViewDoc_Search + Me.GridControlDocSearch.Name = "GridControlDocSearch" + Me.GridControlDocSearch.Size = New System.Drawing.Size(1083, 598) + Me.GridControlDocSearch.TabIndex = 8 + Me.GridControlDocSearch.TabStop = False + Me.GridControlDocSearch.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewDoc_Search}) + ' + 'ContextMenuStripResultFiles + ' + Me.ContextMenuStripResultFiles.ImageScalingSize = New System.Drawing.Size(20, 20) + Me.ContextMenuStripResultFiles.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.docCM_Open, Me.OrdnerÖffnenToolStripMenuItem, Me.docCM_Copy, Me.ToolStripSeparator20, Me.docCM_Showlinks, Me.ToolStripSeparator22, Me.docCM_PropertiesFile, Me.ToolStripSeparator25}) + Me.ContextMenuStripResultFiles.Name = "ContextMenuStripResultFiles" + Me.ContextMenuStripResultFiles.Size = New System.Drawing.Size(256, 152) + ' + 'docCM_Open + ' + Me.docCM_Open.Name = "docCM_Open" + Me.docCM_Open.Size = New System.Drawing.Size(255, 26) + Me.docCM_Open.Text = "Datei Öffnen" + ' + 'OrdnerÖffnenToolStripMenuItem + ' + Me.OrdnerÖffnenToolStripMenuItem.Name = "OrdnerÖffnenToolStripMenuItem" + Me.OrdnerÖffnenToolStripMenuItem.Size = New System.Drawing.Size(255, 26) + Me.OrdnerÖffnenToolStripMenuItem.Text = "Ordner öffnen" + ' + 'docCM_Copy + ' + Me.docCM_Copy.Image = Global.DD_Record_Organizer.My.Resources.Resources.Copy_6524 + Me.docCM_Copy.Name = "docCM_Copy" + Me.docCM_Copy.Size = New System.Drawing.Size(255, 26) + Me.docCM_Copy.Text = "Datei in Zwischenablage kopieren" + ' + 'ToolStripSeparator20 + ' + Me.ToolStripSeparator20.Name = "ToolStripSeparator20" + Me.ToolStripSeparator20.Size = New System.Drawing.Size(252, 6) + ' + 'docCM_Showlinks + ' + Me.docCM_Showlinks.Image = CType(resources.GetObject("docCM_Showlinks.Image"), System.Drawing.Image) + Me.docCM_Showlinks.Name = "docCM_Showlinks" + Me.docCM_Showlinks.Size = New System.Drawing.Size(255, 26) + Me.docCM_Showlinks.Text = "Verknüpfungen anzeigen" + ' + 'ToolStripSeparator22 + ' + Me.ToolStripSeparator22.Name = "ToolStripSeparator22" + Me.ToolStripSeparator22.Size = New System.Drawing.Size(252, 6) + ' + 'docCM_PropertiesFile + ' + Me.docCM_PropertiesFile.Image = Global.DD_Record_Organizer.My.Resources.Resources.PropertyGridEditorPart_6041 + Me.docCM_PropertiesFile.Name = "docCM_PropertiesFile" + Me.docCM_PropertiesFile.Size = New System.Drawing.Size(255, 26) + Me.docCM_PropertiesFile.Text = "Eigenschaften Datei" + ' + 'ToolStripSeparator25 + ' + Me.ToolStripSeparator25.Name = "ToolStripSeparator25" + Me.ToolStripSeparator25.Size = New System.Drawing.Size(252, 6) + ' + 'GridViewDoc_Search + ' + Me.GridViewDoc_Search.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue + Me.GridViewDoc_Search.Appearance.EvenRow.Options.UseBackColor = True + Me.GridViewDoc_Search.DetailVerticalIndent = 10 + Me.GridViewDoc_Search.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFullFocus + Me.GridViewDoc_Search.GridControl = Me.GridControlDocSearch + Me.GridViewDoc_Search.LevelIndent = 10 + Me.GridViewDoc_Search.Name = "GridViewDoc_Search" + Me.GridViewDoc_Search.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False] + Me.GridViewDoc_Search.OptionsDetail.ShowDetailTabs = False + Me.GridViewDoc_Search.OptionsSelection.EnableAppearanceFocusedCell = False + Me.GridViewDoc_Search.OptionsSelection.EnableAppearanceFocusedRow = False + Me.GridViewDoc_Search.OptionsSelection.EnableAppearanceHideSelection = False + Me.GridViewDoc_Search.OptionsSelection.MultiSelect = True + Me.GridViewDoc_Search.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CellSelect + Me.GridViewDoc_Search.OptionsView.ColumnAutoWidth = False + Me.GridViewDoc_Search.OptionsView.EnableAppearanceEvenRow = True + Me.GridViewDoc_Search.OptionsView.ShowAutoFilterRow = True + Me.GridViewDoc_Search.OptionsView.ShowHorizontalLines = DevExpress.Utils.DefaultBoolean.[True] + ' + 'frmDocSearchResult + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1083, 645) + Me.Controls.Add(Me.GridControlDocSearch) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.StatusStrip1) + Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmDocSearchResult" + Me.Text = "frmDocSearchResult" + Me.StatusStrip1.ResumeLayout(False) + Me.StatusStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + CType(Me.GridControlDocSearch, System.ComponentModel.ISupportInitialize).EndInit() + Me.ContextMenuStripResultFiles.ResumeLayout(False) + CType(Me.GridViewDoc_Search, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents StatusStrip1 As StatusStrip + Friend WithEvents ToolStrip1 As ToolStrip + Friend WithEvents GridControlDocSearch As DevExpress.XtraGrid.GridControl + Friend WithEvents GridViewDoc_Search As DevExpress.XtraGrid.Views.Grid.GridView + Friend WithEvents tslblDocID As ToolStripStatusLabel + Friend WithEvents ToolStripLabelCaption As ToolStripLabel + Friend WithEvents ContextMenuStripResultFiles As ContextMenuStrip + Friend WithEvents docCM_Open As ToolStripMenuItem + Friend WithEvents OrdnerÖffnenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents docCM_Copy As ToolStripMenuItem + Friend WithEvents ToolStripSeparator20 As ToolStripSeparator + Friend WithEvents docCM_Showlinks As ToolStripMenuItem + Friend WithEvents ToolStripSeparator22 As ToolStripSeparator + Friend WithEvents docCM_PropertiesFile As ToolStripMenuItem + Friend WithEvents ToolStripSeparator25 As ToolStripSeparator + Friend WithEvents ToolStripButton1 As ToolStripButton +End Class diff --git a/app/DD-Record-Organizer/frmDocSearchResult.resx b/app/DD-Record-Organizer/frmDocSearchResult.resx new file mode 100644 index 0000000..2690516 --- /dev/null +++ b/app/DD-Record-Organizer/frmDocSearchResult.resx @@ -0,0 +1,1129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 134, 17 + + + 799, 56 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAINJREFUOE9jQAbfvn37TwyGKscEIEknJye8mH4GfHj/EQWTbAAuPIRcgAsPRwO+ + f/+eABLEhX19ffEbABR4n5KSAlcA0rB582YwDRIHacAbjQ8ePABLgDSdPHny/5w5c8Ds5cuXg8VBYjDN + WA2AuQDZZphimAvwGkAoDLBhqFYgYGAAAFMd0furxZnJAAAAAElFTkSuQmCC + + + + + AAABAAoAMDAQAAEABABoBgAApgAAACAgEAABAAQA6AIAAA4HAAAQEBAAAQAEACgBAAD2CQAAMDAAAAEA + CACoDgAAHgsAACAgAAABAAgAqAgAAMYZAAAQEAAAAQAIAGgFAABuIgAAAAAAAAEAIAC6hAAA1icAADAw + AAABACAAqCUAAJCsAAAgIAAAAQAgAKgQAAA40gAAEBAAAAEAIABoBAAA4OIAACgAAAAwAAAAYAAAAAEA + BAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDA + wAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3d3 + d3d3d3d3d3d3d3d3d3dwAAAAAHd3eP////////////////////9wAAAAAH93eI////////////////// + //9wAAAAAHiHd4j///////////////////9wAAAAAAePd3j///////////////////9wAAAAAAB4h3iP + //////////////////9wAAAAAAAH93eI//////////////////9wAAAAAAAIf3d4j/////////////// + //9wAAAAAAAIh4d3j/////////////////9wAAAAAAAI94h3iPj///////////////9wAAAAAAAI/3h3 + eI+HeIiP//////////9wAAAAAAAI//eHd3d3h3d4//////////9wAAAAAAAI//94d3j//4iHiP////// + //9wAAAAAAAI//+HiP//j/+Id4////////9wAAAAAAAI//+H//+P////h4////////9wAAAAAAAI//h4 + +Pj//4+PiHj///////9wAAAAAAAI//ePj///j//4+IeP//////9wAAAAAAAI/4eI+I+P/4+Pj4eP//// + //9wAAAAAAAI/4f4/4//j/j/iIeP//////9wAAAAAAAI/3iIiPj/+P+Pj4h///////9wAAAAAAAI/4iP + iI+Pj4+PiIh///////9wAAAAAAAI/3iIiIj4//j4+Ih///////9wAAAAAAAI/4eIiPiIiI+Pj4eP//// + //9wAAAAAAAI/4eIiI/4iIiIiIf///////9wAAAAAAAI//eIiPj//4iIiIf///////9wAAAAAAAI//h4 + 6Pj4j///iOj///////9wAAAAAAAI//+H+I+P+IiIiH////////9wAAAAAAAI///3eIj4///4h/////// + //9wAAAAAAAI////eIiPiIiGj/////////9wAAAAAAAI////92h4iOd4//////////9wAAAAAAAI//// + //h3Z4j///////////9wAAAAAAAI//////////////////////9wAAAAAAAI//////////////////// + //9wAAAAAAAI//////////////////////9wAAAAAAAI//////////////////////9wAAAAAAAI//// + //////////////////9wAAAAAAAI//////////////////////9wAAAAAAAI////////////////+IiI + iIcAAAAAAAAI////////////////+P///3AAAAAAAAAI////////////////+P//9wAAAAAAAAAI//// + ////////////+P//cAAAAAAAAAAI////////////////+P/3AAAAAAAAAAAI////////////////+P9w + AAAAAAAAAAAI////////////////+PcAAAAAAAAAAAAI////////////////+HAAAAAAAAAAAAAI//// + ////////////hwAAAAAAAAAAAAAIiIiIiIiIiIiIiIiIAAAAAAAAAAAA////////AADgAAAAAH8AAMAA + AAAAfwAAwAAAAAB/AADAAAAAAH8AAOAAAAAAfwAA8AAAAAB/AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/ + AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgA + AAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/ + AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgA + AAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgAAAAA/wAA+AAAAAH/ + AAD4AAAAA/8AAPgAAAAH/wAA+AAAAA//AAD4AAAAH/8AAPgAAAA//wAA+AAAAH//AAD4AAAA//8AAPgA + AAP//wAAKAAAACAAAABAAAAAAQAEAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACA + gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAA + AAAAAAAACHd3d3d3d3d3d3d3d3cAAAeId4/////////////3AAAAiHd4////////////9wAAAAj3eI// + //////////cAAAAIf3eP///////////3AAAACIiHeP//////////9wAAAAj4eHiPj4iP//////cAAAAI + /4h3d3d3iI/////3AAAACP/4d3iIiHeI////9wAAAAj//3iP///4eI////cAAAAI//d////4+IeP///3 + AAAACP/3j4+P//+IeP//9wAAAAj/h/j/+Pj4+H////cAAAAI/3j4j///j4h4///3AAAACP+Ij4+Pj4+I + eP//9wAAAAj/eIiIj4/4+Ij///cAAAAI/4iIj4iIiIjo///3AAAACP+HiI//iIiIiP//9wAAAAj/+I74 + +P//h/////cAAAAI//h4j/+PiOj////3AAAACP//h4iIiOeP////9wAAAAj///93eHiP//////cAAAAI + //////////////+HAAAACP//////////+IiIgAAAAAj///////////j//4AAAAAI///////////4//gA + AAAACP//////////+P+AAAAAAAj///////////j4AAAAAAAI///////////4gAAAAAAACP////////// + iIAAAAAAAAiIiIiIiIiIiIAAAAAAAP////+AAAAPgAAAD8AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AA + AA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AA + AB/gAAAf4AAAP+AAAH/gAAD/4AAB/+AAAf/gAAf/KAAAABAAAAAgAAAAAQAEAAAAAACAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A + AAD/AP8A//8AAP///wAHd3d3d3d3AAePj/+P//cAiHj/j///9wAH9/////j3AAiHeHiP//gACPiI+H// + +AAIiI//iI/3AAj3j4/3//gACPiPj4j/+AAI+Ij4j//4AAj/h4iPj/gACP/////4+AAI+P+P/4iIAAj/ + //+Pj4AACP////+IAAAIiIiIiIAAAIADAACAAwAAAAMAAIADAACAAwAAgAMAAIADAACAAwAAgAMAAIAD + AACAAwAAgAMAAIADAACABwAAgA8AAIAfAAAoAAAAMAAAAGAAAAABAAgAAAAAAAAJAAAAAAAAAAAAAAAB + AAAAAQAAAAAAAFtbWwBeX18AYWJiAGRlZQBtbW0AcnJyAHN0dAB8dHYAfXZ4AHp6egB8fHsAe3t8AH19 + fQCDfoEAgICBAISDggCCgoQAhYWFAImAgwCKh4MAiIWGAIeHiACHiIkAiomKAIyKiQCNjY0AkYqEAJSN + hwCQjo4Al46RAJGRkQCUk5MAk5OUAJSUlQCYl5cAm5mWAJeXmACalZgAmJmZAJ2ZmgCcnJsAm5ucAJuc + nQCdnp4AoJiRAKWbkwCjnJcAppyUAKWdngCen6AAop+hAJ+goACgoaEApaGhAKKipAClo6QApqalAKml + owCoqKcAqaeoAK+nqQCoqKkArKuoAK2trQC0rKQAsKmqALCurgC0rK8At7CoAL+0qAC8ta4Asq+xALGx + sQC2tLIAs7O0ALW1tQC4trcAvrm1ALe3uAC3uLgAubm6ALy8vgDDurEAxcG9AMvFvwDUxbEA18a0AN/L + tADWybgA0Mm+ANjLvgDczr4A6dS9AP3TsQD81LEA+ta2APzWtQDz1bkA9Na4APPXvQD817gA9di7APba + vwD82LoA+9m9AL+/wADBwMAAxcTBAMXFxgDLxccAxsfIAMfIyQDIyMoAzMvJAMrLzADLzM0Azc3OANfP + xQDe0MEA39PGANfSywDZ0skA0dHSANbS0wDX1dIA0tPUANXV1QDc1tkA2dnaANvc3ADe3t4A4NLDAOjW + xADq2McA6drJAPPbxAD728AA+9zCAPzcwQD63sUA/N/GAPPfzAD738gA4d3VAOPf3AD94McA++DJAPzh + yQD74s4A/OLMAPzkzwDv4tQA8OPVAPPk1QD649AA+uTRAPzl0QD55tUA/efUAP3p1wDy594A+efYAPro + 2AD86toA+OrdAPzr3AD77N8A/ezdAN7f4ADj3eAA5d/iAOHg4QDk4+MA4uPkAOXi5ADj5OUA5ubnAOfn + 6ADn6OgA6enqAO/t6gDt7e4A+uzhAP3u4QD57uUA/O/kAPPu6QD+8OMA+/DmAP3w5QD68ekA/PHoAPny + 7AD79O8A7u/wAO/w8QDx8vIA9/TwAPPz9AD19fYA+fTwAPb3+AD3+PkA+fn6APr7/AD7/P0A/v7+AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ABIFDRISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISAAAAAAAAAAAAEhIWAT5/tsrKysrK + ysrKysrKysrKysrKysrKysrKysrKysrKysoSAAAAAAAAAAAADqsiIgNRgcXKysrKysrKysXLxcvFy8XL + xcvFy8XKxcrFysXKxcsSAAAAAAAAAAAANkSrFhIGbYHKysrKysrKy8vKysrKysrKysrKysrKxcvFy8XL + xcsSAAAAAAAAAAAAABVudRYGFn+ry8vKysrKysrKxcvFy8XLxcvFy8XLysrKxcvFy8sSAAAAAAAAAAAA + AAAJgVEfAzZ/tsvKysrKysrLy8vKysrKysrKysrFy8XLysXLxcsSAAAAAAAAAAAAAAAACKs6FgNRgcXL + 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 + AAAAAAAAAAAAAAAAAAAAdcvLy8vLy8vLy8vLy8vLy8vLy8vLy8vJtqlvPgAAAAAAAAAAAAAAAAAAAAAA + AAAAdcvLy8vLy8vLy8vLy8vLy8vLy8vLy8vJynUrAAAAAAAAAAAAAAAAAAAAAAAAAAAAf39/f39/f39/ + f39/f39/f39/f39/f39/fwAAAAAAAAAAAAAAAAAAAAAAAP///////wAA4AAAAAB/AADAAAAAAH8AAMAA + AAAAfwAAwAAAAAB/AADgAAAAAH8AAPAAAAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/ + AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgA + AAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/ + AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgA + AAAAfwAA+AAAAAB/AAD4AAAAAH8AAPgAAAAAfwAA+AAAAAB/AAD4AAAAAP8AAPgAAAAB/wAA+AAAAAP/ + AAD4AAAAB/8AAPgAAAAP/wAA+AAAAB//AAD4AAAAP/8AAPgAAAB//wAA+AAAAP//AAD4AAAD//8AACgA + AAAgAAAAQAAAAAEACAAAAAAAAAQAAAAAAAAAAAAAAAEAAAABAAAAAAAAVlZWAFxcXABhYGAAZWVlAGRm + aABqamoAamttAG9vbwBrbXAAbW5wAHFxcQBwc3QAdHR0AHV2eQB3eXoAenx9AH9/fwCAfn8Af4CAAIOE + hACFhIQAiYeEAIqJhwCPioUAiomKAI2KiACTjIUAkY+OAJKQjgCUkY4AmZKOAJqUjgCRkZEAmZWRAJmT + lgCZl5QAm5eZAJiYmACdnp4AqJuOAKCgnwCpopkAtqiWALOomAC3qp0AvK2dAKSdoACloKIAoKKlAKen + pwCro6YAqaamAKqopQCnp6gAraaoAKeoqQCpqakAr6mqAK2trgCvsbMAsbGyALW2tgC5trYAtre4ALm4 + uQC8ursAu7u9AL29vgDCq5YAzb2tANC/qwDSv64Awr25AMC8vgDJwLYA0MG0ANrHtADcx7QA3smzAN3N + vgDjzrkA69C1AOTRvgDv1rwA8tO2APnWtgD617kA9Ni7AP3auQDCwsMAxsXGAMnJyQDNzc0Azc7QAM/Q + 0ADR0dEA1NLSANPT1ADW0tQA1dbWANra2gDd2tsA3N3dAOfZygDr3c4A+9zAAP3dwAD938QA4drTAPzg + xwD84ckA/ePMAPvkzwD85M0A7+HTAOfg2wDv598A+ubRAPzl0QD859UA+ujXAPzo1QD3698A++rbAP3q + 2QD67d4A/ezdAP7w3gDf4OAA4eHhAOPj5ADk5OQA5+foAOnp6gDr7OwA7e7uAPrt4gD87uEA/O/kAP7x + 4gD78OYA/fDlAPvz6wD98ukA/fTqAPrz7AD59O4A/PXtAO/w8ADw8fEA9fb2APr18AD49/UA+/jzAPf4 + +AD5+fkA+/z8AP39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAMBINARERERERERERERERERERERERERERERERAAAAAAAlY0INFF+Vm5ubm5ub + m5ubm5ubm5ubm5ubmzsAAAAAAAAwlTAEJ2Obm5ubm5ubm5ubm5ubm5ubm5ubOwAAAAAAAAAjhiUEPoGb + m5ubm5ubm5ubm5ubm5ubm5s7AAAAAAAAAEIvZRQIW4Wbm5ubm5ubm5ubm5ubm5uVmzsAAAAAAAAAY1sz + YwgXY5abm5ubm5ubm5ubm5ubm5ubOwAAAAAAAABjm0IzWwI7ZZuFgWVlg5Wbm5ubm5ubm5s7AAAAAAAA + AGObm0I7FgUyHAgFCBM7XWWbm5ubm5ubmzsAAAAAAAAAY5ubm0ozDwU1Y3RtSRYOQmOVm5ubm5ubOwAA + AAAAAABjm5ubmwg/dZibm5uSe0sMQGSbm5ubm5s7AAAAAAAAAGObm5s+InuSkpuSkpKJfksRXJWbm5ub + mzsAAAAAAAAAY5ubmw9piYmJkpqSko5+cSonZZubm5ubOwAAAAAAAABjm5tbKnl5fomSkpKOjn5xTRFj + m5ubm5s7AAAAAAAAAGObmztGcXFxkpKSjo6JfnlUGkCbm5ubmzsAAAAAAAAAY5ubME1wcHB+jpKOjn5+ + flcgQpubmJubOwAAAAAAAABjm5s4SGxrcHBweX6Ojn5+VSJcm5ubm5s7AAAAAAAAAGObmz4samtqknFw + cGpwcXlPKl+bm5ubmzsAAAAAAAAAY5ubYxpSWWqSkn5+cHBsay44iJubm5ubOwAAAAAAAABjm5uVOytX + ao6Ojo6OjoBRHYGbm5ubm5s7AAAAAAAAAGObm5uDFkVYgJSSjpSAUyBAm5ubm5ubmzsAAAAAAAAAY5ub + m5uDHShHaXNpUC4dQpubm5ubm5ubOwAAAAAAAABjm5ubm5ubOyIbICAdMoObm5ubm5ubm5s7AAAAAAAA + AGObm5ubm5ubm5ubm5ubm5ubm5ubm5ubZTsAAAAAAAAAY5ubm5ubm5ubm5ubm5ubm5ubm5t0YFs/AAAA + AAAAAABjm5ubm5ubm5ubm5ubm5ubm5tCOzY2O0IAAAAAAAAAAGObm5ubm5ubm5ubm5ubm5ubm12bm4NC + AAAAAAAAAAAAY5ubm5ubm5ubm5ubm5ubm5ubX5iVWwAAAAAAAAAAAABjm5ubm5ubm5ubm5ubm5ubm5tg + g1sAAAAAAAAAAAAAAGObm5ubm5ubm5ubm5ubm5ublVtbAAAAAAAAAAAAAAAAY5ubm5ubm5ubm5ubm5ub + m5t0QgAAAAAAAAAAAAAAAABjZWVlZWVlZWVlZWVlZWVlZV0AAAAAAAAAAAAAAP////+AAAAPgAAAD8AA + AA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AA + AA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAB/gAAAf4AAAP+AAAH/gAAD/4AAB/+AAA//gAAf/KAAAABAA + AAAgAAAAAQAIAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAAAAABhYWEAa2ttAHFxcQB6enoAfn9/AIaG + hgCQkJAAmZaYAJ2dnQCim5UAq6SdAKyknQC2qp4ApaOlAKSkpACopaIAraurAKysrACwqqMAsa2oAL+y + pQC8tK0Aq66wALKxsgC1tbUAuLS3ALq4twC5ubkAvb29AMuvkgDAvL8A48emAObRtwDl1L0AwMDAAMLE + xQDFxcUAysrKAM/Q0wDd3t8A5tjEAO3YwADi2MkA6d7KAPnkyQDo4NYA/ebTAPvo1wD969UA/e7WAP3t + 2QDf3+AA4t/iAOLg4gDj5OUA5OTlAOrr7ADs7O0A+fDkAPzw5QD98+kA+/nuAPHx8wDy8vQA8/T1APX1 + 9gD5+PUA///2APb3+AD3+PkA+Pn6APr7/AD7/PwA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + ZtBxOWHi8mPWJfa1bA0miCwEgiB9lboFEKMuAIQFIF5Xwf3gJp5rEIvFfhPQABnXokjQKDw66GC+Q3BA + B0rAOFCkbg2buFyaVSFwtQJAnJwZ+F8IAMM7YrQWAMIFCAqAsHe/5N0auBdFvL6DDhYSBE90YBJXCJSo + WwFtLwCgUQgEzX4R3RfkFTGAZhdAHEIAmIHHJnEtiCjXuG9hBx20MUT9i3CFS9StAJEWb3sBAPWTFH5L + 0PcPav9mC0BYCYL0Ye9WCADx2ggd87+DhQcH97cvFKYQBEEXYFYxHSQLZghCNJJfWABCAFi4H9YOvFZY + CxEaA4cdAdDBQoOIm1nUBUGNukIUFvWsYa5I1iw0godERwB0sDARzKY1Z8/swGMddNBBBzOP/x8rM0qK + LAHQgAAAAABJRU5ErkJggigAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAABAQEDGRkZLhYWFjsAAAAxAAAAKQAAACcAAAAnAAAAJwAAACcAAAAnAAAAJwAAACcAAAAn + AAAAJwAAACcAAAAnAAAAJwAAACcAAAAnAAAAJwAAACcAAAAnAAAAJwAAACcAAAAnAAAAJwAAACcAAAAn + AAAAJwAAACcAAAAnAAAAJwAAACcAAAAnAAAAJwAAACcAAAAnAAAAHQAAAAoAAAABAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAEBAQstLS2TMDAwtCcnJ5kXFxeFAAAAfgAAAHYAAAB2AAAAdgAAAHYAAAB2 + AAAAdgAAAHYAAAB2AAAAdgAAAHYAAAB2AAAAdgAAAHYAAAB2AAAAdgAAAHYAAAB2AAAAdgAAAHYAAAB2 + AAAAdgAAAHYAAAB2AAAAdgAAAHYAAAB2AAAAdgAAAHYAAAB2AAAAdgAAAHYAAABvAAAATQAAABsAAAAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5MTq2FhIT/iIiI/1tbW/+oqKj/1NXV/+3t7v/39/j/ + 9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/ + 9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/ + AAAAZwAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVwc+Xj4OL/lZSV/5CQkP9kZWX/ + urq7/9nZ2v/y8vP/9vf4//b3+P/29/j/9vf4//b3+P/29/j/9vf4//b3+P/29vf/9vb3//X29//19vf/ + 9fb3//X29//19vf/9fb3//X29//19vf/9fb3//X29//19vf/9fX2//T19v/09fb/9PX2//T19v/09fb/ + 9PX2//T19v/39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZvcae0rK// + 5eLk/4yLi/+FhYX/cXFx/8XFxv/e3t//9fX2//b3+P/29/j/9vf4//b3+P/29/j/9vf4//b3+P/29/j/ + 9vb3//b29//19vf/9fb3//X29//19vf/9fb3//X29//19vf/9fb3//X29//19vf/9fb3//X19v/09fb/ + 9PX2//T19v/09fb/9PX2//T19v/39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHt2eg1tZmnNy8XH/8/Nz/+NjIz/c3Nz/4aHh//Ozs7/5+fn//f3+P/29/j/9vf4//b3+P/29/j/ + 9vf4//b3+P/29/j/9vf4//b29//29vf/9fb3//X29//19vf/9fb3//X29//19vf/9fb3//X29//19vf/ + 9fb3//X29//19vf/9fX2//T19v/09fb/9PX2//T19v/39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB0cHQmbWZo49zW2f+4trf/jo6O/2JjY/+ioqP/1NTV/+7u7//39/j/ + 9/f4//b3+P/29/j/9vf4//b3+P/29/j/9vf4//b3+P/29/f/9vb3//b29//19vf/9fb3//X29//19vf/ + 9fb3//X29//19vf/9fb3//X29//19vf/9fb3//X19v/09fb/9PX2//T19v/39/j/AAAAaAAAACMAAAAC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcGxvRXx0dv/l3+L/paOk/4qJif9kZGX/ + ubm6/9na2//z8/T/9/f4//f3+P/29/j/9vf4//b3+P/29/j/9vf4//b3+P/29/j/9vf4//b29//29vf/ + 9fb3//X29//19vf/9fb3//X29//19vf/9fb3//X29//19vf/9fb3//X29//19fb/9PX2//T19v/39/j/ + AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKmnqP+JgIP/ + 493g/5aVlf97e3v/c3Nz/8bHyP/i4+T/9/f4//f3+P/39/j/9vf4//b3+P/29/j/9vf4//b3+P/29/j/ + 9vf4//b3+P/29vf/9vb3//X29//19vf/9fb3//X29//19vf/9fb3//X29//19vf/9fb3//X29//19vf/ + 9fb3//X19v/39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM7Ozv+yr7H/l46R/9bS0/+Qjo7/ZWZm/46Pj//R0tP/7O3u//f3+P/39/j/9/f4//f3+P/29/j/ + 9vf4//b3+P/29/j/9vf4//b3+P/29/j/9vb3//b29//29vf/9fb3//X29//19vf/9fb3//X29//19vf/ + 9fb3//X29//19vf/9fb3//X29//39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM7Ozv/4+Pn/op+h/6Wdnv/DwMD/hYSF/15fX/+wsbH/2dna//Hy8//3+Pn/ + 9fX2/+/v8P/p6er/5+jo/+jp6v/s7e7/8PHy//T19v/29/j/9vf4//b3+P/29vf/9vb3//X29//19vf/ + 9fb3//X29//19vf/9fb3//X29//19vf/9fb3//X29//39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/4+fr/+Pj5/5qWmP+vp6n/sK6u/29ubv9ycnL/ + wMDB/9na2//V1tf/tLW2/52dnv+Xl5j/np6f/6mqq/+3uLj/ycnK/9zd3v/t7u//9fb3//b3+P/29/j/ + 9vb3//b29//19vf/9fb3//X29//19vf/9fb3//X29//19vf/9fb3//X29//39/j/AAAAaAAAACMAAAAC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/4+fr/+Pn6//X19v+alZj/ + sKmq/5yZmv9hYWH/c3R0/4qKi/97e3v/hoaH/5ubnP+jo6T/mZmZ/4WFhf9+fn3/lJSV/7W1tv/Ky8z/ + 4+Tl//T19v/29/j/9vf4//b29//29vf/9vb3//X29//19vf/9fb3//X29//19vf/9fb3//X29//39/j/ + AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/4+fr/ + +Pn6//j5+v/19fb/n5qb/7Oxsf+pqan/hISF/6empv/My8n/5OPj//Dw8f/29fX/7+3q/+Pf3P/FxMH/ + n5+e/319fv+mpaX/xMXG/97f4P/09fb/9vf4//b3+P/29/j/9vb3//b29//19vf/9fb3//X29//19vf/ + 9fb3//X29//39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM7Ozv/4+fr/+Pn6//j5+v/4+fr/1dXW/3t7fP+8vL7/19XS//Pu6f/39PD/9/b0//f29v/39vT/ + 9/Tw//jx7P/47ub/8ufe/8XBvf+Ghob/nJyb/8XGx//j5OX/9vf4//b3+P/29/j/9vf4//b29//29vf/ + 9fb3//X29//19vf/9fb3//X29//39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM7Ozv/5+fr/+Pn6//j5+v/4+fr/s7O0/5SUlf/h3dX/+e7l//nw6f/58u3/ + 9/Tw//f08v/49PH/+fPv//ny7P/57+f/+ere//nn2P/Z0sn/hYWF/6iop//LzM3/8PHy//b3+P/29/j/ + 9vf4//b3+P/29vf/9vb3//X29//19vf/9fb3//X29//39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/5+fr/+fn6//n5+v/HyMn/gICC/9fSy//56t3/ + +ezh//nu5f/58On/+fLs//r08P/69vL/+vTw//rz7f/68en/+u3j//nn2P/549D/y8W//3x8e/+/v8D/ + 29zd//b3+P/29/j/9vf4//b3+P/29/j/9vf4//b29//29vf/9fb3//X29//39/j/AAAAaAAAACMAAAAC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/5+fr/+fn6//n5+v+RkZL/ + t7e0//Pk1f/66Nn/+ere//ns4v/57uX/+vLs//v18P/79O//+vPt//ry6//78Of/++7k//rr3f/65NH/ + 89/M/6alpP+Uk5P/zc3O//T19v/29/j/9vf4//b3+P/29/j/9vf4//b3+P/29vf/9vb3//X29//39/j/ + AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/5+fr/ + +fn6/83Nzv+CgoT/18/F//rj0P/65tT/+ujZ//nq3P/67+X/+/Ps//vz7P/78+z/+/Lq//vx6P/78Ob/ + ++7j//vs3//759X/+t7G/9DJvv96enr/xsbH/+7v8P/29/j/9vf4//b3+P/29/j/9vf4//b3+P/29/j/ + 9vb3//b29//39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM7Ozv/5+vv/+fn6/7Oztf+Yl5f/6drJ//vhy//749D/+uXU//ro2f/78ef//PLq//zy6v/88un/ + /PHo//zw5v/87+T/++3g//zr3v/86tr/++DJ/+jWxP+Liov/tLS1/+jo6f/39/j/9vf4//b3+P/29/j/ + 9vf4//b3+P/29/j/9vf4//b29//39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM7Ozv/5+vv/+fr7/6KipP+trKz/89vE//vexv/74cr/++LO//vo2P/88ej/ + /PHo//zx6P/88Of//PDm//zv5P/87uL//O3g//zr3f/86tr/++PO//PXvv+hoqL/np+f/+bm5//39/j/ + 9/f4//b3+P/29/j/9vf4//b3+P/29/j/9vf4//b3+P/39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/5+vv/+fr7/5ucnf+2tLL/+9q+//vcwv/73sX/ + +9/I//vjzv/869z//fHn//zw5v/88OX//O/k//zu4//97uH//ezf//3s3f/86tr//ObT//rWtv+tra3/ + mJiZ/+jp6v/39/j/9/f4//f3+P/29/j/9vf4//b3+P/29/j/9vf4//b3+P/39/j/AAAAaAAAACMAAAAC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/6+vv/+fr7/6Chov+sq6j/ + 89e9//vavf/728D/+93D//zk0P/74Mj//OXS//zq2//98OT//e/j//3u4v/97eD//ezf//3r3P/96tr/ + /enX//PVuf+mpqX/np+g/+/w8f/3+Pn/9/f4//f3+P/39/j/9/f4//b3+P/29/j/9vf4//b3+P/39/j/ + AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/6+vv/ + +vr7/7OztP+bmZb/6dS9//zYuv/82bv/+9q+//3v4v/96tr//OTP//vdw//74cv//ObT//3q2//97uD/ + /eze//3s3f/96tr//efU/+rUvv+Tk5P/tba3//f4+f/3+Pn/9/j5//f4+f/39/j/9/f4//f3+P/29/j/ + 9vf4//b3+P/39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM7Ozv/6+vv/+vr7/8jIy/+HhYT/1sm4//zWtf/817f//Ne4//7u4v/+8OT//u/j//3r2//95ND/ + /N/G//vZvP/83MH//N/G//zizP/95M///N/H/9jLvv+EhIX/29zc//f4+f/3+Pn/9/j5//f4+f/3+Pn/ + 9/f4//f3+P/39/j/9vf4//b3+P/39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM7Ozv/6+vv/+vr7/+bm5/+UlJT/t7Co//TWuP/81bT//Na1//3s3P/+7+T/ + /vDj//7w4//+7+L//u/j//3q2v/95dH//OHJ//zcwf/82bv/9di7/765tf+Gh4f/9PT1//f4+f/3+Pn/ + 9/j5//f4+f/3+Pn/9/j5//f3+P/39/j/9/f4//f3+P/39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/6+vv/+vr7//r6+//R0dL/jYuI/9TFsf/81LH/ + /NSx//3m0v/+8OX//vDk//7w5P/+7+P//u/j//7u4v/+7+H//u7g//7u3//95dH/3tDB/4eHiP/V1db/ + +Pj5//j4+f/4+Pn/9/j5//f4+f/3+Pn/9/j5//f4+f/3+Pn/9/f4//f3+P/39/j/AAAAaAAAACMAAAAC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/6+vv/+vr7//r6+//6+vv/ + nZ6e/6CYkf/fy7T//dOx//3gx//+8eX//vHk//7w5P/+8OT//vDk//7v4//+7+L//u/i//3p2P/q2Mf/ + pqKh/5iZmv/4+fr/+Pj5//j4+f/4+Pn/+Pj5//f4+f/3+Pn/9/j5//f4+f/3+Pn/9/j5//f3+P/39/j/ + AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/6+/z/ + +vv8//r6+//6+vv/5+fo/5OSkf+mnJT/18a0//bav//+7Nz//vLn//7x5v/+8eb//vHl//7x5f/+8OT/ + +OfX/+DSw/+ppaP/h4iJ//j5+v/4+fr/+Pn6//j4+f/4+Pn/+Pj5//j4+f/3+Pn/9/j5//f4+f/3+Pn/ + 9/j5//f4+f/39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM7Ozv/7+/z/+vv8//r7/P/6+vv/+vr7/+/v8P+OjY3/lI2H/7+0qP/czr7/7+LU//jr3//98eb/ + +Ovf//Dj1f/f08b/w7qx/4yKif+Tk5T/+fn6//j5+v/4+fr/+Pn6//j5+v/4+Pn/+Pj5//j4+f/4+Pn/ + +Pj5//f4+f/3+Pn/9/j5//f4+f/39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM7Ozv/7+/z/+/v8//r7/P/6+/z/+vr7//r6+//19fb/oaGi/39+fP+RioT/ + pZuT/7WspP+8ta7/tKyl/6Ocl/+Kh4P/gICB/8nJyv/5+fr/+fn6//n5+v/4+fr/+Pn6//j5+v/4+fr/ + +Pj5//j4+f/4+Pn/+Pj5//j4+f/3+Pn/9/j5//f4+f/39/j/AAAAaAAAACMAAAACAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/7+/z/+/v8//v7/P/6+/z/+vv8//r6+//6+vv/ + +vr7//Dw8f+3t7j/lpaW/4iHh/+Eg4L/jo6O/5+foP/S09T/+fn6//n5+v/5+fr/+fn6//n5+v/5+fr/ + +Pn6//j5+v/4+fr/+Pn6//j5+v/4+Pn/+Pj5//j4+f/4+Pn/9/j5//f4+f/39/j/AAAAaQAAACMAAAAC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/7+/z/+/v8//v7/P/7+/z/ + +vv8//r7/P/6+/z/+vr7//r6+//6+vv/+vr7//r6+//6+vv/+vr7//n6+//5+vv/+fr7//n6+//5+fr/ + +fn6//n5+v/5+fr/+fn6//n5+v/4+fr/+Pn6//j5+v/4+fr/+Pj5//j4+f/4+Pn/+Pj5//f4+f/39/j/ + AAAAagAAACQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/7+/z/ + +/v8//v7/P/7+/z/+/v8//v7/P/6+/z/+vv8//r6+//6+vv/+vr7//r6+//6+vv/+vr7//r6+//6+vv/ + +fr7//n6+//5+vv/+fn6//n5+v/5+fr/+fn6//n5+v/5+fr/+Pn6//j5+v/4+fr/+Pn6//j4+f/4+Pn/ + +Pj5//j4+f/39/j/AAAAawAAACMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM7Ozv/7+/z/+/v8//v7/P/7+/z/+/v8//v7/P/7+/z/+vv8//r7/P/6+vv/+vr7//r6+//6+vv/ + +vr7//r6+//6+vv/+vr7//n6+//5+vv/+fr7//n5+v/5+fr/+fn6//n5+v/5+fr/+fn6//j5+v/4+fr/ + +Pn6//j5+v/4+fr/+Pj5//b29v/39/j/AAAAagAAACIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM7Ozv/7+/z/+/v8//v7/P/7+/z/+/v8//v7/P/7+/z/+/v8//r7/P/6+/z/ + +vv8//r6+//6+vv/+vr7//r6+//6+vv/+vr7//r6+//5+vv/+fr7//n6+//5+vv/+fn6//n5+v/5+fr/ + +fn6//n5+v/4+fr/+Pn6//j5+v/4+fr/9vb2//Ly8v/39/j/AAAAXQAAABwAAAABAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/7+/z/+/v8//v7/P/7+/z/+/v8//v7/P/7+/z/ + +/v8//v7/P/7+/z/+vv8//r7/P/6+vv/+vr7//r6+//6+vv/+vr7//r6+//6+vv/+vr7//n6+//5+vv/ + +fr7//n5+v/5+fr/+fn6//n5+v/5+fr/+fn6//n5+v/39/f/8/Pz/+/v7//v7+//AAAAagAAACIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/7+/z/+/v8//v7/P/7+/z/ + +/v8//v7/P/7+/z/+/v8//v7/P/7+/z/+/v8//r7/P/6+/z/+vr7//r6+//6+vv/+vr7//r6+//6+vv/ + +vr7//r6+//5+vv/+fr7//n6+//5+vv/+fr7//n6+//7+/v/+/v7//X19f/19fX/6+vr/9/f3//Kysv/ + AAAAPAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/7/P3/ + +/v8//v7/P/7+/z/+/v8//v7/P/7+/z/+/v8//v7/P/7+/z/+/v8//v7/P/6+/z/+vv8//r7/P/6+vv/ + +vr7//r6+//6+vv/+vr7//r6+//6+vv/+fr7//n6+//5+vv/rq6u/66urv+urq7/rq6u/66urv+urq7/ + rq6u/8jIyv8+Pj6YAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM7Ozv/8/P3/+/z9//v7/P/7+/z/+/v8//v7/P/7+/z/+/v8//v7/P/7+/z/+/v8//v7/P/7+/z/ + +/v8//r7/P/6+/z/+vr7//r6+//6+vv/+vr7//r6+//6+vv/+vr7//r6+//6+vv/rq6u//////////// + +fn5//Pz8//h4eH/09PU/4CAgMkDAwMrAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM7Ozv/8/P3//Pz9//z8/f/7/P3/+/v8//v7/P/7+/z/+/v8//v7/P/7+/z/ + +/v8//v7/P/7+/z/+/v8//v7/P/6+/z/+vv8//r6+//6+vv/+vr7//r6+//6+vv/+vr7//r6+//7+/v/ + rq6u///////5+fn/8/Pz/+Hh4f/T09T/hoaGyAMDAywAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/8/P3//Pz9//z8/f/8/P3/+/z9//v7/P/7+/z/ + +/v8//v7/P/7+/z/+/v8//v7/P/7+/z/+/v8//v7/P/7+/z/+vv8//r7/P/6+vv/+vr7//r6+//6+vv/ + +vr7//r6+//7+/v/rq6u//n5+f/z8/P/4eHh/9PT1P+SkpLMAwMDLwAAAAgAAAABAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/8/P3//Pz9//z8/f/8/P3/ + /Pz9//v8/f/7+/z/+/v8//v7/P/7+/z/+/v8//v7/P/7+/z/+/v8//v7/P/7+/z/+/v8//r7/P/6+/z/ + +vv8//r6+//6+vv/+vr7//n5+f/19fX/rq6u/+3t7f/h4eH/09PU/5GRkcsCAgIsAAAACAAAAAEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/8/P3/ + /Pz9//z8/f/8/P3//Pz9//z8/f/8/P3/+/z9//v7/P/7+/z/+/v8//v7/P/7+/z/+/v8//v7/P/7+/z/ + +/v8//v7/P/7+/z/+vv8//r7/P/6+vv/+Pj4//X19f/19fX/rq6u/+Hh4f/T09T/hIWFxQICAi0AAAAH + AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM7Ozv/8/P3//Pz9//z8/f/8/P3//Pz9//z8/f/8/P3//Pz9//v8/f/7+/z/+/v8//v7/P/7+/z/ + +/v8//v7/P/7+/z/+/v8//v7/P/7+/z/+/v8//r7/P/4+Pj/9PT0//Ly8v/r6+v/rq6u/9PT1P+UlJTP + AQEBLAAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM7Ozv/8/P3//Pz9//z8/f/8/P3//Pz9//z8/f/8/P3//Pz9//z8/f/7/P3/ + +/v8//v7/P/7+/z/+/v8//v7/P/7+/z/+/v8//v7/P/7+/z/+/v8//v7/P/4+Pj/8/Pz/+/v7//f39// + yMjK/5iYmM0DAwMvAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/ + 9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/9/f4//f3+P/39/j/ + 8/Pz//Pz8//Kysv/gICAwwICAicAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANbW1v/W1tb/1tbW/9bW1v/W1tb/ + 1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/ + 1tbW/9bW1v/W1tb/1tbW/9bW1v91lZdxAAAAGwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAB8AAMAAAAAAHwAAwAAAAAAfAADAAAAA + AB8AAMAAAAAAHwAAwAAAAAAfAADgAAAAAB8AAPAAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA + +AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAA + AB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA + +AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAA + AB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAD8AAPgAAAAAPwAA+AAAAAB/AAD4AAAAAH8AAPgAAAAAfwAA + +AAAAAD/AAD4AAAAAf8AAPgAAAAD/wAA+AAAAAf/AAD4AAAAD/8AAPgAAAAf/wAA+AAAAH//AAAoAAAA + IAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPDw9TCgoKfAAAAFUAAAA3 + AAAAIQAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAg + AAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAiIGEwHZ0dexycnL6 + ExMTtgAAAIAAAABrAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABg + AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABIAAAAGAAAAAAAAAAAAAAAAAAAAACCfH/K + 1tLU/7y6u/9xcXH/g4SE/8/Q0P/u7+//+Pj4//j4+P/3+Pj/9/j4//f4+P/3+Pj/9/j4//f39//29/f/ + 9vf3//b39//29/f/9vf3//b39//29/f/9fb2//X29v/19vb/9fb2/wAAAGAAAAAgAAAAAAAAAAAAAAAA + AAAAAG1obCmIgYTA6+nq/6enqP9kZWX/np+f/9bX1//09fX/+Pj4//j4+P/3+Pj/9/j4//f4+P/3+Pj/ + 9/j4//f39//29/f/9vf3//b39//29/f/9vf3//b39//29/f/9vb2//X29v/19vb/AAAAYAAAACAAAAAA + AAAAAAAAAAAAAAAAAAAAAG1obCmZk5b/6ujq/5iYmP9hYGD/tba2/9/g4P/3+Pj/+Pn5//j4+P/3+Pj/ + 9/j4//f4+P/3+Pj/9/j4//f39//29/f/9vf3//b39//29/f/9vf3//b39//29/f/9vb2//X29v8AAABg + AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALq5uf+knaD/3drb/4WEhP9vb2//xcbG/+jp6f/4+fn/ + +Pn5//j4+P/4+Pj/9/j4//f4+P/3+Pj/9/j4//f4+P/39/f/9vf3//b39//29/f/9vf3//b39//29/f/ + 9vf3/wAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1tbW/8XExf+ro6b/1NLS/2pqav+Li4v/ + 0dLS//Hy8v/4+fn/+Pn5//j4+P/4+Pj/9/j4//f4+P/3+Pj/9/j4//f4+P/39/f/9vf3//b39//29/f/ + 9vf3//b39//29/f/AAAAYAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADW1tb/+vr6/7q4uv+tpqj/ + x8XF/1xcXP+urq7/3d3d//Dx8f/o6en/3+Dg/9vb2//c3Nz/4eLi/+vs7P/29/f/9/j4//f4+P/39/f/ + 9vf3//b39//29/f/9vf3//b39/8AAABgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANbW1v/6+vr/ + +vr6/7i1t/+vqar/ioiJ/2ZmZv+np6f/kZGR/21ucP9kZmj/amtt/3+AgP+qqqr/0NHR/9zd3f/w8fH/ + 9/j4//f4+P/39/f/9/f3//b39//29/f/9vf3/wAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 1tbW//r7+//6+vr/+Pj4/8C8vv+ppqb/dnd6/2Vnaf+qqKX/0tLQ/+fg2//h2tP/wr25/4qJh/91dnj/ + u7u7/9bX1//v8PD/9/j4//f4+P/3+Pj/9/f3//b39//29/f/AAAAYAAAACAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADW1tb/+vv7//r7+//6+vr/8fHx/2ttcP+6t7X/7+ff//r28f/5+fn/+fn5//j39f/58+z/ + 9+vf/8nAtv9wc3T/uLi4/9na2v/19vb/9/j4//f4+P/3+Pj/9/f3//b39/8AAABgAAAAIAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAANbW1v/7+/v/+vv7//r7+/+xsbL/mZeU//fr3//69O3/+fTv//n18P/69O7/ + +/Xw//vz6//67uP/+u3e/9DBtP93eXr/ysrK/+rr6//3+Pj/9/j4//f4+P/3+Pj/9/f3/wAAAGAAAAAg + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1tbW//v7+//7+/v/7e7u/3p8ff/r3c7/++7i//vt4f/78Ob/ + +/Pt//v48//89e///PPr//zw5//769v/+ubT/6mimv+dnZ7/4ODg//f4+P/3+Pj/9/j4//f4+P/3+Pj/ + AAAAYAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADW1tb/+/v7//v7+//CwsP/qaOZ//ro1//76df/ + ++rb//zu4v/99e///PTs//zz6v/88ef//O/k//zt4P/75tD/2se0/3+AgP/R0dL/+Pj4//j4+P/3+Pj/ + 9/j4//f4+P8AAABgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANbW1v/7/Pz/+/v7/6eoqf/Nva3/ + /OfS//vkz//859X//fHn//306//98uj//PHn//zw5f/87uH//eze//zp1v/v1rz/jYqI/7i5uv/4+fn/ + +Pj4//j4+P/3+Pj/9/j4/wAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1tbW//v8/P/6+/v/ + oKKl/9zHtP/848n//ODH//zkzv/96tr//fHn//3y6f/98Ob//e/i//3u4P/97N3//eva//rXuf+ZlI// + vL2///j5+f/4+fn/+Pj4//j4+P/3+Pj/AAAAYAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADW1tb/ + /Pz8//v7+/+go6X/0r+u//3fw//93MD//eHI//zkzv/85dD//ejV//3t4P/98OT//u/j//3t3v/97t7/ + 8tO2/5mVkP/Gxsf/+Pn5//j5+f/4+fn/+Pn5//j4+P8AAABgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAANbW1v/8/Pz/+/v7/6+xs/+zqJj/+9zA//3auv/94cn//vPo//3l0f/94sr//eHK//3fxv/95M3/ + /ebT//3p1P/eybP/oKCf/9PT1P/5+fn/+Pn5//j5+f/4+fn/+Pn5/wAAAGAAAAAgAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA1tbW//z8/P/8/Pz/zc7Q/4+Khf/r0LX//dq4//7fxP/+8+r//vLo//7v4v/+6tj/ + /ePM//3iyf/938T//d7A/7ytnf+oqqr/6+zs//n5+f/5+fn/+Pn5//j5+f/4+fn/AAAAYAAAACAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADW1tb//P39//z8/P/n5+j/rKyt/7aolv/51rb//d7A//7x5//+8eX/ + /vDl//7x5f/+8OX//vDj//7w3//jzrn/kpCO/97f3//3+Pj/+fr6//n5+f/5+fn/+fn5//j5+f8AAABg + AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANbW1v/9/f3//P39//r6+v/i4uL/iYeE/8Krlv/02Lv/ + /vDe//737P/+9er//vXp//716v/+8uL/5NG+/5mSjv+2t7j/+vr6//r6+v/5+vr/+fr6//n6+v/5+fn/ + +fn5/wAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1tbW//39/f/9/f3//P39//z8/P/j4+T/ + kY+O/6ibjv/Qv6v/59nK/+/h0//r3c7/3c2+/7eqnf+UkY7/u7u9//r7+//6+vr/+vr6//r6+v/5+vr/ + +fr6//n6+v/5+fn/AAAAYAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADW1tb//f39//39/f/9/f3/ + /P39//z8/P/u7u7/sLCx/5iVkv+TjIX/m5WO/5uVkf+Uko//p6en/+Dg4P/7+/v/+vv7//r7+//6+vr/ + +vr6//r6+v/5+vr/+fr6//n6+v8AAABgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANbW1v/9/f3/ + /f39//39/f/9/f3//P39//z9/f/8/Pz//Pz8//z8/P/8/Pz//Pz8//v8/P/7+/v/+/v7//v7+//7+/v/ + +vv7//r7+//6+vr/+vr6//r6+v/5+vr/1NTU/wAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 1tbW//39/f/9/f3//f39//39/f/9/f3//f39//z9/f/8/Pz//Pz8//z8/P/8/Pz//Pz8//v8/P/7/Pz/ + +/v7//v7+//7+/v/+vv7//r7+//W1tb/zs7O/7+/v/+4uLj/AAAAVQAAABsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADW1tb//f39//39/f/9/f3//f39//39/f/9/f3//f39//z9/f/8/Pz//Pz8//z8/P/8/Pz/ + /Pz8//v8/P/7/Pz/+/v7//v7+/+ysrL/q6ur/6mpqf+pqan/r6+v/7i4uP4AAAA3AAAADgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAANbW1v/+/v7//f39//39/f/9/f3//f39//39/f/9/f3//f39//z9/f/8/Pz/ + /Pz8//z8/P/8/Pz//Pz8//v8/P/7/Pz/+/v7/8bGxv/19fX/9PT0/+Pj4/+8vLz+ZGRkhAAAABQAAAAD + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1tbW//7+/v/+/v7//f7+//39/f/9/f3//f39//39/f/9/f3/ + /f39//z9/f/8/f3//Pz8//z8/P/8/Pz//Pz8//z8/P/7/Pz/zs7O//r6+v/r6+v/ysrK/m1tbX8AAAAX + AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADW1tb//v7+//7+/v/+/v7//f7+//39/f/9/f3/ + /f39//39/f/9/f3//f39//39/f/8/f3//Pz8//z8/P/8/Pz//Pz8//z8/P/Nzc3/5OTk/8nJyf5oaGh/ + AAAAFwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANbW1v/+/v7//v7+//7+/v/+/v7/ + /f7+//39/f/9/f3//f39//39/f/9/f3//f39//39/f/8/f3//Pz8//z8/P/8/Pz/6urq/8PDw//Hx8f+ + ZWVlfgAAABcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1tbW//7+/v/+/v7/ + /v7+//7+/v/+/v7//v7+//39/f/9/f3//f39//39/f/9/f3//f39//39/f/8/f3//Pz8//z8/P/c3Nz/ + v7+//mtra4IAAAAZAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADW1tb/ + 1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/ + 1tbW/8zMzPiCgoJvAAAAEgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAeAAAAH + gAAAB4AAAAfAAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH + 4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAA/gAAAf4AAAP+AAAH/gAAD/ + KAAAABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6enr/enp6/3p6ev96enr/ + enp6/3p6ev96enr/enp6/3p6ev96enr/enp6/3p6ev96enr/AAAAAAAAAACnoqVUYWFh/8HBw//x8fP/ + 8fLz//Ly9P/z8/T/8/T1//T19v/19ff/9vb3//f3+P/3+Pn/hoaG/wAAAAAAAAAAp6Kly+Lf4v9ra23/ + 6uvs//Ly9P/z8/X/8/T1//T19v/19ff/9vb3//f3+P/3+Pn/+Pn6/5CQkP8AAAAAAAAAAAAAAACZlpj/ + 4uDi/3Fxcf/z8/X/9PT1//Lz9P/19ff/9vb3//f3+P/4+Pn/+Pn6//n6+v+dnZ3/AAAAAAAAAAAAAAAA + rKys/8C8v/+tq6v/fn9//6uusP+kpKT/paOl/+Pk5f/4+Pn/+Pn6//n6+v/6+/v/rKys/wAAAAAAAAAA + AAAAAK2trf/y8vT/srCy/7+ypf/o4Nb/+Pn2/+LYyf+im5X/5OTk//n6+//6+/v/+/v8/62trf8AAAAA + AAAAAAAAAACxsbH/9PT2/6ilov/t2MD/+fDk//r49P/7+e7/5dS9/6SkpP/6+/v/+/z8//v8/P+xsbH/ + AAAAAAAAAAAAAAAAs7Oz//T09f+rpJ3/+eTJ//vo1//88OX//fPp//3u1v+spJ3/+/z8//v8/f/8/f3/ + s7Oz/wAAAAAAAAAAAAAAALW1tf/29vf/sKqj/+PHpv/97dn//ebT//3r1f/m0bf/uri3//z8/f/8/f3/ + /f7+/7W1tf8AAAAAAAAAAAAAAAC4uLj/9vf4/8/Q0//Lr5L/5tjE////9v/p3sr/t6uf/+zs7f/8/f3/ + /f7+//3+/v+4uLj/AAAAAAAAAAAAAAAAurq6//f4+f/4+fr/wsTF/7Wpnv+8tK3/sa2o/93e3//8/f3/ + /P39//3+/v/9/v7/uLi4/wAAAAAAAAAAAAAAALy8vP/4+fr/+fr6//r6+//6+/z/+/z8//z9/f/8/f3/ + /f7+//3+/v/l5eb/39/g/7q6uv8AAAAAAAAAAAAAAAC9vb3/+fr6//r7+//7+/z/+/z8//z9/f/8/f3/ + /f7+//3+/v+6urr/uLi4/7i4uP+6urr/AAAAAAAAAAAAAAAAv7+///r7+//7+/z/+/z8//z9/f/8/f3/ + /f7+//3+/v/9/v7/xcXF//b29v+6urr53d3dXwAAAAAAAAAAAAAAAMDAwP/7+/z/+/z8//z9/f/8/f3/ + /f7+//3+/v/7/Pz//f7+/8rKyv+6urr94+XiaQAAAAAAAAAAAAAAAAAAAADAwMD/wMDA/8DAwP/AwMD/ + wMDA/8DAwP/AwMD/wMDA/8DAwP+/v7/89fX1eQAAAAAAAAAAAAAAAAAAAACAAwAAAAMAAAADAACAAwAA + gAMAAIADAACAAwAAgAMAAIADAACAAwAAgAMAAIADAACAAwAAgAMAAIAHAACADwAA + + + \ No newline at end of file diff --git a/app/DD-Record-Organizer/frmDocSearchResult.vb b/app/DD-Record-Organizer/frmDocSearchResult.vb new file mode 100644 index 0000000..c866042 --- /dev/null +++ b/app/DD-Record-Organizer/frmDocSearchResult.vb @@ -0,0 +1,224 @@ +Imports System.IO +Imports System.Runtime.InteropServices +Imports System.Text +Imports DevExpress.XtraGrid.Views.Base + +Public Class frmDocSearchResult + + Public Shared Function ShellExecuteEx(ByRef lpExecInfo As SHELLEXECUTEINFO) As Boolean + End Function + Public Structure SHELLEXECUTEINFO + Public cbSize As Integer + Public fMask As Integer + Public hwnd As IntPtr + Public lpVerb As String + Public lpFile As String + Public lpParameters As String + Public lpDirectory As String + Dim nShow As Integer + Dim hInstApp As IntPtr + Dim lpIDList As IntPtr + Public lpClass As String + Public hkeyClass As IntPtr + Public dwHotKey As Integer + Public hIcon As IntPtr + Public hProcess As IntPtr + End Structure + Private Const SEE_MASK_INVOKEIDLIST = &HC + Private Const SEE_MASK_NOCLOSEPROCESS = &H40 + Private Const SEE_MASK_FLAG_NO_UI = &H400 + Public Const SW_SHOW As Short = 5 + Public Sub LoadDocSearch() + Try + Cursor = Cursors.WaitCursor + + Dim DTRESULT As DataTable = ClassDatabase.Return_Datatable(CURRENT_DOCSEARCH_SQL, True) + GridControlDocSearch.DataSource = Nothing + GridViewDoc_Search.Columns.Clear() + GridControlDocSearch.DataSource = DTRESULT + GridViewDoc_Search.BestFitColumns(True) + ToolStripLabelCaption.Text = $"{CURRENT_DOCSEARCH_CAPTION} ({DTRESULT.Rows.Count} rows)" + Load_DocGrid_Layout() + Catch ex As Exception + ClassLogger.Add("Unexpected Error in LoadDocSearch: " & ex.Message) + End Try + Cursor = Cursors.Default + + End Sub + Private Sub GridViewDoc_Search_FocusedColumnChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedColumnChangedEventArgs) Handles GridViewDoc_Search.FocusedColumnChanged + If GridViewDoc_Search.RowCount > 0 Then + ClassWindreamDocGrid.GetDocItems(GridViewDoc_Search) + Refresh_DocID() + End If + + End Sub + + Private Sub GridViewDoc_Search_FocusedRowChanged(sender As Object, e As FocusedRowChangedEventArgs) Handles GridViewDoc_Search.FocusedRowChanged + If GridViewDoc_Search.RowCount > 0 Then + ClassWindreamDocGrid.GetDocItems(GridViewDoc_Search) + Refresh_DocID() + End If + End Sub + Sub Refresh_DocID() + If ClassWindreamDocGrid.SELECTED_DOC_ID <> 0 Then + Dim msg = "Doc-ID: " & ClassWindreamDocGrid.SELECTED_DOC_ID.ToString + tslblDocID.Text = msg + + Else + tslblDocID.Text = "DocRow not selected" + + End If + End Sub + Sub Open_File() + Me.Cursor = Cursors.WaitCursor + Dim allow_Open As Boolean = False + ClassWindreamDocGrid.GetDocItems(GridViewDoc_Search) + Dim Result = ClassDOC_SEARCH.Get_File_Rights(ClassWindreamDocGrid.SELECTED_DOC_ID) + If Not IsNothing(Result) Then + Select Case Result.ToString + Case "R" + + allow_Open = True + Case "RW" + allow_Open = True + Case "RWA" + allow_Open = True + End Select + End If + If allow_Open = True Then + If IsNothing(ClassWindreamDocGrid.DT_RESULTFILES) Then + MsgBox("Could not read File Parameters(5)!", MsgBoxStyle.Exclamation) + Exit Sub + End If + For Each row As DataRow In ClassWindreamDocGrid.DT_RESULTFILES.Rows + ClassHelper.File_open(row.Item("DOC_PATH"), row.Item("DOC_ID")) + If CURRENT_OFFICE_FILE_CHANGED = True Then LoadDocSearch() + Next + Else + ClassHelper.MSGBOX_Handler("ERROR", "", "File does not exist! Please contact your admin!") + End If + Me.Cursor = Cursors.Default + End Sub + + Private Sub docCM_Open_Click(sender As Object, e As EventArgs) Handles docCM_Open.Click + Open_File() + End Sub + + Private Sub OrdnerÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OrdnerÖffnenToolStripMenuItem.Click + If IsNothing(ClassWindreamDocGrid.DT_RESULTFILES) Then + MsgBox("Could not read File Parameters(5)!", MsgBoxStyle.Exclamation) + Exit Sub + End If + For Each row As DataRow In ClassWindreamDocGrid.DT_RESULTFILES.Rows + ClassHelper.Open_Folder(row.Item("DOC_PATH"), row.Item("DOC_ID")) + Next + End Sub + + Private Sub docCM_Copy_Click(sender As Object, e As EventArgs) Handles docCM_Copy.Click + If ClassWindreamDocGrid.SELECTED_DOC_PATH <> "" Then + Try + Dim selectedfile(0) As String + selectedfile(0) = ClassWindreamDocGrid.SELECTED_DOC_PATH + Dim dataobj As New DataObject + dataobj.SetData(DataFormats.FileDrop, True, selectedfile) + + Clipboard.Clear() + Clipboard.SetDataObject(dataobj, True) + Catch ex As Exception + ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Copy file:", ex.Message) + End Try + Cursor = Cursors.Default + End If + End Sub + + Private Sub docCM_Showlinks_Click(sender As Object, e As EventArgs) Handles docCM_Showlinks.Click + Try + ClassWindreamDocGrid.GetDocItems(GridViewDoc_Search) + If IsNothing(ClassWindreamDocGrid.DT_RESULTFILES) Then + MsgBox("Could not read File Parameters (LinkRecord)!", MsgBoxStyle.Exclamation) + Exit Sub + End If + + Dim frm As New frmDoc_Links + frm.Show() + frm.BringToFront() + Catch ex As Exception + MsgBox("Unexpected Error in Showing DocLinks: " & ex.Message, MsgBoxStyle.Critical) + End Try + End Sub + + Private Sub docCM_PropertiesFile_Click(sender As Object, e As EventArgs) Handles docCM_PropertiesFile.Click + + End Sub + Sub Show_File_Properties() + If IsNothing(ClassWindreamDocGrid.DT_RESULTFILES) Then + MsgBox("Could not read File Parameters(4)!", MsgBoxStyle.Exclamation) + Exit Sub + End If + For Each row As DataRow In ClassWindreamDocGrid.DT_RESULTFILES.Rows + If row.Item("DOC_PATH") <> "" Then + Cursor = Cursors.WaitCursor + Dim sei As New SHELLEXECUTEINFO + sei.cbSize = Marshal.SizeOf(sei) + sei.lpVerb = "properties" + sei.lpFile = row.Item("DOC_PATH") + sei.nShow = SW_SHOW + sei.fMask = SEE_MASK_INVOKEIDLIST + If Not ShellExecuteEx(sei) Then + Dim ex As New System.ComponentModel.Win32Exception(System.Runtime.InteropServices.Marshal.GetLastWin32Error()) + ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Open file propertys:", ex.Message) + End If + End If + Cursor = Cursors.Default + Next + End Sub + + Private Sub frmDocSearchResult_Load(sender As Object, e As EventArgs) Handles Me.Load + LoadDocSearch() + Me.Text = CURRENT_DOCSEARCH_CAPTION + End Sub + Sub Save_DocGrid_Layout() + Try + Dim XMLPath = Get_DocGrid_Layout_Filename() + GridViewDoc_Search.SaveLayoutToXml(XMLPath) + ' Update_Status_Label(True, "Grid Layout Loaded") + Catch ex As Exception + ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace) + End Try + End Sub + Sub Load_DocGrid_Layout() + Try + + Dim XMLPath = Get_DocGrid_Layout_Filename() + If File.Exists(XMLPath) Then + GridViewDoc_Search.RestoreLayoutFromXml(XMLPath) + GridViewDoc_Search.GuessAutoFilterRowValuesFromFilter() + End If + + Catch ex As Exception + ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, ex.StackTrace) + End Try + End Sub + Private Function Get_DocGrid_Layout_Filename() + Dim Filename As String = String.Format("GridViewDocSearchSW-{0}-UserLayout.xml", CURRENT_ENTITY_ID) + LAYOUT_DOC_GRIDVIEW = System.IO.Path.Combine(Application.UserAppDataPath(), Filename) + Return LAYOUT_DOC_GRIDVIEW + End Function + + Private Sub frmDocSearchResult_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing + Save_DocGrid_Layout() + End Sub + + Private Sub GridControlDocSearch_DoubleClick(sender As Object, e As EventArgs) Handles GridControlDocSearch.DoubleClick + ClassWindreamDocGrid.GetDocItems(GridViewDoc_Search) + Refresh_DocID() + End Sub + + Private Sub GridViewDoc_Search_ColumnFilterChanged(sender As Object, e As EventArgs) Handles GridViewDoc_Search.ColumnFilterChanged + ToolStripLabelCaption.Text = $"{CURRENT_DOCSEARCH_CAPTION} ({GridViewDoc_Search.RowCount} rows [filtered])" + End Sub + + Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click + LoadDocSearch() + End Sub +End Class \ No newline at end of file diff --git a/app/DD-Record-Organizer/frmDoctype_NameConvention.resx b/app/DD-Record-Organizer/frmDoctype_NameConvention.resx index 1dbfe66..2610a13 100644 --- a/app/DD-Record-Organizer/frmDoctype_NameConvention.resx +++ b/app/DD-Record-Organizer/frmDoctype_NameConvention.resx @@ -765,7 +765,7 @@ Löschen - Cyan + LightBlue 1 diff --git a/app/DD-Record-Organizer/frmFileInWork.vb b/app/DD-Record-Organizer/frmFileInWork.vb index 1dfc577..0175da6 100644 --- a/app/DD-Record-Organizer/frmFileInWork.vb +++ b/app/DD-Record-Organizer/frmFileInWork.vb @@ -22,4 +22,8 @@ MsgBox("Unexpected Error 2 in Setting to work - Check logfile", MsgBoxStyle.Exclamation) End Try End Sub + + Private Sub frmFileInWork_Load(sender As Object, e As EventArgs) Handles Me.Load + txtComment.Text = String.Empty + End Sub End Class \ No newline at end of file diff --git a/app/DD-Record-Organizer/frmFollowUp.resx b/app/DD-Record-Organizer/frmFollowUp.resx index 49bf54e..6233404 100644 --- a/app/DD-Record-Organizer/frmFollowUp.resx +++ b/app/DD-Record-Organizer/frmFollowUp.resx @@ -1006,7 +1006,7 @@ 534, 39 - Cyan + LightBlue Fuchsia @@ -1069,7 +1069,7 @@ 10, 18 - Cyan + LightBlue Fuchsia @@ -2478,7 +2478,7 @@ 0, 0 - Cyan + LightBlue 1109, 739 diff --git a/app/DD-Record-Organizer/frmGlobalSearch.Designer.vb b/app/DD-Record-Organizer/frmGlobalSearch.Designer.vb index 7e73d69..60b0fbb 100644 --- a/app/DD-Record-Organizer/frmGlobalSearch.Designer.vb +++ b/app/DD-Record-Organizer/frmGlobalSearch.Designer.vb @@ -67,64 +67,47 @@ Partial Class frmGlobalSearch ' 'SplitContainerMain ' - resources.ApplyResources(Me.SplitContainerMain, "SplitContainerMain") Me.SplitContainerMain.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2 + resources.ApplyResources(Me.SplitContainerMain, "SplitContainerMain") Me.SplitContainerMain.Name = "SplitContainerMain" - resources.ApplyResources(Me.SplitContainerMain.Panel1, "SplitContainerMain.Panel1") Me.SplitContainerMain.Panel1.Controls.Add(Me.GridControlRecords) Me.SplitContainerMain.Panel1.Controls.Add(Me.ToolStripRecords) - resources.ApplyResources(Me.SplitContainerMain.Panel2, "SplitContainerMain.Panel2") + resources.ApplyResources(Me.SplitContainerMain.Panel1, "SplitContainerMain.Panel1") Me.SplitContainerMain.Panel2.Controls.Add(Me.GridControlFiles) Me.SplitContainerMain.Panel2.Controls.Add(Me.ToolStripDokumente) + resources.ApplyResources(Me.SplitContainerMain.Panel2, "SplitContainerMain.Panel2") Me.SplitContainerMain.SplitterPosition = 751 ' 'GridControlRecords ' - resources.ApplyResources(Me.GridControlRecords, "GridControlRecords") Me.GridControlRecords.ContextMenuStrip = Me.cmsRecords - Me.GridControlRecords.EmbeddedNavigator.AccessibleDescription = resources.GetString("GridControlRecords.EmbeddedNavigator.AccessibleDescription") - Me.GridControlRecords.EmbeddedNavigator.AccessibleName = resources.GetString("GridControlRecords.EmbeddedNavigator.AccessibleName") - Me.GridControlRecords.EmbeddedNavigator.AllowHtmlTextInToolTip = CType(resources.GetObject("GridControlRecords.EmbeddedNavigator.AllowHtmlTextInToolTip"), DevExpress.Utils.DefaultBoolean) - Me.GridControlRecords.EmbeddedNavigator.Anchor = CType(resources.GetObject("GridControlRecords.EmbeddedNavigator.Anchor"), System.Windows.Forms.AnchorStyles) - Me.GridControlRecords.EmbeddedNavigator.BackgroundImage = CType(resources.GetObject("GridControlRecords.EmbeddedNavigator.BackgroundImage"), System.Drawing.Image) - Me.GridControlRecords.EmbeddedNavigator.BackgroundImageLayout = CType(resources.GetObject("GridControlRecords.EmbeddedNavigator.BackgroundImageLayout"), System.Windows.Forms.ImageLayout) - Me.GridControlRecords.EmbeddedNavigator.ImeMode = CType(resources.GetObject("GridControlRecords.EmbeddedNavigator.ImeMode"), System.Windows.Forms.ImeMode) - Me.GridControlRecords.EmbeddedNavigator.MaximumSize = CType(resources.GetObject("GridControlRecords.EmbeddedNavigator.MaximumSize"), System.Drawing.Size) - Me.GridControlRecords.EmbeddedNavigator.TextLocation = CType(resources.GetObject("GridControlRecords.EmbeddedNavigator.TextLocation"), DevExpress.XtraEditors.NavigatorButtonsTextLocation) - Me.GridControlRecords.EmbeddedNavigator.ToolTip = resources.GetString("GridControlRecords.EmbeddedNavigator.ToolTip") - Me.GridControlRecords.EmbeddedNavigator.ToolTipIconType = CType(resources.GetObject("GridControlRecords.EmbeddedNavigator.ToolTipIconType"), DevExpress.Utils.ToolTipIconType) - Me.GridControlRecords.EmbeddedNavigator.ToolTipTitle = resources.GetString("GridControlRecords.EmbeddedNavigator.ToolTipTitle") + resources.ApplyResources(Me.GridControlRecords, "GridControlRecords") Me.GridControlRecords.MainView = Me.GridViewRecords Me.GridControlRecords.Name = "GridControlRecords" Me.GridControlRecords.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewRecords}) ' 'cmsRecords ' - resources.ApplyResources(Me.cmsRecords, "cmsRecords") Me.cmsRecords.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ExportExcelToolStripMenuItem, Me.ShowRecordToolStripMenuItem}) Me.cmsRecords.Name = "cmsRecords" + resources.ApplyResources(Me.cmsRecords, "cmsRecords") ' 'ExportExcelToolStripMenuItem ' - resources.ApplyResources(Me.ExportExcelToolStripMenuItem, "ExportExcelToolStripMenuItem") Me.ExportExcelToolStripMenuItem.Image = Global.DD_Record_Organizer.My.Resources.Resources.Excel_25ixel Me.ExportExcelToolStripMenuItem.Name = "ExportExcelToolStripMenuItem" + resources.ApplyResources(Me.ExportExcelToolStripMenuItem, "ExportExcelToolStripMenuItem") ' 'ShowRecordToolStripMenuItem ' - resources.ApplyResources(Me.ShowRecordToolStripMenuItem, "ShowRecordToolStripMenuItem") Me.ShowRecordToolStripMenuItem.Image = Global.DD_Record_Organizer.My.Resources.Resources.application_view_detail Me.ShowRecordToolStripMenuItem.Name = "ShowRecordToolStripMenuItem" + resources.ApplyResources(Me.ShowRecordToolStripMenuItem, "ShowRecordToolStripMenuItem") ' 'GridViewRecords ' Me.GridViewRecords.Appearance.EvenRow.BackColor = CType(resources.GetObject("GridViewRecords.Appearance.EvenRow.BackColor"), System.Drawing.Color) - Me.GridViewRecords.Appearance.EvenRow.FontSizeDelta = CType(resources.GetObject("GridViewRecords.Appearance.EvenRow.FontSizeDelta"), Integer) - Me.GridViewRecords.Appearance.EvenRow.FontStyleDelta = CType(resources.GetObject("GridViewRecords.Appearance.EvenRow.FontStyleDelta"), System.Drawing.FontStyle) - Me.GridViewRecords.Appearance.EvenRow.GradientMode = CType(resources.GetObject("GridViewRecords.Appearance.EvenRow.GradientMode"), System.Drawing.Drawing2D.LinearGradientMode) - Me.GridViewRecords.Appearance.EvenRow.Image = CType(resources.GetObject("GridViewRecords.Appearance.EvenRow.Image"), System.Drawing.Image) Me.GridViewRecords.Appearance.EvenRow.Options.UseBackColor = True - resources.ApplyResources(Me.GridViewRecords, "GridViewRecords") Me.GridViewRecords.GridControl = Me.GridControlRecords Me.GridViewRecords.Name = "GridViewRecords" Me.GridViewRecords.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.[False] @@ -141,47 +124,35 @@ Partial Class frmGlobalSearch ' 'ToolStripRecords ' - resources.ApplyResources(Me.ToolStripRecords, "ToolStripRecords") Me.ToolStripRecords.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tslblRecordsResult, Me.ToolStripSeparator1, Me.ToolStripButton1, Me.tsbtnviewDetail}) + resources.ApplyResources(Me.ToolStripRecords, "ToolStripRecords") Me.ToolStripRecords.Name = "ToolStripRecords" ' 'tslblRecordsResult ' - resources.ApplyResources(Me.tslblRecordsResult, "tslblRecordsResult") Me.tslblRecordsResult.Name = "tslblRecordsResult" + resources.ApplyResources(Me.tslblRecordsResult, "tslblRecordsResult") ' 'ToolStripSeparator1 ' - resources.ApplyResources(Me.ToolStripSeparator1, "ToolStripSeparator1") Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + resources.ApplyResources(Me.ToolStripSeparator1, "ToolStripSeparator1") ' 'ToolStripButton1 ' - resources.ApplyResources(Me.ToolStripButton1, "ToolStripButton1") Me.ToolStripButton1.Image = Global.DD_Record_Organizer.My.Resources.Resources.Excel_25ixel + resources.ApplyResources(Me.ToolStripButton1, "ToolStripButton1") Me.ToolStripButton1.Name = "ToolStripButton1" ' 'tsbtnviewDetail ' - resources.ApplyResources(Me.tsbtnviewDetail, "tsbtnviewDetail") Me.tsbtnviewDetail.Image = Global.DD_Record_Organizer.My.Resources.Resources.application_view_detail + resources.ApplyResources(Me.tsbtnviewDetail, "tsbtnviewDetail") Me.tsbtnviewDetail.Name = "tsbtnviewDetail" ' 'GridControlFiles ' resources.ApplyResources(Me.GridControlFiles, "GridControlFiles") - Me.GridControlFiles.EmbeddedNavigator.AccessibleDescription = resources.GetString("GridControlFiles.EmbeddedNavigator.AccessibleDescription") - Me.GridControlFiles.EmbeddedNavigator.AccessibleName = resources.GetString("GridControlFiles.EmbeddedNavigator.AccessibleName") - Me.GridControlFiles.EmbeddedNavigator.AllowHtmlTextInToolTip = CType(resources.GetObject("GridControlFiles.EmbeddedNavigator.AllowHtmlTextInToolTip"), DevExpress.Utils.DefaultBoolean) - Me.GridControlFiles.EmbeddedNavigator.Anchor = CType(resources.GetObject("GridControlFiles.EmbeddedNavigator.Anchor"), System.Windows.Forms.AnchorStyles) - Me.GridControlFiles.EmbeddedNavigator.BackgroundImage = CType(resources.GetObject("GridControlFiles.EmbeddedNavigator.BackgroundImage"), System.Drawing.Image) - Me.GridControlFiles.EmbeddedNavigator.BackgroundImageLayout = CType(resources.GetObject("GridControlFiles.EmbeddedNavigator.BackgroundImageLayout"), System.Windows.Forms.ImageLayout) - Me.GridControlFiles.EmbeddedNavigator.ImeMode = CType(resources.GetObject("GridControlFiles.EmbeddedNavigator.ImeMode"), System.Windows.Forms.ImeMode) - Me.GridControlFiles.EmbeddedNavigator.MaximumSize = CType(resources.GetObject("GridControlFiles.EmbeddedNavigator.MaximumSize"), System.Drawing.Size) - Me.GridControlFiles.EmbeddedNavigator.TextLocation = CType(resources.GetObject("GridControlFiles.EmbeddedNavigator.TextLocation"), DevExpress.XtraEditors.NavigatorButtonsTextLocation) - Me.GridControlFiles.EmbeddedNavigator.ToolTip = resources.GetString("GridControlFiles.EmbeddedNavigator.ToolTip") - Me.GridControlFiles.EmbeddedNavigator.ToolTipIconType = CType(resources.GetObject("GridControlFiles.EmbeddedNavigator.ToolTipIconType"), DevExpress.Utils.ToolTipIconType) - Me.GridControlFiles.EmbeddedNavigator.ToolTipTitle = resources.GetString("GridControlFiles.EmbeddedNavigator.ToolTipTitle") Me.GridControlFiles.MainView = Me.GridViewFiles Me.GridControlFiles.Name = "GridControlFiles" Me.GridControlFiles.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewFiles}) @@ -189,12 +160,7 @@ Partial Class frmGlobalSearch 'GridViewFiles ' Me.GridViewFiles.Appearance.EvenRow.BackColor = CType(resources.GetObject("GridViewFiles.Appearance.EvenRow.BackColor"), System.Drawing.Color) - Me.GridViewFiles.Appearance.EvenRow.FontSizeDelta = CType(resources.GetObject("GridViewFiles.Appearance.EvenRow.FontSizeDelta"), Integer) - Me.GridViewFiles.Appearance.EvenRow.FontStyleDelta = CType(resources.GetObject("GridViewFiles.Appearance.EvenRow.FontStyleDelta"), System.Drawing.FontStyle) - Me.GridViewFiles.Appearance.EvenRow.GradientMode = CType(resources.GetObject("GridViewFiles.Appearance.EvenRow.GradientMode"), System.Drawing.Drawing2D.LinearGradientMode) - Me.GridViewFiles.Appearance.EvenRow.Image = CType(resources.GetObject("GridViewFiles.Appearance.EvenRow.Image"), System.Drawing.Image) Me.GridViewFiles.Appearance.EvenRow.Options.UseBackColor = True - resources.ApplyResources(Me.GridViewFiles, "GridViewFiles") Me.GridViewFiles.GridControl = Me.GridControlFiles Me.GridViewFiles.Name = "GridViewFiles" Me.GridViewFiles.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.[False] @@ -211,8 +177,8 @@ Partial Class frmGlobalSearch ' 'ToolStripDokumente ' - resources.ApplyResources(Me.ToolStripDokumente, "ToolStripDokumente") Me.ToolStripDokumente.AllowDrop = True + resources.ApplyResources(Me.ToolStripDokumente, "ToolStripDokumente") Me.ToolStripDokumente.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tslblDocView, Me.ToolStripButton2}) Me.ToolStripDokumente.Name = "ToolStripDokumente" ' @@ -223,9 +189,9 @@ Partial Class frmGlobalSearch ' 'ToolStripButton2 ' - resources.ApplyResources(Me.ToolStripButton2, "ToolStripButton2") Me.ToolStripButton2.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right Me.ToolStripButton2.Image = Global.DD_Record_Organizer.My.Resources.Resources.Excel_25ixel + resources.ApplyResources(Me.ToolStripButton2, "ToolStripButton2") Me.ToolStripButton2.Name = "ToolStripButton2" ' 'ToolStripMain @@ -236,8 +202,8 @@ Partial Class frmGlobalSearch ' 'tsbtnRefresh ' - resources.ApplyResources(Me.tsbtnRefresh, "tsbtnRefresh") Me.tsbtnRefresh.Image = Global.DD_Record_Organizer.My.Resources.Resources.refresh_16xLG + resources.ApplyResources(Me.tsbtnRefresh, "tsbtnRefresh") Me.tsbtnRefresh.Name = "tsbtnRefresh" ' 'Label1 @@ -272,13 +238,13 @@ Partial Class frmGlobalSearch ' 'Panel1 ' - resources.ApplyResources(Me.Panel1, "Panel1") Me.Panel1.Controls.Add(Me.txtSearch) Me.Panel1.Controls.Add(Me.Label2) Me.Panel1.Controls.Add(Me.GroupBox1) Me.Panel1.Controls.Add(Me.Label1) Me.Panel1.Controls.Add(Me.ToolStripMain) Me.Panel1.Controls.Add(Me.Label3) + resources.ApplyResources(Me.Panel1, "Panel1") Me.Panel1.Name = "Panel1" ' 'txtSearch @@ -293,10 +259,10 @@ Partial Class frmGlobalSearch ' 'GroupBox1 ' - resources.ApplyResources(Me.GroupBox1, "GroupBox1") Me.GroupBox1.Controls.Add(Me.rbSearchRecord) Me.GroupBox1.Controls.Add(Me.rbSearchFulltext) Me.GroupBox1.Controls.Add(Me.rbSearchCombined) + resources.ApplyResources(Me.GroupBox1, "GroupBox1") Me.GroupBox1.Name = "GroupBox1" Me.GroupBox1.TabStop = False ' diff --git a/app/DD-Record-Organizer/frmGlobalSearch.resx b/app/DD-Record-Organizer/frmGlobalSearch.resx index ada91a9..af2d6cd 100644 --- a/app/DD-Record-Organizer/frmGlobalSearch.resx +++ b/app/DD-Record-Organizer/frmGlobalSearch.resx @@ -117,165 +117,507 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 0 - - - Tile - - - 0 + + Fill - - Orange + + 0, 117 - - Panel1 + + 454, 17 + + + 143, 22 - - Regular + + Export Excel - - GroupBox1 - - - 1 - - - tslblRecordsResult - - - DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v15.2, Version=15.2.9.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 95, 22 - - - 4 - - - GridControlRecords - - - 423, 43 - - - 0 - - - GridViewRecords - - - ToolStripMain - - - - - - Bottom - - - 1 - - - SplitContainerMain - - - ToolStripButton2 - - - 1 - - - 144, 48 - - - tsbtnRefresh - - - 0 - - - Nur in Volltext der Dateien suchen - - - System.Windows.Forms.ToolStripLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Magenta - - - rbSearchRecord - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 1426, 547 - - - 8 - - - Tahoma, 9pt - - - 6, 25 - - - 2 - - - Tahoma, 8.25pt - - - 12, 11 - - - Search all over - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - cmsRecords - - - 751, 25 - - - 0 - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Horizontal - - - Label1 - - - 7 - - - Magenta - - - GridControlFiles + + 143, 22 Show Record + + 144, 48 + + + cmsRecords + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Fill + + + 0, 25 + + + Aqua + + + 751, 313 + + + + 0 + + + GridControlRecords + + + DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + SplitContainerMain.Panel1 + + + 0 + + + 145, 17 + + + 93, 22 + + + 0 Records found + + + 6, 25 + + + Magenta + + + 60, 22 + + + Export + + + Magenta + + + 95, 22 + + + Detailansicht + + + 0, 0 + + + 751, 25 + + + 0 + + + ToolStrip2 + + + ToolStripRecords + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SplitContainerMain.Panel1 + + + 1 + + + Panel1 + + + Fill + + + 0, 25 + + + Orange + + + 406, 313 + + + 4 + + + GridControlFiles + + + DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + SplitContainerMain.Panel2 + + + 0 + + + 289, 17 + + + Tahoma, 9pt + + + Segoe UI, 8.25pt, style=Bold, Italic + + + 126, 22 + + + Windream-Dokumente + + + Magenta + + + 63, 22 + + + Export + + + 0, 0 + + + 406, 25 + + + 3 + + + ToolStrip2 + + + ToolStripDokumente + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + SplitContainerMain.Panel2 + + + 1 + + + Panel2 + + + 1169, 338 + + + 8 + + + SplitContainerControl1 + + + SplitContainerMain + + + DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + $this + + + 1 + + + 17, 17 + + + Bottom + + + Magenta + + + 92, 22 + + + Starte Suche + + + 0, 92 + + + 1169, 25 + + + 1 + + + ToolStrip1 + + + ToolStripMain + + + System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel1 + + + 4 + + + True + + + Tahoma, 8.25pt, style=Italic + + + 12, 11 + + + 504, 13 + + + 1 + + + In diesem Formular können Sie systemweit (in Sichten und/oder Dateien) nach Volltextbegriffen suchen. + + + Label1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel1 + + + 3 + + + True + + + 703, 112 + + + 38, 13 + + + 3 + + + Label3 + + + Label3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel1 + + + 5 + + + True + + + 423, 20 + + + 183, 17 + + + 1 + + + Nur in ADDI-Datensätzen suchen + + + rbSearchRecord + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox1 + + + 0 + + + True + + + 423, 43 + + + 188, 17 + + + 2 + + + Nur in Volltext der Dateien suchen + + + rbSearchFulltext + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox1 + + + 1 + + + True + + + 12, 20 + + + 405, 17 + + + 0 + + + Kombinierte Suche (ADDI-Datensätzen und Dateien - wenn Volltext vorhanden) + + + rbSearchCombined + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + GroupBox1 + + + 2 + + + 15, 50 + + + 501, 21 + + + 0 + + + txtSearch + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel1 + + + 0 + + + True + + + 15, 31 + + + 66, 13 + + + 8 + + + Suchbegriff: + + + Label2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel1 + + + 1 + + + 538, 31 + + + 765, 78 + + + 7 + + + Bitte definieren Sie eine Suchvariante: + + + GroupBox1 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Panel1 + + + 2 + + + Top + + + 0, 0 + + + 1169, 117 + + + 7 + + + Panel1 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + + + True + 6, 13 + + 1169, 455 + + + Tahoma, 8.25pt + AAABAAMAEBAQAAEABAAoAQAANgAAABAQAAABAAgAaAUAAF4BAAAQEAAAAQAgAGgEAADGBgAAKAAAABAA @@ -328,520 +670,79 @@ AADAAQAA4AAAAPAAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPwBAAD+AwAA - - Starte Suche - - - 183, 17 - - - True - - - GridViewFiles - - - 188, 17 - - - True - - - 2 - - - Fill - - - Top - - - Detailansicht - - - Top, Left - - - Inherit - - - - Default - - - 765, 78 - - - 1426, 25 - - - 0 - - - 0 - - - System.Windows.Forms.ToolStripLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 2 - - - - - - Panel1 - - - Kombinierte Suche (ADDI-Datensätzen und Dateien - wenn Volltext vorhanden) - - - GroupBox1 - - - Bitte definieren Sie eine Suchvariante: - - - 1 - - - 1 - - - 66, 13 - - - 3 - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tslblDocView - - - ToolStripRecords - - - 751, 405 - - - Label3 - - - 1 - - - Panel1 - - - 703, 112 - - - 8 - - - 60, 22 - - - Top, Left - - - ToolStripSeparator1 - - - Regular - - - 1426, 117 - - - DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v15.2, Version=15.2.9.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - - Center - - - System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - Horizontal - - - 3 - - - 1 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 63, 22 - - - Fill - - - Panel1 - - - 5 - - - Label2 - - - True - - - rbSearchCombined - - - System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ToolStripDokumente - - - 0, 0 - - - GroupBox1 - - - Tile - - - 0 Records found - - - 0 - - - - - - - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - - - - - - - - 93, 22 - - - Inherit - - - GroupBox1 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Panel1 - - - Panel1 - - - Suchbegriff: - - - 0 - - - 2 - - - 143, 22 - - - Fill - - - 15, 31 - - - Export - - - 12, 20 - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 504, 13 - - - frmGlobalSearch - - - System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - - System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Segoe UI, 8.25pt, style=Bold, Italic - - - 670, 405 - - - In diesem Formular können Sie systemweit (in Sichten und/oder Dateien) nach Volltextbegriffen suchen. - - - ShowRecordToolStripMenuItem - - - 423, 20 - - - - - - $this - - - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.9.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - 1426, 430 - - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 7 - - - - None + + Search all over ExportExcelToolStripMenuItem - - + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 538, 31 + + ShowRecordToolStripMenuItem - - Panel1 + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + GridViewRecords - - 0, 92 + + DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + tslblRecordsResult - - 0, 0 + + System.Windows.Forms.ToolStripLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ToolStripSeparator1 - - Magenta - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tahoma, 8.25pt, style=Italic - - - Label3 - - - 4 + + System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ToolStripButton1 - - 15, 50 - - + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 92, 22 - - - Default - - - Windream-Dokumente - - - 0, 0 - - - 0, 117 - - - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.9.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - - - SplitContainerControl1 - - - 0, 25 - - - True - - - SplitContainerMain.Panel2 - - - $this - - - Magenta - - - 143, 22 - - - ToolStrip1 - - - Export Excel - - - ToolStrip2 - - - 0, 0 - - - rbSearchFulltext - - - SplitContainerMain.Panel2 - - - txtSearch - - - Export - - - 38, 13 - - - 670, 25 - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 405, 17 - - - Center - - - Nur in ADDI-Datensätzen suchen - - - SplitContainerMain.Panel1 - - - Aqua - - - ToolStrip2 - - - Panel1 - - - 0 - - - 501, 21 - - - SplitContainerMain.Panel1 - - - - - - True - - - 126, 22 - - - Panel2 - - - 0, 25 - - - None - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 1 - - - 3 - - - DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v15.2, Version=15.2.9.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - tsbtnviewDetail - - + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 0, 0 + + GridViewFiles + + + DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + tslblDocView + + + System.Windows.Forms.ToolStripLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ToolStripButton2 + + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tsbtnRefresh + + + System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + frmGlobalSearch + + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 17, 17 - - - 145, 17 - - - True - - - 454, 17 - - - 289, 17 - \ No newline at end of file diff --git a/app/DD-Record-Organizer/frmLanguage_Translator.resx b/app/DD-Record-Organizer/frmLanguage_Translator.resx index 41aeca2..9856b61 100644 --- a/app/DD-Record-Organizer/frmLanguage_Translator.resx +++ b/app/DD-Record-Organizer/frmLanguage_Translator.resx @@ -470,7 +470,7 @@ 0, 0 - Cyan + LightBlue 255, 128, 0 diff --git a/app/DD-Record-Organizer/frmLoginUserSelect.Designer.vb b/app/DD-Record-Organizer/frmLoginUserSelect.Designer.vb index dca5747..753532b 100644 --- a/app/DD-Record-Organizer/frmLoginUserSelect.Designer.vb +++ b/app/DD-Record-Organizer/frmLoginUserSelect.Designer.vb @@ -67,7 +67,7 @@ Partial Class frmLoginUserSelect ' Me.GridViewlUsers2Menue.Appearance.ColumnFilterButton.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.GridViewlUsers2Menue.Appearance.ColumnFilterButton.Options.UseFont = True - Me.GridViewlUsers2Menue.Appearance.EvenRow.BackColor = System.Drawing.Color.Cyan + Me.GridViewlUsers2Menue.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue Me.GridViewlUsers2Menue.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewlUsers2Menue.Appearance.FilterPanel.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.GridViewlUsers2Menue.Appearance.FilterPanel.Options.UseFont = True diff --git a/app/DD-Record-Organizer/frmMain.Designer.vb b/app/DD-Record-Organizer/frmMain.Designer.vb index ec7c42c..1a2599c 100644 --- a/app/DD-Record-Organizer/frmMain.Designer.vb +++ b/app/DD-Record-Organizer/frmMain.Designer.vb @@ -100,6 +100,7 @@ Partial Class frmMain Me.BarStaticItem1 = New DevExpress.XtraBars.BarStaticItem() Me.TimerInformation = New System.Windows.Forms.Timer(Me.components) Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.Timer5mins = New System.Windows.Forms.Timer(Me.components) Me.cmsSystray.SuspendLayout() CType(Me.DD_DMSDataSet, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.VWPMO_WF_ACTIVEBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() @@ -723,6 +724,11 @@ Partial Class frmMain Me.ContextMenuStrip1.Name = "ContextMenuStrip1" resources.ApplyResources(Me.ContextMenuStrip1, "ContextMenuStrip1") ' + 'Timer5mins + ' + Me.Timer5mins.Enabled = True + Me.Timer5mins.Interval = 300000 + ' 'frmMain ' Me.Appearance.BackColor = CType(resources.GetObject("frmMain.Appearance.BackColor"), System.Drawing.Color) @@ -823,5 +829,6 @@ Partial Class frmMain Friend WithEvents BarButtonItemSwitchCon As DevExpress.XtraBars.BarButtonItem Friend WithEvents LabelConString As DevExpress.XtraBars.BarStaticItem Friend WithEvents StatusVersionDB As DevExpress.XtraBars.BarStaticItem + Friend WithEvents Timer5mins As Timer End Class diff --git a/app/DD-Record-Organizer/frmMain.resx b/app/DD-Record-Organizer/frmMain.resx index 3acf090..0791eea 100644 --- a/app/DD-Record-Organizer/frmMain.resx +++ b/app/DD-Record-Organizer/frmMain.resx @@ -2728,13 +2728,13 @@ Administration - 1011, 150 + 1019, 150 - 0, 516 + 0, 520 - 1011, 23 + 1019, 23 RibbonStatusBar1 @@ -2790,6 +2790,9 @@ System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 432, 56 + True @@ -2803,7 +2806,7 @@ 6, 13 - 1011, 539 + 1019, 543 Segoe UI, 8.25pt @@ -4135,6 +4138,12 @@ System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Timer5mins + + + System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + frmMain diff --git a/app/DD-Record-Organizer/frmMain.vb b/app/DD-Record-Organizer/frmMain.vb index e43bea5..c9a2501 100644 --- a/app/DD-Record-Organizer/frmMain.vb +++ b/app/DD-Record-Organizer/frmMain.vb @@ -200,11 +200,7 @@ Public Class frmMain Else 'itemRefreshProxy.Visibility = BarItemVisibility.Never End If - Dim msg = "Anzahl Angemeldete User: " & USERS_LOGGED_IN.ToString() - If USER_LANGUAGE <> "de-DE" Then - msg = "#User logged in: " & USERS_LOGGED_IN.ToString() - End If - LabelLoggedIn.Caption = msg + LoggedIn() 'LoadMenuItems() LoadMenuItems2() @@ -216,6 +212,20 @@ Public Class frmMain End If Load_TasksforUser() End Sub + Sub LoggedIn() + Try + Dim oSQL = String.Format("SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE UPPER(MODULE) = UPPER('Record-Organizer') AND CLIENT_ID = {0}", CLIENT_SELECTED) + Dim anzahl = ClassDatabase.Execute_Scalar(oSQL, False) + USERS_LOGGED_IN = CInt(anzahl) + Catch ex As Exception + + End Try + Dim msg = "Anzahl Angemeldete User: " & USERS_LOGGED_IN.ToString() + If USER_LANGUAGE <> "de-DE" Then + msg = "#User logged in: " & USERS_LOGGED_IN.ToString() + End If + LabelLoggedIn.Caption = msg + End Sub Sub Display_ConString() Try Dim connection As New SqlClient.SqlConnection(MyConnectionString) 'csb.ConnectionString) @@ -530,6 +540,7 @@ Public Class frmMain Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles TimerTasks.Tick Refresh_TaskReminder() + End Sub Private Sub frmMain_Resize(sender As Object, e As EventArgs) Handles Me.Resize @@ -550,6 +561,7 @@ Public Class frmMain End If RUN_TIMER() + Timer5mins.Start() If Sett_ConstructorStart <> 0 Then Cursor = Cursors.WaitCursor @@ -1029,7 +1041,7 @@ Public Class frmMain Dim dt2 As DataTable = CURRENT_TBPMO_CONN_SWITCH Dim drActive As DataRow() = dt2.Select("ACTIVE = 1") Dim drInActive As DataRow() = dt2.Select("ACTIVE = 0") - Dim name = "" + Dim oSQLDescription = "" Dim oSqlcon = "" Dim oSqlcon_Proxy = "" Dim oWM_ALIAS = "" @@ -1037,7 +1049,7 @@ Public Class frmMain Dim oACTIVE_GUID For Each row As DataRow In drInActive oINACTIVE_GUID = row.Item("GUID") - name = row.Item("DESCRIPTION") + oSQLDescription = row.Item("DESCRIPTION") oSqlcon = row.Item("SQL_CONNECTION") oSqlcon_Proxy = row.Item("SQL_CONNECTION_PROXY") oWM_ALIAS = row.Item("WM_ALIAS") @@ -1047,20 +1059,21 @@ Public Class frmMain Next - If name <> "" Then + If oSQLDescription <> "" Then Dim oresult As MsgBoxResult - Dim msg = "Wollen Sie die Verbindungs-Konfiguration nun auf '" & name & "' ändern?" + Dim msg = "Wollen Sie die Verbindungs-Konfiguration nun auf '" & oSQLDescription & "' ändern?" If USER_LANGUAGE <> "de-DE" Then - msg = "Would You like to change the Connection-configuration to '" & name & "'?" + msg = "Would You like to change the Connection-configuration to '" & oSQLDescription & "'?" End If oresult = MessageBox.Show(msg, "Confirmation:", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If oresult = MsgBoxResult.Yes Then - BarButtonItemSwitchCon.Caption = "Switch Connection to: " & name + BarButtonItemSwitchCon.Caption = "Switch Connection to: " & oSQLDescription Try My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\A.I.S. GmbH\windream\3.6\ServerShareSelector", "CurrentAlias", oWM_ALIAS) My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\A.I.S. GmbH\windream\3.6\ServerShareSelector", "VFSAlias", oWM_ALIAS) Catch ex As Exception ClassLogger.Add("Unexpected error in Changing WMAlias: " & ex.Message, True) + MsgBox("Unexpected error in Changing WMAlias: " & ex.Message, MsgBoxStyle.Critical) Exit Sub End Try Try @@ -1069,6 +1082,7 @@ Public Class frmMain IndexService.Start Catch ex As Exception ClassLogger.Add("Unexpected error in Restarting IndexService: " & ex.Message, True) + MsgBox("Unexpected error in Restarting IndexService: " & ex.Message, MsgBoxStyle.Critical) Exit Sub End Try Try @@ -1077,6 +1091,7 @@ Public Class frmMain ControlCenter.StartVFSService(1) Catch ex As Exception ClassLogger.Add("Unexpected error in Restarting ControlCenter: " & ex.Message, True) + MsgBox("Unexpected error in Restarting ControlCenter: " & ex.Message, MsgBoxStyle.Critical) Exit Sub End Try @@ -1093,13 +1108,28 @@ Public Class frmMain If ClassInit.InitDatabase = True Then ClassInit.InitUserLogin() Load_Connection_Dep_Data() - msg = "Die Client-Verbindung wurde erfolgreich gewechselt!" - If USER_LANGUAGE <> "de-DE" Then - msg = "The Client-Connection was changed successfully!" + + sql = String.Format("UPDATE TBPMO_CLIENT_CONN_SWITCH_USER SET ACTIVE = 1 WHERE UPPER(CONN_NAME) = UPPER('{0}') AND USER_ID = {1}", oSQLDescription, USER_GUID) + Dim oSuccess As Boolean = False + If ClassDatabase.Execute_non_Query(sql) = True Then + oSuccess = True End If - MsgBox(msg, MsgBoxStyle.Information) - sql = String.Format("UPDATE TBPMO_CLIENT_CONN_SWITCH_USER SET ACTIVE = 1 WHERE DESCRIPTION = {0} AND USER_ID = {1}", name, USER_GUID) - ClassDatabase.Execute_Scalar(sql) + If oSuccess = True Then + msg = "Die Client-Verbindung wurde erfolgreich gewechselt!" + If USER_LANGUAGE <> "de-DE" Then + msg = "The Client-Connection was changed successfully!" + End If + MsgBox(msg, MsgBoxStyle.Information) + Else + msg = "Die Client-Verbindung konnte nicht erfolgreich gewechselt werden!" + If USER_LANGUAGE <> "de-DE" Then + msg = "The Client-Connection could not be changed!" + End If + MsgBox(msg, MsgBoxStyle.Critical) + End If + + + ClassInit.Init_CONN_SWITCH() CONN_Manager() End If @@ -1110,4 +1140,8 @@ Public Class frmMain MsgBox("Unexpected error in BarButtonItemSwitchCon.ItemClick: " & ex.Message, MsgBoxStyle.Critical) End Try End Sub + + Private Sub Timer5mins_Tick(sender As Object, e As EventArgs) Handles Timer5mins.Tick + LoggedIn() + End Sub End Class diff --git a/app/DD-Record-Organizer/frmRecordView.resx b/app/DD-Record-Organizer/frmRecordView.resx index 5a639ba..8f11a0d 100644 --- a/app/DD-Record-Organizer/frmRecordView.resx +++ b/app/DD-Record-Organizer/frmRecordView.resx @@ -996,7 +996,7 @@ 0, 0 - Cyan + LightBlue 1332, 276 @@ -1440,7 +1440,7 @@ 314, 24 - Cyan + LightBlue Fuchsia @@ -1699,7 +1699,7 @@ zuordnen 3, 6 - Cyan + LightBlue Fuchsia diff --git a/app/DD-Record-Organizer/frmRecord_Changes.resx b/app/DD-Record-Organizer/frmRecord_Changes.resx index 661ca58..47d9789 100644 --- a/app/DD-Record-Organizer/frmRecord_Changes.resx +++ b/app/DD-Record-Organizer/frmRecord_Changes.resx @@ -345,7 +345,7 @@ - Cyan + LightBlue 1 diff --git a/app/DD-Record-Organizer/frmRight_Management.resx b/app/DD-Record-Organizer/frmRight_Management.resx index 8b1b892..561bdeb 100644 --- a/app/DD-Record-Organizer/frmRight_Management.resx +++ b/app/DD-Record-Organizer/frmRight_Management.resx @@ -675,7 +675,7 @@ Des Weiteren werden die Rechte für die Zugriffsrechte auf die Dateien angewende 11, 120 - Cyan + LightBlue Fuchsia diff --git a/app/DD-Record-Organizer/frmSAP_FuBa.Designer.vb b/app/DD-Record-Organizer/frmSAP_FuBa.Designer.vb index 0a6961d..9aaaa0f 100644 --- a/app/DD-Record-Organizer/frmSAP_FuBa.Designer.vb +++ b/app/DD-Record-Organizer/frmSAP_FuBa.Designer.vb @@ -823,7 +823,7 @@ Partial Class frmSAP_FuBa ' 'GridView2 ' - Me.GridView2.Appearance.EvenRow.BackColor = System.Drawing.Color.Cyan + Me.GridView2.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue Me.GridView2.Appearance.EvenRow.Options.UseBackColor = True Me.GridView2.Appearance.SelectedRow.BackColor = System.Drawing.Color.Magenta Me.GridView2.Appearance.SelectedRow.Options.UseBackColor = True diff --git a/app/DD-Record-Organizer/frmUserKonfig.resx b/app/DD-Record-Organizer/frmUserKonfig.resx index b833ce2..cff6eee 100644 --- a/app/DD-Record-Organizer/frmUserKonfig.resx +++ b/app/DD-Record-Organizer/frmUserKonfig.resx @@ -1836,7 +1836,7 @@ 667, 19 - Cyan + LightBlue Fuchsia @@ -1899,7 +1899,7 @@ 229, 19 - Cyan + LightBlue Fuchsia @@ -2137,7 +2137,7 @@ matchen 3, 3, 3, 3 - 1128, 296 + 1124, 293 1 @@ -2212,7 +2212,7 @@ matchen 4, 41 - Cyan + LightBlue Fuchsia @@ -2628,7 +2628,7 @@ matchen 631, 17 - Cyan + LightBlue Fuchsia @@ -2691,7 +2691,7 @@ matchen 187, 19 - Cyan + LightBlue Fuchsia @@ -3639,7 +3639,7 @@ Mandant hinzufügen 11, 29 - Cyan + LightBlue Fuchsia @@ -3855,7 +3855,7 @@ Mandant hinzufügen 765, 39 - Cyan + LightBlue Fuchsia diff --git a/app/DD-Record-Organizer/frmUserKonfig_AddUsers.resx b/app/DD-Record-Organizer/frmUserKonfig_AddUsers.resx index e5d77b3..4a39933 100644 --- a/app/DD-Record-Organizer/frmUserKonfig_AddUsers.resx +++ b/app/DD-Record-Organizer/frmUserKonfig_AddUsers.resx @@ -247,7 +247,7 @@ 0, 25 - Cyan + LightBlue Fuchsia diff --git a/app/DD-Record-Organizer/frmViewsUser.Designer.vb b/app/DD-Record-Organizer/frmViewsUser.Designer.vb index da56220..403327d 100644 --- a/app/DD-Record-Organizer/frmViewsUser.Designer.vb +++ b/app/DD-Record-Organizer/frmViewsUser.Designer.vb @@ -85,7 +85,7 @@ Partial Class frmViewsUser ' 'GridView1 ' - Me.GridView1.Appearance.EvenRow.BackColor = System.Drawing.Color.Cyan + Me.GridView1.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue Me.GridView1.Appearance.EvenRow.Options.UseBackColor = True Me.GridView1.Appearance.FocusedRow.BackColor = System.Drawing.Color.Fuchsia Me.GridView1.Appearance.FocusedRow.Options.UseBackColor = True @@ -161,7 +161,7 @@ Partial Class frmViewsUser ' 'GridViewlUsers2Menue ' - Me.GridViewlUsers2Menue.Appearance.EvenRow.BackColor = System.Drawing.Color.Cyan + Me.GridViewlUsers2Menue.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue Me.GridViewlUsers2Menue.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewlUsers2Menue.Appearance.FocusedRow.BackColor = System.Drawing.Color.Fuchsia Me.GridViewlUsers2Menue.Appearance.FocusedRow.Options.UseBackColor = True diff --git a/app/DD-Record-Organizer/frmWM_DoctypeConfig.resx b/app/DD-Record-Organizer/frmWM_DoctypeConfig.resx index def59e6..4e55a11 100644 --- a/app/DD-Record-Organizer/frmWM_DoctypeConfig.resx +++ b/app/DD-Record-Organizer/frmWM_DoctypeConfig.resx @@ -908,7 +908,7 @@ 3, 59 - Cyan + LightBlue Fuchsia diff --git a/app/DD-Record-Organizer/frmWM_DoctypeConfig.vb b/app/DD-Record-Organizer/frmWM_DoctypeConfig.vb index 14065a3..b4eaddb 100644 --- a/app/DD-Record-Organizer/frmWM_DoctypeConfig.vb +++ b/app/DD-Record-Organizer/frmWM_DoctypeConfig.vb @@ -66,7 +66,7 @@ Public Class frmWM_DoctypeConfig If IsInsert = True Then Dim DOCID = ClassDatabase.Execute_Scalar("SELECT MAX(GUID) FROM TBDD_DOKUMENTART WHERE BEZEICHNUNG = '" & BEZEICHNUNGTextBox.Text & "'", True) If DOCID > 0 Then - Dim insert = "INSERT INTO TBDD_DOKUMENTART_MODULE (DOKART_ID, MODULE_ID) VALUES (" & DOCID & ", 0)" + Dim insert = "INSERT INTO TBDD_DOKUMENTART_MODULE (DOKART_ID, MODULE_ID) VALUES (" & DOCID & ",(SELECT GUID FROM TBDD_MODULES WHERE SHORT_NAME = 'ADDI'))" If ClassDatabase.Execute_non_Query(insert, True) = True Then Refresh_DokartModule(DOCID) IsInsert = False diff --git a/app/RecordOrganizer_RightManager/frmCheckRightsEntity.Designer.vb b/app/RecordOrganizer_RightManager/frmCheckRightsEntity.Designer.vb index 7847e21..2aae816 100644 --- a/app/RecordOrganizer_RightManager/frmCheckRightsEntity.Designer.vb +++ b/app/RecordOrganizer_RightManager/frmCheckRightsEntity.Designer.vb @@ -30,6 +30,8 @@ Partial Class frmCheckRightsEntity Me.btncancel = New System.Windows.Forms.Button() Me.chklogging = New System.Windows.Forms.CheckBox() Me.lblstate = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.txtOverride = New System.Windows.Forms.TextBox() Me.SuspendLayout() ' 'Label1 @@ -52,7 +54,7 @@ Partial Class frmCheckRightsEntity ' 'btnCheckRights ' - Me.btnCheckRights.Location = New System.Drawing.Point(28, 60) + Me.btnCheckRights.Location = New System.Drawing.Point(28, 94) Me.btnCheckRights.Name = "btnCheckRights" Me.btnCheckRights.Size = New System.Drawing.Size(335, 39) Me.btnCheckRights.TabIndex = 2 @@ -64,7 +66,7 @@ Partial Class frmCheckRightsEntity ' 'ProgressBar1 ' - Me.ProgressBar1.Location = New System.Drawing.Point(28, 130) + Me.ProgressBar1.Location = New System.Drawing.Point(28, 164) Me.ProgressBar1.Name = "ProgressBar1" Me.ProgressBar1.Size = New System.Drawing.Size(335, 31) Me.ProgressBar1.TabIndex = 3 @@ -74,7 +76,7 @@ Partial Class frmCheckRightsEntity ' Me.btncancel.Image = Global.RecordOrganizer_RightManager.My.Resources.Resources.cancel1 Me.btncancel.ImageAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btncancel.Location = New System.Drawing.Point(369, 130) + Me.btncancel.Location = New System.Drawing.Point(369, 164) Me.btncancel.Name = "btncancel" Me.btncancel.Size = New System.Drawing.Size(75, 31) Me.btncancel.TabIndex = 4 @@ -99,17 +101,37 @@ Partial Class frmCheckRightsEntity ' Me.lblstate.AutoSize = True Me.lblstate.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblstate.Location = New System.Drawing.Point(28, 111) + Me.lblstate.Location = New System.Drawing.Point(28, 145) Me.lblstate.Name = "lblstate" Me.lblstate.Size = New System.Drawing.Size(38, 13) Me.lblstate.TabIndex = 6 Me.lblstate.Text = "Label2" ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label2.Location = New System.Drawing.Point(28, 60) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(153, 13) + Me.Label2.TabIndex = 7 + Me.Label2.Text = "Optional from Count Override:" + ' + 'txtOverride + ' + Me.txtOverride.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtOverride.Location = New System.Drawing.Point(263, 57) + Me.txtOverride.Name = "txtOverride" + Me.txtOverride.Size = New System.Drawing.Size(100, 21) + Me.txtOverride.TabIndex = 8 + ' 'frmCheckRightsEntity ' Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 16.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(493, 172) + Me.ClientSize = New System.Drawing.Size(493, 219) + Me.Controls.Add(Me.txtOverride) + Me.Controls.Add(Me.Label2) Me.Controls.Add(Me.lblstate) Me.Controls.Add(Me.chklogging) Me.Controls.Add(Me.btncancel) @@ -138,4 +160,6 @@ End Sub Friend WithEvents btncancel As System.Windows.Forms.Button Friend WithEvents chklogging As System.Windows.Forms.CheckBox Friend WithEvents lblstate As System.Windows.Forms.Label + Friend WithEvents Label2 As Label + Friend WithEvents txtOverride As TextBox End Class diff --git a/app/RecordOrganizer_RightManager/frmCheckRightsEntity.vb b/app/RecordOrganizer_RightManager/frmCheckRightsEntity.vb index 130491e..be764b5 100644 --- a/app/RecordOrganizer_RightManager/frmCheckRightsEntity.vb +++ b/app/RecordOrganizer_RightManager/frmCheckRightsEntity.vb @@ -9,6 +9,7 @@ Public Class frmCheckRightsEntity Private CURR_DOCID As Integer Private CURR_DOCPATH As String Private ENTITY_ID As Integer + Private OverrideCount As Integer Dim righterrors As Boolean = False Private Sub frmCheckRightsEntity_Load(sender As Object, e As EventArgs) Handles Me.Load Try @@ -26,6 +27,11 @@ Public Class frmCheckRightsEntity Private Sub btnCheckRights_Click(sender As Object, e As EventArgs) Handles btnCheckRights.Click If cmbentity.SelectedIndex <> -1 Then Try + If txtOverride.Text <> "" Then + OverrideCount = CInt(txtOverride.Text) + Else + OverrideCount = 0 + End If righterrors = False CURR_DOCID = 0 ENTITY_ID = cmbentity.SelectedValue @@ -34,8 +40,12 @@ Public Class frmCheckRightsEntity BW_RightsEntity = New BackgroundWorker BW_RightsEntity.WorkerReportsProgress = True BW_RightsEntity.WorkerSupportsCancellation = True - Dim sqlfiles = String.Format("SELECT T.DocID,T.FULL_FILENAME,TRL.RECORD_ID,TR.FORM_ID AS [ENTITY_ID] FROM VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK TRL, TBPMO_RECORD TR where T.DocID = TRL.DOC_ID AND TRL.RECORD_ID = TR.GUID AND TR.FORM_ID = {0} ORDER BY DocID", ENTITY_ID) - DT_FILES = clsDatabase.Return_Datatable(sqlfiles) + Dim oSQL = $"SELECT TRL.DOC_ID AS DocID +,'' as FULL_FILENAME --, [dbo].[FNPMO_GET_WINDREAM_FILE_PATH] (TRL.DOC_ID) as FULL_FILENAME, +,TRL.RECORD_ID,TR.FORM_ID AS [ENTITY_ID] +FROM TBPMO_DOC_RECORD_LINK TRL, TBPMO_RECORD TR where TRL.RECORD_ID = TR.GUID AND TR.FORM_ID = {ENTITY_ID} ORDER BY DocID" + ' Dim sqlfiles = String.Format("SELECT T.DocID,T.FULL_FILENAME,TRL.RECORD_ID,TR.FORM_ID AS [ENTITY_ID] FROM VWPMO_DOC_SEARCH T, TBPMO_DOC_RECORD_LINK TRL, TBPMO_RECORD TR where T.DocID = TRL.DOC_ID AND TRL.RECORD_ID = TR.GUID AND TR.FORM_ID = {0} ORDER BY DocID", ENTITY_ID) + DT_FILES = clsDatabase.Return_Datatable(oSQL) If DD_Rights.ClassWDRights.Init(chklogging.Checked, ClassDatabase.ConnectionStringRM) = False Then MsgBox("Could not init rights management. " & vbNewLine & "Check logfile", MsgBoxStyle.Critical) Exit Sub @@ -73,6 +83,13 @@ Public Class frmCheckRightsEntity Dim i As Integer = 1 'Jede Datei einzeln verarbeiten For Each row As DataRow In DT_FILES.Rows + If OverrideCount <> 0 Then + If WorkingFiles < OverrideCount Then + WorkingFiles += 1 + i += 1 + Continue For + End If + End If If BW_RightsEntity.CancellationPending = True Then MsgBox("Backgroundworker aborting - check log!", MsgBoxStyle.Critical) e.Cancel = True @@ -82,6 +99,10 @@ Public Class frmCheckRightsEntity WorkingFiles += 1 CURR_DOCID = row.Item("DocID") CURR_DOCPATH = row.Item("FULL_FILENAME") + If CURR_DOCPATH = String.Empty Then + Dim oSQL = $"SELECT [dbo].[FNPMO_GET_WINDREAM_FILE_PATH] ({CURR_DOCID})" + CURR_DOCPATH = clsDatabase.Execute_Scalar(oSQL) + End If If DD_Rights.ClassWDRights.Doc_Renew_Rights(CURR_DOCID, CURR_DOCPATH, True) Then If DD_Rights.ClassWDRights.MSG_RESULT <> "" Then righterrors = True diff --git a/app/RecordOrganizer_RightManager/frmUsersReworkRights.Designer.vb b/app/RecordOrganizer_RightManager/frmUsersReworkRights.Designer.vb index 5a7096e..3256744 100644 --- a/app/RecordOrganizer_RightManager/frmUsersReworkRights.Designer.vb +++ b/app/RecordOrganizer_RightManager/frmUsersReworkRights.Designer.vb @@ -102,7 +102,7 @@ Partial Class frmUsersReworkRights ' 'GridViewlUsers2Menue ' - Me.GridViewlUsers2Menue.Appearance.EvenRow.BackColor = System.Drawing.Color.Cyan + Me.GridViewlUsers2Menue.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue Me.GridViewlUsers2Menue.Appearance.EvenRow.Options.UseBackColor = True Me.GridViewlUsers2Menue.Appearance.FocusedRow.BackColor = System.Drawing.Color.Fuchsia Me.GridViewlUsers2Menue.Appearance.FocusedRow.Options.UseBackColor = True