This commit is contained in:
2022-01-19 11:40:31 +01:00
parent 9287630dfb
commit fcdeeb12ae
75 changed files with 6011 additions and 3577 deletions

View File

@@ -13,11 +13,12 @@ Public Class ClassDOC_SEARCH
Dim OPTION3
Dim OPTION4
Dim OPTION5
Dim VALUE_CONF1
Dim VALUE_CONF2
Dim VALUE_CONF3
Dim VALUE_CONF4
Dim VALUE_CONF1 = 0
Dim VALUE_CONF2 = 0
Dim VALUE_CONF3 = 0
Dim VALUE_CONF4 = 0
Dim VALUE_CONF5 = 0
Dim VALUE_CONF6 = 0
If DT_RESULTLIST_OPTIONS.Rows.Count = 0 Then
OPTION1 = 0
OPTION2 = 0
@@ -31,32 +32,23 @@ Public Class ClassDOC_SEARCH
OPTION4 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION4_CTRL")
OPTION5 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION5_CTRL")
End If
LOGGER.Debug("DT_RESULTLIST_SEL_VALUES.Rows.Count: " & DT_RESULTLIST_SEL_VALUES.Rows.Count, False)
If DT_RESULTLIST_SEL_VALUES.Rows.Count = 0 Then
VALUE_CONF1 = 0
VALUE_CONF2 = 0
VALUE_CONF3 = 0
VALUE_CONF4 = 0
LOGGER.Info("DT_RESULTLIST_SEL_VALUES.Rows.Count: " & DT_RESULTLIST_SEL_VALUES.Rows.Count, False)
Else
VALUE_CONF1 = DT_RESULTLIST_SEL_VALUES.Rows(0).Item("GUID")
Try
VALUE_CONF2 = DT_RESULTLIST_SEL_VALUES.Rows(1).Item("GUID")
Catch ex As Exception
VALUE_CONF2 = 0
End Try
Try
VALUE_CONF3 = DT_RESULTLIST_SEL_VALUES.Rows(2).Item("GUID")
Catch ex As Exception
VALUE_CONF3 = 0
End Try
Try
VALUE_CONF4 = DT_RESULTLIST_SEL_VALUES.Rows(3).Item("GUID")
Catch ex As Exception
VALUE_CONF4 = 0
End Try
End If
For Each oRow As DataRow In DT_RESULTLIST_SEL_VALUES.Rows
If oRow.Item("COLUMN_VIEW").ToString = "VALUE1" Then
VALUE_CONF1 = oRow.Item("GUID")
ElseIf oRow.Item("COLUMN_VIEW").ToString = "VALUE2" Then
VALUE_CONF2 = oRow.Item("GUID")
ElseIf oRow.Item("COLUMN_VIEW").ToString = "VALUE3" Then
VALUE_CONF3 = oRow.Item("GUID")
ElseIf oRow.Item("COLUMN_VIEW").ToString = "VALUE4" Then
VALUE_CONF4 = oRow.Item("GUID")
ElseIf oRow.Item("COLUMN_VIEW").ToString = "VALUE5" Then
VALUE_CONF5 = oRow.Item("GUID")
ElseIf oRow.Item("COLUMN_VIEW").ToString = "VALUE6" Then
VALUE_CONF6 = oRow.Item("GUID")
End If
Next
Dim SQL_DOC_SEARCH
If CURRENT_SEARCH_TYPE = "ENTITY" Then
@@ -97,38 +89,42 @@ Public Class ClassDOC_SEARCH
End If
ElseIf CURRENT_SEARCH_TYPE = "RECORD" 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 &
"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 = '{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 &
"WHERE TRL.RECORD_ID = {0} AND TR.FORM_ID = {1} AND TRIGHTS.dwUserOrGroupID = {6}", RECORD_ID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4, USERID_FK_INT_ECM, USER_LANGUAGE, VALUE_CONF1, VALUE_CONF2, VALUE_CONF3, VALUE_CONF4)
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 &
$"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)
@@ -230,7 +226,7 @@ Public Class ClassDOC_SEARCH
Return DTFILE_RESULT_ASYNC 'ClassDatabase.Return_Datatable(SQL_DOC_SEARCH, True)
Catch ex As Exception
LOGGER.Warn("Unexpected Error in GET_DOCSEARCH_DATATABLE: " & ex.Message)
LOGGER.Error("Unexpected Error in GET_DOCSEARCH_DATATABLE: " & ex.Message)
Return Nothing
End Try
End Function
@@ -264,16 +260,16 @@ Public Class ClassDOC_SEARCH
sw = New SW("Get_DOC_RESULTTABLE DTGrid-Definition")
Dim oDTGrid As New DataTable
Dim ColArrayDEFINITION As New List(Of String)
Dim listcheck As New List(Of String)
Dim oListBoolean As New List(Of String)
For Each row As DataRow In DT_TBPMO_DOCSEARCH_RESULTLIST_CONFIG.Rows
Dim type = row.Item("TYPE_ID")
Dim oType = row.Item("TYPE_ID")
Dim COLNAME = row.Item("HEADER_CAPTION")
If type = 2 Then
listcheck.Add(COLNAME)
If oType = 2 Then
oListBoolean.Add(COLNAME)
End If
Next
_step = "2"
For Each col1 As String In listcheck
For Each col1 As String In oListBoolean
Dim collist As DataColumn = DT_FILE_RESULT.Columns(col1)
If Not IsNothing(collist) Then
collist.DataType = GetType(Boolean)
@@ -326,10 +322,27 @@ Public Class ClassDOC_SEARCH
.ColumnName = ColumnName
}
If oColumnType = 4 Then
If oColumnType = 3 Then
oColumn.DataType = GetType(DateTime)
ElseIf oColumnType = 2 Then
oColumn.DataType = GetType(Boolean)
ElseIf oColumnType = 4 Then
oColumn.DataType = GetType(Int32)
End If
''1 String
''2 Integer
''3 DateTime
''4 Integer
'Dim oColumn As New DataColumn() With {
' .ColumnName = ColumnName
'}
'If oColumnType = 2 Then
' oColumn.DataType = GetType(Int16)
'ElseIf oColumnType = 3 Then
' oColumn.DataType = GetType(DateTime)
'ElseIf oColumnType = 4 Then
' oColumn.DataType = GetType(Boolean)
'End If
oDTGrid.Columns.Add(oColumn)
ColCount += 1
Catch ex As Exception
@@ -347,7 +360,7 @@ Public Class ClassDOC_SEARCH
sw = New SW("Run Get_DOC_RESULTTABLE")
COL_ARRAY_RESULTLIST = ColArrayDEFINITION
_step = "8"
For Each col1 As String In listcheck
For Each col1 As String In oListBoolean
Dim collist As DataColumn = oDTGrid.Columns(col1)
If Not IsNothing(collist) Then
collist.DataType = GetType(Boolean)
@@ -361,6 +374,7 @@ Public Class ClassDOC_SEARCH
Dim fullpath = FILE_ROW.Item("FULL_FILENAME")
Dim objecttype = FILE_ROW.Item("OBJECTTYPE")
Dim DocID = FILE_ROW.Item("DocID")
LOGGER.Debug($"Creating Row for DocID [{DocID}]")
'Dim Folderpath = Path.GetDirectoryName(fullpath)
Dim filename = Path.GetFileName(fullpath)
Dim extension = Path.GetExtension(fullpath)
@@ -410,38 +424,50 @@ Public Class ClassDOC_SEARCH
Dim rowvalue
Try
rowvalue = FILE_ROW.Item(Colname)
If IsDBNull(rowvalue) Then
rowvalue = ""
End If
_step = "9.1 rowvalue for Colname [" & Colname & "]: [" & rowvalue.ToString & "]"
LOGGER.Debug("rowvalue for Colname [" & Colname & "]: [" & rowvalue.ToString & "]", False)
Catch ex As Exception
If CURRENT_SEARCH_TYPE = "RECORD" Then LOGGER.Warn("Unexpected Error in GetVariableValue for Column '" & Colname & "'- Error: " & ex.Message)
If CURRENT_SEARCH_TYPE = "RECORD" Then
LOGGER.Warn("Unexpected Error in GetVariableValue for Column [" & Colname & "] - Error: " & ex.Message)
End If
If Colname.ToString.StartsWith("doct") Or Colname.ToString.StartsWith("Dokum") Then
rowvalue = ""
Else
If CURRENT_SEARCH_TYPE <> "RECORD" Then
rowvalue = "Not displayable in Group-Search"
Else
rowvalue = "Error getting rowvalue"
rowvalue = "#"
End If
End If
End Try
_step = "9.2 now: NewRow.Item(i) = rowvalue.ToString..."
LOGGER.Debug("9.2 now: NewRow.Item(i) = rowvalue.ToString...", False)
'LOGGER.Debug("9.2 now: NewRow.Item(i) = rowvalue.ToString...", False)
Try
Dim oType = oDTGrid.Columns(i).DataType.ToString
If oType = "System.DateTime" And Len(rowvalue) = 0 Then
LOGGER.Debug("rowvalue Is empty and Column is Datetime...", False)
rowvalue = "2099-12-31"
ElseIf oType = "System.Boolean" Then
Try
Dim otest = CBool(rowvalue)
Catch ex As Exception
rowvalue = False
End Try
oNewRow.Item(i) = CBool(rowvalue)
Else
oNewRow.Item(i) = rowvalue.ToString
End If
Catch ex As Exception
End Try
Try
'If oDTGrid.Columns(i).DataType.ToString = "System.DateTime" And rowvalue = String.Empty Then
' LOGGER.Debug("rowvalue Is empty and Column is Datetime...", False)
'Else
oNewRow.Item(i) = rowvalue.ToString
'End If
Catch ex As Exception
LOGGER.Warn("Error in advising value to rowitem (oNewRow.Item(i) = rowvalue.ToString): " + ex.Message, False)
LOGGER.Warn("Error in advising rowvalue to rowitem: " + ex.Message, False)
LOGGER.Error("Error in advising rowvalue to rowitem: " + ex.Message, False)
LOGGER.Warn("Type of column: " + oDTGrid.Columns(i).DataType.ToString(), False)
End Try
@@ -559,9 +585,16 @@ Public Class ClassDOC_SEARCH
If IsNothing(result) Or IsDBNull(result) Then
Return Nothing
End If
LOGGER.Debug($"dwAccesRight for DocID [{DOC_ID}] is {result}")
Select Case result
Case 1
Return "R"
If USER_IS_ADMIN = False Then
Return "R"
Else
LOGGER.Warn("FileRight is R but User is Admin!! - Check the UserKonfig!")
Return "RWA"
End If
Case 3
Return "RW"
Case 7