Versionierung windream, DocRecordLink, Overlay in NodeNavigation
This commit is contained in:
@@ -6,6 +6,19 @@ Public Class ClassDOC_SEARCH
|
||||
Private Shared ENTITY_ID As Integer
|
||||
Private Shared RECORD_ID As Integer
|
||||
Private Shared AsyncRunning As Boolean = False
|
||||
Private Shared EnableVerboseGridLogging As Boolean = ReadVerboseLoggingSetting()
|
||||
Private Shared Function ReadVerboseLoggingSetting() As Boolean
|
||||
Try
|
||||
Dim oValue = System.Configuration.ConfigurationManager.AppSettings("DocSearch_VerboseLogging")
|
||||
If Not String.IsNullOrWhiteSpace(oValue) Then
|
||||
LOGGER.Info("DocSearch_VerboseLogging setting found: " & oValue)
|
||||
Return Boolean.Parse(oValue)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
' Fehler beim Lesen → sicher auf False
|
||||
End Try
|
||||
Return False
|
||||
End Function
|
||||
Private Shared Function GET_DOCSEARCH_DATATABLE(Optional BG As Boolean = False)
|
||||
Try
|
||||
Dim OPTION1
|
||||
@@ -188,16 +201,16 @@ Public Class ClassDOC_SEARCH
|
||||
"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 TBPMO_STRUCTURE_NODES_USER_TEMP TTEMP WITH (NOLOCK) 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 &
|
||||
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC WITH (NOLOCK) ON TR.FORM_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = '{7}' AND TRC.GUID = {8}" & vbCrLf &
|
||||
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 WITH (NOLOCK) ON TR.FORM_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = '{7}' AND TRC1.GUID = {9}" & vbCrLf &
|
||||
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 WITH (NOLOCK) ON TR.FORM_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = '{7}' AND TRC2.GUID = {10}" & vbCrLf &
|
||||
"LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 WITH (NOLOCK) ON TR.FORM_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = '{7}' AND TRC3.GUID = {11}" & vbCrLf &
|
||||
"LEFT JOIN TBPMO_CONTROL_VALUE T1 WITH (NOLOCK) ON TRL.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = {2} " & vbCrLf &
|
||||
"LEFT JOIN TBPMO_CONTROL_VALUE T2 WITH (NOLOCK) ON TRL.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = {3} " & vbCrLf &
|
||||
"LEFT JOIN TBPMO_CONTROL_VALUE T3 WITH (NOLOCK) ON TRL.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = {4} " & vbCrLf &
|
||||
"LEFT JOIN TBPMO_CONTROL_VALUE T4 WITH (NOLOCK) 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
|
||||
@@ -215,10 +228,10 @@ Public Class ClassDOC_SEARCH
|
||||
"[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 &
|
||||
"INNER JOIN TBPMO_DOC_RECORD_LINK TRL WITH (NOLOCK) ON T.DocID = TRL.DOC_ID" & vbCrLf &
|
||||
"INNER JOIN TBPMO_RECORD TR WITH (NOLOCK) ON TRL.RECORD_ID = TR.GUID" & vbCrLf &
|
||||
"INNER JOIN TBPMO_STRUCTURE_NODES_USER_TEMP TTEMP WITH (NOLOCK) ON TR.GUID = TTEMP.RECORD_ID" & vbCrLf &
|
||||
"INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS WITH (NOLOCK) 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
|
||||
@@ -392,7 +405,9 @@ 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}]")
|
||||
If EnableVerboseGridLogging Then
|
||||
LOGGER.Debug($"Creating Row for DocID [{DocID}]")
|
||||
End If
|
||||
'Dim Folderpath = Path.GetDirectoryName(fullpath)
|
||||
Dim filename = Path.GetFileName(fullpath)
|
||||
Dim extension = Path.GetExtension(fullpath)
|
||||
@@ -446,7 +461,10 @@ Public Class ClassDOC_SEARCH
|
||||
rowvalue = ""
|
||||
End If
|
||||
_step = "9.1 rowvalue for Colname [" & Colname & "]: [" & rowvalue.ToString & "]"
|
||||
LOGGER.Debug("rowvalue for Colname [" & Colname & "]: [" & rowvalue.ToString & "]")
|
||||
If EnableVerboseGridLogging Then
|
||||
LOGGER.Debug("rowvalue for Colname [" & Colname & "]: [" & rowvalue.ToString & "]")
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
If CURRENT_SEARCH_TYPE = "RECORD" Then
|
||||
LOGGER.Warn("Unexpected Error in GetVariableValue for Column [" & Colname & "] - Error: " & ex.Message)
|
||||
|
||||
@@ -343,9 +343,9 @@ Public Class ClassDocGrid
|
||||
Dim sql = String.Format(
|
||||
"SELECT T.[GUID],T.[DocID],T.[CONFIG_ID],T1.HEADER_CAPTION,T.[VALUE],T1.[LANGUAGE], " &
|
||||
"T1.COLUMN_VIEW,T1.EDITABLE,T1.TYPE_ID,T1.VISIBLE,T.CHANGED_WHEN,T.CHANGED_WHO " &
|
||||
"FROM TBPMO_DOC_VALUES T " &
|
||||
"INNER JOIN TBPMO_STRUCTURE_NODES_USER_TEMP TTEMP ON T.RECORD_ID = TTEMP.RECORD_ID " &
|
||||
"RIGHT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 ON T.CONFIG_ID = T1.GUID " &
|
||||
"FROM TBPMO_DOC_VALUES T WITH (NOLOCK) " &
|
||||
"INNER JOIN TBPMO_STRUCTURE_NODES_USER_TEMP TTEMP WITH (NOLOCK) ON T.RECORD_ID = TTEMP.RECORD_ID " &
|
||||
"RIGHT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 WITH (NOLOCK) ON T.CONFIG_ID = T1.GUID " &
|
||||
"WHERE T1.ENTITY_ID = {0} AND LANGUAGE = '{1}' AND T1.CONFIG_COLUMNS = 1",
|
||||
CURRENT_ENTITY_ID, USER_LANGUAGE)
|
||||
Return MYDB_ECM.GetDatatable(sql)
|
||||
@@ -358,8 +358,8 @@ Public Class ClassDocGrid
|
||||
Dim sql = String.Format(
|
||||
"SELECT T.[GUID],T.[DocID],T.[CONFIG_ID],T1.HEADER_CAPTION,T.[VALUE],T1.[LANGUAGE], " &
|
||||
"T1.COLUMN_VIEW,T1.EDITABLE,T1.TYPE_ID,T1.VISIBLE,T.CHANGED_WHEN,T.CHANGED_WHO " &
|
||||
"FROM TBPMO_DOC_VALUES T " &
|
||||
"RIGHT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 ON T.CONFIG_ID = T1.GUID " &
|
||||
"FROM TBPMO_DOC_VALUES T WITH (NOLOCK) " &
|
||||
"RIGHT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 WITH (NOLOCK) ON T.CONFIG_ID = T1.GUID " &
|
||||
"WHERE T1.ENTITY_ID = {0} AND LANGUAGE = '{1}' AND T1.CONFIG_COLUMNS = 1 AND T.RECORD_ID = {2}",
|
||||
CURRENT_ENTITY_ID, USER_LANGUAGE, RECORD_ID)
|
||||
Return MYDB_ECM.GetDatatable(sql)
|
||||
@@ -434,6 +434,7 @@ Public Class ClassDocGrid
|
||||
|
||||
' ── 3. KRITISCH: Performance-optimiertes DataSource-Setzen ───────────
|
||||
_isGridRefreshing = True ' Flag setzen VOR DataSource-Änderung
|
||||
IsBulkSelectionActive = True '
|
||||
Try
|
||||
pDocGridView.BeginDataUpdate() ' Events unterdrücken
|
||||
pDocGridView.BeginUpdate() ' UI-Updates unterdrücken
|
||||
@@ -527,6 +528,7 @@ Public Class ClassDocGrid
|
||||
|
||||
' ── 6. KRITISCH: Flag ERST JETZT zurücksetzen! ────────────────────────────
|
||||
_isGridRefreshing = False
|
||||
IsBulkSelectionActive = False ' ← NEU: erst hier, NACH BestFitColumns
|
||||
|
||||
' Alle Spalten aus ReadOnly setzen, danach werden alle passenden auf nicht ReadOnly gesetzt
|
||||
For Each column As GridColumn In pDocGridView.Columns
|
||||
|
||||
Reference in New Issue
Block a user