3.7.2 Optimierungen und Button Knoten hinzufügen

This commit is contained in:
Developer01
2026-03-16 09:49:12 +01:00
parent 570d1161f8
commit 3a44abf77b
26 changed files with 1051 additions and 4761 deletions

View File

@@ -1,67 +1,67 @@
Public Class ClassConstructors
Public Shared ConstructorsTuple_TreeView As Object
Public Shared Function Init_Tuple()
Public Class ClassConstructorsf
'Public Shared ConstructorsTuple_TreeView As Object
'Public Shared Function Init_Tuple()
Dim ConstructTreeViewTuple = New Dictionary(Of Tuple(Of TreeView), Integer)()
Dim sql = String.Format("Select DISTINCT T.GUID, T2.ENTITY_ID FROM TBPMO_FORM_CONSTRUCTOR T, TBPMO_FORM_CONSTRUCTOR_DETAIL T1, " &
"TBPMO_STRUCTURE_NODES_CONFIGURATION T2 WHERE T.GUID = T1.CONSTRUCT_ID And T1.FORM_ID = T2.ENTITY_ID " &
"And T.GUID In (Select CONSTRUCT_ID FROM TBPMO_CONSTRUCTOR_USER WHERE USER_ID = {0})", USER_GUID)
Dim DT As DataTable = MYDB_ECM.GetDatatable(sql)
For Each rowconstruct As DataRow In DT.Rows
Try
Dim sqlnodes = String.Format("select * from VWPMO_STRUCTURE_NODES where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", rowconstruct.Item(0))
Dim DTNODES As DataTable = MYDB_ECM.GetDatatable(sqlnodes)
' Dim ConstructTreeViewTuple = New Dictionary(Of Tuple(Of TreeView), Integer)()
' Dim sql = String.Format("Select DISTINCT T.GUID, T2.ENTITY_ID FROM TBPMO_FORM_CONSTRUCTOR T, TBPMO_FORM_CONSTRUCTOR_DETAIL T1, " &
' "TBPMO_STRUCTURE_NODES_CONFIGURATION T2 WHERE T.GUID = T1.CONSTRUCT_ID And T1.FORM_ID = T2.ENTITY_ID " &
' "And T.GUID In (Select CONSTRUCT_ID FROM TBPMO_CONSTRUCTOR_USER WHERE USER_ID = {0})", USER_GUID)
' Dim DT As DataTable = MYDB_ECM.GetDatatable(sql)
' For Each rowconstruct As DataRow In DT.Rows
' Try
' Dim sqlnodes = String.Format("select * from VWPMO_STRUCTURE_NODES where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", rowconstruct.Item(0))
' Dim DTNODES As DataTable = MYDB_ECM.GetDatatable(sqlnodes)
Dim sqlimage = String.Format("select * from TBPMO_STRUCTURE_NODES_CONFIGURATION where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", rowconstruct.Item(0))
Dim DT_TREEVIEW_CONFIGURATION = MYDB_ECM.GetDatatable(sql)
Dim TREEVIEW_IMAGELIST = New ImageList
' Dim sqlimage = String.Format("select * from TBPMO_STRUCTURE_NODES_CONFIGURATION where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", rowconstruct.Item(0))
' Dim DT_TREEVIEW_CONFIGURATION = MYDB_ECM.GetDatatable(sql)
' Dim TREEVIEW_IMAGELIST = New ImageList
For Each row As DataRow In DT_TREEVIEW_CONFIGURATION.Rows
Try
Dim bimage = row.Item("NODE_IMAGE")
If Not IsDBNull(bimage) Then
Dim Node_image = ByteArrayToBitmap(bimage)
TREEVIEW_IMAGELIST.Images.Add(row.Item("GUID").ToString, Node_image) 'row.Item("GUID").ToString & "#" & row.Item("ENTITY_ID")
End If
Catch ex As Exception
' For Each row As DataRow In DT_TREEVIEW_CONFIGURATION.Rows
' Try
' Dim bimage = row.Item("NODE_IMAGE")
' If Not IsDBNull(bimage) Then
' Dim Node_image = ByteArrayToBitmap(bimage)
' TREEVIEW_IMAGELIST.Images.Add(row.Item("GUID").ToString, Node_image) 'row.Item("GUID").ToString & "#" & row.Item("ENTITY_ID")
' End If
' Catch ex As Exception
End Try
' End Try
Next
' Next
'Dim async As New ClassAsyncNodeBuild(DTNODES, TREEVIEW_IMAGELIST)
'async.bw.RunWorkerAsync()
'While async.bw.IsBusy
' Application.DoEvents()
'End While
Dim MyTreeview As TreeView = ClassNodeNavigation.CreateTreeViewNodes(DTNODES, TREEVIEW_IMAGELIST)
ConstructTreeViewTuple.Add(Tuple.Create(MyTreeview), rowconstruct.Item(0))
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Error in Adding TreeView to Dictionary: ")
End Try
' 'Dim async As New ClassAsyncNodeBuild(DTNODES, TREEVIEW_IMAGELIST)
' 'async.bw.RunWorkerAsync()
' 'While async.bw.IsBusy
' ' Application.DoEvents()
' 'End While
' Dim MyTreeview As TreeView = ClassNodeNavigation.CreateTreeViewNodes(DTNODES, TREEVIEW_IMAGELIST, DT_CON)
' ConstructTreeViewTuple.Add(Tuple.Create(MyTreeview), rowconstruct.Item(0))
' Catch ex As Exception
' ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Error in Adding TreeView to Dictionary: ")
' End Try
Next
' Next
ConstructorsTuple_TreeView = ConstructTreeViewTuple
' ConstructorsTuple_TreeView = ConstructTreeViewTuple
End Function
'End Function
Public Shared Function Check_TreeViewLoaded(CONSTRUCTID As Integer)
Try
For Each constrid As Integer In ConstructorsTuple_TreeView.keys
If constrid = CONSTRUCTID Then
Return True
End If
Next
Return False
Catch ex As Exception
LOGGER.Warn("Error in Check_TreeViewLoaded: " & ex.Message)
Return False
End Try
End Function
'Public Shared Function Check_TreeViewLoaded(CONSTRUCTID As Integer)
' Try
' For Each constrid As Integer In ConstructorsTuple_TreeView.keys
' If constrid = CONSTRUCTID Then
' Return True
' End If
' Next
' Return False
' Catch ex As Exception
' LOGGER.Warn("Error in Check_TreeViewLoaded: " & ex.Message)
' Return False
' End Try
'End Function
End Class

View File

@@ -52,24 +52,24 @@ Public Class ClassDOC_SEARCH
Dim SQL_DOC_SEARCH
If CURRENT_SEARCH_TYPE = "ENTITY" Then
SQL_DOC_SEARCH = String.Format("SELECT DISTINCT T.*," & vbNewLine &
"'NO OPTION IN ENTITY-SEARCH' AS OPTION1," & vbNewLine &
"'NO OPTION IN ENTITY-SEARCH' AS OPTION2," & vbNewLine &
"'NO INDEX IN ENTITY-SEARCH' AS DOCIDX1," & vbNewLine &
"'NO INDEX IN ENTITY-SEARCH' AS DOCIDX2," & vbNewLine &
"'NO INDEX IN ENTITY-SEARCH' AS DOCIDX3," & vbNewLine &
"'NO INDEX IN ENTITY-SEARCH' AS DOCIDX4," & vbNewLine &
"'NO DROPDOWN IN ENTITY-SEARCH' AS DROPDOWN1," & vbNewLine &
"'NO DROPDOWN IN ENTITY-SEARCH' AS DROPDOWN2," & vbNewLine &
"'NO DROPDOWN IN ENTITY-SEARCH' AS DROPDOWN3," & vbNewLine &
"'NO DROPDOWN IN ENTITY-SEARCH' AS DROPDOWN4" & 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 &
SQL_DOC_SEARCH = String.Format("SELECT DISTINCT T.*," & vbCrLf &
"'NO OPTION IN ENTITY-SEARCH' AS OPTION1," & vbCrLf &
"'NO OPTION IN ENTITY-SEARCH' AS OPTION2," & vbCrLf &
"'NO INDEX IN ENTITY-SEARCH' AS DOCIDX1," & vbCrLf &
"'NO INDEX IN ENTITY-SEARCH' AS DOCIDX2," & vbCrLf &
"'NO INDEX IN ENTITY-SEARCH' AS DOCIDX3," & vbCrLf &
"'NO INDEX IN ENTITY-SEARCH' AS DOCIDX4," & vbCrLf &
"'NO DROPDOWN IN ENTITY-SEARCH' AS DROPDOWN1," & vbCrLf &
"'NO DROPDOWN IN ENTITY-SEARCH' AS DROPDOWN2," & vbCrLf &
"'NO DROPDOWN IN ENTITY-SEARCH' AS DROPDOWN3," & vbCrLf &
"'NO DROPDOWN IN ENTITY-SEARCH' AS DROPDOWN4" & vbCrLf &
"FROM " & vbCrLf &
"VWPMO_DOC_SEARCH T" & vbCrLf &
"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}) " & vbCrLf &
"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, OPTION1, OPTION2)
If CURRENT_ENTITYSQL_WHERE <> "" Then
Dim where = CURRENT_ENTITYSQL_WHERE.Replace("WHERE [RECORD-ID] IN ", "")
SQL_DOC_SEARCH = SQL_DOC_SEARCH & " " & vbNewLine & String.Format("AND T.DocID IN (SELECT DISTINCT DOC_ID from TBPMO_DOC_RECORD_LINK WHERE RECORD_ID IN ({0}))", where)
SQL_DOC_SEARCH = SQL_DOC_SEARCH & " " & vbCrLf & String.Format("AND T.DocID IN (SELECT DISTINCT DOC_ID from TBPMO_DOC_RECORD_LINK WHERE RECORD_ID IN ({0}))", where)
End If
If BG = True Then
If IsNothing(CURRENT_DT_DOC_ENTITY_SEARCH) Then
@@ -106,120 +106,120 @@ Public Class ClassDOC_SEARCH
SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@RECORD_ID", RECORD_ID)
SQL_DOC_SEARCH = SQL_DOC_SEARCH.ToString.Replace("@USERID_FK_INT_ECM", USERID_FK_INT_ECM)
' SQL_DOC_SEARCH = $"SELECT T.* ," & vbNewLine &
' $"ISNULL(T1.VALUE,'') AS OPTION1," & vbNewLine &
' $"ISNULL(T2.VALUE,'') AS OPTION2," & vbNewLine &
' $"ISNULL(T3.VALUE,'') AS OPTION3," & vbNewLine &
' $"ISNULL(T4.VALUE,'') AS OPTION4," & vbNewLine &
' $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vbNewLine &
' $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vbNewLine &
' $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vbNewLine &
' $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vbNewLine &
' $"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN1','{7}',TRL.RECORD_ID) AS DROPDOWN1," & vbNewLine &
' $"[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 &
' $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC.GUID),'') AS VALUE1," & vbNewLine &
' $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC1.GUID),'') AS VALUE2," & vbNewLine &
' $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC2.GUID),'') AS VALUE3," & vbNewLine &
' $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC3.GUID),'') AS VALUE4," & vbNewLine &
'$"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC4.GUID),'') AS VALUE5," & vbNewLine &
'$"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC5.GUID),'') AS VALUE6," & 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 &
' $"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vbNewLine &
' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC ON TR.FORM_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = '{USER_LANGUAGE}' AND TRC.GUID = {VALUE_CONF1}" & vbNewLine &
' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 ON TR.FORM_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = '{USER_LANGUAGE}' AND TRC1.GUID = {VALUE_CONF2}" & vbNewLine &
' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 ON TR.FORM_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = '{USER_LANGUAGE}' AND TRC2.GUID = {VALUE_CONF3}" & vbNewLine &
' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 ON TR.FORM_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = '{USER_LANGUAGE}' AND TRC3.GUID = {VALUE_CONF4}" & vbNewLine &
' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC4 ON TR.FORM_ID = TRC4.ENTITY_ID AND TRC4.LANGUAGE = '{USER_LANGUAGE}' AND TRC4.GUID = {VALUE_CONF5}" & vbNewLine &
' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC5 ON TR.FORM_ID = TRC5.ENTITY_ID AND TRC5.LANGUAGE = '{USER_LANGUAGE}' AND TRC5.GUID = {VALUE_CONF6}" & vbNewLine &
' $"LEFT JOIN TBPMO_CONTROL_VALUE T1 ON TRL.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = {OPTION1} " & vbNewLine &
' $"LEFT JOIN TBPMO_CONTROL_VALUE T2 ON TRL.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = {OPTION2} " & vbNewLine &
' $"LEFT JOIN TBPMO_CONTROL_VALUE T3 ON TRL.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = {OPTION3} " & vbNewLine &
' $"LEFT JOIN TBPMO_CONTROL_VALUE T4 ON TRL.RECORD_ID = T4.RECORD_ID AND T4.CONTROL_ID = {OPTION4} " & vbNewLine &
' SQL_DOC_SEARCH = $"SELECT T.* ," & vBCrlf &
' $"ISNULL(T1.VALUE,'') AS OPTION1," & vBCrlf &
' $"ISNULL(T2.VALUE,'') AS OPTION2," & vBCrlf &
' $"ISNULL(T3.VALUE,'') AS OPTION3," & vBCrlf &
' $"ISNULL(T4.VALUE,'') AS OPTION4," & vBCrlf &
' $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vBCrlf &
' $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vBCrlf &
' $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vBCrlf &
' $"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vBCrlf &
' $"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN1','{7}',TRL.RECORD_ID) AS DROPDOWN1," & vBCrlf &
' $"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN2','{7}',TRL.RECORD_ID) AS DROPDOWN2," & vBCrlf &
' $"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN3','{7}',TRL.RECORD_ID) AS DROPDOWN3," & vBCrlf &
' $"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN4','{7}',TRL.RECORD_ID) AS DROPDOWN4," & vBCrlf &
' $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC.GUID),'') AS VALUE1," & vBCrlf &
' $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC1.GUID),'') AS VALUE2," & vBCrlf &
' $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC2.GUID),'') AS VALUE3," & vBCrlf &
' $"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC3.GUID),'') AS VALUE4," & vBCrlf &
'$"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC4.GUID),'') AS VALUE5," & vBCrlf &
'$"COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC5.GUID),'') AS VALUE6," & vBCrlf &
'$"dwAccessRight AS ACCESS_RIGHT" & vBCrlf &
'$"FROM " & vBCrlf &
'$"VWPMO_DOC_SEARCH T " & vBCrlf &
'$"INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID" & vBCrlf &
'$"INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID" & vBCrlf &
' $"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vBCrlf &
' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC ON TR.FORM_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = '{USER_LANGUAGE}' AND TRC.GUID = {VALUE_CONF1}" & vBCrlf &
' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 ON TR.FORM_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = '{USER_LANGUAGE}' AND TRC1.GUID = {VALUE_CONF2}" & vBCrlf &
' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 ON TR.FORM_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = '{USER_LANGUAGE}' AND TRC2.GUID = {VALUE_CONF3}" & vBCrlf &
' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 ON TR.FORM_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = '{USER_LANGUAGE}' AND TRC3.GUID = {VALUE_CONF4}" & vBCrlf &
' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC4 ON TR.FORM_ID = TRC4.ENTITY_ID AND TRC4.LANGUAGE = '{USER_LANGUAGE}' AND TRC4.GUID = {VALUE_CONF5}" & vBCrlf &
' $"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC5 ON TR.FORM_ID = TRC5.ENTITY_ID AND TRC5.LANGUAGE = '{USER_LANGUAGE}' AND TRC5.GUID = {VALUE_CONF6}" & vBCrlf &
' $"LEFT JOIN TBPMO_CONTROL_VALUE T1 ON TRL.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = {OPTION1} " & vBCrlf &
' $"LEFT JOIN TBPMO_CONTROL_VALUE T2 ON TRL.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = {OPTION2} " & vBCrlf &
' $"LEFT JOIN TBPMO_CONTROL_VALUE T3 ON TRL.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = {OPTION3} " & vBCrlf &
' $"LEFT JOIN TBPMO_CONTROL_VALUE T4 ON TRL.RECORD_ID = T4.RECORD_ID AND T4.CONTROL_ID = {OPTION4} " & vBCrlf &
' $"WHERE TRL.RECORD_ID = {RECORD_ID} AND TR.FORM_ID = {ENTITY_ID} AND TRIGHTS.dwUserOrGroupID = {USERID_FK_INT_ECM}"
ElseIf CURRENT_SEARCH_TYPE = "FULLTEXT" Then
Dim sqlft = SQL_FULLTEXT
sqlft = sqlft.Replace("@FULLTEXT", CURRENT_FULLTEXT_PATTERN)
SQL_DOC_SEARCH = String.Format("SELECT DISTINCT T.*," & vbNewLine &
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({3},T.DocID,{0}) AS OPTION1," & vbNewLine &
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({4},T.DocID,{0}) AS OPTION2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX1') AS DOCIDX1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX2') AS DOCIDX2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX3') AS DOCIDX3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX4') AS DOCIDX4," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{0},'DROPDOWN1','{1}',TRL.RECORD_ID) AS DROPDOWN1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{0},'DROPDOWN2','{1}',TRL.RECORD_ID) AS DROPDOWN2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{0},'DROPDOWN3','{1}',TRL.RECORD_ID) AS DROPDOWN3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{0},'DROPDOWN4','{1}',TRL.RECORD_ID) AS DROPDOWN4" & 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 &
"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vbNewLine &
"LEFT OUTER JOIN TBPMO_CONTROL_VALUE TCTRL ON TR.GUID = TCTRL.RECORD_ID" & vbNewLine &
"WHERE TR.FORM_ID = {0} AND TRIGHTS.dwUserOrGroupID = {2} AND (" & vbNewLine &
"TCTRL.VALUE LIKE '%{6}%' OR" & vbNewLine &
"T.DocID IN ({5}" & vbNewLine &
SQL_DOC_SEARCH = String.Format("SELECT DISTINCT T.*," & vbCrLf &
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({3},T.DocID,{0}) AS OPTION1," & vbCrLf &
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({4},T.DocID,{0}) AS OPTION2," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX1') AS DOCIDX1," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX2') AS DOCIDX2," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX3') AS DOCIDX3," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{0},'DOCIDX4') AS DOCIDX4," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{0},'DROPDOWN1','{1}',TRL.RECORD_ID) AS DROPDOWN1," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{0},'DROPDOWN2','{1}',TRL.RECORD_ID) AS DROPDOWN2," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{0},'DROPDOWN3','{1}',TRL.RECORD_ID) AS DROPDOWN3," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{0},'DROPDOWN4','{1}',TRL.RECORD_ID) AS DROPDOWN4" & vbCrLf &
"FROM " & vbCrLf &
"VWPMO_DOC_SEARCH T" & vbCrLf &
"INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID" & vbCrLf &
"INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID" & vbCrLf &
"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vbCrLf &
"LEFT OUTER JOIN TBPMO_CONTROL_VALUE TCTRL ON TR.GUID = TCTRL.RECORD_ID" & vbCrLf &
"WHERE TR.FORM_ID = {0} AND TRIGHTS.dwUserOrGroupID = {2} AND (" & vbCrLf &
"TCTRL.VALUE LIKE '%{6}%' OR" & vbCrLf &
"T.DocID IN ({5}" & vbCrLf &
"))", ENTITY_ID, USER_LANGUAGE, USERID_FK_INT_ECM, OPTION1, OPTION2, sqlft, CURRENT_FULLTEXT_PATTERN)
ElseIf CURRENT_SEARCH_TYPE = "NODE_DOWN" Then
SQL_DOC_SEARCH = String.Format("SELECT DISTINCT T.* ," & vbNewLine &
"ISNULL(T1.VALUE,'') AS OPTION1," & vbNewLine &
"ISNULL(T2.VALUE,'') AS OPTION2," & vbNewLine &
"ISNULL(T3.VALUE,'') AS OPTION3," & vbNewLine &
"ISNULL(T4.VALUE,'') AS OPTION4," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN1','{7}',TRL.RECORD_ID) AS DROPDOWN1," & vbNewLine &
"[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 &
"[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 &
"INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID" & vbNewLine &
"INNER JOIN TBPMO_STRUCTURE_NODES_USER_TEMP TTEMP ON TR.GUID = TTEMP.RECORD_ID" & vbNewLine &
"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vbNewLine &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC ON TR.FORM_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = '{7}' AND TRC.GUID = {8}" & vbNewLine &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 ON TR.FORM_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = '{7}' AND TRC1.GUID = {9}" & vbNewLine &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 ON TR.FORM_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = '{7}' AND TRC2.GUID = {10}" & vbNewLine &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 ON TR.FORM_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = '{7}' AND TRC3.GUID = {11}" & vbNewLine &
"LEFT JOIN TBPMO_CONTROL_VALUE T1 ON TRL.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = {2} " & vbNewLine &
"LEFT JOIN TBPMO_CONTROL_VALUE T2 ON TRL.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = {3} " & vbNewLine &
"LEFT JOIN TBPMO_CONTROL_VALUE T3 ON TRL.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = {4} " & vbNewLine &
"LEFT JOIN TBPMO_CONTROL_VALUE T4 ON TRL.RECORD_ID = T4.RECORD_ID AND T4.CONTROL_ID = {5} " & vbNewLine &
SQL_DOC_SEARCH = String.Format("SELECT DISTINCT T.* ," & vbCrLf &
"ISNULL(T1.VALUE,'') AS OPTION1," & vbCrLf &
"ISNULL(T2.VALUE,'') AS OPTION2," & vbCrLf &
"ISNULL(T3.VALUE,'') AS OPTION3," & vbCrLf &
"ISNULL(T4.VALUE,'') AS OPTION4," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN1','{7}',TRL.RECORD_ID) AS DROPDOWN1," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN2','{7}',TRL.RECORD_ID) AS DROPDOWN2," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN3','{7}',TRL.RECORD_ID) AS DROPDOWN3," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN4','{7}',TRL.RECORD_ID) AS DROPDOWN4," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC.GUID) AS VALUE1," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC1.GUID) AS VALUE2," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC2.GUID) AS VALUE3," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC3.GUID) AS VALUE4" & vbCrLf &
"FROM " & vbCrLf &
"VWPMO_DOC_SEARCH T " & vbCrLf &
"INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID" & vbCrLf &
"INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID" & vbCrLf &
"INNER JOIN TBPMO_STRUCTURE_NODES_USER_TEMP TTEMP ON TR.GUID = TTEMP.RECORD_ID" & vbCrLf &
"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vbCrLf &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC ON TR.FORM_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = '{7}' AND TRC.GUID = {8}" & vbCrLf &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 ON TR.FORM_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = '{7}' AND TRC1.GUID = {9}" & vbCrLf &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 ON TR.FORM_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = '{7}' AND TRC2.GUID = {10}" & vbCrLf &
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 ON TR.FORM_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = '{7}' AND TRC3.GUID = {11}" & vbCrLf &
"LEFT JOIN TBPMO_CONTROL_VALUE T1 ON TRL.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = {2} " & vbCrLf &
"LEFT JOIN TBPMO_CONTROL_VALUE T2 ON TRL.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = {3} " & vbCrLf &
"LEFT JOIN TBPMO_CONTROL_VALUE T3 ON TRL.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = {4} " & vbCrLf &
"LEFT JOIN TBPMO_CONTROL_VALUE T4 ON TRL.RECORD_ID = T4.RECORD_ID AND T4.CONTROL_ID = {5} " & vbCrLf &
"WHERE TR.FORM_ID = {1} AND TTEMP.USER_ID = {0} AND TRIGHTS.dwUserOrGroupID = {6}", USER_GUID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4, USERID_FK_INT_ECM, USER_LANGUAGE, VALUE_CONF1, VALUE_CONF2, VALUE_CONF3, VALUE_CONF4)
ElseIf CURRENT_SEARCH_TYPE = "FULLTEXT_SUBNODES" Then
Dim sqlft = SQL_FULLTEXT
sqlft = sqlft.Replace("@FULLTEXT", CURRENT_FULLTEXT_PATTERN)
SQL_DOC_SEARCH = String.Format("SELECT DISTINCT T.*," & vbNewLine &
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({4},T.DocID,{1}) AS OPTION1," & vbNewLine &
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({5},T.DocID,{1}) AS OPTION2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN1','{0}',TRL.RECORD_ID) AS DROPDOWN1," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN2','{0}',TRL.RECORD_ID) AS DROPDOWN2," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN3','{0}',TRL.RECORD_ID) AS DROPDOWN3," & vbNewLine &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN4','{0}',TRL.RECORD_ID) AS DROPDOWN4" & 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 &
"INNER JOIN TBPMO_STRUCTURE_NODES_USER_TEMP TTEMP ON TR.GUID = TTEMP.RECORD_ID" & vbNewLine &
"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vbNewLine &
"WHERE TR.FORM_ID = {1} AND TTEMP.USER_ID = {2} AND TRIGHTS.dwUserOrGroupID = {3}" & vbNewLine &
SQL_DOC_SEARCH = String.Format("SELECT DISTINCT T.*," & vbCrLf &
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({4},T.DocID,{1}) AS OPTION1," & vbCrLf &
"[dbo].[FNPMO_GET_CONTROL_VALUES_DOC_ENTITY] ({5},T.DocID,{1}) AS OPTION2," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN1','{0}',TRL.RECORD_ID) AS DROPDOWN1," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN2','{0}',TRL.RECORD_ID) AS DROPDOWN2," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN3','{0}',TRL.RECORD_ID) AS DROPDOWN3," & vbCrLf &
"[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,{1},'DROPDOWN4','{0}',TRL.RECORD_ID) AS DROPDOWN4" & vbCrLf &
"FROM " & vbCrLf &
"VWPMO_DOC_SEARCH T" & vbCrLf &
"INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID" & vbCrLf &
"INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID" & vbCrLf &
"INNER JOIN TBPMO_STRUCTURE_NODES_USER_TEMP TTEMP ON TR.GUID = TTEMP.RECORD_ID" & vbCrLf &
"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID" & vbCrLf &
"WHERE TR.FORM_ID = {1} AND TTEMP.USER_ID = {2} AND TRIGHTS.dwUserOrGroupID = {3}" & vbCrLf &
"AND T.DocID IN ({6})", USER_LANGUAGE, ENTITY_ID, USER_GUID, USERID_FK_INT_ECM, OPTION1, OPTION2, sqlft)
End If
LOGGER.Debug("SQL_DOC_SEARCH: " & SQL_DOC_SEARCH)
@@ -266,7 +266,7 @@ Public Class ClassDOC_SEARCH
Dim DT_FILE_RESULT As DataTable = GET_DOCSEARCH_DATATABLE(BG)
CURRENT_DOC_RESULTS = DT_FILE_RESULT
If IsNothing(DT_FILE_RESULT) Then
' MsgBox("ATTENTION: GET_DOCSEARCH_DATATABLE IS NOTHING" & vbNewLine & "Please inform Your Sysadmin", MsgBoxStyle.Exclamation, "Attention")
' MsgBox("ATTENTION: GET_DOCSEARCH_DATATABLE IS NOTHING" & vBCrlf & "Please inform Your Sysadmin", MsgBoxStyle.Exclamation, "Attention")
LOGGER.Warn("ATTENTION: GET_DOCSEARCH_DATATABLE IS NOTHING!!")
Return Nothing
End If
@@ -371,7 +371,7 @@ Public Class ClassDOC_SEARCH
End If
Catch ex As Exception
LOGGER.Warn("Unexpected Error in Construct Datatable: " & ex.Message)
MsgBox("Unexpected Error in Construct Datatable for GridResult: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Unexpected Error in Construct Datatable for GridResult: " & vbCrLf & ex.Message, MsgBoxStyle.Critical)
End Try
sw.Done()
@@ -486,7 +486,7 @@ Public Class ClassDOC_SEARCH
oNewRow.Item(i) = CInt(rowvalue)
End If
Else
oNewRow.Item(i) = rowvalue.ToString
oNewRow.Item(i) = rowvalue.ToString
End If
Catch ex As Exception
@@ -508,22 +508,22 @@ Public Class ClassDOC_SEARCH
sw.Done()
Catch ex As Exception
MsgBox("Unexpected Error in Get_DOC_RESULTTABLE (Step " & _step & "): " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Unexpected Error in Get_DOC_RESULTTABLE (Step " & _step & "): " & vbCrLf & ex.Message, MsgBoxStyle.Critical)
LOGGER.Warn("Unexpected Error in Get_DOC_RESULTTABLE (Step " & _step & "): " & ex.Message)
Return Nothing
End Try
End Function
Public Shared Function CREATE_DOC_RELATED_LINKS(DOC_ID As Integer, RECORD_ID As Integer)
Public Shared Function PROF_DOC_CREATE_UPDATE(pDOC_ID As Integer, pRECORD_ID As Integer, pFILE_HASH As String)
Try
Dim execute = String.Format("EXEC PROF_DOC_CREATE_UPDATE {0},{1},'{2}','{3}'", DOC_ID, RECORD_ID, USER_USERNAME, CURRENT_FILE_HASH)
Dim execute = String.Format("EXEC PROF_DOC_CREATE_UPDATE {0},{1},'{2}','{3}'", pDOC_ID, pRECORD_ID, USER_USERNAME, pFILE_HASH)
If MYDB_ECM.ExecuteNonQuery(execute) = True Then
Return True
Else
Return False
End If
Catch ex As Exception
MsgBox("Unexpected Error in CREATE_DOC_RELATED_LINKS: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Unexpected Error in PROF_DOC_CREATE_UPDATE: " & vbCrLf & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
@@ -537,9 +537,9 @@ Public Class ClassDOC_SEARCH
If ClassWDRights.Init = True Then
If ClassWDRights.Doc_Renew_Rights(oWMObject, RESULT_DOCID, RESULT_DOC_PATH, DeleteRightsBefore) Then
If ClassWDRights.MSG_RESULT <> "" Then
Dim msg = "Achtung: einige Rechte konnten nicht gesetzt werden: " & vbNewLine & ClassWDRights.MSG_RESULT
Dim msg = "Achtung: einige Rechte konnten nicht gesetzt werden: " & vbCrLf & ClassWDRights.MSG_RESULT
If USER_LANGUAGE <> "de-DE" Then
msg = "Attention: some rights could not be set: " & vbNewLine & ClassWDRights.MSG_RESULT
msg = "Attention: some rights could not be set: " & vbCrLf & ClassWDRights.MSG_RESULT
End If
ClassHelper.MSGBOX_Handler("INFO", "Information:", msg)
End If
@@ -553,7 +553,7 @@ Public Class ClassDOC_SEARCH
End If
Catch ex As Exception
MsgBox("Unexpected Error in SET_WD_RIGHTS: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Unexpected Error in SET_WD_RIGHTS: " & vbCrLf & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function

View File

@@ -8,6 +8,8 @@ Public Class ClassDragDrop
Public Shared Function Drop_File(e As DragEventArgs)
Try
LOGGER.Debug("In Drop_File....")
ClassHelper.DELETE_PMO_FILE_USER_OPEN_FILES()
files_dropped = New String() {}
' WICHTIG: DB-Löschung NICHT im UI-Thread erzwingen.

View File

@@ -1,151 +0,0 @@
Imports System.IO
Imports Independentsoft
Imports System.Threading
Public Class ClassFolderWatcher
Public Shared FolderWatcher_SCAN As FileSystemWatcher
Public Shared NEW_FILES As Boolean = True
Public Shared Function Restart_FolderWatchSCAN()
Try
If FolderWatcher_SCAN.EnableRaisingEvents = True Then
'Gestartet also Stoppen
FolderWatcher_SCAN.EnableRaisingEvents = False
FWSCAN_started = False
'FolderWatch neu instanzieren
FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
LOGGER.Warn("FolderWatchScan neu instanziert")
FolderWatcher_SCAN.IncludeSubdirectories = CURRENT_SCAN_FOLDERWATCH_SD
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
FWSCAN_started = True
SaveMySettingsValue("FWSCAN_started", "True", "ConfigMain")
End If
Catch ex As Exception
MsgBox("Error in Restart_FolderWatchSCAN:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Function
Public Shared Function StartStop_FolderWatchSCAN()
Try
If CURRENT_SCAN_FOLDERWATCH = "" Then
MsgBox("Bitte definieren Sie einen Überwachungsordner für Scan-Eingänge:", MsgBoxStyle.Exclamation)
Return False
End If
If FolderWatcher_SCAN Is Nothing Then
FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
LOGGER.Info("FolderWatch Scan Gestartet")
FolderWatcher_SCAN.IncludeSubdirectories = CURRENT_SCAN_FOLDERWATCH_SD
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
FWSCAN_started = True
SaveMySettingsValue("FWSCAN_started", "True", "ConfigMain")
Return 1
End If
If FolderWatcher_SCAN.EnableRaisingEvents = False Then
' Dim watcher As New FileSystemWatcher()
' watcher.Path = CURRENT_FOLDERWATCH
FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
LOGGER.Info("FolderWatch Scan Gestartet")
FolderWatcher_SCAN.IncludeSubdirectories = CURRENT_SCAN_FOLDERWATCH_SD
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
FWSCAN_started = True
SaveMySettingsValue("FWSCAN_started", "True", "ConfigMain")
Return 1
Else
'Gestartet also Stoppen
FolderWatcher_SCAN.EnableRaisingEvents = False
FWSCAN_started = False
LOGGER.Info("FolderWatch Scan gestoppt")
SaveMySettingsValue("FWSCAN_started", "False", "ConfigMain")
Return 0
End If
Catch ex As Exception
MsgBox("Error in StartStop_FolderWatchSCAN:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return 99
End Try
End Function
Private Shared Sub OnCreated(source As Object, e As FileSystemEventArgs)
Try
For Each row As DataRow In DTEXCLUDE_FILES.Rows
Dim content As String = row.Item(0).ToString.ToLower
If e.FullPath.ToLower.Contains(content) Then
Exit Sub
End If
Next
Dim handleType As String
If e.FullPath.EndsWith(".msg") Then
handleType = "SCAN_OUTLOOK_MESSAGE"
Else
handleType = "SCAN"
End If
'Die Datei übergeben
LOGGER.Debug("OnCreated-File:" & e.FullPath)
If FileExistsinDropTable(CURRENT_FILENAME) = False Then
If ClassHelper.Insert_USER_File(e.FullPath, handleType) = False Then
Exit Sub
End If
Else
Console.WriteLine("File existiert bereits")
End If
ClassHelper.Create_USER_FILE_TABLE()
NEW_FILES = True
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in folder_watch_Created")
End Try
End Sub
Public Shared Function FileExistsinDropTable(Filename As String)
Dim check As String
Try
check = "SELECT COUNT(*) FROM TBPMO_FILES_USER WHERE FILENAME2WORK = '" & Filename & "' AND WORKED = 0"
Dim result = MYDB_ECM.GetScalarValue(check)
Return result
Catch ex As Exception
MsgBox("Error in FileExistsinDropTable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & check, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Public Shared Function DELETE_SCAN_File(filename As String)
Try
Dim filename_only As String = Path.GetFileName(filename)
Dim del As String = String.Format("DELETE FROM TBPMO_FILES_USER WHERE FILENAME2WORK = '{0}'", filename)
Return MYDB_ECM.ExecuteNonQuery(del)
Catch ex As Exception
MsgBox("Unexpected Error in DELETE_SCAN_File: " & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function DELETE_SCAN_File_User()
Try
Dim del As String = String.Format("DELETE FROM TBPMO_FILES_USER WHERE USER_WORK = '{0}' AND HANDLE_TYPE = 'SCAN'", USER_USERNAME)
Return MYDB_ECM.ExecuteNonQuery(del)
Catch ex As Exception
MsgBox("Unexpected Error in DELETE_SCAN_File_User: " & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function Check_Scan_Files()
Try
Dim sql As String = String.Format("select * from TBPMO_FILES_USER where HANDLE_TYPE = 'SCAN' and WORKED = 0 AND USER_WORK = '{0}'", USER_USERNAME)
Dim DT As DataTable = MYDB_ECM.GetDatatable(sql)
For Each row As DataRow In DT.Rows
If System.IO.File.Exists(row.Item("FILENAME2WORK")) = False Then
DELETE_SCAN_File(row.Item("FILENAME2WORK"))
End If
Next
CURRENT_SCAN_TABLE = MYDB_ECM.GetDatatable(sql)
Catch ex As Exception
MsgBox("Unexpected Error in DELETE_SCAN_File_User: " & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
End Class

View File

@@ -7,46 +7,37 @@ Public Class ClassHelper
Private Shared BW_DocID As Integer
Private Shared BW_ParentID As Integer
Private Shared BW_Filename As String
Public Shared Function FORMAT_WM_PATH(WMpath As String)
Public Shared Function FORMAT_WM_PATH(WMpath As String) As String
Try
If Not IsNothing(WMpath) Then
Dim ochanged As Boolean = False
If WMpath.StartsWith("W:") Then
WMpath = WMpath.Replace("W:", WMPATH_PREFIX)
ochanged = True
ElseIf WMpath.StartsWith("\") Then
If WMpath.StartsWith(WMPATH_PREFIX) = False Then
WMpath = WMPATH_PREFIX & WMpath
ochanged = True
End If
End If
LOGGER.Debug("WMpath is: " & WMpath)
Return WMpath
Else
If IsNothing(WMpath) Then
Return Nothing
End If
Catch ex As Exception
Return WMpath
End Try
End Function
Public Shared Function GetRelPath(WMpath As String)
Try
If WMpath.StartsWith("W:") Then
WMpath = WMpath.Replace("W:", "")
ElseIf WMpath.StartsWith("\") Then
If WMpath.StartsWith(WMPATH_PREFIX) = False Then
WMpath = WMpath.Replace("WMPATH_PREFIX:", "")
End If
WMpath = WMpath.Replace("W:", WMPATH_PREFIX)
ElseIf WMpath.StartsWith("\") AndAlso Not WMpath.StartsWith(WMPATH_PREFIX) Then
WMpath = WMPATH_PREFIX & WMpath
End If
LOGGER.Debug("WMpath is: " & WMpath)
Return WMpath
Catch ex As Exception
Return WMpath
End Try
End Function
Public Shared Function GetRelPath(WMpath As String) As String
Try
If WMpath.StartsWith("W:") Then
WMpath = WMpath.Replace("W:", "")
ElseIf WMpath.StartsWith(WMPATH_PREFIX) Then
WMpath = WMpath.Replace(WMPATH_PREFIX, "")
End If
LOGGER.Debug("WMpath is: " & WMpath)
Return WMpath
Catch ex As Exception
Return WMpath
End Try
End Function
Public Shared Function Format_Currency(value As String, language As String)
Try
@@ -118,53 +109,28 @@ Public Class ClassHelper
End If
Return tempName
End Function
Public Shared Function CheckFileIsInUse(ByVal filename) As Boolean
Dim fs As Integer = FreeFile()
Dim inuse As Boolean = False
If File.Exists(filename) Then
Try
Using f As New IO.FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.None)
' thisFileInUse = False
End Using
Catch
inuse = True
End Try
Try
FileOpen(fs, filename, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.LockReadWrite)
Catch ex As Exception
LOGGER.Warn("File " & filename & " inuse or not able to open - message: " & ex.Message)
inuse = True
Finally
FileClose(fs)
End Try
End If
Return inuse
End Function
Public Shared Function Versionierung_Datei(Dateiname As String)
Dim extension
Dim _NewFileString
Public Shared Function Versionierung_Datei(pDateiname As String) As String
Try
Dim version As Integer = 1
pDateiname = FORMAT_WM_PATH(pDateiname)
Dim dir As String = Path.GetDirectoryName(pDateiname)
Dim baseName As String = Path.GetFileNameWithoutExtension(pDateiname)
Dim ext As String = Path.GetExtension(pDateiname)
Dim stammname As String = Path.Combine(dir, baseName)
Dim Stammname As String = Path.GetDirectoryName(Dateiname) & "\" & Path.GetFileNameWithoutExtension(Dateiname)
extension = Path.GetExtension(Dateiname)
Dim _neuername As String = Stammname
'Dim MoveFilename As String = DATEINAME.Replace(element.Value, "")
'Überprüfen ob File existiert
If File.Exists(_neuername & extension) = False Then
_NewFileString = _neuername
Else
Do While File.Exists(_neuername & extension)
version = version + 1
_neuername = Stammname & "~" & version
_NewFileString = _neuername
Loop
If Not File.Exists(pDateiname) Then
Return ""
End If
Return _NewFileString & extension
Dim version As Integer = 2
Dim candidate As String
Do
candidate = stammname & "~" & version & ext
version += 1
Loop While File.Exists(candidate)
Return candidate
Catch ex As Exception
LOGGER.Warn(" - Error in versioning file - error: " & vbNewLine & ex.Message)
LOGGER.Warn(" - Error in versioning file - error: " & vbCrLf & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in versioning file:")
Return ""
End Try
@@ -209,12 +175,13 @@ Public Class ClassHelper
Return True
Else
MSGBOX_Handler("ERROR", "", "Sorry, but the docpath for doc-id: " & DocID & " is nothing!")
Return False
LOGGER.Debug("RESULT_DOC_PATH IS NOTHING")
Return False
End If
Catch ex As Exception
MsgBox("Unexpected Error in File_open:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in File_open: " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
MsgBox("Unexpected Error in File_open:" & vbCrLf & ex.Message & vbCrLf & RESULT_DOC_PATH & vbCrLf & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in File_open: " & ex.Message & vbCrLf & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
Return False
End Try
End Function
@@ -228,8 +195,8 @@ Public Class ClassHelper
LOGGER.Debug("RESULT_DOC_PATH IS NOTHING")
End If
Catch ex As Exception
MsgBox("Unexpected Error in Open_Folder:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in Open_Folder: " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
MsgBox("Unexpected Error in Open_Folder:" & vbCrLf & ex.Message & vbCrLf & RESULT_DOC_PATH & vbCrLf & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in Open_Folder: " & ex.Message & vbCrLf & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
End Try
End Sub
Private Shared Sub File_SYSOPEN(RESULT_DOC_PATH As Object, DocID As String, pParentID As Integer)
@@ -247,8 +214,8 @@ Public Class ClassHelper
LOGGER.Warn("File_SYSOPEN RESULT_DOC_PATH is nothing")
End If
Catch ex As Exception
MsgBox("Unexpected Error in File_SYSOPEN:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in File_SYSOPEN: " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
MsgBox("Unexpected Error in File_SYSOPEN:" & vbCrLf & ex.Message & vbCrLf & RESULT_DOC_PATH & vbCrLf & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in File_SYSOPEN: " & ex.Message & vbCrLf & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
End Try
End Sub
@@ -313,15 +280,15 @@ Public Class ClassHelper
Catch ex As Exception
' Fehler im Prozessstart oder während des Wartens
LOGGER.Warn("Error in Process.Start(): " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
MsgBox("Error in OpenFile: " & ex.Message & vbNewLine &
"Path: " & BW_DocPath & vbNewLine & "DocID: " & BW_DocID,
LOGGER.Warn("Error in Process.Start(): " & ex.Message & vbCrLf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
MsgBox("Error in OpenFile: " & ex.Message & vbCrLf &
"Path: " & BW_DocPath & vbCrLf & "DocID: " & BW_DocID,
MsgBoxStyle.Exclamation, "Open File Error")
End Try
Catch ex As Exception
' Fehler im gesamten Worker (z. B. Path nicht vorhanden)
LOGGER.Warn("General error in BWFileHandler_DoWork: " & ex.Message & vbNewLine &
LOGGER.Warn("General error in BWFileHandler_DoWork: " & ex.Message & vbCrLf &
" - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' Letzter Versuch: Öffne mit Standardprogramm
@@ -329,7 +296,7 @@ Public Class ClassHelper
Process.Start(BW_DocPath)
LOGGER.Debug("Fallback: Document opened with default application.")
Catch ex1 As Exception
LOGGER.Warn("Fallback error in Process.Start(): " & ex1.Message & vbNewLine &
LOGGER.Warn("Fallback error in Process.Start(): " & ex1.Message & vbCrLf &
" - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
End Try
End Try
@@ -382,17 +349,17 @@ Public Class ClassHelper
' End If
' Catch ex As Exception
' LOGGER.Warn("Error in Process1.Start(): " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' MsgBox("Error in OpenFile: " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID, MsgBoxStyle.Exclamation)
' LOGGER.Warn("Error in Process1.Start(): " & ex.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' MsgBox("Error in OpenFile: " & ex.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID, MsgBoxStyle.Exclamation)
' Exit Sub
' End Try
' Catch ex As Exception
' LOGGER.Warn("Error in Process.Start(): " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' LOGGER.Warn("Error in Process.Start(): " & ex.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' Try
' Process.Start(BW_DocPath)
' Catch ex1 As Exception
' LOGGER.Warn("Error in Process.Start(1): " & ex1.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' LOGGER.Warn("Error in Process.Start(1): " & ex1.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
' End Try
' End Try
'End Sub
@@ -407,14 +374,11 @@ Public Class ClassHelper
End If
End If
Catch ex As Exception
MsgBox("Unexpected Error in FOLDER_OPEN:" & vbNewLine & ex.Message & vbNewLine & PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in FOLDER_OPEN: " & ex.Message & vbNewLine & " - Path: " & PATH & " - DocID: " & DocID)
MsgBox("Unexpected Error in FOLDER_OPEN:" & vbCrLf & ex.Message & vbCrLf & PATH & vbCrLf & "DocID: " & DocID, MsgBoxStyle.Critical)
LOGGER.Warn("Error in FOLDER_OPEN: " & ex.Message & vbCrLf & " - Path: " & PATH & " - DocID: " & DocID)
End Try
End Sub
Shared Function Convert_Date_2_Form_Format(p1 As Date) As Date
Throw New NotImplementedException
End Function
Public Shared Function InsertEssential_Log(REFERENCE_KEY As Integer, REFERENCE_STRING As String, COMMENT As String)
Try
COMMENT = COMMENT.Replace("'", "")
@@ -449,7 +413,7 @@ Public Class ClassHelper
Public Shared Sub MSGBOX_Handler(type As String, Caption As String, info1 As String, Optional info2 As String = "")
Dim msg = info1
If info2 <> "" Then
msg &= vbNewLine & vbNewLine & info2
msg &= vbCrLf & vbCrLf & info2
End If
If type = "ERROR" Then
MessageBox.Show(msg, Caption, MessageBoxButtons.OK, MessageBoxIcon.Error)
@@ -495,6 +459,18 @@ Public Class ClassHelper
Return False
End Try
End Function
Public Shared Sub REMOVE_OLD_DROP_FILES()
Try
Dim oDEL = String.Format("UPDATE [DD_ECM].[dbo].[TBPMO_FILES_USER]
SET [USER_WORK] = [USER_WORK] + '_TIMEOUT',
WORKED = 1
WHERE ADDED_WHEN < DATEADD(MINUTE, -5, GETDATE())
AND WORKED = 0 AND USER_WORK = '{0}' ;", USER_USERNAME)
MYDB_ECM.ExecuteNonQuery(oDEL)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while REMOVE_OLD_DROP_FILES")
End Try
End Sub
Public Shared Sub Create_USER_FILE_TABLE()
Try
Dim sql = String.Format("SELECT *, CONVERT(BIT,0) AS DELETE_FILE FROM TBPMO_FILES_USER WHERE (USER_WORK = '{0}') AND WORKED = 0", USER_USERNAME)
@@ -512,6 +488,15 @@ Public Class ClassHelper
Return False
End Try
End Function
Public Shared Function DELETE_PMO_FILE_USER_OPEN_FILES()
Try
Dim del As String = String.Format("DELETE FROM TBPMO_FILES_USER WHERE (USER_WORK = '{0}') AND WORKED = 0", USER_USERNAME)
Return MYDB_ECM.ExecuteNonQuery(del)
Catch ex As Exception
MsgBox("Unexpected Error in DELETE_PMO_FILE_USER_OPEN_FILES: " & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function DecryptString(ciphertext As String, MethodName As String)
Dim result As String
Dim wrapper As New ClassEncryption("!35452didalog=")
@@ -530,7 +515,6 @@ Public Class ClassHelper
Dim filteredData As DataTable = BaseDatatable.Clone()
'Einfügevariante
BaseDatatable.Select(expression, sortstring).CopyToDataTable(filteredData, LoadOption.PreserveChanges)
Console.WriteLine("Found {0} rows.", filteredData.Rows.Count)
'Dim filteredData = BaseDatatable.Select(expression).CopyToDataTable()
Return filteredData
Catch ex As Exception
@@ -551,27 +535,49 @@ Public Class ClassHelper
Public Shared Function Insert_USER_File(pFilename As String, handleType As String)
Try
Dim filename_only As String = Path.GetFileName(pFilename)
CURRENT_FILE_HASH = ""
Dim CURRENT_FILE_HASH = ""
If File.Exists(pFilename) Then
Dim oFileInfo As New FileInfo(pFilename)
LOGGER.Debug($"File exists: [{pFilename}] | Size: {oFileInfo.Length} bytes | Extension: {oFileInfo.Extension}")
If (pFilename.ToUpper.EndsWith(".MSG") Or pFilename.ToUpper.EndsWith(".EML")) And (handleType = "|OUTLOOK_MESSAGE|" Or handleType = "|MSGONLY|") Then
CURRENT_FILE_HASH = FILESYSTEM.GetChecksumFromString(pFilename)
LOGGER.Debug($"Hash method: GetChecksumFromString | Hash: [{CURRENT_FILE_HASH}]")
Else
CURRENT_FILE_HASH = FILESYSTEM.GetChecksum(pFilename)
LOGGER.Debug($"Hash method: GetChecksum | Hash: [{CURRENT_FILE_HASH}]")
End If
Else
LOGGER.Warn($"File does not exist: [{pFilename}] - Cannot compute hash.")
End If
Dim oSQL = $"SELECT ADDED_WHO, FORMAT(ADDED_WHEN, 'dd-MM-yyyy HH:mm') AS ADDED_WHEN_STRING FROM TBPMO_DOCRESULT_LIST WHERE FILE_HASH = '{CURRENT_FILE_HASH}' ORDER BY ADDED_WHEN DESC"
Dim oSQL = $"SELECT Filename, ADDED_WHO, FORMAT(ADDED_WHEN, 'dd-MM-yyyy HH:mm') AS ADDED_WHEN_STRING FROM TBPMO_DOCRESULT_LIST WHERE FILE_HASH = '{CURRENT_FILE_HASH}' ORDER BY ADDED_WHEN DESC"
LOGGER.Debug($"Inserting File - hash is [{CURRENT_FILE_HASH}]")
Dim oDTCHECK As DataTable = MYDB_ECM.GetDatatable(oSQL)
If Not IsNothing(oDTCHECK) Then
If oDTCHECK.Rows.Count >= 1 Then
LOGGER.Info($"We got a file with the same hash [{CURRENT_FILE_HASH}]")
Dim oUSER = oDTCHECK.Rows(0).Item(0)
Dim oADDED_WHEN = oDTCHECK.Rows(0).Item(1)
Dim oMSG = $"Achtung:" & vbNewLine & "Die Datei wurde bereits nach orgFLOW importiert. Anzahl: " & oDTCHECK.Rows.Count.ToString & vbNewLine &
$"Importiert wann: {oADDED_WHEN}" & vbNewLine &
$"Importiert wer: {oUSER}" & vbNewLine &
"Wollen Sie die Datei dennoch importieren?"
Dim oFilename = oDTCHECK.Rows(0).Item(0)
Dim oUSER = oDTCHECK.Rows(0).Item(1)
Dim oADDED_WHEN = oDTCHECK.Rows(0).Item(2)
Dim oMSG As String
If USER_LANGUAGE <> "de-DE" Then
oMSG = $"This file has already been imported into orgFLOW!" & vbCrLf &
$"File: [{oFilename}]" & vbCrLf &
$"Imported on: {oADDED_WHEN}" & vbCrLf &
$"Imported by: {oUSER}" & vbCrLf &
$"Total imports with identical content: {oDTCHECK.Rows.Count}" & vbCrLf & vbCrLf &
"Do you want to import this file again?" & vbCrLf &
"NO → Teh complete Import will be cancelled."
Else
oMSG = $"Diese Datei wurde bereits in orgFLOW importiert!" & vbCrLf &
$"Datei: [{oFilename}]" & vbCrLf &
$"Importiert am: {oADDED_WHEN}" & vbCrLf &
$"Importiert von: {oUSER}" & vbCrLf &
$"Anzahl Importe mit identischem Inhalt: {oDTCHECK.Rows.Count}" & vbCrLf & vbCrLf &
"Möchten Sie die Datei dennoch erneut importieren?" & vbCrLf &
"NEIN → Der gesamte Import (alle folgenden) wird abgebrochen."
End If
Dim result As MsgBoxResult
result = MessageBox.Show(oMSG, CAPTION_CONFIRMATION, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = MsgBoxResult.No Then
@@ -580,7 +586,7 @@ Public Class ClassHelper
End If
End If
Dim ins As String = String.Format("INSERT INTO TBPMO_FILES_USER (FILENAME2WORK, USER_WORK,HANDLE_TYPE,FILENAME_ONLY) VALUES ('{0}','{1}','{2}','{3}')", pFilename, USER_USERNAME, handleType, filename_only)
Dim ins As String = String.Format("INSERT INTO TBPMO_FILES_USER (FILENAME2WORK, USER_WORK,HANDLE_TYPE,FILENAME_ONLY,FILE_HASH) VALUES ('{0}','{1}','{2}','{3}','{4}')", pFilename, USER_USERNAME, handleType, filename_only, CURRENT_FILE_HASH)
Return MYDB_ECM.ExecuteNonQuery(ins)
Catch ex As Exception
MsgBox("Unexpected Error in Insert file for user (TBPMO_FILES_USER): " & ex.Message, MsgBoxStyle.Critical)

View File

@@ -96,7 +96,7 @@ Public Class ClassImport_Windream
Catch ex As Exception
MsgBox("Unexpected error in Import_File ClassImport_windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Unexpected error in Import_File ClassImport_windream: " & vbCrLf & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
@@ -367,9 +367,9 @@ Public Class ClassImport_Windream
End If
Else
Dim msg As String
msg = "In der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper
msg = "In der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbCrLf & "Elementname: " & element.Value.ToUpper
If USER_LANGUAGE <> "de-DE" Then
msg = "In nameconvention an element was defined which could not be replaced." & vbNewLine & "Elementname: " & element.Value.ToUpper
msg = "In nameconvention an element was defined which could not be replaced." & vbCrLf & "Elementname: " & element.Value.ToUpper
End If
myLogger.Warn(msg)
MsgBox(msg, MsgBoxStyle.Exclamation, "Error in Name Convention:")
@@ -390,7 +390,7 @@ Public Class ClassImport_Windream
oNewWM_Filename = oNewWM_Filename.Replace("\\", "\")
Catch ex As Exception
myLogger.Warn(" - Error in Versioning file - Error: " & vbNewLine & ex.Message)
myLogger.Warn(" - Error in Versioning file - Error: " & vbCrLf & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Versioning file:")
err = True
End Try
@@ -411,8 +411,8 @@ Public Class ClassImport_Windream
End If
Catch ex As Exception
myLogger.Warn(" - Unexpected Error in FileName-Creating: " & vbNewLine & ex.Message)
MsgBox(" - Unexpected Error in FileName-Creating: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
myLogger.Warn(" - Unexpected Error in FileName-Creating: " & vbCrLf & ex.Message)
MsgBox(" - Unexpected Error in FileName-Creating: " & vbCrLf & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
@@ -495,8 +495,8 @@ Public Class ClassImport_Windream
End If
Return oReturnValue
Catch ex As Exception
LOGGER.Warn(" - Unexpected Error in GET_CTRLData: " & vbNewLine & ex.Message)
MsgBox("Unexpected Error in GET_CTRLData: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
LOGGER.Warn(" - Unexpected Error in GET_CTRLData: " & vbCrLf & ex.Message)
MsgBox("Unexpected Error in GET_CTRLData: " & vbCrLf & ex.Message, MsgBoxStyle.Critical)
Return ""
End Try
End Function
@@ -714,8 +714,8 @@ Public Class ClassImport_Windream
Case Else
LOGGER.Warn(" -Undefined pattern found in folderconvention" & vbNewLine & "Elementname: " & element.Value.ToUpper)
MsgBox("Achtung - in der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper, MsgBoxStyle.Exclamation, "Unexpected error in Name generieren:")
LOGGER.Warn(" -Undefined pattern found in folderconvention" & vbCrLf & "Elementname: " & element.Value.ToUpper)
MsgBox("Achtung - in der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbCrLf & "Elementname: " & element.Value.ToUpper, MsgBoxStyle.Exclamation, "Unexpected error in Name generieren:")
End Select
LOGGER.Debug($"FolderConvention so far is: '{FolderConvention}'")
Next
@@ -723,7 +723,7 @@ Public Class ClassImport_Windream
Return True
Catch ex As Exception
MsgBox("Unexpected Error in CreateFolderforIndex-Method:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Unexpected Error in CreateFolderforIndex-Method:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
LOGGER.Warn("Fehler in CrFolderForIndex: " & ex.Message, True)
Return False
End Try
@@ -752,7 +752,7 @@ Public Class ClassImport_Windream
CURRENT_NEWFILENAME = _NewFileString & extension
Return True
Catch ex As Exception
LOGGER.Warn(" - Error in versioning file - error: " & vbNewLine & ex.Message)
LOGGER.Warn(" - Error in versioning file - error: " & vbCrLf & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in versioning file:")
Return False
End Try

View File

@@ -513,22 +513,6 @@ Public Class ClassInit
oFNSQL = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Record-Organizer'"
MYDB_ECM.ExecuteNonQuery(oFNSQL)
Return False
Else
Try
'Die FolderWatch starten
Dim sql1 = "SELECT FOLDER_PATH FROM TBPMO_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'SCAN' AND USER_ID = " & USER_GUID
Dim folderwatch_SCAN = MYDB_ECM.GetScalarValue(sql1)
If Not folderwatch_SCAN Is Nothing Then
CURRENT_SCAN_FOLDERWATCH = folderwatch_SCAN
If FWSCAN_started = True Then
ClassFolderWatcher.StartStop_FolderWatchSCAN()
End If
End If
Catch ex As Exception
LOGGER.Warn("Unexpected Error in Init_Folderwatch: " & ex.Message, True)
Return False
End Try
End If
'If LICENSE_PROXY = True And clsDatabase.DB_PROXY_INITIALIZED Then
@@ -536,6 +520,7 @@ Public Class ClassInit
'End If
Dim oSQL = $"SELECT COUNT(GU.GUID) FROM TBDD_GROUPS_USER GU INNER JOIN TBDD_GROUPS G ON GU.GROUP_ID = G.GUID WHERE G.NAME = 'ORGFLOW-Supervisor' AND GU.USER_ID = {USER_GUID}"
USER_IS_SUPERVISOR = MYDB_ECM.GetScalarValue(oSQL)
ClassHelper.DELETE_PMO_FILE_USER_OPEN_FILES()
Return True
Catch ex As Exception
LOGGER.Error(ex)

View File

@@ -91,7 +91,7 @@ Public Class ClassNodeNavigation
' ParentNode.Nodes.Add(NEW_NODE)
' Next '
'End Function
Public Shared Sub Check_NODE_CONFIG_ID(ENTITY_ID As Integer, myTreeNode As TreeNode)
Public Shared Sub Check_NODE_CONFIG_ID(ENTITY_ID As Integer, myTreeNode As TreeNode, pDatatable As DataTable)
Try
If myTreeNode Is Nothing Then
Exit Sub
@@ -108,9 +108,9 @@ Public Class ClassNodeNavigation
Else
LOGGER.Debug($"Attention no NODE-TYPE in staticListItems(0) [{staticListItems(0).ToString}]")
End If
If NODE_CONFIGURABLE_NODES_DT.Rows.Count > 0 And IsNumeric(NODE_ID) Then
If pDatatable.Rows.Count > 0 And IsNumeric(NODE_ID) Then
'Prüfen ob es für dieses Level einen konfigurierbaren Knoten gibt
Dim oTable As DataTable = NODE_CONFIGURABLE_NODES_DT
Dim oTable As DataTable = pDatatable
' Get rows with PARENT_ID = NODE_ID
Dim result() As DataRow = oTable.Select("PARENT_NODE = " & NODE_CONFIG_ID)
Dim count As Integer
@@ -169,7 +169,7 @@ Public Class ClassNodeNavigation
Return TagString
End Try
End Function
Public Shared Function CreateTreeViewNodes(DT_TREEVIEW_NODES As DataTable, TREEVIEW_IMAGELIST As ImageList)
Public Shared Function CreateTreeViewNodes(DT_TREEVIEW_NODES As DataTable, TREEVIEW_IMAGELIST As ImageList, pDT_CONFIGURABLE_NODES As DataTable)
Try
LOGGER.Debug($"NODES: DT_TREEVIEW_NODES-Count: {DT_TREEVIEW_NODES.Rows.Count}")
Dim sw As New SW("CreateTreeViewNodes")
@@ -184,7 +184,7 @@ Public Class ClassNodeNavigation
For i = 0 To MAIN_NODES.GetUpperBound(0)
If ENTITY_ID <> MAIN_NODES(i)("ENTITY_ID") Then
ENTITY_ID = MAIN_NODES(i)("ENTITY_ID")
ClassNodeNavigation.Check_NODE_CONFIG_ID(MAIN_NODES(i)("ENTITY_ID"), Nothing)
ClassNodeNavigation.Check_NODE_CONFIG_ID(MAIN_NODES(i)("ENTITY_ID"), Nothing, pDT_CONFIGURABLE_NODES)
End If
Dim NODE_Tag = CreateNODE_TAG(MAIN_NODES(i)("ENTITY_ID"), MAIN_NODES(i)("GUID"), MAIN_NODES(i)("RECORD_ID"), MAIN_NODES(i)("NODE_CONFIG_ID"))
@@ -222,7 +222,7 @@ Public Class ClassNodeNavigation
End Try
MAIN_NODE = CheckSubNodes(DT_TREEVIEW_NODES, MAIN_NODES(i)("GUID"), TREEVIEW_IMAGELIST, MAIN_NODE, MAIN_NODES(i)("EXPAND_NODE"))
MAIN_NODE = CheckSubNodes(DT_TREEVIEW_NODES, MAIN_NODES(i)("GUID"), TREEVIEW_IMAGELIST, MAIN_NODE, MAIN_NODES(i)("EXPAND_NODE"), pDT_CONFIGURABLE_NODES)
'Add the node
mytrv.Nodes.Add(MAIN_NODE)
@@ -235,7 +235,7 @@ Public Class ClassNodeNavigation
Return Nothing
End Try
End Function
Private Shared Function CheckSubNodes(DT_TREEVIEW_NODES As DataTable, PARENT_GUID As Integer, TREEVIEW_IMAGELIST As ImageList, MY_NODE As TreeNode, EXPAND As Boolean)
Private Shared Function CheckSubNodes(DT_TREEVIEW_NODES As DataTable, PARENT_GUID As Integer, TREEVIEW_IMAGELIST As ImageList, MY_NODE As TreeNode, EXPAND As Boolean, pDT_CONFIGURABLE_NODES As DataTable)
Dim ENTITY_ID As Integer
Dim expression As String
expression = "PARENT_GUID = " & PARENT_GUID.ToString
@@ -246,7 +246,7 @@ Public Class ClassNodeNavigation
For i = 0 To SUB_NODE_ROW.GetUpperBound(0)
If ENTITY_ID <> SUB_NODE_ROW(i)("ENTITY_ID") Then
ENTITY_ID = SUB_NODE_ROW(i)("ENTITY_ID")
ClassNodeNavigation.Check_NODE_CONFIG_ID(SUB_NODE_ROW(i)("ENTITY_ID"), MY_NODE)
ClassNodeNavigation.Check_NODE_CONFIG_ID(SUB_NODE_ROW(i)("ENTITY_ID"), MY_NODE, pDT_CONFIGURABLE_NODES)
End If
Dim NODE_Tag = CreateNODE_TAG(SUB_NODE_ROW(i)("ENTITY_ID"), SUB_NODE_ROW(i)("GUID"), SUB_NODE_ROW(i)("RECORD_ID"), SUB_NODE_ROW(i)("NODE_CONFIG_ID"))
If SUB_NODE_ROW(i)("NODE_CAPTION").ToString.Contains("Neuer") Then
@@ -290,7 +290,7 @@ Public Class ClassNodeNavigation
Catch ex As Exception
LOGGER.Warn("Unexpected Error in Formatting NodeColor (Subnodes): " & ex.Message)
End Try
CheckSubNodes(DT_TREEVIEW_NODES, SUB_NODE_ROW(i)("GUID"), TREEVIEW_IMAGELIST, SUB_NODE, SUB_NODE_ROW(i)("EXPAND_NODE"))
CheckSubNodes(DT_TREEVIEW_NODES, SUB_NODE_ROW(i)("GUID"), TREEVIEW_IMAGELIST, SUB_NODE, SUB_NODE_ROW(i)("EXPAND_NODE"), pDT_CONFIGURABLE_NODES)
'Add the node
MY_NODE.Nodes.Add(SUB_NODE)
'If EXPAND = True Then

View File

@@ -1,19 +1,21 @@
Imports System.ComponentModel
Public Class ClassAsyncNodeBuild
Private DTNODES As DataTable
Private DT_CONFIGURABLE_NODES As DataTable
Private ImgList As ImageList
Public WithEvents bw As BackgroundWorker
Public newTreeview As TreeView
Public Sub New(DT_TREEVIEW_NODES As DataTable, TREEVIEW_IMAGELIST As ImageList)
Public Sub New(DT_TREEVIEW_NODES As DataTable, TREEVIEW_IMAGELIST As ImageList, pDT_CONFIGURABLE_NODES As DataTable)
Me.bw = New BackgroundWorker()
bw.WorkerReportsProgress = False
bw.WorkerSupportsCancellation = False
Me.DTNODES = DT_TREEVIEW_NODES
Me.ImgList = TREEVIEW_IMAGELIST
DT_CONFIGURABLE_NODES = pDT_CONFIGURABLE_NODES
End Sub
Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs) Handles bw.DoWork
Me.newTreeview = ClassNodeNavigation.CreateTreeViewNodes(DTNODES, ImgList)
Me.newTreeview = ClassNodeNavigation.CreateTreeViewNodes(DTNODES, ImgList, DT_CONFIGURABLE_NODES)
End Sub
End Class

View File

@@ -62,7 +62,6 @@ Module ModuleRuntimeVariables
Public CURRENT_CONSTRUCTOR_DETAIL_ID As Integer
Public CURRENT_FILEID As Integer
Public CURRENT_FILENAME As String
Public CURRENT_FILE_HASH As String = ""
Public CURRENT_OFFICE_FILE_CHANGED As Boolean = False
Public CURRENT_NEWFILENAME As String
Public CURRENT_CONTROL_DOCTYPE_MATCH As String = ""
@@ -116,6 +115,7 @@ Module ModuleRuntimeVariables
Public CURRENT_TBPMO_FORM_VIEW As DataTable
Public CURRENT_TBPMO_DOCRESULT_DROPDOWN_ITEMS As DataTable
Public CURRENT_TBFILE_EXTENSION_OVERRIDE As DataTable
Public CURRENT_DOC_RESULTS As DataTable
Public CURRENT_TBPMO_RIGHT_USER As DataTable
@@ -129,8 +129,7 @@ Module ModuleRuntimeVariables
Public CURRENT_TBPMO_INDEX_MAN As DataTable
Public CURRENT_DT_TBPMO_ENTITY_RIGHT_CONTROLS As DataTable
Public CURRENT_DT_DOC_ENTITY_SEARCH As DataTable
Public NODE_CONFIGURABLE_NODES_DT As DataTable
Public CURRENT_DOC_RESULTS As DataTable
Public CURRENT_DOC_DROPDOWN As DataTable
Public CURRENT_PARENT_DT As DataTable

View File

@@ -14,7 +14,7 @@ Imports System.Runtime.InteropServices
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("Digital Data")>
<Assembly: AssemblyProduct("orgFLOW")>
<Assembly: AssemblyCopyright("Copyright 2025")>
<Assembly: AssemblyCopyright("2026")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
@@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("3.7.0.0")>
<Assembly: AssemblyVersion("3.7.2.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
<Assembly: NeutralResourcesLanguageAttribute("")>

View File

@@ -401,7 +401,6 @@
<SubType>Component</SubType>
</Compile>
<Compile Include="Classes\ClassFileResult.vb" />
<Compile Include="Classes\ClassFolderWatcher.vb" />
<Compile Include="Classes\ClassGridFormatter.vb" />
<Compile Include="Classes\ClassInactivity.vb" />
<Compile Include="Classes\ClassJumpRecord.vb" />
@@ -767,12 +766,6 @@
<Compile Include="frmRecord_Changes.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmScanFiles.Designer.vb">
<DependentUpon>frmScanFiles.vb</DependentUpon>
</Compile>
<Compile Include="frmScanFiles.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmSplash.Designer.vb">
<DependentUpon>frmSplash.vb</DependentUpon>
</Compile>
@@ -1211,12 +1204,6 @@
<DependentUpon>frmRecord_Changes.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmScanFiles.en-US.resx">
<DependentUpon>frmScanFiles.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmScanFiles.resx">
<DependentUpon>frmScanFiles.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmSplash.resx">
<DependentUpon>frmSplash.vb</DependentUpon>
</EmbeddedResource>

View File

@@ -22,7 +22,6 @@ Partial Class frmConfig_Basic
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmConfig_Basic))
Me.TabControl1 = New System.Windows.Forms.TabControl()
Me.TabPage1 = New System.Windows.Forms.TabPage()
@@ -39,6 +38,7 @@ Partial Class frmConfig_Basic
Me.txtPasswort = New System.Windows.Forms.TextBox()
Me.BtnConnect = New System.Windows.Forms.Button()
Me.TabPage2 = New System.Windows.Forms.TabPage()
Me.CheckBox_ForceTemporaryMode = New System.Windows.Forms.CheckBox()
Me.GroupBox5 = New System.Windows.Forms.GroupBox()
Me.Label11 = New System.Windows.Forms.Label()
Me.Label10 = New System.Windows.Forms.Label()
@@ -58,15 +58,6 @@ Partial Class frmConfig_Basic
Me.Button1 = New System.Windows.Forms.Button()
Me.btnApplicationFolder = New System.Windows.Forms.Button()
Me.LinkLabel1 = New System.Windows.Forms.LinkLabel()
Me.TabPage3 = New System.Windows.Forms.TabPage()
Me.chkSubfolder = New System.Windows.Forms.CheckBox()
Me.Label9 = New System.Windows.Forms.Label()
Me.DataGridView1 = New System.Windows.Forms.DataGridView()
Me.btnSaveExclusionFiles = New System.Windows.Forms.Button()
Me.Button2 = New System.Windows.Forms.Button()
Me.txtScanFolderWatch = New System.Windows.Forms.TextBox()
Me.Label8 = New System.Windows.Forms.Label()
Me.btnstartstop2 = New System.Windows.Forms.Button()
Me.TabPage4 = New System.Windows.Forms.TabPage()
Me.Label6 = New System.Windows.Forms.Label()
Me.Button4 = New System.Windows.Forms.Button()
@@ -79,7 +70,6 @@ Partial Class frmConfig_Basic
Me.btncheckWDFolderexists = New System.Windows.Forms.Button()
Me.txtwdFolder = New System.Windows.Forms.TextBox()
Me.Label12 = New System.Windows.Forms.Label()
Me.CheckBox_ForceTemporaryMode = New System.Windows.Forms.CheckBox()
Me.TabControl1.SuspendLayout()
Me.TabPage1.SuspendLayout()
Me.TabPage2.SuspendLayout()
@@ -87,8 +77,6 @@ Partial Class frmConfig_Basic
Me.GroupBox1.SuspendLayout()
Me.GroupBox4.SuspendLayout()
Me.GroupBox3.SuspendLayout()
Me.TabPage3.SuspendLayout()
CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.TabPage4.SuspendLayout()
Me.GroupBox2.SuspendLayout()
Me.SuspendLayout()
@@ -97,7 +85,6 @@ Partial Class frmConfig_Basic
'
Me.TabControl1.Controls.Add(Me.TabPage1)
Me.TabControl1.Controls.Add(Me.TabPage2)
Me.TabControl1.Controls.Add(Me.TabPage3)
Me.TabControl1.Controls.Add(Me.TabPage4)
resources.ApplyResources(Me.TabControl1, "TabControl1")
Me.TabControl1.Name = "TabControl1"
@@ -206,6 +193,12 @@ Partial Class frmConfig_Basic
Me.TabPage2.Name = "TabPage2"
Me.TabPage2.UseVisualStyleBackColor = True
'
'CheckBox_ForceTemporaryMode
'
resources.ApplyResources(Me.CheckBox_ForceTemporaryMode, "CheckBox_ForceTemporaryMode")
Me.CheckBox_ForceTemporaryMode.Name = "CheckBox_ForceTemporaryMode"
Me.CheckBox_ForceTemporaryMode.UseVisualStyleBackColor = True
'
'GroupBox5
'
Me.GroupBox5.Controls.Add(Me.Label11)
@@ -337,69 +330,6 @@ Partial Class frmConfig_Basic
Me.LinkLabel1.Name = "LinkLabel1"
Me.LinkLabel1.TabStop = True
'
'TabPage3
'
Me.TabPage3.Controls.Add(Me.chkSubfolder)
Me.TabPage3.Controls.Add(Me.Label9)
Me.TabPage3.Controls.Add(Me.DataGridView1)
Me.TabPage3.Controls.Add(Me.btnSaveExclusionFiles)
Me.TabPage3.Controls.Add(Me.Button2)
Me.TabPage3.Controls.Add(Me.txtScanFolderWatch)
Me.TabPage3.Controls.Add(Me.Label8)
Me.TabPage3.Controls.Add(Me.btnstartstop2)
resources.ApplyResources(Me.TabPage3, "TabPage3")
Me.TabPage3.Name = "TabPage3"
Me.TabPage3.UseVisualStyleBackColor = True
'
'chkSubfolder
'
resources.ApplyResources(Me.chkSubfolder, "chkSubfolder")
Me.chkSubfolder.Name = "chkSubfolder"
Me.chkSubfolder.UseVisualStyleBackColor = True
'
'Label9
'
resources.ApplyResources(Me.Label9, "Label9")
Me.Label9.Name = "Label9"
'
'DataGridView1
'
DataGridViewCellStyle2.BackColor = System.Drawing.Color.Aqua
Me.DataGridView1.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle2
resources.ApplyResources(Me.DataGridView1, "DataGridView1")
Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.DataGridView1.Name = "DataGridView1"
'
'btnSaveExclusionFiles
'
resources.ApplyResources(Me.btnSaveExclusionFiles, "btnSaveExclusionFiles")
Me.btnSaveExclusionFiles.Name = "btnSaveExclusionFiles"
Me.btnSaveExclusionFiles.UseVisualStyleBackColor = True
'
'Button2
'
resources.ApplyResources(Me.Button2, "Button2")
Me.Button2.Name = "Button2"
Me.Button2.UseVisualStyleBackColor = True
'
'txtScanFolderWatch
'
Me.txtScanFolderWatch.BackColor = System.Drawing.Color.LemonChiffon
resources.ApplyResources(Me.txtScanFolderWatch, "txtScanFolderWatch")
Me.txtScanFolderWatch.Name = "txtScanFolderWatch"
'
'Label8
'
resources.ApplyResources(Me.Label8, "Label8")
Me.Label8.Name = "Label8"
'
'btnstartstop2
'
Me.btnstartstop2.Image = Global.DD_Record_Organizer.My.Resources.Resources.bell_go
resources.ApplyResources(Me.btnstartstop2, "btnstartstop2")
Me.btnstartstop2.Name = "btnstartstop2"
Me.btnstartstop2.UseVisualStyleBackColor = True
'
'TabPage4
'
Me.TabPage4.Controls.Add(Me.Label6)
@@ -480,12 +410,6 @@ Partial Class frmConfig_Basic
resources.ApplyResources(Me.Label12, "Label12")
Me.Label12.Name = "Label12"
'
'CheckBox_ForceTemporaryMode
'
resources.ApplyResources(Me.CheckBox_ForceTemporaryMode, "CheckBox_ForceTemporaryMode")
Me.CheckBox_ForceTemporaryMode.Name = "CheckBox_ForceTemporaryMode"
Me.CheckBox_ForceTemporaryMode.UseVisualStyleBackColor = True
'
'frmConfig_Basic
'
resources.ApplyResources(Me, "$this")
@@ -505,9 +429,6 @@ Partial Class frmConfig_Basic
Me.GroupBox4.ResumeLayout(False)
Me.GroupBox3.ResumeLayout(False)
Me.GroupBox3.PerformLayout()
Me.TabPage3.ResumeLayout(False)
Me.TabPage3.PerformLayout()
CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit()
Me.TabPage4.ResumeLayout(False)
Me.TabPage4.PerformLayout()
Me.GroupBox2.ResumeLayout(False)
@@ -538,14 +459,6 @@ Partial Class frmConfig_Basic
Friend WithEvents CheckBox1 As System.Windows.Forms.CheckBox
Friend WithEvents Label7 As System.Windows.Forms.Label
Friend WithEvents cmbConstructor As System.Windows.Forms.ComboBox
Friend WithEvents TabPage3 As System.Windows.Forms.TabPage
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents txtScanFolderWatch As System.Windows.Forms.TextBox
Friend WithEvents Label8 As System.Windows.Forms.Label
Friend WithEvents btnstartstop2 As System.Windows.Forms.Button
Friend WithEvents Label9 As System.Windows.Forms.Label
Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView
Friend WithEvents btnSaveExclusionFiles As System.Windows.Forms.Button
Friend WithEvents GroupBox4 As System.Windows.Forms.GroupBox
Friend WithEvents Button3 As System.Windows.Forms.Button
Friend WithEvents cmbLanguage As System.Windows.Forms.ComboBox
@@ -553,7 +466,6 @@ Partial Class frmConfig_Basic
Friend WithEvents Label11 As System.Windows.Forms.Label
Friend WithEvents Label10 As System.Windows.Forms.Label
Friend WithEvents txtTask_Popup As System.Windows.Forms.TextBox
Friend WithEvents chkSubfolder As System.Windows.Forms.CheckBox
Friend WithEvents TabPage4 As System.Windows.Forms.TabPage
Friend WithEvents btncheckWDFolderexists As System.Windows.Forms.Button
Friend WithEvents txtwdFolder As System.Windows.Forms.TextBox

File diff suppressed because it is too large Load Diff

View File

@@ -214,140 +214,14 @@ Public Class frmConfig_Basic
Case 1
cmbLanguage.SelectedIndex = cmbLanguage.FindStringExact(USER_LANGUAGE)
CheckBox_ForceTemporaryMode.Checked = CONFIG.Config.Viewer_ForceTemporaryMode
Case 2
Dim DTSCAN_folderwatch As Data.DataTable = MYDB_ECM.GetDatatable("SELECT FOLDER_PATH,SUBDIRECTORIES FROM TBPMO_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'SCAN' AND USER_ID = " & USER_GUID)
If Not DTSCAN_folderwatch Is Nothing Then
If DTSCAN_folderwatch.Rows.Count = 1 Then
CURRENT_SCAN_FOLDERWATCH = DTSCAN_folderwatch.Rows(0).Item(0)
CURRENT_SCAN_FOLDERWATCH_SD = DTSCAN_folderwatch.Rows(0).Item(1)
End If
End If
Me.txtScanFolderWatch.Text = CURRENT_SCAN_FOLDERWATCH
If Not ClassFolderWatcher.FolderWatcher_SCAN Is Nothing Then
If ClassFolderWatcher.FolderWatcher_SCAN.EnableRaisingEvents = True Then
'If USER_LANGUAGE = "de-DE" Then
btnstartstop2.Text = "Überwachung stoppen"
'Else
' btnstartstop2.Text = "Stop hotfolder"
'End If
btnstartstop2.Image = My.Resources.bell_delete
Else
' If USER_LANGUAGE = "de-DE" Then
btnstartstop2.Text = "Überwachung starten"
'Else
'btnstartstop2.Text = "Stop hotfolder"
'End If
btnstartstop2.Image = My.Resources.bell_go
End If
Else
' If USER_LANGUAGE = "de-DE" Then
btnstartstop2.Text = "Überwachung starten"
'Else
' btnstartstop2.Text = "Stop hotfolder"
'End If
btnstartstop2.Image = My.Resources.bell_go
End If
Me.DataGridView1.DataSource = DTEXCLUDE_FILES
End Select
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim fbdialog As New FolderBrowserDialog
If txtScanFolderWatch.Text <> "" Then
fbdialog.SelectedPath = txtScanFolderWatch.Text
End If
If fbdialog.ShowDialog() = DialogResult.OK Then
CheckScanFolder(fbdialog.SelectedPath, chkSubfolder.Checked)
End If
End Sub
Sub CheckScanFolder(mypath As String, SUBDIRECTORIES As Boolean)
Try
If mypath <> "" Then
Try
If (Not System.IO.Directory.Exists(mypath)) Then
System.IO.Directory.CreateDirectory(mypath)
End If
Catch ex As Exception
LOGGER.Warn("Fehler beim Erstellen des Folderwatchordners: " & mypath)
LOGGER.Warn("" & ex.Message)
MsgBox("Error in creating Hotfolder: " & mypath & vbNewLine & "Please check the rights!" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Exit Sub
End Try
End If
Dim _SUBDIRECTORIES
If SUBDIRECTORIES = False Then
_SUBDIRECTORIES = 0
Else
_SUBDIRECTORIES = 1
End If
Dim folderwatch = MYDB_ECM.GetScalarValue("SELECT GUID FROM TBPMO_FOLDERWATCH_USER WHERE USER_ID = " & USER_GUID & " AND FOLDER_TYPE = 'SCAN'")
Dim oSql As String
If folderwatch Is Nothing And mypath <> "" Then
oSql = "INSERT INTO TBPMO_FOLDERWATCH_USER (USER_ID, FOLDER_PATH, FOLDER_TYPE,SUBDIRECTORIES, ADDED_WHO) VALUES (" & USER_GUID & ",'" & mypath & "','SCAN', " & _SUBDIRECTORIES & ",'" & USER_USERNAME & "')"
Else
oSql = "UPDATE TBPMO_FOLDERWATCH_USER SET FOLDER_PATH = '" & mypath & "', SUBDIRECTORIES = " & _SUBDIRECTORIES & ", CHANGED_WHO = '" & USER_USERNAME & "' where GUID = " & folderwatch
End If
If MYDB_ECM.ExecuteNonQuery(oSql) Then
Dim DT As Data.DataTable = MYDB_ECM.GetDatatable("SELECT FOLDER_PATH, SUBDIRECTORIES FROM TBPMO_FOLDERWATCH_USER WHERE USER_ID = " & USER_GUID & " AND FOLDER_TYPE = 'SCAN'")
CURRENT_SCAN_FOLDERWATCH = DT.Rows(0).Item(0)
CURRENT_SCAN_FOLDERWATCH_SD = DT.Rows(0).Item(1)
Me.txtScanFolderWatch.Text = CURRENT_SCAN_FOLDERWATCH
Me.chkSubfolder.Checked = CURRENT_SCAN_FOLDERWATCH_SD
End If
If FWSCAN_started = True Then
ClassFolderWatcher.Restart_FolderWatchSCAN()
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in CheckFolder:")
End Try
End Sub
Private Sub btnSaveExclusionFiles_Click(sender As Object, e As EventArgs) Handles btnSaveExclusionFiles.Click
Try
DTEXCLUDE_FILES.AcceptChanges()
DTEXCLUDE_FILES.WriteXml(PATH_FileExclusions)
MsgBox("Changes saved.", MsgBoxStyle.Information)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Saving Exclusion files:")
End Try
End Sub
Private Sub btnstartstop2_Click(sender As Object, e As EventArgs) Handles btnstartstop2.Click
If CURRENT_SCAN_FOLDERWATCH <> "" Then
ClassFolderWatcher.DELETE_SCAN_File_User()
CheckScanFolder(CURRENT_SCAN_FOLDERWATCH, chkSubfolder.Checked)
CheckFWSCAN_State()
End If
End Sub
Sub CheckFWSCAN_State()
Select Case ClassFolderWatcher.StartStop_FolderWatchSCAN()
Case 1
'If USER_LANGUAGE = "de-DE" Then
btnstartstop2.Text = "Überwachung stoppen"
' Else
'btnstartstop2.Text = "Stop Hotfolder"
' End If
btnstartstop2.Image = My.Resources.bell_delete
Case 0
' If USER_LANGUAGE = "de-DE" Then
btnstartstop2.Text = "Überwachung starten"
'Else
' btnstartstop2.Text = "Start Hotfolder"
'End If
btnstartstop2.Image = My.Resources.bell_go
End Select
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim result As MsgBoxResult
@@ -415,13 +289,6 @@ Public Class frmConfig_Basic
Private Sub txtScanFolderWatch_TextChanged(sender As Object, e As EventArgs) Handles txtScanFolderWatch.TextChanged
CheckScanFolder(txtScanFolderWatch.Text, chkSubfolder.Checked)
End Sub
Private Sub chkSubfolder_CheckedChanged(sender As Object, e As EventArgs) Handles chkSubfolder.CheckedChanged
CheckScanFolder(txtScanFolderWatch.Text, chkSubfolder.Checked)
End Sub
Private Sub txtPasswort_TextChanged(sender As Object, e As EventArgs) Handles txtPasswort.TextChanged
@@ -550,4 +417,5 @@ Public Class frmConfig_Basic
CONFIG.Config.Viewer_ForceTemporaryMode = CheckBox_ForceTemporaryMode.Checked
CONFIG.Save()
End Sub
End Class

View File

@@ -64,9 +64,9 @@ Public Class frmConstructor_Main
Private DT_TREEVIEW_NODES_ALL As DataTable
Private DT_TREEVIEW_NODES_FIRST As DataTable
Private DT_TREEVIEW_NODES_DEVEXPRESS As DataTable
Private DT_TREEVIEW_CONFIGURATION As DataTable
Private DT_CONTROLS_ENTITY As DataTable
Private DT_CONFIGURABLE_NODES As DataTable
Private DT_ADDING_USERS As DataTable
@@ -268,7 +268,7 @@ Public Class frmConstructor_Main
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 = MYDB_ECM.GetDatatable(oSql)
DT_CONFIGURABLE_NODES = MYDB_ECM.GetDatatable(oSql)
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", ex.Message, "Error in Load_Configurable_Nodes")
End Try
@@ -1338,7 +1338,7 @@ Public Class frmConstructor_Main
If SelectedNode IsNot Nothing Then
Update_Status_Label(True, SelectedNode.Tag)
ClassNodeNavigation.Check_NODE_CONFIG_ID(ENTITY_ID, SelectedNode)
ClassNodeNavigation.Check_NODE_CONFIG_ID(ENTITY_ID, SelectedNode, DT_CONFIGURABLE_NODES)
If SelectedNode.Tag.ToString.Contains("RECORD-ID") Then
Dim Record = ClassNodeNavigation.Return_RECORD_forTag(SelectedNode.Tag)
@@ -1404,7 +1404,7 @@ Public Class frmConstructor_Main
'Else
Try
LOGGER.Debug($"NODES: DT_TREEVIEW_NODES_ALL-Count: {DT_TREEVIEW_NODES_ALL.Rows.Count}")
Dim async As New ClassAsyncNodeBuild(DT_TREEVIEW_NODES_ALL, TREEVIEW_IMAGELIST)
Dim async As New ClassAsyncNodeBuild(DT_TREEVIEW_NODES_ALL, TREEVIEW_IMAGELIST, DT_CONFIGURABLE_NODES)
async.bw.RunWorkerAsync()
While async.bw.IsBusy
Application.DoEvents()
@@ -1418,7 +1418,7 @@ Public Class frmConstructor_Main
MyTreeview = async.newTreeview
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in Async NodeBuild", ex.Message & vbNewLine & "orgFLOW will try an alternative method!", ex.StackTrace)
MyTreeview = ClassNodeNavigation.CreateTreeViewNodes(DT_TREEVIEW_NODES_ALL, TREEVIEW_IMAGELIST)
MyTreeview = ClassNodeNavigation.CreateTreeViewNodes(DT_TREEVIEW_NODES_ALL, TREEVIEW_IMAGELIST, DT_CONFIGURABLE_NODES)
End Try
@@ -6647,7 +6647,7 @@ WHERE T2.SHORT_NAME = 'ADDI' AND T.EMAIL IS NOT NULL order by USERNAME")
expression = "ENTITY_ID = " & ENTITY_ID & " AND GUID = " & CURRENT_NODE_CONFIGURABLE_ID
Dim foundRowsLevel0() As DataRow
' Use the Select method to find all rows matching the filter.
foundRowsLevel0 = NODE_CONFIGURABLE_NODES_DT.Select(expression)
foundRowsLevel0 = DT_CONFIGURABLE_NODES.Select(expression)
Dim i As Integer
Dim RECORD_CREATE As Boolean
' For each row create a Node
@@ -6700,7 +6700,7 @@ WHERE T2.SHORT_NAME = 'ADDI' AND T.EMAIL IS NOT NULL order by USERNAME")
Dim NEW_GUID = ClassNodeNavigation.CreateNodeProcedure(NEWRECORD, CURRENT_NODE_CONFIGURABLE_ID, tsmINewText.Text, "CONFIG " & NEWRECORD & "-" & CURRENT_NODE_CONFIGURABLE_ID, PARENT_ID, USER_USERNAME)
If NEW_GUID > 0 Then
ClassNodeNavigation.Check_NODE_CONFIG_ID(ENTITY_ID, Nothing)
ClassNodeNavigation.Check_NODE_CONFIG_ID(ENTITY_ID, Nothing, DT_CONFIGURABLE_NODES)
NEWNODE.Tag = ClassNodeNavigation.CreateNODE_TAG(ENTITY_ID, NEW_GUID, NEWRECORD, CURRENT_NODE_CONFIGURABLE_ID)
If where = "HERE" Then
@@ -6952,7 +6952,6 @@ WHERE T2.SHORT_NAME = 'ADDI' AND T.EMAIL IS NOT NULL order by USERNAME")
End If
Next
CURRENT_TBPMO_FILES_USER.AcceptChanges()
ClassFolderWatcher.Check_Scan_Files()
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "", "Unexpected Error in clearing User-Files: " & ex.Message, ex.StackTrace)
Finally

View File

@@ -121,7 +121,7 @@
<value>17, 17</value>
</metadata>
<metadata name="cmsSystray.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 56</value>
<value>1483, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="ADDIBeendenToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
@@ -1999,10 +1999,10 @@
<value>StatusVersion</value>
</data>
<metadata name="TimerInformation.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>129, 56</value>
<value>1596, 17</value>
</metadata>
<metadata name="ContextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>275, 56</value>
<value>17, 54</value>
</metadata>
<data name="ContextMenuStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>61, 4</value>
@@ -2014,7 +2014,7 @@
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<metadata name="Timer5mins.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>432, 56</value>
<value>173, 54</value>
</metadata>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>

View File

@@ -11,8 +11,6 @@ Imports Microsoft.Office.Core
Public Class frmMain
Dim strIPAddress As String
Public Shared TIMER_SCAN As New System.Windows.Forms.Timer
Public TIMER_INACTIVITY As ClassInactivity
Public Sub OpenRibbon()
@@ -23,47 +21,6 @@ Public Class frmMain
ribbonMain.Minimized = True
End Sub
Private Shared Sub Scan_TickHandler(sender As Object, e As EventArgs)
Try
If ClassFolderWatcher.NEW_FILES = False Then Exit Sub
ClassFolderWatcher.Check_Scan_Files()
Dim open As Boolean = False
If Not IsNothing(CURRENT_SCAN_TABLE) Then
If CURRENT_SCAN_TABLE.Rows.Count > 0 Then
For Each form In My.Application.OpenForms
If (form.name = frmScanFiles.Name) Then
'form is loaded so can do work
'if you need to check wether it is actually visible
If form.Visible Then
open = True
'do work when visible
If My.Settings.User_InBoxScan_NotinFront = False Then
frmScanFiles.BringToFront()
End If
Else
End If
End If
Next
If open = False Then
Dim frm As New frmScanFiles
frm = frmScanFiles.Instance()
frm.Show()
End If
End If
If CURRENT_SCAN_TABLE.Rows.Count = 0 And open = True Then
frmScanFiles.Close()
End If
ClassFolderWatcher.NEW_FILES = False
End If
Catch ex As Exception
MsgBox("Unexpected Error in Scan_TickHandler:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
TIMER_SCAN.Enabled = False
End Try
End Sub
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
' Referenz zu frmMain speichern
MAIN_FORM = Me
@@ -102,7 +59,7 @@ Public Class frmMain
LabelLanguage.Caption = "Language: " & USER_LANGUAGE
Load_Connection_Dep_Data()
Display_ConString
Display_ConString()
'Wenn Argumente übergeben wurden, wird Formular geladen und zu record gesprungen
ClassJumpRecord.ParseArgs()
@@ -164,31 +121,6 @@ Public Class frmMain
' End Try
'End Sub
Public Sub RUN_TIMER()
Try
If TIMER_SCAN.Enabled = False And CURRENT_SCAN_FOLDERWATCH <> "" And FWSCAN_started = True Then
If System.IO.Directory.Exists(CURRENT_SCAN_FOLDERWATCH) = False Then
LOGGER.Warn("SCAN PATH '" & CURRENT_SCAN_FOLDERWATCH & "'not accessable!")
Exit Sub
End If
TIMER_SCAN.Interval = 30000
TIMER_SCAN.Enabled = True
AddHandler TIMER_SCAN.Tick, AddressOf Scan_TickHandler
Else
If TIMER_SCAN.Enabled = True And CURRENT_SCAN_FOLDERWATCH <> "" And FWSCAN_started = True Then
TIMER_SCAN.Enabled = False
itemScanInbox.Visibility = BarItemVisibility.Always
RUN_TIMER()
Else
TIMER_SCAN.Enabled = False
End If
End If
Catch ex As Exception
MsgBox("Unexpected Error in RUN_TIMER:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Sub Load_Connection_Dep_Data()
SetBackground()
If ERROR_INIT = "NONE" Then
@@ -571,8 +503,6 @@ Public Class frmMain
TimerTasks.Start()
'Refresh_TaskReminder()
End If
RUN_TIMER()
Timer5mins.Start()
If Sett_ConstructorStart <> 0 Then
@@ -746,9 +676,6 @@ Public Class frmMain
TimerTasks.Enabled = False
TimerTasks.Stop()
End If
'Proxy_Server_Controls()
RUN_TIMER()
End Sub
Private Sub BarButtonItem3_ItemClick(sender As Object, e As ItemClickEventArgs) Handles BarButtonItem3.ItemClick
Cursor = Cursors.WaitCursor

View File

@@ -46,12 +46,12 @@ Partial Class frmNodeNavigation
Me.tsitmDMSReadOnly = New DevExpress.XtraBars.BarStaticItem()
Me.bsiNotification = New DevExpress.XtraBars.BarStaticItem()
Me.bsiDocIDChanged = New DevExpress.XtraBars.BarStaticItem()
Me.RepositoryItemTextEdit1 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RPGNodes = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroupRecord = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroupDocResult = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RepositoryItemTextEdit1 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit()
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.SplitContainerTreeList = New DevExpress.XtraEditors.SplitContainerControl()
@@ -178,7 +178,7 @@ Partial Class frmNodeNavigation
Me.ribbonNodeNavigation.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.[True]
Me.ribbonNodeNavigation.ShowMoreCommandsButton = DevExpress.Utils.DefaultBoolean.[False]
Me.ribbonNodeNavigation.ShowToolbarCustomizeItem = False
Me.ribbonNodeNavigation.Size = New System.Drawing.Size(1151, 158)
Me.ribbonNodeNavigation.Size = New System.Drawing.Size(1151, 147)
Me.ribbonNodeNavigation.StatusBar = Me.RibbonStatusBar1
Me.ribbonNodeNavigation.Toolbar.ShowCustomizeItem = False
'
@@ -333,11 +333,6 @@ Partial Class frmNodeNavigation
Me.bsiDocIDChanged.Name = "bsiDocIDChanged"
Me.bsiDocIDChanged.Visibility = DevExpress.XtraBars.BarItemVisibility.OnlyInCustomizing
'
'RepositoryItemTextEdit1
'
Me.RepositoryItemTextEdit1.AutoHeight = False
Me.RepositoryItemTextEdit1.Name = "RepositoryItemTextEdit1"
'
'RibbonPage1
'
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RPGNodes, Me.RibbonPageGroupRecord, Me.RibbonPageGroupDocResult})
@@ -379,6 +374,11 @@ Partial Class frmNodeNavigation
Me.RibbonPageGroupDocResult.Name = "RibbonPageGroupDocResult"
Me.RibbonPageGroupDocResult.Text = "Dateien"
'
'RepositoryItemTextEdit1
'
Me.RepositoryItemTextEdit1.AutoHeight = False
Me.RepositoryItemTextEdit1.Name = "RepositoryItemTextEdit1"
'
'RibbonStatusBar1
'
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsiInfo)
@@ -389,10 +389,10 @@ Partial Class frmNodeNavigation
Me.RibbonStatusBar1.ItemLinks.Add(Me.BarStaticItemLocked)
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitmtInfoDoc)
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsiDocIDChanged)
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 567)
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 566)
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
Me.RibbonStatusBar1.Ribbon = Me.ribbonNodeNavigation
Me.RibbonStatusBar1.Size = New System.Drawing.Size(1151, 22)
Me.RibbonStatusBar1.Size = New System.Drawing.Size(1151, 23)
'
'RibbonPage2
'
@@ -414,7 +414,7 @@ Partial Class frmNodeNavigation
'
Me.SplitContainerTreeList.Panel2.Controls.Add(Me.SplitContainerDocumentSearch)
Me.SplitContainerTreeList.Panel2.Text = "Panel2"
Me.SplitContainerTreeList.Size = New System.Drawing.Size(776, 409)
Me.SplitContainerTreeList.Size = New System.Drawing.Size(776, 419)
Me.SplitContainerTreeList.SplitterPosition = 229
Me.SplitContainerTreeList.TabIndex = 2
'
@@ -456,7 +456,7 @@ Partial Class frmNodeNavigation
Me.TreeListDevexpress.OptionsView.ShowVertLines = False
Me.TreeListDevexpress.OptionsView.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Dark
Me.TreeListDevexpress.ParentFieldName = "PARENT_GUID"
Me.TreeListDevexpress.Size = New System.Drawing.Size(229, 409)
Me.TreeListDevexpress.Size = New System.Drawing.Size(229, 419)
Me.TreeListDevexpress.StateImageList = Me.ImageCollection1
Me.TreeListDevexpress.TabIndex = 1
'
@@ -480,7 +480,7 @@ Partial Class frmNodeNavigation
'
Me.SplitContainerDocumentSearch.Panel2.Controls.Add(Me.GridControlDocSearch)
Me.SplitContainerDocumentSearch.Panel2.Text = "Panel2"
Me.SplitContainerDocumentSearch.Size = New System.Drawing.Size(537, 409)
Me.SplitContainerDocumentSearch.Size = New System.Drawing.Size(535, 419)
Me.SplitContainerDocumentSearch.SplitterPosition = 133
Me.SplitContainerDocumentSearch.TabIndex = 1
'
@@ -491,7 +491,7 @@ Partial Class frmNodeNavigation
Me.pnlControls.Dock = System.Windows.Forms.DockStyle.Fill
Me.pnlControls.Location = New System.Drawing.Point(0, 0)
Me.pnlControls.Name = "pnlControls"
Me.pnlControls.Size = New System.Drawing.Size(537, 133)
Me.pnlControls.Size = New System.Drawing.Size(535, 133)
Me.pnlControls.TabIndex = 0
'
'GridControlDocSearch
@@ -505,7 +505,7 @@ Partial Class frmNodeNavigation
Me.GridControlDocSearch.Location = New System.Drawing.Point(0, 0)
Me.GridControlDocSearch.MainView = Me.GridViewDoc_Search
Me.GridControlDocSearch.Name = "GridControlDocSearch"
Me.GridControlDocSearch.Size = New System.Drawing.Size(537, 266)
Me.GridControlDocSearch.Size = New System.Drawing.Size(535, 274)
Me.GridControlDocSearch.TabIndex = 8
Me.GridControlDocSearch.TabStop = False
Me.GridControlDocSearch.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewDoc_Search})
@@ -515,7 +515,7 @@ Partial Class frmNodeNavigation
Me.cmsResultFileDetail.ImageScalingSize = New System.Drawing.Size(18, 18)
Me.cmsResultFileDetail.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsmiFileProperties, Me.ToolStripSeparator5, Me.tsmiFileOpen, Me.tsmiFileFolderOpen, Me.ToolStripSeparator1, Me.tsmiFileInWorkMultiple_Lock, Me.tsmiFileInWorkMultiple_Free, Me.tsmiFileInWork, Me.ToolStripSeparator3, Me.tsmiFileLink_Add, Me.tsmiFileLinkRemove, Me.tsmiFileLink_ShowAll, Me.TsmitmJumpToFilestore, Me.LinkPerMailVersendenToolStripMenuItem, Me.ToolStripSeparator2, Me.tsmiFileRename, Me.DokumentartÄndernToolStripMenuItem, Me.tsmiFileVersion, Me.tsmiFileRightsShow, Me.ToolStripSeparator4, Me.tsmiFileDelete})
Me.cmsResultFileDetail.Name = "ContextMenuStripResultFiles"
Me.cmsResultFileDetail.Size = New System.Drawing.Size(315, 418)
Me.cmsResultFileDetail.Size = New System.Drawing.Size(315, 440)
'
'tsmiFileProperties
'
@@ -731,7 +731,7 @@ Partial Class frmNodeNavigation
'
Me.SplitContainerDocView.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2
Me.SplitContainerDocView.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainerDocView.Location = New System.Drawing.Point(0, 158)
Me.SplitContainerDocView.Location = New System.Drawing.Point(0, 147)
Me.SplitContainerDocView.Name = "SplitContainerDocView"
'
'SplitContainerDocView.Panel1
@@ -743,7 +743,7 @@ Partial Class frmNodeNavigation
'
Me.SplitContainerDocView.Panel2.Controls.Add(Me.DocumentViewer)
Me.SplitContainerDocView.Panel2.Text = "Panel2"
Me.SplitContainerDocView.Size = New System.Drawing.Size(1151, 409)
Me.SplitContainerDocView.Size = New System.Drawing.Size(1151, 419)
Me.SplitContainerDocView.SplitterPosition = 776
Me.SplitContainerDocView.TabIndex = 0
'
@@ -754,7 +754,7 @@ Partial Class frmNodeNavigation
Me.DocumentViewer.FileLoaded = False
Me.DocumentViewer.Location = New System.Drawing.Point(0, 0)
Me.DocumentViewer.Name = "DocumentViewer"
Me.DocumentViewer.Size = New System.Drawing.Size(365, 409)
Me.DocumentViewer.Size = New System.Drawing.Size(363, 419)
Me.DocumentViewer.TabIndex = 0
Me.DocumentViewer.Viewer_ForceTemporaryMode = False
'

View File

@@ -44,6 +44,8 @@ Public Class frmNodeNavigation
Private Property DT_RESULTLIST_OPTIONS As DataTable
Private Property DT_RESULTLIST_VARIABLE_VALUE As DataTable
Private Property DT_ENTITY_DATA As DataTable
Private Property DT_CONFIGURABLE_NODES As DataTable
Private Property ENTITY_TYPE As String = ""
Private Property DT_TBPMO_FORM_VIEW As DataTable
Private Property DT_CONSTRUCT_VIEW As DataTable
@@ -267,14 +269,14 @@ Public Class frmNodeNavigation
imageInit.EndInit()
End If
End Try
TreeListDevexpress.StateImageList = ImageCollection1
TreeListDevexpress.BeginUpdate()
Try
TreeListDevexpress.DataSource = DT_STRUCTURE_NODES
TreeListDevexpress.KeyFieldName = "GUID"
TreeListDevexpress.ParentFieldName = "PARENT_GUID"
TreeListDevexpress.Columns("SEQUENCE").SortOrder = SortOrder.Ascending
TreeListDevexpress.StateImageList = ImageCollection1
Dim oVisibleColumns As New System.Collections.Generic.HashSet(Of String)(StringComparer.OrdinalIgnoreCase) From {"NODE_CAPTION"}
For Each oColumn As TreeListColumn In TreeListDevexpress.Columns
@@ -283,7 +285,7 @@ Public Class frmNodeNavigation
Finally
TreeListDevexpress.EndUpdate()
End Try
TreeListDevexpress.Refresh() ' ✅ Erzwingt sofortiges Neuzeichnen der Icons
JumptoNode()
Catch ex As Exception
@@ -406,8 +408,8 @@ Public Class frmNodeNavigation
CurrentNodeConfigId = oNodeConfigId
AvailableConfigNodes.Clear()
If Not IsNothing(NODE_CONFIGURABLE_NODES_DT) Then
Dim oNodeConfigList = NODE_CONFIGURABLE_NODES_DT.Select($"PARENT_NODE = {oNodeConfigId}").
If Not IsNothing(DT_CONFIGURABLE_NODES) Then
Dim oNodeConfigList = DT_CONFIGURABLE_NODES.Select($"PARENT_NODE = {oNodeConfigId}").
Cast(Of DataRow).
Select(Function(row) New frmNewNode.NodeConfig() With {
.Id = row.Item("GUID"),
@@ -417,7 +419,7 @@ Public Class frmNodeNavigation
End If
NNLogger.Info($"Node changed: NodeID={oNodeConfigId}, NodeGUID={oGuid}, ConfigNodesFound={AvailableConfigNodes.Count}, " &
$"ButtonVisible={btnCreateNewNode.Visibility}, ConfigTableRows={If(IsNothing(NODE_CONFIGURABLE_NODES_DT), 0, NODE_CONFIGURABLE_NODES_DT.Rows.Count)}")
$"ButtonVisible={btnCreateNewNode.Visibility}, ConfigTableRows={If(IsNothing(DT_CONFIGURABLE_NODES), 0, DT_CONFIGURABLE_NODES.Rows.Count)}")
' NEUE zentrale Methode aufrufen statt direkter Manipulation
@@ -465,9 +467,6 @@ Public Class frmNodeNavigation
btnCreateNewNode.Enabled = False
Else
Record_Group_Enable(True)
' btnCreateNewNode.Enabled = True
End If
If RIGHT_READ_ONLY_DOC = False Then
@@ -508,11 +507,11 @@ Public Class frmNodeNavigation
End Sub
' Neue zentrale Methode zum konsistenten Setzen des Button-Status
Private Sub UpdateCreateNodeButtonState()
Try
' *** HIER: Eingangsdiagnose ***
Try ' *** HIER: Eingangsdiagnose ***
NNLogger.Debug($"UpdateCreateNodeButtonState called - Visibility={btnCreateNewNode.Visibility}, " &
$"CurrentEnabled={btnCreateNewNode.Enabled}, AvailableNodes={AvailableConfigNodes.Count}, " &
$"ConfigTableExists={Not IsNothing(NODE_CONFIGURABLE_NODES_DT)}")
$"ConfigTableExists={Not IsNothing(DT_CONFIGURABLE_NODES)}, " &
$"RIGHT_RECORD_AND_FILE_READ_ONLY={RIGHT_RECORD_AND_FILE_READ_ONLY}")
If btnCreateNewNode.Visibility <> DevExpress.XtraBars.BarItemVisibility.Always Then
Exit Sub
@@ -520,12 +519,14 @@ Public Class frmNodeNavigation
' Button aktivieren wenn:
' 1. Konfigurierbare Nodes existieren UND
' 2. Verfügbare Config-Nodes für aktuellen Node vorhanden sind
' 2. Verfügbare Config-Nodes für aktuellen Node vorhanden sind UND
' 3. Benutzer hat Schreibrechte (nicht Read-Only)
Dim shouldEnable As Boolean = False
If Not IsNothing(NODE_CONFIGURABLE_NODES_DT) AndAlso
NODE_CONFIGURABLE_NODES_DT.Rows.Count > 0 AndAlso
AvailableConfigNodes.Count > 0 Then
If Not IsNothing(DT_CONFIGURABLE_NODES) AndAlso
DT_CONFIGURABLE_NODES.Rows.Count > 0 AndAlso
AvailableConfigNodes.Count > 0 AndAlso
RIGHT_RECORD_AND_FILE_READ_ONLY = False Then
shouldEnable = True
End If
@@ -539,7 +540,7 @@ Public Class frmNodeNavigation
If shouldEnable Then
LOGGER.Debug($"btnCreateNewNode ENABLED (AvailableConfigNodes: {AvailableConfigNodes.Count})")
Else
LOGGER.Debug($"btnCreateNewNode DISABLED (ConfigNodes: {AvailableConfigNodes.Count})")
LOGGER.Debug($"btnCreateNewNode DISABLED (ConfigNodes: {AvailableConfigNodes.Count}, ReadOnly: {RIGHT_RECORD_AND_FILE_READ_ONLY})")
End If
Catch ex As Exception
@@ -712,13 +713,13 @@ Public Class frmNodeNavigation
Try
btnCreateNewNode.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
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})", oConstructID)
NODE_CONFIGURABLE_NODES_DT = MYDB_ECM.GetDatatable(oSql)
DT_CONFIGURABLE_NODES = MYDB_ECM.GetDatatable(oSql)
NNLogger.Info($"Load_Configurable_Nodes: ConstructID={oConstructID}, " &
$"FoundRows={If(IsNothing(NODE_CONFIGURABLE_NODES_DT), 0, NODE_CONFIGURABLE_NODES_DT.Rows.Count)}")
$"FoundRows={If(IsNothing(DT_CONFIGURABLE_NODES), 0, DT_CONFIGURABLE_NODES.Rows.Count)}")
If Not IsNothing(NODE_CONFIGURABLE_NODES_DT) Then
If NODE_CONFIGURABLE_NODES_DT.Rows.Count > 0 Then
If Not IsNothing(DT_CONFIGURABLE_NODES) Then
If DT_CONFIGURABLE_NODES.Rows.Count > 0 Then
btnCreateNewNode.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
' Initial-State setzen
UpdateCreateNodeButtonState()
@@ -745,7 +746,6 @@ Public Class frmNodeNavigation
End If
Dim sw As New SW("Load_Datafor_Entity")
@@ -1254,6 +1254,8 @@ Public Class frmNodeNavigation
End If
Else
RIGHT_RECORD_AND_FILE_READ_ONLY = False
RIGHT_READ_ONLY_DOC = False
If DT_RIGHTS_GROUP.Rows.Count > 0 Or DT_RIGHTS_USER.Rows.Count > 0 Then
'DATENSATZ-RECHTE
If RIGHT_ADD_R = False Then
@@ -1261,22 +1263,14 @@ Public Class frmNodeNavigation
End If
If RIGHT_EDIT_R = False Then
' tslblLocked.Visible = True
bbtnitmRecEdit.Enabled = False
bbtnitmRecSave.Enabled = False
' tsButtonDelete.Enabled = False
' tsmiMassChanges.Enabled = False
If RIGHT_ADD_R = False Then
bbtnitmRecSave.Enabled = False
End If
End If
If RIGHT_DELETE_R = False Then
' tsButtonDelete.Enabled = False
End If
'DATEI-RECHTE
If RIGHT_READ_ONLY_DOC = True Then
' tslblFileslocked.Visible = True
End If
End If
End If
sw.Done()
@@ -1380,87 +1374,6 @@ Public Class frmNodeNavigation
' Mark the event as handled
e.Handled = True
End Sub
'Private Sub TreeListDevexpress_DoubleClick(sender As Object, e As EventArgs) Handles TreeListDevexpress.DoubleClick
' If TreeListDevexpress.FindFilterText <> "" Then
' TreeListDevexpress.FindFilterText = ""
' End If
' MyFocusedNode = Nothing
' Dim oMyTreeList As TreeList = sender
' Dim oTlHI As TreeListHitInfo = oMyTreeList.CalcHitInfo(oMyTreeList.PointToClient(MousePosition))
' If Not IsNothing(oTlHI.Node) Then
' MyFocusedNode = sender
' End If
'End Sub
'Private Async Sub LoadRecord(pRecord As Integer)
' Try
' CURRENT_RECORD_ID = pRecord
' CURRENT_SEARCH_TYPE = "RECORD"
' ClassHelper.GetDocrecordLinks(CURRENT_RECORD_ID)
' 'Wird jetzt bei BeforeRowChange überprüft
' DisableEditMode()
' ' muss vor show selected record data kommen,
' ' sodass die datasource für die angehakten werte existiert (checked list box)
' CtrlBuilder.WatchRecordChanges = False
' ClassControlValues.LoadControlValuesListWithPlaceholders(CURRENT_ENTITY_ID, CURRENT_RECORD_ID, 0, CtrlBuilder.AllControls, _EntityId)
' CtrlBuilder.WatchRecordChanges = True
' If CURRENT_RECORD_ID > 0 Then
' Await Show_Selected_Record_Data(CURRENT_RECORD_ID)
' End If
' ClassRightManagement.Check_Set_Rights(CURRENT_RECORD_ID, _EntityId)
' CONTROL_HANDLING()
' If CURRENT_RECORD_ID > 0 Then
' If RIGHT_RECORD_AND_FILE_READ_ONLY = False And CtrlCommandUI.IsInsert = False Then
' If DT_CONTROLS_ENTITY.Rows.Count = COUNT_RO_CONTROLS Then
' bbtnitmRecEdit.Enabled = False
' bbtnitmRecSave.Enabled = False
' 'tsButtonDelete.Enabled = False
' Else
' ' bbtnitmEditRec.Enabled = True
' End If
' End If
' If RIGHT_RECORD_AND_FILE_READ_ONLY = True Then
' ' bbtniCopyRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
' ' bbtniNewVariant2.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
' ' bbtniParentLink.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
' ' bbtniWFTask.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
' Else
' ' bbtniCopyRecord.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
' ' bbtniNewVariant2.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
' ' bbtniParentLink.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
' ' bbtniWFTask.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
' End If
' 'tsButtonAdd.Enabled = False
' 'MsgBox(SplitContainerFORM.Collapsed)
' 'MsgBox(SplitContainerMain.Collapsed)
' 'MsgBox(SplitContainerTop.Collapsed)
' End If
' 'Liste der geänderten Control Values leeren
' CtrlBuilder.ControlsChanged.Clear()
' Catch ex As Exception
'NNLogger.Error(ex)
' ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error:", ex.Message & vbNewLine & ex.StackTrace)
' End Try
'End Sub
Private Sub DateiÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DateiÖffnenToolStripMenuItem.Click
Open_File()
End Sub
@@ -2381,7 +2294,7 @@ Public Class frmNodeNavigation
NNLogger.Warn("Unexpected Error in Drag_Drop: " & ex.Message)
MsgBox("Unexpected Error in DragDrop - Please check the log for further information!", MsgBoxStyle.Exclamation)
Finally
Cursor = Cursors.Default
End Try
End Function
Private DROPPED_CHECKED As Boolean = False
@@ -2434,6 +2347,7 @@ Public Class frmNodeNavigation
Exit Sub
End If
End If
ClassHelper.REMOVE_OLD_DROP_FILES()
ClassHelper.Create_USER_FILE_TABLE()
If Not IsNothing(CURRENT_TBPMO_FILES_USER) Then
If CURRENT_TBPMO_FILES_USER.Rows.Count > 0 Then
@@ -3556,7 +3470,7 @@ Public Class frmNodeNavigation
Exit Sub
End If
Dim oRow = NODE_CONFIGURABLE_NODES_DT.Select($"GUID = {oForm.Id}").First()
Dim oRow = DT_CONFIGURABLE_NODES.Select($"GUID = {oForm.Id}").First()
Dim oCreateRecord = oRow.Item("CREATE_RECORD")
Dim oParentNodeGuid As Integer = MyFocusedNode.Item("GUID")

View File

@@ -1,454 +0,0 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmScanFiles
Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _
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.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmScanFiles))
Me.ListView1 = New System.Windows.Forms.ListView()
Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(),System.Windows.Forms.ColumnHeader)
Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components)
Me.Panel1 = New System.Windows.Forms.Panel()
Me.PdfViewer1 = New DevExpress.XtraPdfViewer.PdfViewer()
Me.StatusStrip2 = New System.Windows.Forms.StatusStrip()
Me.pdfstatuslblPageNumber = New System.Windows.Forms.ToolStripStatusLabel()
Me.ToolStripDropDownButton1 = New System.Windows.Forms.ToolStripDropDownButton()
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.PdfFileOpenBarItem1 = New DevExpress.XtraPdfViewer.Bars.PdfFileOpenBarItem()
Me.PdfFileSaveAsBarItem1 = New DevExpress.XtraPdfViewer.Bars.PdfFileSaveAsBarItem()
Me.PdfFilePrintBarItem1 = New DevExpress.XtraPdfViewer.Bars.PdfFilePrintBarItem()
Me.PdfPreviousPageBarItem1 = New DevExpress.XtraPdfViewer.Bars.PdfPreviousPageBarItem()
Me.PdfNextPageBarItem1 = New DevExpress.XtraPdfViewer.Bars.PdfNextPageBarItem()
Me.PdfFindTextBarItem1 = New DevExpress.XtraPdfViewer.Bars.PdfFindTextBarItem()
Me.PdfZoomOutBarItem1 = New DevExpress.XtraPdfViewer.Bars.PdfZoomOutBarItem()
Me.PdfZoomInBarItem1 = New DevExpress.XtraPdfViewer.Bars.PdfZoomInBarItem()
Me.PdfExactZoomListBarSubItem1 = New DevExpress.XtraPdfViewer.Bars.PdfExactZoomListBarSubItem()
Me.PdfZoom10CheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfZoom10CheckItem()
Me.PdfZoom25CheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfZoom25CheckItem()
Me.PdfZoom50CheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfZoom50CheckItem()
Me.PdfZoom75CheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfZoom75CheckItem()
Me.PdfZoom100CheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfZoom100CheckItem()
Me.PdfZoom125CheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfZoom125CheckItem()
Me.PdfZoom150CheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfZoom150CheckItem()
Me.PdfZoom200CheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfZoom200CheckItem()
Me.PdfZoom400CheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfZoom400CheckItem()
Me.PdfZoom500CheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfZoom500CheckItem()
Me.PdfSetActualSizeZoomModeCheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfSetActualSizeZoomModeCheckItem()
Me.PdfSetPageLevelZoomModeCheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfSetPageLevelZoomModeCheckItem()
Me.PdfSetFitWidthZoomModeCheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfSetFitWidthZoomModeCheckItem()
Me.PdfSetFitVisibleZoomModeCheckItem1 = New DevExpress.XtraPdfViewer.Bars.PdfSetFitVisibleZoomModeCheckItem()
Me.PdfExportFormDataBarItem1 = New DevExpress.XtraPdfViewer.Bars.PdfExportFormDataBarItem()
Me.PdfImportFormDataBarItem1 = New DevExpress.XtraPdfViewer.Bars.PdfImportFormDataBarItem()
Me.PdfRibbonPage1 = New DevExpress.XtraPdfViewer.Bars.PdfRibbonPage()
Me.PdfFileRibbonPageGroup1 = New DevExpress.XtraPdfViewer.Bars.PdfFileRibbonPageGroup()
Me.PdfNavigationRibbonPageGroup1 = New DevExpress.XtraPdfViewer.Bars.PdfNavigationRibbonPageGroup()
Me.PdfZoomRibbonPageGroup1 = New DevExpress.XtraPdfViewer.Bars.PdfZoomRibbonPageGroup()
Me.PdfFormDataRibbonPage1 = New DevExpress.XtraPdfViewer.Bars.PdfFormDataRibbonPage()
Me.PdfFormDataBarPageGroup1 = New DevExpress.XtraPdfViewer.Bars.PdfFormDataBarPageGroup()
Me.btnrefresh = New System.Windows.Forms.Button()
Me.PdfBarController1 = New DevExpress.XtraPdfViewer.Bars.PdfBarController()
Me.PdfBarController2 = New DevExpress.XtraPdfViewer.Bars.PdfBarController()
Me.btndelete = New System.Windows.Forms.Button()
Me.chkInFront = New System.Windows.Forms.CheckBox()
Me.TimerCheckScanFiles = New System.Windows.Forms.Timer(Me.components)
Me.Timer2 = New System.Windows.Forms.Timer(Me.components)
Me.Button1 = New System.Windows.Forms.Button()
Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
Me.Panel1.SuspendLayout
Me.StatusStrip2.SuspendLayout
CType(Me.RibbonControl1,System.ComponentModel.ISupportInitialize).BeginInit
CType(Me.PdfBarController1,System.ComponentModel.ISupportInitialize).BeginInit
CType(Me.PdfBarController2,System.ComponentModel.ISupportInitialize).BeginInit
Me.SuspendLayout
'
'ListView1
'
Me.ListView1.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader2})
resources.ApplyResources(Me.ListView1, "ListView1")
Me.ListView1.FullRowSelect = true
Me.ListView1.GridLines = true
Me.ListView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable
Me.ListView1.LargeImageList = Me.ImageList1
Me.ListView1.MultiSelect = false
Me.ListView1.Name = "ListView1"
Me.ListView1.SmallImageList = Me.ImageList1
Me.ListView1.UseCompatibleStateImageBehavior = false
Me.ListView1.View = System.Windows.Forms.View.Details
'
'ColumnHeader2
'
resources.ApplyResources(Me.ColumnHeader2, "ColumnHeader2")
'
'ImageList1
'
Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"),System.Windows.Forms.ImageListStreamer)
Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent
Me.ImageList1.Images.SetKeyName(0, "doc_pdf.png")
'
'Panel1
'
resources.ApplyResources(Me.Panel1, "Panel1")
Me.Panel1.Controls.Add(Me.PdfViewer1)
Me.Panel1.Controls.Add(Me.StatusStrip2)
Me.Panel1.Controls.Add(Me.RibbonControl1)
Me.Panel1.Name = "Panel1"
'
'PdfViewer1
'
resources.ApplyResources(Me.PdfViewer1, "PdfViewer1")
Me.PdfViewer1.Name = "PdfViewer1"
'
'StatusStrip2
'
Me.StatusStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.pdfstatuslblPageNumber, Me.ToolStripDropDownButton1})
resources.ApplyResources(Me.StatusStrip2, "StatusStrip2")
Me.StatusStrip2.Name = "StatusStrip2"
'
'pdfstatuslblPageNumber
'
resources.ApplyResources(Me.pdfstatuslblPageNumber, "pdfstatuslblPageNumber")
Me.pdfstatuslblPageNumber.Image = Global.DD_Record_Organizer.My.Resources.Resources.page_red
Me.pdfstatuslblPageNumber.Name = "pdfstatuslblPageNumber"
'
'ToolStripDropDownButton1
'
Me.ToolStripDropDownButton1.Image = Global.DD_Record_Organizer.My.Resources.Resources.magifier_zoom_out
resources.ApplyResources(Me.ToolStripDropDownButton1, "ToolStripDropDownButton1")
Me.ToolStripDropDownButton1.Name = "ToolStripDropDownButton1"
'
'RibbonControl1
'
Me.RibbonControl1.ExpandCollapseItem.Id = 0
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.PdfFileOpenBarItem1, Me.PdfFileSaveAsBarItem1, Me.PdfFilePrintBarItem1, Me.PdfPreviousPageBarItem1, Me.PdfNextPageBarItem1, Me.PdfFindTextBarItem1, Me.PdfZoomOutBarItem1, Me.PdfZoomInBarItem1, Me.PdfExactZoomListBarSubItem1, Me.PdfZoom10CheckItem1, Me.PdfZoom25CheckItem1, Me.PdfZoom50CheckItem1, Me.PdfZoom75CheckItem1, Me.PdfZoom100CheckItem1, Me.PdfZoom125CheckItem1, Me.PdfZoom150CheckItem1, Me.PdfZoom200CheckItem1, Me.PdfZoom400CheckItem1, Me.PdfZoom500CheckItem1, Me.PdfSetActualSizeZoomModeCheckItem1, Me.PdfSetPageLevelZoomModeCheckItem1, Me.PdfSetFitWidthZoomModeCheckItem1, Me.PdfSetFitVisibleZoomModeCheckItem1, Me.PdfExportFormDataBarItem1, Me.PdfImportFormDataBarItem1})
resources.ApplyResources(Me.RibbonControl1, "RibbonControl1")
Me.RibbonControl1.MaxItemId = 26
Me.RibbonControl1.Name = "RibbonControl1"
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.PdfRibbonPage1, Me.PdfFormDataRibbonPage1})
Me.RibbonControl1.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonControlStyle.Office2010
Me.RibbonControl1.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Above
'
'PdfFileOpenBarItem1
'
Me.PdfFileOpenBarItem1.Id = 1
Me.PdfFileOpenBarItem1.ItemShortcut = New DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O))
Me.PdfFileOpenBarItem1.Name = "PdfFileOpenBarItem1"
'
'PdfFileSaveAsBarItem1
'
Me.PdfFileSaveAsBarItem1.Id = 2
Me.PdfFileSaveAsBarItem1.ItemShortcut = New DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.S))
Me.PdfFileSaveAsBarItem1.Name = "PdfFileSaveAsBarItem1"
'
'PdfFilePrintBarItem1
'
Me.PdfFilePrintBarItem1.Id = 3
Me.PdfFilePrintBarItem1.ItemShortcut = New DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.P))
Me.PdfFilePrintBarItem1.Name = "PdfFilePrintBarItem1"
'
'PdfPreviousPageBarItem1
'
Me.PdfPreviousPageBarItem1.Id = 4
Me.PdfPreviousPageBarItem1.Name = "PdfPreviousPageBarItem1"
'
'PdfNextPageBarItem1
'
Me.PdfNextPageBarItem1.Id = 5
Me.PdfNextPageBarItem1.Name = "PdfNextPageBarItem1"
'
'PdfFindTextBarItem1
'
Me.PdfFindTextBarItem1.Id = 6
Me.PdfFindTextBarItem1.ItemShortcut = New DevExpress.XtraBars.BarShortcut((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.F))
Me.PdfFindTextBarItem1.Name = "PdfFindTextBarItem1"
'
'PdfZoomOutBarItem1
'
Me.PdfZoomOutBarItem1.Id = 7
Me.PdfZoomOutBarItem1.Name = "PdfZoomOutBarItem1"
'
'PdfZoomInBarItem1
'
Me.PdfZoomInBarItem1.Id = 8
Me.PdfZoomInBarItem1.Name = "PdfZoomInBarItem1"
'
'PdfExactZoomListBarSubItem1
'
Me.PdfExactZoomListBarSubItem1.Id = 9
Me.PdfExactZoomListBarSubItem1.LinksPersistInfo.AddRange(New DevExpress.XtraBars.LinkPersistInfo() {New DevExpress.XtraBars.LinkPersistInfo(Me.PdfZoom10CheckItem1, true), New DevExpress.XtraBars.LinkPersistInfo(Me.PdfZoom25CheckItem1), New DevExpress.XtraBars.LinkPersistInfo(Me.PdfZoom50CheckItem1), New DevExpress.XtraBars.LinkPersistInfo(Me.PdfZoom75CheckItem1), New DevExpress.XtraBars.LinkPersistInfo(Me.PdfZoom100CheckItem1), New DevExpress.XtraBars.LinkPersistInfo(Me.PdfZoom125CheckItem1), New DevExpress.XtraBars.LinkPersistInfo(Me.PdfZoom150CheckItem1), New DevExpress.XtraBars.LinkPersistInfo(Me.PdfZoom200CheckItem1), New DevExpress.XtraBars.LinkPersistInfo(Me.PdfZoom400CheckItem1), New DevExpress.XtraBars.LinkPersistInfo(Me.PdfZoom500CheckItem1), New DevExpress.XtraBars.LinkPersistInfo(Me.PdfSetActualSizeZoomModeCheckItem1, true), New DevExpress.XtraBars.LinkPersistInfo(Me.PdfSetPageLevelZoomModeCheckItem1), New DevExpress.XtraBars.LinkPersistInfo(Me.PdfSetFitWidthZoomModeCheckItem1), New DevExpress.XtraBars.LinkPersistInfo(Me.PdfSetFitVisibleZoomModeCheckItem1)})
Me.PdfExactZoomListBarSubItem1.Name = "PdfExactZoomListBarSubItem1"
Me.PdfExactZoomListBarSubItem1.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionInMenu
'
'PdfZoom10CheckItem1
'
Me.PdfZoom10CheckItem1.Id = 10
Me.PdfZoom10CheckItem1.Name = "PdfZoom10CheckItem1"
'
'PdfZoom25CheckItem1
'
Me.PdfZoom25CheckItem1.Id = 11
Me.PdfZoom25CheckItem1.Name = "PdfZoom25CheckItem1"
'
'PdfZoom50CheckItem1
'
Me.PdfZoom50CheckItem1.Id = 12
Me.PdfZoom50CheckItem1.Name = "PdfZoom50CheckItem1"
'
'PdfZoom75CheckItem1
'
Me.PdfZoom75CheckItem1.Id = 13
Me.PdfZoom75CheckItem1.Name = "PdfZoom75CheckItem1"
'
'PdfZoom100CheckItem1
'
Me.PdfZoom100CheckItem1.Id = 14
Me.PdfZoom100CheckItem1.Name = "PdfZoom100CheckItem1"
'
'PdfZoom125CheckItem1
'
Me.PdfZoom125CheckItem1.Id = 15
Me.PdfZoom125CheckItem1.Name = "PdfZoom125CheckItem1"
'
'PdfZoom150CheckItem1
'
Me.PdfZoom150CheckItem1.Id = 16
Me.PdfZoom150CheckItem1.Name = "PdfZoom150CheckItem1"
'
'PdfZoom200CheckItem1
'
Me.PdfZoom200CheckItem1.Id = 17
Me.PdfZoom200CheckItem1.Name = "PdfZoom200CheckItem1"
'
'PdfZoom400CheckItem1
'
Me.PdfZoom400CheckItem1.Id = 18
Me.PdfZoom400CheckItem1.Name = "PdfZoom400CheckItem1"
'
'PdfZoom500CheckItem1
'
Me.PdfZoom500CheckItem1.Id = 19
Me.PdfZoom500CheckItem1.Name = "PdfZoom500CheckItem1"
'
'PdfSetActualSizeZoomModeCheckItem1
'
Me.PdfSetActualSizeZoomModeCheckItem1.Id = 20
Me.PdfSetActualSizeZoomModeCheckItem1.Name = "PdfSetActualSizeZoomModeCheckItem1"
'
'PdfSetPageLevelZoomModeCheckItem1
'
Me.PdfSetPageLevelZoomModeCheckItem1.Id = 21
Me.PdfSetPageLevelZoomModeCheckItem1.Name = "PdfSetPageLevelZoomModeCheckItem1"
'
'PdfSetFitWidthZoomModeCheckItem1
'
Me.PdfSetFitWidthZoomModeCheckItem1.Id = 22
Me.PdfSetFitWidthZoomModeCheckItem1.Name = "PdfSetFitWidthZoomModeCheckItem1"
'
'PdfSetFitVisibleZoomModeCheckItem1
'
Me.PdfSetFitVisibleZoomModeCheckItem1.Id = 23
Me.PdfSetFitVisibleZoomModeCheckItem1.Name = "PdfSetFitVisibleZoomModeCheckItem1"
'
'PdfExportFormDataBarItem1
'
Me.PdfExportFormDataBarItem1.Id = 24
Me.PdfExportFormDataBarItem1.Name = "PdfExportFormDataBarItem1"
'
'PdfImportFormDataBarItem1
'
Me.PdfImportFormDataBarItem1.Id = 25
Me.PdfImportFormDataBarItem1.Name = "PdfImportFormDataBarItem1"
'
'PdfRibbonPage1
'
Me.PdfRibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.PdfFileRibbonPageGroup1, Me.PdfNavigationRibbonPageGroup1, Me.PdfZoomRibbonPageGroup1})
Me.PdfRibbonPage1.Name = "PdfRibbonPage1"
'
'PdfFileRibbonPageGroup1
'
Me.PdfFileRibbonPageGroup1.ItemLinks.Add(Me.PdfFileOpenBarItem1)
Me.PdfFileRibbonPageGroup1.ItemLinks.Add(Me.PdfFileSaveAsBarItem1)
Me.PdfFileRibbonPageGroup1.ItemLinks.Add(Me.PdfFilePrintBarItem1)
Me.PdfFileRibbonPageGroup1.Name = "PdfFileRibbonPageGroup1"
'
'PdfNavigationRibbonPageGroup1
'
Me.PdfNavigationRibbonPageGroup1.ItemLinks.Add(Me.PdfPreviousPageBarItem1)
Me.PdfNavigationRibbonPageGroup1.ItemLinks.Add(Me.PdfNextPageBarItem1)
Me.PdfNavigationRibbonPageGroup1.ItemLinks.Add(Me.PdfFindTextBarItem1)
Me.PdfNavigationRibbonPageGroup1.Name = "PdfNavigationRibbonPageGroup1"
'
'PdfZoomRibbonPageGroup1
'
Me.PdfZoomRibbonPageGroup1.ItemLinks.Add(Me.PdfZoomOutBarItem1)
Me.PdfZoomRibbonPageGroup1.ItemLinks.Add(Me.PdfZoomInBarItem1)
Me.PdfZoomRibbonPageGroup1.ItemLinks.Add(Me.PdfExactZoomListBarSubItem1)
Me.PdfZoomRibbonPageGroup1.Name = "PdfZoomRibbonPageGroup1"
'
'PdfFormDataRibbonPage1
'
Me.PdfFormDataRibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.PdfFormDataBarPageGroup1})
Me.PdfFormDataRibbonPage1.Name = "PdfFormDataRibbonPage1"
Me.PdfFormDataRibbonPage1.Visible = false
'
'PdfFormDataBarPageGroup1
'
Me.PdfFormDataBarPageGroup1.ItemLinks.Add(Me.PdfExportFormDataBarItem1)
Me.PdfFormDataBarPageGroup1.ItemLinks.Add(Me.PdfImportFormDataBarItem1)
Me.PdfFormDataBarPageGroup1.Name = "PdfFormDataBarPageGroup1"
'
'btnrefresh
'
Me.btnrefresh.Image = Global.DD_Record_Organizer.My.Resources.Resources.refresh_16xLG
resources.ApplyResources(Me.btnrefresh, "btnrefresh")
Me.btnrefresh.Name = "btnrefresh"
Me.btnrefresh.UseVisualStyleBackColor = true
'
'PdfBarController2
'
Me.PdfBarController2.BarItems.Add(Me.PdfFileOpenBarItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfFileSaveAsBarItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfFilePrintBarItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfPreviousPageBarItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfNextPageBarItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfFindTextBarItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfZoomOutBarItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfZoomInBarItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfExactZoomListBarSubItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfZoom10CheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfZoom25CheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfZoom50CheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfZoom75CheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfZoom100CheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfZoom125CheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfZoom150CheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfZoom200CheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfZoom400CheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfZoom500CheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfSetActualSizeZoomModeCheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfSetPageLevelZoomModeCheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfSetFitWidthZoomModeCheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfSetFitVisibleZoomModeCheckItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfExportFormDataBarItem1)
Me.PdfBarController2.BarItems.Add(Me.PdfImportFormDataBarItem1)
Me.PdfBarController2.Control = Me.PdfViewer1
'
'btndelete
'
Me.btndelete.Image = Global.DD_Record_Organizer.My.Resources.Resources.delete
resources.ApplyResources(Me.btndelete, "btndelete")
Me.btndelete.Name = "btndelete"
Me.ToolTip1.SetToolTip(Me.btndelete, resources.GetString("btndelete.ToolTip"))
Me.btndelete.UseVisualStyleBackColor = true
'
'chkInFront
'
resources.ApplyResources(Me.chkInFront, "chkInFront")
Me.chkInFront.Checked = Global.DD_Record_Organizer.My.MySettings.Default.User_InBoxScan_NotinFront
Me.chkInFront.DataBindings.Add(New System.Windows.Forms.Binding("Checked", Global.DD_Record_Organizer.My.MySettings.Default, "User_InBoxScan_NotinFront", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged))
Me.chkInFront.Name = "chkInFront"
Me.chkInFront.UseVisualStyleBackColor = true
'
'TimerCheckScanFiles
'
Me.TimerCheckScanFiles.Interval = 5000
'
'Button1
'
Me.Button1.Image = Global.DD_Record_Organizer.My.Resources.Resources.delete
resources.ApplyResources(Me.Button1, "Button1")
Me.Button1.Name = "Button1"
Me.ToolTip1.SetToolTip(Me.Button1, resources.GetString("Button1.ToolTip"))
Me.Button1.UseVisualStyleBackColor = true
'
'frmScanFiles
'
resources.ApplyResources(Me, "$this")
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.chkInFront)
Me.Controls.Add(Me.btndelete)
Me.Controls.Add(Me.Panel1)
Me.Controls.Add(Me.btnrefresh)
Me.Controls.Add(Me.ListView1)
Me.MaximizeBox = false
Me.Name = "frmScanFiles"
Me.Panel1.ResumeLayout(false)
Me.Panel1.PerformLayout
Me.StatusStrip2.ResumeLayout(false)
Me.StatusStrip2.PerformLayout
CType(Me.RibbonControl1,System.ComponentModel.ISupportInitialize).EndInit
CType(Me.PdfBarController1,System.ComponentModel.ISupportInitialize).EndInit
CType(Me.PdfBarController2,System.ComponentModel.ISupportInitialize).EndInit
Me.ResumeLayout(false)
Me.PerformLayout
End Sub
Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader
Friend WithEvents ImageList1 As System.Windows.Forms.ImageList
Friend WithEvents btnrefresh As System.Windows.Forms.Button
Friend WithEvents Panel1 As System.Windows.Forms.Panel
Friend WithEvents StatusStrip2 As System.Windows.Forms.StatusStrip
Friend WithEvents pdfstatuslblPageNumber As System.Windows.Forms.ToolStripStatusLabel
Friend WithEvents ToolStripDropDownButton1 As System.Windows.Forms.ToolStripDropDownButton
Friend WithEvents PdfBarController1 As DevExpress.XtraPdfViewer.Bars.PdfBarController
Friend WithEvents PdfViewer1 As DevExpress.XtraPdfViewer.PdfViewer
Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl
Friend WithEvents PdfFileOpenBarItem1 As DevExpress.XtraPdfViewer.Bars.PdfFileOpenBarItem
Friend WithEvents PdfFileSaveAsBarItem1 As DevExpress.XtraPdfViewer.Bars.PdfFileSaveAsBarItem
Friend WithEvents PdfFilePrintBarItem1 As DevExpress.XtraPdfViewer.Bars.PdfFilePrintBarItem
Friend WithEvents PdfPreviousPageBarItem1 As DevExpress.XtraPdfViewer.Bars.PdfPreviousPageBarItem
Friend WithEvents PdfNextPageBarItem1 As DevExpress.XtraPdfViewer.Bars.PdfNextPageBarItem
Friend WithEvents PdfFindTextBarItem1 As DevExpress.XtraPdfViewer.Bars.PdfFindTextBarItem
Friend WithEvents PdfZoomOutBarItem1 As DevExpress.XtraPdfViewer.Bars.PdfZoomOutBarItem
Friend WithEvents PdfZoomInBarItem1 As DevExpress.XtraPdfViewer.Bars.PdfZoomInBarItem
Friend WithEvents PdfExactZoomListBarSubItem1 As DevExpress.XtraPdfViewer.Bars.PdfExactZoomListBarSubItem
Friend WithEvents PdfZoom10CheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfZoom10CheckItem
Friend WithEvents PdfZoom25CheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfZoom25CheckItem
Friend WithEvents PdfZoom50CheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfZoom50CheckItem
Friend WithEvents PdfZoom75CheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfZoom75CheckItem
Friend WithEvents PdfZoom100CheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfZoom100CheckItem
Friend WithEvents PdfZoom125CheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfZoom125CheckItem
Friend WithEvents PdfZoom150CheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfZoom150CheckItem
Friend WithEvents PdfZoom200CheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfZoom200CheckItem
Friend WithEvents PdfZoom400CheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfZoom400CheckItem
Friend WithEvents PdfZoom500CheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfZoom500CheckItem
Friend WithEvents PdfSetActualSizeZoomModeCheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfSetActualSizeZoomModeCheckItem
Friend WithEvents PdfSetPageLevelZoomModeCheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfSetPageLevelZoomModeCheckItem
Friend WithEvents PdfSetFitWidthZoomModeCheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfSetFitWidthZoomModeCheckItem
Friend WithEvents PdfSetFitVisibleZoomModeCheckItem1 As DevExpress.XtraPdfViewer.Bars.PdfSetFitVisibleZoomModeCheckItem
Friend WithEvents PdfExportFormDataBarItem1 As DevExpress.XtraPdfViewer.Bars.PdfExportFormDataBarItem
Friend WithEvents PdfImportFormDataBarItem1 As DevExpress.XtraPdfViewer.Bars.PdfImportFormDataBarItem
Friend WithEvents PdfRibbonPage1 As DevExpress.XtraPdfViewer.Bars.PdfRibbonPage
Friend WithEvents PdfFileRibbonPageGroup1 As DevExpress.XtraPdfViewer.Bars.PdfFileRibbonPageGroup
Friend WithEvents PdfNavigationRibbonPageGroup1 As DevExpress.XtraPdfViewer.Bars.PdfNavigationRibbonPageGroup
Friend WithEvents PdfZoomRibbonPageGroup1 As DevExpress.XtraPdfViewer.Bars.PdfZoomRibbonPageGroup
Friend WithEvents PdfFormDataRibbonPage1 As DevExpress.XtraPdfViewer.Bars.PdfFormDataRibbonPage
Friend WithEvents PdfFormDataBarPageGroup1 As DevExpress.XtraPdfViewer.Bars.PdfFormDataBarPageGroup
Friend WithEvents PdfBarController2 As DevExpress.XtraPdfViewer.Bars.PdfBarController
Friend WithEvents btndelete As System.Windows.Forms.Button
Friend WithEvents chkInFront As System.Windows.Forms.CheckBox
Private WithEvents ListView1 As System.Windows.Forms.ListView
Friend WithEvents TimerCheckScanFiles As System.Windows.Forms.Timer
Friend WithEvents Timer2 As System.Windows.Forms.Timer
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents ToolTip1 As System.Windows.Forms.ToolTip
End Class

View File

@@ -1,641 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ColumnHeader2.Text" xml:space="preserve">
<value>Scanfile - Drag and drop here</value>
</data>
<data name="ImageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADm
BwAAAk1TRnQBSQFMAwEBAAHgAQAB4AEAARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
AwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZ
AgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFm
AgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEz
AQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFm
AgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFm
AQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEA
ATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFm
AQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFm
ATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFm
AQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEA
AWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZ
AQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEz
AQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/
AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEA
AZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHM
AQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFm
ATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZ
AQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/
ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHM
ATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJm
AQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHM
AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA
AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA
ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7
Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/8DAAEHDBIBBzIAARIM/wES
MAAKIAP0AfMB/wHqMAAKIAH0A/MB/wHqMAACIAG9AW8GIATzAf8BbTAAAiABRgH0AZQBbwGUAb0CIATz
Af8BbTAAAyABFwGUAUYBvQEXAiAE8wH/AeswAAQgApQBFgMgBPMB/wHrMAAEIAFHAf8EIATzAf8B7DAA
BfkB/wT5A/MB8gH/AewwAAr5Bf8B7DAACvkB/wLyAfMB7QG8MgAB7QH/A/MD8gH/AfIB8wHtAfAzAAGS
Af8B8wXyAf8B8wGSAfA0AAGSCP8BkgHwNQAB8Aj3AfA0AAFCAU0BPgcAAT4DAAEoAwABQAMAARADAAEB
AQABAQUAAYAXAAP/AQABwAcAAcBXAAHAAQEGAAHAAQMGAAHAAQcGAAHAAQ8GAAs=
</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="PdfViewer1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 140</value>
</data>
<data name="PdfViewer1.Size" type="System.Drawing.Size, System.Drawing">
<value>591, 391</value>
</data>
<data name="ToolStripDropDownButton1.Size" type="System.Drawing.Size, System.Drawing">
<value>133, 20</value>
</data>
<data name="ToolStripDropDownButton1.Text" xml:space="preserve">
<value>Pageview Minimal</value>
</data>
<data name="RibbonControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>591, 140</value>
</data>
<data name="btnrefresh.Text" xml:space="preserve">
<value>Refresh</value>
</data>
<data name="btndelete.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="chkInFront.Size" type="System.Drawing.Size, System.Drawing">
<value>163, 17</value>
</data>
<data name="chkInFront.Text" xml:space="preserve">
<value>Deactivate "Always on top"</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABycnIOcHBwi4qKivKEhIT1ZGRkiG5ubhEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZCQ
kF6EhITmubm5/MvLy/7Jycn/tbW1/4CAgO5ra2t4c3NzCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACfn58tkJCQwqqqqv3k5OT79vb2/e7v7/3U1NT8v7+//sHB
wf+qqqr/enp65Wpqamlzc3MFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAp6enDKCg
oIyioqL61tbW+/b29vz09fX/3N3e/8XDv//Z2tz/6err/c3Nzfy3t7f+uLi4/56env90dHTbdXV1WQAA
AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7u7tSpqam4sbGxvzz8/P79/f3/uTk5P/Ewb7/5djG///w
z//r2Lf/zMS2/9TW2f/j5eb9x8fH/LCwsP6wsLD/k5OT/3V1dc9ycnJKAAAAAAAAAAAAAAAAAAAAALu7
u6e8vLz96enp+/n5+f7r6+v/wcHD/9vX0f//+ej///DZ///szP//58D//+Oz/+fGmv/HtqX/0dPW/9/h
4/3BwcL8qKio/qenp/+Kior+dHR0wXBwcDoAAAAAAAAAAMXFxfz39/f9+vr6/8DAwP/MzMz////////+
9f//9eX//+/Y///qy///57///eCz//HMnP/mtIL/0pxt/7+jj//P0tT/2dze/bi4uf2hoaH+np6f/3h4
ePoAAAAAAAAAAMjIyEfExMSpy8vL9Nvb2//Ly8v/ysnJ/93Y0v//9uX///LZ///rzP//5b7//d+y//DJ
nP/js4P/1pxr/8qBTv+5ZzP/tYx0/9HU1f/W2dr9s7i5/YOHif8AAAAAAAAAAAAAAAAAAAAAv7+/DMXF
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
AP//wAH//4AD//8AB//+AA///AAf//gA///8H/////////////8oAAAAIAAAAEAAAAABACAAAAAAAIAQ
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAenp6Pm5ubrl7e3vya2tr2mhoaF5XV1cDAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAioqKG35+fqaFhYX9v7+//s/Pz//Gxsb/lZWV/21t
bdNycnJRAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJCQBoyMjHaEhITyq6ur/uPj4/nY2Nj7xMTE/sPD
w//FxcX/vr6+/46Ojv9ubm7Id3d3QwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoEaKiorXoKCg/tbW1vrx8fH68vLy/vPz
8//t7e3809PT+729vf69vb3/v7+//7a2tv+Hh4f+bGxsu3R0dDYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK+vrx6cnJysm5ub/sXFxfzv7+/58vLy/vLy
8v/y8vL/zs/R/9PU1f/w8fL/6urq/M7Ozvy4uLj9uLi4/7u7u/+srKz/goKC/WxsbK50dHQqAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK2trQWqqqp3n5+f87m5uf3m5ub69fX1/fPz
8//09PT/1NXW/7Syrv/l1sL/4tO5/7u2rv/MztD/6+zt/+bm5vzKysr7srKy/rKysv+1tbX/pKSk/3t7
e/xtbW2gcXFxIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCwsI+pqam07CwsP7b29v69fX1+/T0
9P/19fX/3Nzd/7Oxsf/c1Mf///Td///u0///68n//+rA/+rTr//At6n/yMvN/+fo6v/i4uL9xcXF/K2t
rf6srKz/rq6u/5ubm/92dnb3b29vkmpqahgAAAAAAAAAAAAAAAAAAAAAvr6+hbGxsf3Ozs778vLy+vb2
9v729vb/4uLi/7Kysv/T0Mz///zv///25P//79n//+zQ///px///5cD//+W2//rYp//jwJb/v62d/8XI
y//h5OX/3+Dg/MHBwfyoqKj9p6en/6qqqv+Tk5P/c3Nz829vb4RlZWUQAAAAAAAAAAC9vb378PDw+vn5
+f319fX/6Ojo/7a2tv/Pz8/////////99///9+z///Pi///v2f//7ND//+jH///lvv//4rb/99Sm/+3E
lf/ms4L/1aF0/7yhjP/Fx8n/3ODi/9vc3P29vb38oqKi/qKiov+kpKT/jo6O/21tbdYAAAAAAAAAAMnJ
yZ3Gxsb62tra//Dw8P/Y2Nj/tLS0/8jIyP/28/P////4///57f//9OL//+/Y///sz///6Mb//+W9//3i
tP/106X/7MKU/+Kyg//aoXL/0JBe/8R/Tv+2j3f/xMLC/9ja2//Y2Nj9ubm5/J2dnf6fn5//d3d38wAA
AAAAAAAAAAAAANXV1RPHx8dlwcHBvMTExPra2tr/5ubm/8LCwv+5ubf/0s3F//3x3v//89r//+zP///p
x///5r3//eGz//TSpf/rwZP/4rGB/9igcP/Qj1//xn1K/7tkLf+vXzH/tqqk/9LS0//b3N3/0NXW/aWr
r/16fHz9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMGMPDw2q+vr7AxMTE/NfX1//c3N3/vb/A/8G8
tf/g073//+rF///nvf//4rP/9dKi/+vAkf/ir3//2J5q/8uOX/+7k3j/wLSt/9DW2v/V29//wcnP/6qe
mP+aakv/ljoN/4AoEbkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLy8sbwcHBbb29
vcXCwsL80tPT/9HS1P+/vr7/y8Cw/+rTrv/40aD/6r6P/82rjP/Bs6f/yM3T/9Xc4v/Gz9b/saeg/6R1
T/+jTQ7/pTsA/6A5AP+MIwD9hRkATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAMvLyx68vLxyurq6yb+/v/3Nzs//yczP/8G/vf/Dxsr/09nh/8vS2/+4rab/roFT/7Fe
Df+zTwD/r00A/6xLAP+nRAD/jygA/pIeAHUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEIre4uners7zNwaqV/sakgP+3j1n/vnAP/8Ji
AP++YAD/uV0A/7dYAP+zVAD/rEsA/5EqAP+VIACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBqAGnNZQD70HcA/810
AP/JcAD/xWoA/8BlAP+8YAD/uVwA/7JTAP+ULQD/kiQAmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALxeAAPldQCO1HMC/taE
AP/SfgD/zngA/8pzAP/GbgD/wmoA/79mAP+3WwD/lTAA/4smAKdaAAADAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/dwAM3HIAsdd9
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4eHgfcnJyWG9v
b1pxcXEcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg4ODKnh4
eLFycnL7iYmJ/oODg/5paWn2bm5ujnBwcBcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiI
iBGBgYGOdnZ2+JKSkv3MzMz9zc3N/83Nzf6/v7/+i4uL/mhoaPFubm6Dd3d3EQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACRkZEEiYmJZX19feiFhYX+srKy/szMzP3IyMj/xsbG/8XFxf/ExMT/x8fH/ri4uP6FhYX+aGho7G9v
b3h5eXkMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAJqamjyFhYXLhISE/qWlpf7Ozs786enp9u/v7/jZ2dn5xMTE/cPDw//Dw8P/wcHB/8HB
wf/ExMT+sbGx/n9/f/5paWnlb29vbWtrawgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACdnZ0Yk5OToIiIiPybm5v+w8PD/uDg4Pfy8vL58PDw/+/v7//w8PD+7Ozs+9XV
1frAwMD9v7+//7+/v/+9vb3/vr6+/8DAwP6rq6v+enp6/mdnZ95xcXFidHR0BQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAsLCwBZubm26QkJDtl5eX/ru7u/7a2tr48PDw9/Ly8v7w8PD/7u7u/+/v
7//x8fH/7+/v/+7u7v7p6en809PT+r29vf27u7v/u7u7/7u7u/+6urr/vLy8/qSkpP53d3f+aWlp1nBw
cFdeXl4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKw+l5eXz5WVlf6wsLD+1NTU+uzs7Pfz8/P98fHx/+/v
7//v7+//8/Pz/+jo6P+ztbb/w8TG/+vr7P/u7u7/7Ozs/+np6fvR0dH6urq6/Li4uP+3t7f/t7e3/7a2
tv+4uLj+nZ2d/nNzc/5paWnNeXl5TAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu7u7Gaenp6Kbm5v8qamp/srKyvzo6Oj38/Pz+/Ly
8v/x8fH/8PDw//Ly8v/s7O3/tbW3/6OgnP/m18D/18q2/6Oinv+7vcD/5ebm/+vr6//p6en/5+fn+87O
zvu3t7f8tLS0/7S0tP+zs7P/tLS0/7S0tP6Wlpb+cHBw/m5ubsR2dnZCAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK2trQWysrJvoqKi7qWlpf/BwcH+4ODg+PPz
8/ny8vL/8vLy//Hx8f/z8/P/8PDw/7u7vP+dnJr/3tTE///02f//79H//+zM///sxv/fzrL/q6eg/7a4
vP/f4OH/6erq/+fn5//k5OT8zs7O+rOzs/2wsLD/sLCw/7CwsP+wsLD/sLCw/pCQkP5ubm79bm5uunZ2
djgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwsLCPaysrM+mpqb+ubm5/9nZ
2fnw8PD49PT0/vLy8v/y8vL/8/Pz//Pz8//CwsL/mZmX/9fQxv//+eX///Pc///v1v//7M///+nJ///o
w///57///+e5/+jQrP+yqp//s7a4/9na3P/m5+f/5OTk/+Li4vzJycn6sLCw/a2trf+srKz/rKys/62t
rf+qqqr+jIyM/mxsbPxvb2+vd3d3LgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL6+vg29vb2bra2t/LKy
sv/Pz8/77Ozs+PX19f3z8/P/8vLy//T09P/19fX/xsbH/5aWl//Oy8j///zw///36f//8+H///Da///u
1P//687//+nJ///nw///5b3//+S3///gsf/61qX/5MKa/7iqm/+xtLb/09XX/+Pk5P/i4uL/4eHh/MbG
xvqurq78qamp/6mpqf+oqKj/qamp/6ampv6Ghob+ampq+29vb6RxcXEmAAAAAAAAAAAAAAAAAAAAALS0
tJu0tLT+xsbG/ebm5vj29vb79PT0//Pz8//09PT/9vb2/83Nzf+VlZX/x8fG/////P///fX///js///0
5f//8uD///Da///t1P//687//+nI///nwv//5b3//+S3//vdr//106T/8MmZ/+2+jf/esYX/u6aT/7K0
tf/O0dP/4eLi/+Hh4f/e3t79xcXF+qurq/ympqb/paWl/6Wlpf+lpaX/oaGh/oKCgv5qamr4cXFxmW9v
bxsAAAAAAAAAALe3t+zf39/59/f3+vf39/709PT/8vLy//T09P/W1tb/mZmZ/8DAwP/////////////8
+P//+fH///br///05f//8t///+/Z///t0///687//+nI///nwv//5Lz//+K4//zesP/10qT/7seZ/+i8
jf/jsYL/3qd2/9Scbf+7nIb/s7Kz/8rN0P/d3t7/3t7e/9zc3P3ExMT6qKio/KKiov+ioqL/oaGh/6Ki
ov+bm5v+fHx8/mtra60AAAAAAAAAALu7u67Gxsb+2dnZ/u/v7/729vb+9PT0/+jo6P+Dg4P/ra2t/+zs
7P/////////////99///+vD///br///05f//8t///+/Z///t0///683//+nH///nwv//5Lz//uK2//rc
rv/00aP/7saY/+i7jf/isYH/26Z2/9aba//QkF7/yoRT/7qQdP+1r63/yM3Q/9nb2//b29z/2tra/cLC
wvujo6P8nZ2d/56env+enp7/lJSU/mtra8EAAAAAAAAAAM/PzwTJyclTxsbGp7m5ufHDw8P+2NjY/u3t
7f76+vr+29vb/6urq/+Xl5f/wMC///Pv6/////f///nt///15f//8d7//+/Y///t0///683//+nH///m
wf//5Lv//uK3//vbrf/00KL/7saX/+e7jP/hsIH/26V2/9Waav/Pj1//yIRU/8N4Rv+7azf/tH1d/7Wp
o//Gycv/1dbW/9nZ2f/Y2Nj9v7+/+6GhofycnJz/lZWV/29vb9EAAAAAAAAAAAAAAAAAAAAAAAAAANvb
2wzIyMhVxcXFqre3t/LAwMD+2NjY/u/v7/7z8/T+0NDQ/6Wmpv+hoJ7/z8vC//zw4v//9uP///La///u
0///68z//+jH///mwf//5Lv//uK1//ncrP/z0KH/7cWW/+e6i//hr4D/26R1/9SZav/Oj1//yINT/8F4
R/+7azf/tFoj/65fMv+zopn/vr+//9bW1v/W1tb/2NjZ/9PV1v2vs7X7lpqb/nR2duAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAANzc3AzExMRYwcHBrbW1tfTAwMD+1dXV/uzs7P7s7Oz+x8jI/6Ok
pf+uqqX/29HA///u0///7s///+rH///nwP//5Lv//uO2//narf/zz6H/7cSV/+e5iv/grn//2qN0/9SZ
af/PjVz/yIBN/799T/+3kHb/uK+s/8XLzv/S1NX/2dnZ/9PU1v/EyMv/rbS3/5uRjf+XZUv/iCsO/3hk
XZUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0A7Dw8NawMDAsbOz
s/a+vr7+09PT/unp6f7k5OX+wcLD/6Slpf+6sqn/5dW7///qwv//57v//+K1//rZq//yzqD/7MOV/+e4
iv/hrn3/3aNw/9KXav/Am37/tqqg/7/EyP/Q09X/29zd/9bY2f/IzM7/sLa8/5+Vj/+aakz/nkUP/580
AP+bMwD+hh4A/n8XADoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAANfX1w/ExMRbvr6+s7Gxsfe8vLz+0dHR/ubm5v7c3d7+vL2//6mnp//HvKn/79ew//7c
qv/1z5//8MSU/+e3iP/NrIz/tqmd/7m7v//LztH/3N3e/9ja3P/JzdH/tLm//6KYkv+gcU3/plEP/6k/
AP+lQAD/oz8A/585AP6MJwD+gRsAxIgAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7OzhG+vr5fvLy8tbCwsPm7u7v+zs7O/uLi
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
Z//4qz3/9JkZ/+6HAP/nfQD/3XUA/9VuAP7MZQD80GIA4M9gAK7IWgB7yFcARcBRABUAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD/mwBY74UA+vCIAP/ogQD/4XkA/Od5AOPldQCy4HAAedlsAETsbgAVAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA/5QAJ/WFAFzzhQBE+4MAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP///////wAA///5////
AAD//+B///8AAP//gB///wAA//4AB///AAD//AAB//8AAP/wAAB//wAA/8AAAB//AAD/gAAAD/8AAP4A
AAAD/wAA+AAAAAD/AADwAAAAAD8AAMAAAAAADwAAgAAAAAADAACAAAAAAAEAAIAAAAAAAQAAwAAAAAAB
AAD4AAAAAAEAAP8AAAAAAQAA/+AAAAADAAD//AAAAAMAAP//gAAABwAA///wAAAPAAD///4AAB8AAP//
/4AAPwAA////AAB/AAD///4AAP8AAP///AAB/wAA///4AAH/AAD///AAA/8AAP//wAAH/wAA//+AAA//
AAD//wAAH/8AAP/+AAA//wAA//wAAH//AAD/+AAA//8AAP/gAAH//wAA/8AAA///AAD/gAAP//8AAP8A
AD///wAA/wAH////AAD/AP////8AAP/f/////wAA////////AAD///////8AAP///////wAA
</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -1,227 +0,0 @@
Imports System.IO
Public Class frmScanFiles
Dim DragID
Dim MouseIsDown As Boolean = False
Private Shared _Instance As frmScanFiles = Nothing
Public Shared Function Instance() As frmScanFiles
If _Instance Is Nothing OrElse _Instance.IsDisposed = True Then
_Instance = New frmScanFiles
End If
_Instance.BringToFront()
Return _Instance
End Function
Private Sub frmScanFiles_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
ClassWindowLocation.SaveFormLocationSize(Me, 9999, CURRENT_SCREEN_ID, Me.Name)
End Sub
Private Sub frmScanFiles_Load(sender As Object, e As EventArgs) Handles Me.Load
Load_Files()
ClassWindowLocation.LoadFormLocationSize(Me, 9999, CURRENT_SCREEN_ID, Me.Name)
End Sub
Sub Clear_and_Reload_Files()
Try
PdfViewer1.DocumentFilePath = ""
Dim del = "DELETE FROM TBPMO_FILES_USER where HANDLE_TYPE = 'SCAN' AND UPPER(USER_WORK) = UPPER('" & USER_USERNAME & "')"
If MYDB_ECM.ExecuteNonQuery(del) Then
' Make a reference to a directory.
Dim di As New DirectoryInfo(CURRENT_SCAN_FOLDERWATCH)
' Get a reference to each file in that directory.
Dim fiArr As FileInfo() = di.GetFiles()
' Display the names of the files.
Dim fri As FileInfo
For Each fri In fiArr
Dim irregular As Boolean = False
For Each row As DataRow In DTEXCLUDE_FILES.Rows
Dim content As String = row.Item(0).ToString.ToLower
If fri.Name.ToLower.Contains(content) Then
irregular = True
Exit For
End If
Next
If irregular = False Then
Dim handletype As String
If fri.FullName.EndsWith(".msg") Then
handletype = "SCAN_OUTLOOK_MESSAGE"
Else
handletype = "SCAN"
End If
ClassHelper.Insert_USER_File(fri.FullName, handletype)
End If
Next fri
ClassFolderWatcher.Check_Scan_Files()
Load_Files()
End If
Catch ex As Exception
End Try
End Sub
Sub Load_Files()
Try
ListView1.Items.Clear()
Dim i = 0
For Each row As DataRow In CURRENT_SCAN_TABLE.Rows
Dim extension = Path.GetExtension(row.Item("FILENAME2WORK").ToString)
Dim filestring = row.Item("FILENAME2WORK")
If ClassHelper.CheckFileIsInUse(filestring) = False Then
Dim filename = row.Item("FILENAME_ONLY").ToString
Dim ID = row.Item("GUID").ToString
'We can only find associated exes by extension, so don't show any files that have no extension
If IsNothing(extension) Then
Else
If extension.Contains("pdf") Then
'Add the file to the ListView, with the executable path as the key to the ImageList's image
ListView1.Items.Add(filename, 0)
Else
ListView1.Items.Add(filename)
End If
ListView1.Items(i).Tag = ID
i += 1
End If
End If
Next
If CURRENT_SCAN_TABLE.Rows.Count = 0 Then
Me.Close()
End If
Catch ex As Exception
MsgBox("unexpected Error in Load Scanfiles:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub btnrefresh_Click(sender As Object, e As EventArgs) Handles btnrefresh.Click
Clear_and_Reload_Files()
End Sub
Private Sub PdfViewer1_CurrentPageChanged(sender As Object, e As DevExpress.XtraPdfViewer.PdfCurrentPageChangedEventArgs) Handles PdfViewer1.CurrentPageChanged
PDF_Pagenumber()
End Sub
Sub PDF_Pagenumber()
Try
pdfstatuslblPageNumber.Text = "Page " & PdfViewer1.CurrentPageNumber & "/" & PdfViewer1.PageCount
Catch ex As Exception
End Try
End Sub
Private Sub ListView1_ItemSelectionChanged(sender As Object, e As ListViewItemSelectionChangedEventArgs) Handles ListView1.ItemSelectionChanged
If ListView1.SelectedItems.Count = 1 Then
Dim i = ListView1.FocusedItem
Dim i1 = i.Text
If Not IsNothing(i) Then
If i.Text.ToLower.EndsWith("pdf") Then
Me.Cursor = Cursors.WaitCursor
Panel1.Visible = True
PdfViewer1.DocumentFilePath = ""
Dim docpath = CURRENT_SCAN_FOLDERWATCH & "\" & i.Text
PdfViewer1.LoadDocument(docpath)
'PdfViewer1.HorizontalScroll.Visible = True
Else
Panel1.Visible = False
PdfViewer1.DocumentFilePath = ""
End If
End If
End If
Me.Cursor = Cursors.Default
End Sub
Private Sub ToolStripDropDownButton1_Click(sender As Object, e As EventArgs) Handles ToolStripDropDownButton1.Click
PdfViewer1.ZoomFactor = 30
End Sub
'Private Sub ListView1_MouseDown(sender As Object, e As MouseEventArgs) Handles ListView1.MouseDown
' If ListView1.SelectedItems.Count = 1 Then
' Dim i = ListView1.FocusedItem
' Dim i1 = i.Text
' If Not IsNothing(i) Then
' MouseIsDown = True
' DragID = i.Tag
' Console.WriteLine("Mouse Down")
' End If
' End If
'End Sub
Private Sub ListView1_MouseMove(sender As Object, e As MouseEventArgs) Handles ListView1.MouseMove
If MouseIsDown Then
'Initiate dragging.
PdfViewer1.DocumentFilePath = ""
ListView1.DoDragDrop(DragID, DragDropEffects.Copy)
End If
MouseIsDown = False
End Sub
Private Sub ListView1_ItemDrag(sender As Object, e As ItemDragEventArgs) Handles ListView1.ItemDrag
If ListView1.SelectedItems.Count = 1 Then
Dim i = ListView1.FocusedItem
Dim i1 = i.Text
If Not IsNothing(i) Then
MouseIsDown = True
DragID = i.Tag
'Console.WriteLine("Mouse Down")
PdfViewer1.DocumentFilePath = ""
ListView1.DoDragDrop("SCAN;" & DragID.ToString, DragDropEffects.Copy)
End If
End If
End Sub
Private Sub PdfViewer1_DocumentChanged(sender As Object, e As DevExpress.XtraPdfViewer.PdfDocumentChangedEventArgs) Handles PdfViewer1.DocumentChanged
PDF_Pagenumber()
End Sub
Private Sub btndelete_Click(sender As Object, e As EventArgs) Handles btndelete.Click
Try
If ListView1.SelectedItems.Count = 1 Then
PdfViewer1.DocumentFilePath = ""
Dim i = ListView1.FocusedItem
Dim i1 = i.Text
If Not IsNothing(i) Then
Dim del = "DELETE FROM TBPMO_FILES_USER where GUID = " & i.Tag
If MYDB_ECM.ExecuteNonQuery(del) Then
ClassFolderWatcher.Check_Scan_Files()
Load_Files()
Else
MsgBox("Could not delete the entry. Check the logfile!", MsgBoxStyle.Information)
End If
End If
Else
MsgBox("Please choose a file!", MsgBoxStyle.Information)
End If
Catch ex As Exception
MsgBox("Unexpected Error in Delete Scanfile:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub frmScanFiles_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Me.BringToFront()
TimerCheckScanFiles.Start()
End Sub
Private Sub chkInFront_CheckedChanged(sender As Object, e As EventArgs) Handles chkInFront.CheckedChanged
My.Settings.Save()
End Sub
Private Sub Timer1_Tick_1(sender As Object, e As EventArgs) Handles TimerCheckScanFiles.Tick
If CURRENT_SCAN_TABLE.Rows.Count <> ListView1.Items.Count Then
'Dim result As MsgBoxResult
'Dim msg = "Neue Dateien wurden gescann"
'result = MessageBox.Show(msg, "Confirmation needed:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
'If result = MsgBoxResult.No Then
'End If
Load_Files()
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
PdfViewer1.DocumentFilePath = ""
Dim del = "DELETE FROM TBPMO_FILES_USER where HANDLE_TYPE = 'SCAN' AND UPPER(USER_WORK) = UPPER('" & USER_USERNAME & "')"
If MYDB_ECM.ExecuteNonQuery(del) Then
ClassFolderWatcher.Check_Scan_Files()
Load_Files()
End If
End Sub
End Class

View File

@@ -247,7 +247,7 @@
<value>15, 27</value>
</data>
<data name="txtFilepath.Size" type="System.Drawing.Size, System.Drawing">
<value>559, 23</value>
<value>574, 23</value>
</data>
<data name="txtFilepath.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@@ -294,9 +294,6 @@
<data name="&gt;&gt;Label2.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>891, 17</value>
</metadata>
<data name="cmbDokumentart.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI Semibold, 9.75pt, style=Bold</value>
</data>
@@ -309,6 +306,9 @@
<data name="cmbDokumentart.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>891, 17</value>
</metadata>
<data name="cmbDokumentart.ToolTip" xml:space="preserve">
<value>Auswahl der Dokumentart - Wird für nächste Eingabe gespeichert</value>
</data>
@@ -340,7 +340,7 @@
<value>MiddleLeft</value>
</data>
<data name="btnindex.Location" type="System.Drawing.Point, System.Drawing">
<value>416, 592</value>
<value>431, 444</value>
</data>
<data name="btnindex.Size" type="System.Drawing.Size, System.Drawing">
<value>158, 28</value>
@@ -390,57 +390,6 @@
<data name="&gt;&gt;OBJECT_TYPETextBox.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="&gt;&gt;PATHTextBox.Name" xml:space="preserve">
<value>PATHTextBox</value>
</data>
<data name="&gt;&gt;PATHTextBox.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;PATHTextBox.Parent" xml:space="preserve">
<value>GroupBox1</value>
</data>
<data name="&gt;&gt;PATHTextBox.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;DOCTYPE_IDTextBox.Name" xml:space="preserve">
<value>DOCTYPE_IDTextBox</value>
</data>
<data name="&gt;&gt;DOCTYPE_IDTextBox.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;DOCTYPE_IDTextBox.Parent" xml:space="preserve">
<value>GroupBox1</value>
</data>
<data name="&gt;&gt;DOCTYPE_IDTextBox.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="GroupBox1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt, style=Italic</value>
</data>
<data name="GroupBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>15, 117</value>
</data>
<data name="GroupBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>560, 80</value>
</data>
<data name="GroupBox1.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="GroupBox1.Text" xml:space="preserve">
<value>Gewählte Indexierungsdaten - Automatik:</value>
</data>
<data name="&gt;&gt;GroupBox1.Name" xml:space="preserve">
<value>GroupBox1</value>
</data>
<data name="&gt;&gt;GroupBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;GroupBox1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;GroupBox1.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="PATHTextBox.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
@@ -489,6 +438,33 @@
<data name="&gt;&gt;DOCTYPE_IDTextBox.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="GroupBox1.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt, style=Italic</value>
</data>
<data name="GroupBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>15, 117</value>
</data>
<data name="GroupBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>560, 80</value>
</data>
<data name="GroupBox1.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="GroupBox1.Text" xml:space="preserve">
<value>Gewählte Indexierungsdaten - Automatik:</value>
</data>
<data name="&gt;&gt;GroupBox1.Name" xml:space="preserve">
<value>GroupBox1</value>
</data>
<data name="&gt;&gt;GroupBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;GroupBox1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;GroupBox1.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="chkdelete_origin.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
@@ -499,7 +475,7 @@
<value>Verdana, 9.75pt, style=Italic</value>
</data>
<data name="chkdelete_origin.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 598</value>
<value>24, 450</value>
</data>
<data name="chkdelete_origin.Size" type="System.Drawing.Size, System.Drawing">
<value>177, 20</value>
@@ -510,9 +486,6 @@
<data name="chkdelete_origin.Text" xml:space="preserve">
<value>Lösche Ursprungsdatei</value>
</data>
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>891, 17</value>
</metadata>
<data name="chkdelete_origin.ToolTip" xml:space="preserve">
<value>Die gedroppte Datei wird nach Ablage in windream gelöscht - Wird für nächste Eingabe gespeichert</value>
</data>
@@ -538,7 +511,7 @@
<value>Verdana, 9.75pt, style=Bold, Italic</value>
</data>
<data name="chkMultiIndexer.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 624</value>
<value>24, 476</value>
</data>
<data name="chkMultiIndexer.Size" type="System.Drawing.Size, System.Drawing">
<value>519, 20</value>
@@ -577,7 +550,7 @@
<value>15, 203</value>
</data>
<data name="grbxControls.Size" type="System.Drawing.Size, System.Drawing">
<value>559, 336</value>
<value>574, 191</value>
</data>
<data name="grbxControls.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
@@ -610,7 +583,7 @@
<value>Segoe UI Semibold, 9pt, style=Bold, Italic</value>
</data>
<data name="lblSubfolder.Location" type="System.Drawing.Point, System.Drawing">
<value>21, 545</value>
<value>21, 397</value>
</data>
<data name="lblSubfolder.Size" type="System.Drawing.Size, System.Drawing">
<value>134, 15</value>
@@ -643,7 +616,7 @@
<value>Segoe UI Semibold, 9pt, style=Bold, Italic</value>
</data>
<data name="txtSubfolder.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 563</value>
<value>24, 415</value>
</data>
<data name="txtSubfolder.Size" type="System.Drawing.Size, System.Drawing">
<value>551, 24</value>
@@ -673,7 +646,7 @@
<value>7, 15</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>589, 661</value>
<value>604, 513</value>
</data>
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>Segoe UI, 9pt</value>

View File

@@ -13,7 +13,7 @@ Public Class frmWM_IndexFile
Dim formloaded As Boolean = False
Dim DTVWPMO_DOKUMENTTYPES As DataTable
Dim FILE_WORKED As Boolean = False
Dim FILE_HASH As String = ""
Public Class SW
Public label As String
Public stopwatch As Stopwatch
@@ -57,32 +57,43 @@ Public Class frmWM_IndexFile
Dim existsonlyasMaster = False
If WMMOD.TestFileExists(CURRENT_NEWFILENAME) = True Then
Dim msg = "Eine Datei mit identischem Namen existiert bereits! Wollen Sie die bestehende Datei ersetzen? (KEINE VERSIONIERUNG)" & vbNewLine & "Beachten Sie das vorhandene Versionen beim Ersetzen mit gelöscht werden!"
Dim msg As String
If USER_LANGUAGE <> "de-DE" Then
msg = "There is already a file with the same name! Would You like to replace the file?" & vbNewLine & "All versions will also be deleted!"
msg = "A file with the same name already exists!" & vbCrLf &
"YES → Replace the existing file (all former versions will be deleted)" & vbCrLf &
"NO → Keep both files (your file will be versioned automatically)"
Else
msg = "Eine Datei mit identischem Namen existiert bereits!" & vbCrLf &
"JA → Bestehende Datei ersetzen (alle vorherigen Versionen werden dabei gelöscht)" & vbCrLf &
"NEIN → Beide Dateien behalten (Ihre Datei wird automatisch versioniert)"
End If
Dim result As MsgBoxResult
result = MessageBox.Show(msg, "File already exists:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = MsgBoxResult.Yes Then
If WMMOD.RemoveFile(CURRENT_NEWFILENAME) Then
'swWORK_FILE.Done()
If WMMOD.RemoveFile(CURRENT_NEWFILENAME) = False Then
' Löschen fehlgeschlagen → Abbruch
Return False
Else
Dim oNormPath = WMMOD.GetNormalizedPath(CURRENT_NEWFILENAME, 0)
Dim oGetDoc = String.Format("select DOC_ID,RECORD_ID from TBPMO_DOC_RECORD_LINK RL INNER JOIN TBPMO_DOCRESULT_LIST DRL WITH (NOLOCK) ON RL.DOC_ID = DRL.DocID
WHERE FULL_FILENAME = '{0}'", oNormPath)
Dim oDT As DataTable = MYDB_ECM.GetDatatable(oGetDoc)
For Each oRow As DataRow In oDT.Rows
Dim oDoc = New With {
.DocId = oRow("DOC_ID"),
.RecordId = oRow("RECORD_ID")
}
ClassFileResult.Delete_ResultFile(oDoc.DocId, oDoc.RecordId, 1)
Next
' Löschen erfolgreich → Import wird fortgesetzt
End If
Else
CURRENT_NEWFILENAME = ClassHelper.Versionierung_Datei(CURRENT_NEWFILENAME)
End If
Else
If WMMOD.TestFileExists(CURRENT_NEWFILENAME) = True Then
ClassHelper.InsertEssential_Log(CURRENT_RECORD_ID, "RECORD-ID", "FILE ALREADY EXISTED WITH NON-USER RIGHTS: " & CURRENT_NEWFILENAME)
CURRENT_NEWFILENAME = ClassHelper.Versionierung_Datei(CURRENT_NEWFILENAME)
existsonlyasMaster = True
Dim msg = "Eine Datei mit identischem Namen existiert bereits!" & vbNewLine & "Sie besitzen allerdings nicht die Rechte diese Datei zu bearbeiten." & vbNewLine & "Aus diesem Grund wird Ihre Datei versioniert!"
If USER_LANGUAGE <> "de-DE" Then
msg = "There is already a file with the same name!" & vbNewLine & "But You do not own the rights to work it." & vbNewLine & "Therefore Your file will be versioned!"
End If
MsgBox(msg, MsgBoxStyle.Information)
End If
End If
sw.Done()
'#################################################################
@@ -217,12 +228,12 @@ Public Class frmWM_IndexFile
End If
Else
'MsgBox("Attention in Work-File:" & vbNewLine & "No indices were defined (1)!", MsgBoxStyle.Critical)
'MsgBox("Attention in Work-File:" & vBCrlf & "No indices were defined (1)!", MsgBoxStyle.Critical)
'Return False
End If
Else
'swWORK_FILE.Done()
MsgBox("Attention in Work-File:" & vbNewLine & "No indices were defined (0)!", MsgBoxStyle.Critical)
MsgBox("Attention in Work-File:" & vbCrLf & "No indices were defined (0)!", MsgBoxStyle.Critical)
Return False
End If
@@ -234,7 +245,7 @@ Public Class frmWM_IndexFile
LOGGER.Info("oReldocpath: " & oReldocpath)
CURRENT_WM_OBJECT = WMMOD.GetFileByPath(oReldocpath)
If IsNothing(CURRENT_WM_OBJECT) Then
MsgBox("Attention in Work-File:" & vbNewLine & "Could not create final windream-object!", MsgBoxStyle.Critical)
MsgBox("Attention in Work-File:" & vbCrLf & "Could not create final windream-object!", MsgBoxStyle.Critical)
Return False
End If
LOGGER.Info("...CURRENT_WM_OBJECT created: " & oReldocpath)
@@ -293,7 +304,7 @@ Public Class frmWM_IndexFile
FAU_AD_USER = ""
ClassFileResult.DocID = CURRENT_DOC_ID
ClassFileResult.SET_DOCID_INDICES()
If ClassDOC_SEARCH.CREATE_DOC_RELATED_LINKS(CURRENT_DOC_ID, CURRENT_RECORD_ID) = False Then
If ClassDOC_SEARCH.PROF_DOC_CREATE_UPDATE(CURRENT_DOC_ID, CURRENT_RECORD_ID, FILE_HASH) = False Then
stg = "Unerwarteter Fehler: Der Record-Link konnte nicht erzeugt werden! Überprüfen Sie das Log."
If USER_LANGUAGE <> "de-DE" Then
@@ -303,7 +314,7 @@ Public Class frmWM_IndexFile
Else
sw = New SW("Setting_Rights")
If ClassDOC_SEARCH.SET_WD_RIGHTS(CURRENT_WM_OBJECT, CURRENT_DOC_ID, CURRENT_FILEIN_WD, odeleteRights) = False Then
MsgBox("The rights for the new file could not be created! Please check the logfile!" & vbNewLine &
MsgBox("The rights for the new file could not be created! Please check the logfile!" & vbCrLf &
"orgFLOW will try to give You at least reading rights!", MsgBoxStyle.Exclamation)
DD_Rights.ClassRights.SetRightExplicit(CURRENT_DOC_ID, CURRENT_FILEIN_WD, USER_USERNAME, 1)
ClassHelper.InsertEssential_Log(CURRENT_DOC_ID, "DOC-ID", "NEW FILE INDEXING - RIGHTS COULD NOT BE SET!!")
@@ -333,7 +344,7 @@ Public Class frmWM_IndexFile
Return False
End If
Catch ex As Exception
MsgBox("Unexpected error in Work-File:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Unexpected error in Work-File:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
'swWORK_FILE.Done()
Return False
End Try
@@ -378,67 +389,100 @@ Public Class frmWM_IndexFile
Try
Me.Cursor = Cursors.WaitCursor
SaveMySettingsValue("WD_IndexDeleteDocs", WD_IndexDeleteDocs, "ConfigMain")
' clsWM.MY_WDOBJECTTYPE = Me.OBJECT_TYPETextBox.Text
'Multi-Indexer ist aktiv
If chkMultiIndexer.Visible = True And chkMultiIndexer.Checked = True Then
'Die erste Datei indexieren
If WORK_FILE(Me.txtFilepath.Text, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, True) = True Then
'Und nun die folgenden
Dim DTFiles2Work As DataTable = MYDB_ECM.GetDatatable("SELECT * FROM TBPMO_FILES_USER WHERE WORKED = 0
AND GUID <> " & CURRENT_FILEID & " AND UPPER(USER_WORK) = UPPER('" & USER_USERNAME & "')")
If Not DTFiles2Work Is Nothing Then
Dim err = False
For Each filerow As DataRow In DTFiles2Work.Rows
FILE_WORKED = False
CURRENT_FILEID = filerow.Item("GUID")
CURRENT_FILENAME = filerow.Item("FILENAME2WORK")
Dim HandleType As String = filerow.Item("HANDLE_TYPE")
aktFiledropped = CURRENT_FILENAME
If HandleType = "@DROPFROMFSYSTEM@" Then
droptype = "dragdrop file"
ElseIf HandleType = "@OUTLOOK_ATTMNT@" Then
droptype = "dragdrop attachment"
ElseIf HandleType = "@OUTLOOKMESSAGE@" Then
droptype = "dragdrop message"
Else
droptype = filerow.Item("HANDLE_TYPE")
End If
If WORK_FILE(CURRENT_FILENAME, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, True) = False Then
err = True
Exit For
Else
FILE_WORKED = True
End If
Next
Me.Cursor = Cursors.Default
If err = False Then
NEW_FILES_ADDED = True
Dim stg As String = "Alle Dateien wurden mit Multiindexing erfolgreich nach windream übertragen!"
Dim stg1 As String = "Erfolgsmeldung"
If USER_LANGUAGE <> "de-DE" Then
stg = "All files were transferred via Multiindexing to windream"
stg1 = "Success:"
End If
MsgBox(stg, MsgBoxStyle.Information, stg1)
FILE_WORKED = True
Me.Close()
End If
' ── Erste Datei: FILE_HASH sicherstellen ───────────────────────
For Each oRow As DataRow In CURRENT_TBPMO_FILES_USER.Rows
If oRow.Item("GUID") = CURRENT_FILEID Then
FILE_HASH = oRow.Item("FILE_HASH")
Exit For
End If
Next
If WORK_FILE(Me.txtFilepath.Text, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, True) = False Then
Me.Cursor = Cursors.Default
Return False
End If
Else 'No MULTI INDEX
' ── Erste Datei erfolgreich: GUID merken, Folgedateien laden ──
Dim firstFileId = CURRENT_FILEID
Dim DTFiles2Work As DataTable = MYDB_ECM.GetDatatable(
"SELECT * FROM TBPMO_FILES_USER WHERE WORKED = 0 " &
"AND GUID <> " & firstFileId & " AND USER_WORK = '" & USER_USERNAME & "'")
If DTFiles2Work Is Nothing OrElse DTFiles2Work.Rows.Count = 0 Then
' Keine weiteren Dateien trotzdem Erfolg
NEW_FILES_ADDED = True
FILE_WORKED = True
Me.Cursor = Cursors.Default
Me.Close()
Return True
End If
Dim err As Boolean = False
For Each filerow As DataRow In DTFiles2Work.Rows
CURRENT_FILEID = filerow.Item("GUID")
CURRENT_FILENAME = filerow.Item("FILENAME2WORK")
FILE_HASH = filerow.Item("FILE_HASH")
aktFiledropped = CURRENT_FILENAME
Dim handleType As String = filerow.Item("HANDLE_TYPE")
Select Case handleType
Case "@DROPFROMFSYSTEM@"
droptype = "dragdrop file"
Case "@OUTLOOK_ATTMNT@"
droptype = "dragdrop attachment"
Case "@OUTLOOKMESSAGE@"
droptype = "dragdrop message"
Case Else
droptype = handleType
End Select
If WORK_FILE(CURRENT_FILENAME, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, True) = False Then
err = True
Exit For
End If
Next
Me.Cursor = Cursors.Default
If err = False Then
NEW_FILES_ADDED = True
FILE_WORKED = True
Dim stg As String = "Alle Dateien wurden mit Multiindexing erfolgreich nach windream übertragen!"
Dim stg1 As String = "Erfolgsmeldung"
If USER_LANGUAGE <> "de-DE" Then
stg = "All files were transferred via Multiindexing to windream"
stg1 = "Success:"
End If
MsgBox(stg, MsgBoxStyle.Information, stg1)
Me.Close()
Return True
End If
Return False
Else
' ── Einzeldatei ───────────────────────────────────────────────
If WORK_FILE(Me.txtFilepath.Text, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, False) = True Then
NEW_FILES_ADDED = True
FILE_WORKED = True
Me.Cursor = Cursors.Default
Me.Close()
Return True
Else
MessageBox.Show("Import to windream was not successful." & vbNewLine & "Check the log for further information!", "Unexpected Error in windream-Stream:", MessageBoxButtons.OK, MessageBoxIcon.Error)
Me.Cursor = Cursors.Default
MessageBox.Show("Import to windream was not successful." & vbCrLf &
"Check the log for further information!",
"Unexpected Error in windream-Stream:",
MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End If
End If
Me.Cursor = Cursors.Default
Catch ex As Exception
MsgBox("Error in Indexing_File:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Error in Indexing_File:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
Finally
Me.Cursor = Cursors.Default
End Try
End Function
Private Sub cmbDokumentart_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbDokumentart.SelectedIndexChanged
@@ -453,7 +497,7 @@ Public Class frmWM_IndexFile
End If
Catch ex As Exception
MsgBox("Error in cmbDokumentart SelectedIndex:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Error in cmbDokumentart SelectedIndex:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Sub Refresh_Indices_Manual()
@@ -528,7 +572,7 @@ Public Class frmWM_IndexFile
Me.Size = New Size(605, 430)
End If
Catch ex As Exception
MsgBox("Error in Refresh_Indices_Manual:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Error in Refresh_Indices_Manual:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
@@ -554,7 +598,7 @@ Public Class frmWM_IndexFile
End If
End If
Catch ex As Exception
MsgBox("Error in Check_Subfolder:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Error in Check_Subfolder:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
lblSubfolder.Visible = False
txtSubfolder.Visible = False
CURRENT_CHECK_SUBFOLDER = False
@@ -739,7 +783,7 @@ Public Class frmWM_IndexFile
End If
Catch ex As Exception
MsgBox("Error in Get_NextComboBoxResults:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Error in Get_NextComboBoxResults:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub Renew_ComboboxResults(INDEX_GUID As Integer, SearchString As String, Resultvalue As String)
@@ -835,7 +879,7 @@ Public Class frmWM_IndexFile
Next
End If
Catch ex As Exception
LOGGER.Warn(" - Unvorhergesehener Unexpected error in Renew_ComboboxResults - Fehler: " & vbNewLine & ex.Message)
LOGGER.Warn(" - Unvorhergesehener Unexpected error in Renew_ComboboxResults - Fehler: " & vbCrLf & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unvorhergesehener Unexpected error in Renew_ComboboxResults:")
End Try
End Sub
@@ -947,7 +991,7 @@ Public Class frmWM_IndexFile
End If
Catch ex As Exception
LOGGER.Warn(" - Unvorhergesehener Unexpected error in AddVorschlag_ComboBox - Indexname: " & indexname & " - Fehler: " & vbNewLine & ex.Message)
LOGGER.Warn(" - Unvorhergesehener Unexpected error in AddVorschlag_ComboBox - Indexname: " & indexname & " - Fehler: " & vbCrLf & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unvorhergesehener Unexpected error in AddVorschlag_ComboBox:")
End Try
End Sub
@@ -1001,7 +1045,7 @@ Public Class frmWM_IndexFile
' lvwIndices.Items(Count).SubItems.Add(ParentID)
' End If
'Catch ex As Exception
' MsgBox("Unexpected Error in Setting Parent-ID" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
' MsgBox("Unexpected Error in Setting Parent-ID" & vBCrlf & ex.Message, MsgBoxStyle.Critical)
'End Try
'Count = Count + 1
''den Record-Key auslesen
@@ -1017,7 +1061,7 @@ Public Class frmWM_IndexFile
End If
Catch ex As Exception
MsgBox("Error in Refresh Indices for Indexing:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Error in Refresh Indices for Indexing:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
@@ -1034,11 +1078,12 @@ Public Class frmWM_IndexFile
chkdelete_origin.Visible = False
Dim oReconnect = WMMOD.SessionReconnect
'= New Windream(LOGCONFIG, False, WMDriveLetter, WMPATH_PREFIX, True, WM_SERVER, WM_USER, WM_USER_PW, WM_DOMAIN)
Dim HandleType As String
For Each row As DataRow In CURRENT_TBPMO_FILES_USER.Rows
If row.Item("GUID") = CURRENT_FILEID Then
CURRENT_FILENAME = row.Item("FILENAME2WORK")
HandleType = row.Item("HANDLE_TYPE")
Dim oHandleType As String
For Each oRow As DataRow In CURRENT_TBPMO_FILES_USER.Rows
If oRow.Item("GUID") = CURRENT_FILEID Then
CURRENT_FILENAME = oRow.Item("FILENAME2WORK")
oHandleType = oRow.Item("HANDLE_TYPE")
FILE_HASH = oRow.Item("FILE_HASH")
End If
Next
If CURRENT_FILENAME = "" Then
@@ -1059,19 +1104,19 @@ Public Class frmWM_IndexFile
End If
aktFiledropped = CURRENT_FILENAME
txtFilepath.Text = aktFiledropped
If HandleType = "@DROPFROMFSYSTEM@" Then
If oHandleType = "@DROPFROMFSYSTEM@" Then
droptype = "dragdrop file"
chkdelete_origin.Visible = True
chkdelete_origin.Checked = WD_IndexDeleteDocs
ElseIf HandleType = "@OUTLOOK_ATTMNT@" Then
ElseIf oHandleType = "@OUTLOOK_ATTMNT@" Then
droptype = "dragdrop attachment"
chkdelete_origin.Visible = True
chkdelete_origin.Checked = WD_IndexDeleteDocs
ElseIf HandleType = "@OUTLOOKMESSAGE@" Then
ElseIf oHandleType = "@OUTLOOKMESSAGE@" Then
droptype = "dragdrop message"
chkdelete_origin.Visible = True
chkdelete_origin.Checked = WD_IndexDeleteDocs
ElseIf HandleType = "SCAM" Then
ElseIf oHandleType = "SCAM" Then
droptype = "scan"
End If
Dim sql = String.Format("SELECT FORMVIEW_ID, FORM_ID, FORM_TITLE, DOKUMENTTYPE_ID, DOKUMENTTYPE, PATH, SHORTNAME, OBJECT_TYPE, FW_DOCTYPE_ID FROM VWPMO_DOKUMENTTYPES WHERE (FORMVIEW_ID = {0}) " &
@@ -1088,7 +1133,7 @@ Public Class frmWM_IndexFile
Dim FVID = MYDB_ECM.GetScalarValue(String.Format("SELECT GUID FROM TBPMO_FORM_VIEW WHERE FORM_ID = {0} and SCREEN_ID = 1", CURRENT_ENTITY_REDUNDANT_ID), True)
'Me.VWPMO_DOKUMENTTYPESTableAdapter.Fill(Me.DD_DMSDataSet.VWPMO_DOKUMENTTYPES, FVID)
If DTVWPMO_DOKUMENTTYPES.Rows.Count = 0 Then 'DD_DMSDataSet.VWPMO_DOKUMENTTYPES.Rows.Count = 0 Then
MsgBox("No documenttypes for the redundant entity configured either! Indexing is not possible!" & vbNewLine & "Please check the configuration!", MsgBoxStyle.Exclamation)
MsgBox("No documenttypes for the redundant entity configured either! Indexing is not possible!" & vbCrLf & "Please check the configuration!", MsgBoxStyle.Exclamation)
Exit Sub
Else
LOGGER.Debug("Redundant EntityID: " & CURRENT_ENTITY_REDUNDANT_ID)
@@ -1098,13 +1143,13 @@ Public Class frmWM_IndexFile
CURRENT_FORMVIEW_ID = FVID
End If
Else
MsgBox("No documenttypes for this entity configured! Indexing is not possible!" & vbNewLine & "Please check the configuration!", MsgBoxStyle.Exclamation)
MsgBox("No documenttypes for this entity configured! Indexing is not possible!" & vbCrLf & "Please check the configuration!", MsgBoxStyle.Exclamation)
Exit Sub
End If
End If
Catch ex As Exception
MsgBox("Error in frmWD_Index_Dokart_Load:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Error in frmWD_Index_Dokart_Load:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
@@ -1146,7 +1191,7 @@ Public Class frmWM_IndexFile
End If
End If
Catch ex As Exception
MsgBox("Error in Form Shown:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
MsgBox("Error in Form Shown:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
End Try
formloaded = True
End Sub
@@ -1156,9 +1201,35 @@ Public Class frmWM_IndexFile
End Sub
Private Sub frmWM_IndexFile_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
If FILE_WORKED = False Then
Dim oDelete = "DELETE FROM TBPMO_FILES_USER WHERE GUID = " & CURRENT_FILEID
MYDB_ECM.ExecuteNonQuery(oDelete)
End If
Try
If IsNothing(CURRENT_FILEID) OrElse CURRENT_FILEID.ToString = "" Then
Exit Sub
End If
' Direkt in der DB prüfen nicht auf das Flag FILE_WORKED verlassen
Dim checkSql = $"SELECT WORKED FROM TBPMO_FILES_USER WHERE GUID = {CURRENT_FILEID}"
Dim workedValue = MYDB_ECM.GetScalarValue(checkSql)
If IsNothing(workedValue) OrElse IsDBNull(workedValue) Then
' Datensatz existiert nicht mehr kein Löschen notwendig
Exit Sub
End If
If CBool(workedValue) = False Then
Dim oDelete = $"DELETE FROM TBPMO_FILES_USER WHERE GUID = {CURRENT_FILEID} AND WORKED = 0"
MYDB_ECM.ExecuteNonQuery(oDelete)
LOGGER.Info($"TBPMO_FILES_USER: Eintrag GUID={CURRENT_FILEID} gelöscht (nicht verarbeitet).")
End If
Catch ex As Exception
LOGGER.Warn($"Fehler beim Bereinigen von TBPMO_FILES_USER (Closing): {ex.Message}")
End Try
End Sub
Private Sub frmWM_IndexFile_Closed(sender As Object, e As EventArgs) Handles Me.Closed
Try
Cursor = Cursors.Default
Catch ex As Exception
End Try
End Sub
End Class