Versionierung windream, DocRecordLink, Overlay in NodeNavigation
This commit is contained in:
@@ -117,6 +117,10 @@
|
||||
</setting>
|
||||
</DevExpress.LookAndFeel.Design.AppSettings>
|
||||
</applicationSettings>
|
||||
<appSettings>
|
||||
<!-- Verbose Grid Logging: nur für Diagnose auf True setzen! NIEMALS im Produktivbetrieb! -->
|
||||
<add key="DocSearch_VerboseLogging" value="false" />
|
||||
</appSettings>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
|
||||
@@ -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
|
||||
|
||||
Binary file not shown.
162
app/DD-Record-Organizer/Log_orgFLOW.txt
Normal file
162
app/DD-Record-Organizer/Log_orgFLOW.txt
Normal file
@@ -0,0 +1,162 @@
|
||||
10:26:37.5843|frmNodeNavigation_Entity6|DEBUG >> MoveNext -> FocusedNodeChanged: NodeID=1889, NodeCaption='52 Kreispläne', NodeConfigID=23, RecordID=660188
|
||||
10:26:37.5843|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=ARNSR033;Database=DD_ECM;User Id=XXXXX;Password=XXXXX;
|
||||
10:26:37.5843|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
|
||||
10:26:37.5843|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBOF_MAP_RIGHT_NODE_ADD_USER WITH (NOLOCK) WHERE FK_TBPMO_SN_CONFIG_ID = 23 AND FK_TBDDUSER_ID = 0] and Parameters []
|
||||
10:26:37.5843|frmNodeNavigation_Entity6|INFO >> MoveNext -> Node changed: NodeID=23, NodeGUID=835919, ConfigNodesFound=0, ButtonVisible=Never, HasAddRightForConfigNode=False, ConfigTableRows=0
|
||||
10:26:37.5843|frmNodeNavigation_Entity6|DEBUG >> UpdateCreateNodeButtonState -> UpdateCreateNodeButtonState called - Visibility=Never, CurrentEnabled=False, AvailableNodes=0, ConfigTableExists=True, HasAddRightForConfigNode=False, RIGHT_RECORD_AND_FILE_READ_ONLY=False, USER_IS_ADMIN=True
|
||||
10:26:37.5843|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=ARNSR033;Database=DD_ECM;User Id=XXXXX;Password=XXXXX;
|
||||
10:26:37.5843|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
|
||||
10:26:37.5843|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM TBPMO_DOC_RECORD_LINK WHERE RECORD_ID = 660188] and Parameters []
|
||||
10:26:37.5993|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=ARNSR033;Database=DD_ECM;User Id=XXXXX;Password=XXXXX;
|
||||
10:26:37.5993|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
|
||||
10:26:37.5993|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT IN_WORK, IN_WORK_WHO FROM TBPMO_RECORD WHERE GUID = 660188] and Parameters []
|
||||
10:26:37.5993|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=ARNSR033;Database=DD_ECM;User Id=XXXXX;Password=XXXXX;
|
||||
10:26:37.5993|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
|
||||
10:26:37.5993|MSSQLServer|DEBUG >> ExecuteNonQueryWithConnectionObject -> ExecuteNonQueryWithConnectionObject: Running Command [EXEC PRPMO_RECORD_CHECK_INTEGRITY 660188,'digitaldata',False] and Parameters []
|
||||
10:26:37.6713|frmNodeNavigation_Entity6|DEBUG >> MoveNext -> [OVERLAY] ShowOverlayForm called at 10:26:37.671
|
||||
10:26:37.6713|frmNodeNavigation_Entity6|DEBUG >> MoveNext -> Show_Selected_Record_Data_NonBlocking: RecordID=660188, LoadData=True
|
||||
10:26:37.6713|frmNodeNavigation_Entity6|DEBUG >> MoveNext -> RECORD ID: 660188
|
||||
10:26:37.6713|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=ARNSR033;Database=DD_ECM;User Id=XXXXX;Password=XXXXX;
|
||||
10:26:37.6713|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
|
||||
10:26:37.6713|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM VWPMO_VALUES WHERE RECORD_ID = 660188] and Parameters []
|
||||
10:26:37.6753|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=ARNSR033;Database=DD_ECM;User Id=XXXXX;Password=XXXXX;
|
||||
10:26:37.6753|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
|
||||
10:26:37.6753|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT * FROM VWPMO_CONTROL_HINT WHERE FORM_ID = 6] and Parameters []
|
||||
10:26:37.6753|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=ARNSR033;Database=DD_ECM;User Id=XXXXX;Password=XXXXX;
|
||||
10:26:37.6753|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
|
||||
10:26:37.6753|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT
|
||||
ADDED_WHO,
|
||||
CONVERT(VARCHAR(16),ADDED_WHEN,20) AS ADDED_WHEN,
|
||||
COALESCE(CHANGED_WHO,'') AS CHANGED_WHO,
|
||||
COALESCE(CONVERT(VARCHAR(16),CHANGED_WHEN,20),'') AS CHANGED_WHEN
|
||||
FROM TBPMO_RECORD WITH (NOLOCK) WHERE GUID = 660188] and Parameters []
|
||||
10:26:37.6753|frmNodeNavigation_Entity6|DEBUG >> MoveNext -> [OVERLAY] CloseOverlayForm (after ControlLoading) called at 10:26:37.683
|
||||
10:26:37.6753|frmNodeNavigation_Entity6|DEBUG >> MoveNext -> [DOCSEARCH] RUN_DOCSEARCH START at 10:26:37.687
|
||||
10:26:37.6753|frmNodeNavigation_Entity6|DEBUG >> MoveNext -> [DOCSEARCH] Get_DOC_RESULTTABLE START at 10:26:37.688
|
||||
10:26:37.6753|ClassInit|DEBUG >> GET_DOCSEARCH_DATATABLE -> SQL_DOC_SEARCH: SELECT
|
||||
CONVERT(BIGINT,T.DocID) DocID
|
||||
,T.dwVersionID
|
||||
,T.FULL_FILENAME
|
||||
,T.[Filename]
|
||||
,T.Doctype
|
||||
,T.[Version]
|
||||
,T.Creation_DateTime
|
||||
,T.Change_DateTime
|
||||
,T.OBJECTTYPE
|
||||
,T.DISPLAY_NAME
|
||||
,T.IN_WORK
|
||||
,T.IN_WORK_USER
|
||||
,T.IN_WORK_COMMENT,
|
||||
ISNULL(T1.VALUE,'') AS OPTION1,
|
||||
ISNULL(T2.VALUE,'') AS OPTION2,
|
||||
ISNULL(T3.VALUE,'') AS OPTION3,
|
||||
ISNULL(T4.VALUE,'') AS OPTION4,
|
||||
[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,6,'DOCIDX1') AS DOCIDX1,
|
||||
[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,6,'DOCIDX2') AS DOCIDX2,
|
||||
[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,6,'DOCIDX3') AS DOCIDX3,
|
||||
[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,6,'DOCIDX4') AS DOCIDX4,
|
||||
[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,6,'DROPDOWN1','7',TRL.RECORD_ID) AS DROPDOWN1,
|
||||
[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,6,'DROPDOWN2','7',TRL.RECORD_ID) AS DROPDOWN2,
|
||||
[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,6,'DROPDOWN3','7',TRL.RECORD_ID) AS DROPDOWN3,
|
||||
[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,6,'DROPDOWN4','7',TRL.RECORD_ID) AS DROPDOWN4,
|
||||
COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC.GUID),'') AS VALUE1,
|
||||
COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC1.GUID),'') AS VALUE2,
|
||||
COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC2.GUID),'') AS VALUE3,
|
||||
COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC3.GUID),'') AS VALUE4,
|
||||
COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC4.GUID),'') AS VALUE5,
|
||||
COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC5.GUID),'') AS VALUE6,
|
||||
dwAccessRight AS ACCESS_RIGHT
|
||||
FROM
|
||||
VWPMO_DOC_SEARCH T
|
||||
INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID
|
||||
INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID
|
||||
INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID
|
||||
LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC ON TR.FORM_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = 'de-DE' AND TRC.GUID = 106
|
||||
LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 ON TR.FORM_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = 'de-DE' AND TRC1.GUID = 107
|
||||
LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 ON TR.FORM_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = 'de-DE' AND TRC2.GUID = 109
|
||||
LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 ON TR.FORM_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = 'de-DE' AND TRC3.GUID = 0
|
||||
LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC4 ON TR.FORM_ID = TRC4.ENTITY_ID AND TRC4.LANGUAGE = 'de-DE' AND TRC4.GUID = 0
|
||||
LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC5 ON TR.FORM_ID = TRC5.ENTITY_ID AND TRC5.LANGUAGE = 'de-DE' AND TRC5.GUID = 0
|
||||
LEFT JOIN TBPMO_CONTROL_VALUE T1 ON TRL.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = 0
|
||||
LEFT JOIN TBPMO_CONTROL_VALUE T2 ON TRL.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = 0
|
||||
LEFT JOIN TBPMO_CONTROL_VALUE T3 ON TRL.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = 0
|
||||
LEFT JOIN TBPMO_CONTROL_VALUE T4 ON TRL.RECORD_ID = T4.RECORD_ID AND T4.CONTROL_ID = 0
|
||||
WHERE
|
||||
TRL.RECORD_ID = 660188 AND TR.FORM_ID = 6 AND TRIGHTS.dwUserOrGroupID = 1001479
|
||||
10:26:37.6753|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=ARNSR033;Database=DD_ECM;User Id=XXXXX;Password=XXXXX;
|
||||
10:26:37.6753|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
|
||||
10:26:37.6753|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [SELECT
|
||||
CONVERT(BIGINT,T.DocID) DocID
|
||||
,T.dwVersionID
|
||||
,T.FULL_FILENAME
|
||||
,T.[Filename]
|
||||
,T.Doctype
|
||||
,T.[Version]
|
||||
,T.Creation_DateTime
|
||||
,T.Change_DateTime
|
||||
,T.OBJECTTYPE
|
||||
,T.DISPLAY_NAME
|
||||
,T.IN_WORK
|
||||
,T.IN_WORK_USER
|
||||
,T.IN_WORK_COMMENT,
|
||||
ISNULL(T1.VALUE,'') AS OPTION1,
|
||||
ISNULL(T2.VALUE,'') AS OPTION2,
|
||||
ISNULL(T3.VALUE,'') AS OPTION3,
|
||||
ISNULL(T4.VALUE,'') AS OPTION4,
|
||||
[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,6,'DOCIDX1') AS DOCIDX1,
|
||||
[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,6,'DOCIDX2') AS DOCIDX2,
|
||||
[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,6,'DOCIDX3') AS DOCIDX3,
|
||||
[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,6,'DOCIDX4') AS DOCIDX4,
|
||||
[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,6,'DROPDOWN1','7',TRL.RECORD_ID) AS DROPDOWN1,
|
||||
[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,6,'DROPDOWN2','7',TRL.RECORD_ID) AS DROPDOWN2,
|
||||
[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,6,'DROPDOWN3','7',TRL.RECORD_ID) AS DROPDOWN3,
|
||||
[dbo].[FNPMO_DOC_GET_DROPDOWN_VALUE] (T.DocID,6,'DROPDOWN4','7',TRL.RECORD_ID) AS DROPDOWN4,
|
||||
COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC.GUID),'') AS VALUE1,
|
||||
COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC1.GUID),'') AS VALUE2,
|
||||
COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC2.GUID),'') AS VALUE3,
|
||||
COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC3.GUID),'') AS VALUE4,
|
||||
COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC4.GUID),'') AS VALUE5,
|
||||
COALESCE([dbo].[FNPMO_DOC_GET_DOC_VALUE] (T.DocID,TRL.RECORD_ID,TRC5.GUID),'') AS VALUE6,
|
||||
dwAccessRight AS ACCESS_RIGHT
|
||||
FROM
|
||||
VWPMO_DOC_SEARCH T
|
||||
INNER JOIN TBPMO_DOC_RECORD_LINK TRL ON T.DocID = TRL.DOC_ID
|
||||
INNER JOIN TBPMO_RECORD TR ON TRL.RECORD_ID = TR.GUID
|
||||
INNER JOIN VWPMO_WD_OBJECT_RIGHTS TRIGHTS ON T.DocID = TRIGHTS.dwObjectID
|
||||
LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC ON TR.FORM_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = 'de-DE' AND TRC.GUID = 106
|
||||
LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 ON TR.FORM_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = 'de-DE' AND TRC1.GUID = 107
|
||||
LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 ON TR.FORM_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = 'de-DE' AND TRC2.GUID = 109
|
||||
LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 ON TR.FORM_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = 'de-DE' AND TRC3.GUID = 0
|
||||
LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC4 ON TR.FORM_ID = TRC4.ENTITY_ID AND TRC4.LANGUAGE = 'de-DE' AND TRC4.GUID = 0
|
||||
LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC5 ON TR.FORM_ID = TRC5.ENTITY_ID AND TRC5.LANGUAGE = 'de-DE' AND TRC5.GUID = 0
|
||||
LEFT JOIN TBPMO_CONTROL_VALUE T1 ON TRL.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = 0
|
||||
LEFT JOIN TBPMO_CONTROL_VALUE T2 ON TRL.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = 0
|
||||
LEFT JOIN TBPMO_CONTROL_VALUE T3 ON TRL.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = 0
|
||||
LEFT JOIN TBPMO_CONTROL_VALUE T4 ON TRL.RECORD_ID = T4.RECORD_ID AND T4.CONTROL_ID = 0
|
||||
WHERE
|
||||
TRL.RECORD_ID = 660188 AND TR.FORM_ID = 6 AND TRIGHTS.dwUserOrGroupID = 1001479] and Parameters []
|
||||
10:26:40.2543|frmNodeNavigation_Entity6|DEBUG >> MoveNext -> [DOCSEARCH] Get_DOC_RESULTTABLE END at 10:26:40.254 - Rows=1236
|
||||
10:26:40.2543|frmNodeNavigation_Entity6|DEBUG >> MoveNext -> [DOCSEARCH] FillColumns START at 10:26:40.254
|
||||
10:26:40.2543|ClassInit|DEBUG >> GetOrLoad -> Cache MISS: DocDetailValues_E6_R660188_Lde-DE - Loading from DB...
|
||||
10:26:40.2543|MSSQLServer|DEBUG >> GetConnection -> The Following Connection is open: Server=ARNSR033;Database=DD_ECM;User Id=XXXXX;Password=XXXXX;
|
||||
10:26:40.2543|MSSQLServer|DEBUG >> MaybeGetTransaction -> Transaction Mode: [WithTransaction]
|
||||
10:26:40.2543|MSSQLServer|DEBUG >> GetDatatableWithConnectionObject -> GetDatatableWithConnectionObject: Running Query [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 WITH (NOLOCK) RIGHT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 WITH (NOLOCK) ON T.CONFIG_ID = T1.GUID WHERE T1.ENTITY_ID = 6 AND LANGUAGE = 'de-DE' AND T1.CONFIG_COLUMNS = 1 AND T.RECORD_ID = 660188] and Parameters []
|
||||
10:26:40.4074|ClassInit|DEBUG >> FillColumns -> Values loaded...
|
||||
10:26:40.4074|ClassInit|DEBUG >> FillColumns -> tables added to ds.Tables...
|
||||
10:26:40.4074|ClassInit|DEBUG >> FillColumns -> tables added to ds.Tables...
|
||||
10:26:40.4074|ClassInit|DEBUG >> FillColumns -> parentColumn.DataType: System.Int32
|
||||
10:26:40.4074|ClassInit|DEBUG >> FillColumns -> childColumn.DataType: System.Int32
|
||||
10:26:40.4104|ClassInit|DEBUG >> FillColumns -> relationdocIdDetails created...
|
||||
10:26:40.4564|ClassInit|DEBUG >> FillColumns -> Adapting DisplayFormat (DATETIME for Column Revisions-Datum
|
||||
10:26:40.4813|frmNodeNavigation_Entity6|DEBUG >> MoveNext -> [DOCSEARCH] FillColumns END at 10:26:40.481
|
||||
10:26:40.4813|frmNodeNavigation_Entity6|DEBUG >> MoveNext -> [DOCSEARCH] RUN_DOCSEARCH END at 10:26:40.482 - 1236 documents found
|
||||
10:26:40.4813|frmNodeNavigation_Entity6|DEBUG >> MoveNext -> Node_AfterSelect=True - DocView collapsed
|
||||
10:26:40.4813|frmNodeNavigation_Entity6|DEBUG >> MoveNext -> Show_Selected_Record_Data_NonBlocking completed
|
||||
10:26:40.4813|ClassInit|INFO >> Check_Set_Rights -> ClassRightManagement...NO DEFINTION FOR GROUP- OR USER-RIGHT!
|
||||
10:26:40.4813|ClassInit|DEBUG >> Check_Set_Rights -> ClassRightManagement-RIGHT_EDIT_R: False
|
||||
10:26:40.4813|ClassInit|DEBUG >> Check_Set_Rights -> ClassRightManagement-RIGHT_ADD_R: False
|
||||
10:26:40.4874|ClassInit|DEBUG >> Check_Set_Rights -> ClassRightManagement-RIGHT_DELETE_R: False
|
||||
10:26:40.4874|ClassInit|DEBUG >> Check_Set_Rights -> ClassRightManagement-RIGHT_ADD_DOC: False
|
||||
10:26:40.4874|ClassInit|DEBUG >> Check_Set_Rights -> ClassRightManagement-RIGHT_VIEW_DOC: True
|
||||
10:26:40.4874|ClassInit|DEBUG >> Check_Set_Rights -> ClassRightManagement-RIGHT_DELETE_DOC: False
|
||||
10:26:40.4874|ClassInit|DEBUG >> Check_Set_Rights -> ClassRightManagement-RIGHT_READ_ONLY_DOC: False
|
||||
@@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("3.7.3.0")>
|
||||
<Assembly: AssemblyVersion("3.7.4.0")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
|
||||
<Assembly: NeutralResourcesLanguageAttribute("")>
|
||||
@@ -1726,7 +1726,7 @@
|
||||
<None Include="MailLicense.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<Content Include="Log_ewa.txt" />
|
||||
<Content Include="Log_orgFLOW.txt" />
|
||||
<Content Include="ORGFLOW_Icon_16x16.ico" />
|
||||
<Content Include="ORGFLOW_Icon_256x256.ico" />
|
||||
<Content Include="Resources\cube.ico" />
|
||||
|
||||
@@ -1,182 +1,127 @@
|
||||
Imports System.IO
|
||||
Imports DevExpress.XtraGrid.Columns
|
||||
Public Class frmDocRecordLink
|
||||
|
||||
Public Property myDocuments As New List(Of ClassDocGrid.clsWMDoc)
|
||||
|
||||
Private CURRENT_LINK_ENTITY_ID As Integer = 0
|
||||
Private ENTITY_LOAD_ACTIVE As Boolean = False
|
||||
Private DT_ENTITYDATA As DataTable
|
||||
|
||||
Private Class ClassEntity
|
||||
Public title As String
|
||||
Public id As Integer
|
||||
|
||||
Public Overrides Function ToString() As String
|
||||
Return Me.title
|
||||
End Function
|
||||
End Class
|
||||
Private Function GET_CURRENT_ENTITY_DATA()
|
||||
If IsNothing(CURRENT_DT_ENTITY_RECORDS) Then
|
||||
Return Nothing
|
||||
End If
|
||||
Dim oDatatable As DataTable = CURRENT_DT_ENTITY_RECORDS.Copy
|
||||
Return oDatatable
|
||||
End Function
|
||||
Sub Refresh_Grid_Data(current As Boolean, ENTITY_DATATABLE As DataTable)
|
||||
Dim DT_RECORDS As DataTable
|
||||
If current = True Then
|
||||
DT_RECORDS = GET_CURRENT_ENTITY_DATA()
|
||||
|
||||
Else
|
||||
DT_RECORDS = ENTITY_DATATABLE
|
||||
End If
|
||||
Private Function GET_CURRENT_ENTITY_DATA() As DataTable
|
||||
If IsNothing(CURRENT_DT_ENTITY_RECORDS) Then Return Nothing
|
||||
Return CURRENT_DT_ENTITY_RECORDS.Copy()
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Lädt das Grid neu.
|
||||
''' Wenn current=True wird versucht, die zuletzt gewählte Entity korrekt zu laden.
|
||||
''' </summary>
|
||||
Sub Refresh_Grid_Data(current As Boolean, ENTITY_DATATABLE As DataTable)
|
||||
If CURRENT_LINK_ENTITY_ID = 0 Then
|
||||
CURRENT_LINK_ENTITY_ID = CURRENT_ENTITY_ID
|
||||
End If
|
||||
|
||||
Dim DT_RECORDS As DataTable
|
||||
If current = True Then
|
||||
If CURRENT_LINK_ENTITY_ID = CURRENT_ENTITY_ID Then
|
||||
DT_RECORDS = GET_CURRENT_ENTITY_DATA()
|
||||
Else
|
||||
DT_RECORDS = ReturnDataforEntity(CURRENT_LINK_ENTITY_ID)
|
||||
DT_ENTITYDATA = DT_RECORDS
|
||||
End If
|
||||
Else
|
||||
DT_RECORDS = ENTITY_DATATABLE
|
||||
End If
|
||||
|
||||
Try
|
||||
grvwGrid.Columns.Clear()
|
||||
dgEntityRecords.DataSource = DT_RECORDS
|
||||
|
||||
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in format grid", ex.Message, ex.StackTrace)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub frmDocRecordLink_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
' OLD WAY
|
||||
If myDocuments.Count = 0 Then
|
||||
ENTITY_LOAD_ACTIVE = True
|
||||
If ClassDocGrid.DT_RESULTFILES.Rows.Count = 1 Then
|
||||
txtFileInfo.Text = ClassDocGrid.DT_RESULTFILES.Rows(0).Item("DOC_PATH")
|
||||
Else
|
||||
txtFileInfo.Text = String.Format("{0} files selected for linking to record", ClassDocGrid.DT_RESULTFILES.Rows.Count)
|
||||
End If
|
||||
Try
|
||||
If CURRENT_LINK_ENTITY_ID = 0 Then
|
||||
Refresh_Grid_Data(True, Nothing)
|
||||
CURRENT_LINK_ENTITY_ID = CURRENT_ENTITY_ID
|
||||
Else
|
||||
Dim DT_RESULT As DataTable
|
||||
If CURRENT_LINK_ENTITY_ID = CURRENT_ENTITY_ID Then
|
||||
DT_RESULT = CURRENT_DT_ENTITY_RECORDS
|
||||
Else
|
||||
DT_RESULT = ReturnDataforEntity(CURRENT_LINK_ENTITY_ID)
|
||||
End If
|
||||
|
||||
If Not IsNothing(DT_RESULT) Then
|
||||
Refresh_Grid_Data(False, DT_RESULT)
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
Dim DT_ENTITIES As DataTable = GetENTITIES()
|
||||
Dim oSelectedIndex As Integer = 0
|
||||
|
||||
If DT_ENTITIES.Rows.Count = 0 Then
|
||||
Exit Sub
|
||||
End If
|
||||
Dim oCount = 0
|
||||
For Each row As DataRow In DT_ENTITIES.Rows
|
||||
Dim entity As New ClassEntity
|
||||
entity.title = row.Item("FORM_TITLE")
|
||||
entity.id = row.Item("FORM_ID")
|
||||
cmbConstructorForms.Items.Add(entity)
|
||||
If CURRENT_LINK_ENTITY_ID = entity.id Then
|
||||
txtcurrSichtData.Text = entity.title
|
||||
oSelectedIndex = oCount
|
||||
End If
|
||||
oCount += 1
|
||||
Next
|
||||
If USER_LANGUAGE = "de-DE" Then
|
||||
Me.Text = CURRENT_DT_SELECTED_FILES.Rows.Count.ToString & " Datei(en) mit Datensatz verknüpfen:"
|
||||
Else
|
||||
Me.Text = "Link " & CURRENT_DT_SELECTED_FILES.Rows.Count.ToString & " files with record:"
|
||||
End If
|
||||
' Den index der aktuell geöffneten ConstructorForm setzen
|
||||
cmbConstructorForms.SelectedIndex = oSelectedIndex
|
||||
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in frmDocRecordLink_Load", ex.Message, ex.StackTrace)
|
||||
End Try
|
||||
|
||||
Load_DocGrid_Layout()
|
||||
bsiInfo.Caption = "Waiting for record-Selection....."
|
||||
|
||||
|
||||
End If
|
||||
ENTITY_LOAD_ACTIVE = True
|
||||
|
||||
' Dateiinfo-Text setzen
|
||||
If myDocuments.Count > 0 Then
|
||||
ENTITY_LOAD_ACTIVE = True
|
||||
If myDocuments.Count = 1 Then
|
||||
txtFileInfo.Text = myDocuments.First.DocPath
|
||||
Else
|
||||
txtFileInfo.Text = String.Format("{0} files selected for linking to record", myDocuments.Count)
|
||||
End If
|
||||
Try
|
||||
If IsNothing(CURRENT_DT_ENTITY_RECORDS) Then
|
||||
Me.Close()
|
||||
End If
|
||||
If CURRENT_LINK_ENTITY_ID = 0 Then
|
||||
Refresh_Grid_Data(True, Nothing)
|
||||
CURRENT_LINK_ENTITY_ID = CURRENT_ENTITY_ID
|
||||
Else
|
||||
Dim DT_RESULT As DataTable
|
||||
If CURRENT_LINK_ENTITY_ID = CURRENT_ENTITY_ID Then
|
||||
DT_RESULT = CURRENT_DT_ENTITY_RECORDS
|
||||
Else
|
||||
DT_RESULT = ReturnDataforEntity(CURRENT_LINK_ENTITY_ID)
|
||||
End If
|
||||
|
||||
If Not IsNothing(DT_RESULT) Then
|
||||
Refresh_Grid_Data(False, DT_RESULT)
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
Dim DT_ENTITIES As DataTable = GetENTITIES()
|
||||
Dim oSelectedIndex As Integer = 0
|
||||
|
||||
If DT_ENTITIES.Rows.Count = 0 Then
|
||||
Exit Sub
|
||||
End If
|
||||
Dim oCount = 0
|
||||
For Each row As DataRow In DT_ENTITIES.Rows
|
||||
Dim entity As New ClassEntity
|
||||
entity.title = row.Item("FORM_TITLE")
|
||||
entity.id = row.Item("FORM_ID")
|
||||
cmbConstructorForms.Items.Add(entity)
|
||||
If CURRENT_LINK_ENTITY_ID = entity.id Then
|
||||
txtcurrSichtData.Text = entity.title
|
||||
oSelectedIndex = oCount
|
||||
End If
|
||||
oCount += 1
|
||||
Next
|
||||
If USER_LANGUAGE = "de-DE" Then
|
||||
Me.Text = CURRENT_DT_SELECTED_FILES.Rows.Count.ToString & " Datei(en) mit Datensatz verknüpfen:"
|
||||
Else
|
||||
Me.Text = "Link " & CURRENT_DT_SELECTED_FILES.Rows.Count.ToString & " files with record:"
|
||||
End If
|
||||
' Den index der aktuell geöffneten ConstructorForm setzen
|
||||
cmbConstructorForms.SelectedIndex = oSelectedIndex
|
||||
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in frmDocRecordLink_Load", ex.Message, ex.StackTrace)
|
||||
End Try
|
||||
|
||||
Load_DocGrid_Layout()
|
||||
bsiInfo.Caption = "Waiting for record-Selection....."
|
||||
|
||||
txtFileInfo.Text = If(myDocuments.Count = 1,
|
||||
myDocuments.First.DocPath,
|
||||
String.Format("{0} files selected for linking to record", myDocuments.Count))
|
||||
Else
|
||||
txtFileInfo.Text = If(ClassDocGrid.DT_RESULTFILES.Rows.Count = 1,
|
||||
ClassDocGrid.DT_RESULTFILES.Rows(0).Item("DOC_PATH").ToString(),
|
||||
String.Format("{0} files selected for linking to record", ClassDocGrid.DT_RESULTFILES.Rows.Count))
|
||||
End If
|
||||
|
||||
Try
|
||||
If myDocuments.Count > 0 AndAlso IsNothing(CURRENT_DT_ENTITY_RECORDS) Then
|
||||
Me.Close()
|
||||
Return
|
||||
End If
|
||||
|
||||
If CURRENT_LINK_ENTITY_ID = 0 Then
|
||||
Refresh_Grid_Data(True, Nothing)
|
||||
CURRENT_LINK_ENTITY_ID = CURRENT_ENTITY_ID
|
||||
DT_ENTITYDATA = GET_CURRENT_ENTITY_DATA()
|
||||
Else
|
||||
Dim DT_RESULT As DataTable
|
||||
If CURRENT_LINK_ENTITY_ID = CURRENT_ENTITY_ID Then
|
||||
DT_RESULT = CURRENT_DT_ENTITY_RECORDS
|
||||
Else
|
||||
DT_RESULT = ReturnDataforEntity(CURRENT_LINK_ENTITY_ID)
|
||||
End If
|
||||
If Not IsNothing(DT_RESULT) Then
|
||||
DT_ENTITYDATA = DT_RESULT
|
||||
Refresh_Grid_Data(False, DT_RESULT)
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim DT_ENTITIES As DataTable = GetENTITIES()
|
||||
If IsNothing(DT_ENTITIES) OrElse DT_ENTITIES.Rows.Count = 0 Then Exit Sub
|
||||
|
||||
Dim oSelectedIndex As Integer = 0
|
||||
Dim oCount As Integer = 0
|
||||
For Each row As DataRow In DT_ENTITIES.Rows
|
||||
Dim entity As New ClassEntity
|
||||
entity.title = row.Item("FORM_TITLE")
|
||||
entity.id = row.Item("FORM_ID")
|
||||
cmbConstructorForms.Items.Add(entity)
|
||||
If CURRENT_LINK_ENTITY_ID = entity.id Then
|
||||
txtcurrSichtData.Text = entity.title
|
||||
oSelectedIndex = oCount
|
||||
End If
|
||||
oCount += 1
|
||||
Next
|
||||
|
||||
Me.Text = If(USER_LANGUAGE = "de-DE",
|
||||
CURRENT_DT_SELECTED_FILES.Rows.Count.ToString & " Datei(en) mit Datensatz verknüpfen:",
|
||||
"Link " & CURRENT_DT_SELECTED_FILES.Rows.Count.ToString & " files with record:")
|
||||
|
||||
cmbConstructorForms.SelectedIndex = oSelectedIndex
|
||||
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in frmDocRecordLink_Load", ex.Message, ex.StackTrace)
|
||||
End Try
|
||||
|
||||
Load_DocGrid_Layout()
|
||||
bsiInfo.Caption = "Waiting for record-Selection....."
|
||||
End Sub
|
||||
|
||||
Private Function GetENTITIES() As DataTable
|
||||
Try
|
||||
Dim SQL As String = String.Format("SELECT DISTINCT FORM_ID,FORM_TITLE,SEQUENCE FROM VWPMO_CONSTRUCTOR_FORMS where CONSTRUCT_ID in " &
|
||||
"(SELECT CONSTRUCT_ID FROM TBPMO_CONSTRUCTOR_USER WHERE USER_ID = {0}) ORDER BY SEQUENCE", USER_GUID)
|
||||
Dim dt As DataTable = MYDB_ECM.GetDatatable(SQL)
|
||||
Return dt
|
||||
Dim SQL As String = String.Format("SELECT DISTINCT FORM_ID,FORM_TITLE,SEQUENCE FROM VWPMO_CONSTRUCTOR_FORMS " &
|
||||
"where CONSTRUCT_ID in (SELECT CONSTRUCT_ID FROM TBPMO_CONSTRUCTOR_USER WHERE USER_ID = {0}) ORDER BY SEQUENCE", USER_GUID)
|
||||
Return MYDB_ECM.GetDatatable(SQL)
|
||||
Catch ex As Exception
|
||||
MsgBox("Entities could not be loaded in LinkToRecord: " & vbNewLine & ex.Message)
|
||||
Return Nothing
|
||||
@@ -187,25 +132,23 @@ Public Class frmDocRecordLink
|
||||
Try
|
||||
If Not IsNothing(dgEntityRecords.DataSource) Then
|
||||
Dim RecordId As Integer = grvwGrid.GetFocusedRowCellValue(grvwGrid.Columns("Record-ID"))
|
||||
|
||||
bsiInfo.Caption = "Record (" & RecordId.ToString & ") selected!"
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Could not get the RecordID: " & ex.Message, MsgBoxStyle.Exclamation)
|
||||
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
|
||||
Sub Save_DocGrid_Layout()
|
||||
Try
|
||||
Dim XMLPath = Get_DocGrid_Layout_Filename()
|
||||
grvwGrid.SaveLayoutToXml(XMLPath)
|
||||
bsiInfo.Caption = "Grid-Layout saved - " + Now.ToLongTimeString
|
||||
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in Save_DocGrid_Layout", ex.Message, ex.StackTrace)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Sub Load_DocGrid_Layout()
|
||||
Try
|
||||
Dim XMLPath = Get_DocGrid_Layout_Filename()
|
||||
@@ -213,16 +156,17 @@ Public Class frmDocRecordLink
|
||||
grvwGrid.RestoreLayoutFromXml(XMLPath)
|
||||
grvwGrid.GuessAutoFilterRowValuesFromFilter()
|
||||
bsiInfo.Caption = "Grid-Layout loaded - " + Now.ToLongTimeString
|
||||
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in Load_DocGrid_Layout", ex.Message, ex.StackTrace)
|
||||
End Try
|
||||
End Sub
|
||||
Private Function Get_DocGrid_Layout_Filename()
|
||||
|
||||
Private Function Get_DocGrid_Layout_Filename() As String
|
||||
Dim Filename As String = String.Format("GridViewDocRecordLink-{0}-UserLayout.xml", CURRENT_LINK_ENTITY_ID)
|
||||
Return System.IO.Path.Combine(Application.UserAppDataPath(), Filename)
|
||||
End Function
|
||||
|
||||
Private Sub frmDocRecordLink_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
|
||||
If ENTITY_LOAD_ACTIVE = False Then Save_DocGrid_Layout()
|
||||
End Sub
|
||||
@@ -231,6 +175,7 @@ Public Class frmDocRecordLink
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
If cmbConstructorForms.SelectedIndex <> -1 Then
|
||||
Dim entity As ClassEntity = DirectCast(cmbConstructorForms.SelectedItem, ClassEntity)
|
||||
LOGGER.Debug("Selected Entity: {0} (ID: {1})", entity.title, entity.id)
|
||||
ENTITY_LOAD_ACTIVE = True
|
||||
dgEntityRecords.DataSource = Nothing
|
||||
grvwGrid.Columns.Clear()
|
||||
@@ -240,23 +185,26 @@ Public Class frmDocRecordLink
|
||||
CURRENT_LINK_ENTITY_ID = entity.id
|
||||
txtcurrSichtData.Text = entity.title
|
||||
DT_ENTITYDATA = DT_RESULT
|
||||
LOGGER.Debug("Data for Entity {0} loaded with {1} records", entity.title, DT_RESULT.Rows.Count)
|
||||
Refresh_Grid_Data(False, DT_RESULT)
|
||||
End If
|
||||
Load_DocGrid_Layout()
|
||||
Else
|
||||
bsiInfo.Caption = "Bitte wöhlen Sie eine Sicht aus! " + Now.ToShortTimeString
|
||||
bsiInfo.Caption = "Bitte wählen Sie eine Sicht aus! " + Now.ToShortTimeString
|
||||
End If
|
||||
|
||||
' FIX Problem A: ENTITY_LOAD_ACTIVE nach abgeschlossenem Ladevorgang zurücksetzen
|
||||
ENTITY_LOAD_ACTIVE = False
|
||||
Me.Cursor = Cursors.Default
|
||||
End Sub
|
||||
|
||||
Private Function ReturnDataforEntity(oEntityID As Integer) As DataTable
|
||||
Dim ResultSQL, ResultViewName As String
|
||||
LOGGER.Debug("GridType = Grid")
|
||||
ResultViewName = $"VWPMO_ENTITY_TABLE{oEntityID}"
|
||||
bsitmSource.Caption = $"Source: " + ResultViewName
|
||||
ResultSQL = $"SELECT T.* FROM {ResultViewName} T"
|
||||
LOGGER.Debug("ResultSQL: " & ResultSQL)
|
||||
|
||||
LOGGER.Debug("Executing SQL to load entity data: " & ResultSQL)
|
||||
Return MYDB_ECM.GetDatatable(ResultSQL)
|
||||
End Function
|
||||
|
||||
@@ -269,15 +217,13 @@ Public Class frmDocRecordLink
|
||||
Dim selectedRows As Integer() = grvwGrid.GetSelectedRows()
|
||||
Dim oLinkCount As Integer = 0
|
||||
LOGGER.Info("Start der Verknüpfung - Es wurden [{0}] Datensätze ausgewählt!", selectedRows.Count)
|
||||
|
||||
For Each rowhandle As Integer In selectedRows
|
||||
Dim oSelectedRecordID = grvwGrid.GetRowCellValue(rowhandle, "Record-ID")
|
||||
If IsNothing(oSelectedRecordID) Then
|
||||
Continue For
|
||||
End If
|
||||
If IsNothing(oSelectedRecordID) Then Continue For
|
||||
Try
|
||||
For Each oRow As DataRow In CURRENT_DT_SELECTED_FILES.Rows
|
||||
Dim oDocID As Integer
|
||||
oDocID = oRow.Item("DOC_ID")
|
||||
Dim oDocID As Integer = oRow.Item("DOC_ID")
|
||||
LOGGER.Info("DocID {0} will be linked with Record {1} ", oDocID.ToString, oSelectedRecordID.ToString)
|
||||
Dim DOC_PATH = oRow.Item("FILEPATH")
|
||||
Dim _objecttype = oRow.Item("OBJECTTYPE")
|
||||
@@ -307,12 +253,13 @@ Public Class frmDocRecordLink
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in Linking Record to file", ex.Message, ex.StackTrace)
|
||||
End Try
|
||||
Next
|
||||
Dim omsg = $"[{oLinkCount}] Datensätze erfolgreich verknüpft! - {Now.ToShortTimeString}"
|
||||
If USER_LANGUAGE <> "de-DE" Then
|
||||
omsg = $"[{oLinkCount}] records successfully linked - {Now.ToShortTimeString}"
|
||||
End If
|
||||
|
||||
Dim omsg = If(USER_LANGUAGE = "de-DE",
|
||||
$"[{oLinkCount}] Datensätze erfolgreich verknüpft! - {Now.ToShortTimeString}",
|
||||
$"[{oLinkCount}] records successfully linked - {Now.ToShortTimeString}")
|
||||
MsgBox(omsg, MsgBoxStyle.Information, "orgFLOW")
|
||||
|
||||
DT_ENTITYDATA = ReturnDataforEntity(CURRENT_LINK_ENTITY_ID)
|
||||
Refresh_Grid_Data(False, DT_ENTITYDATA)
|
||||
Load_DocGrid_Layout()
|
||||
grvwGrid.ClearSelection()
|
||||
@@ -325,14 +272,14 @@ Public Class frmDocRecordLink
|
||||
Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles bbtnitmresetlayout.ItemClick
|
||||
Reset_View_layout()
|
||||
End Sub
|
||||
|
||||
Sub Reset_View_layout()
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
Try
|
||||
Dim XMLPath = Get_DocGrid_Layout_Filename()
|
||||
If File.Exists(XMLPath) Then
|
||||
|
||||
File.Delete(XMLPath)
|
||||
Refresh_Grid_Data(True, Nothing)
|
||||
Refresh_Grid_Data(False, DT_ENTITYDATA)
|
||||
Else
|
||||
MsgBox("Resetting the layout was not successful - File not existing!", MsgBoxStyle.Information)
|
||||
End If
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
Imports System.Globalization
|
||||
Imports System.ComponentModel
|
||||
Imports System.Globalization
|
||||
Imports System.Net
|
||||
Imports System.Threading
|
||||
'Imports DD_LIB_Standards'
|
||||
@@ -985,14 +986,14 @@ Public Class frmMain
|
||||
'ClassProxy.MyPROXYConnectionString = oSqlcon_Proxy
|
||||
End If
|
||||
Dim sql = String.Format("UPDATE TBPMO_CLIENT_CONN_SWITCH_USER SET ACTIVE = 1 WHERE GUID = {0}", oINACTIVE_GUID)
|
||||
MYDB_ECM.GetScalarValue(SQL)
|
||||
MYDB_ECM.GetScalarValue(sql)
|
||||
If ClassInit.InitDatabase = True Then
|
||||
ClassInit.InitUserLogin()
|
||||
Load_Connection_Dep_Data()
|
||||
|
||||
sql = String.Format("UPDATE TBPMO_CLIENT_CONN_SWITCH_USER SET ACTIVE = 1 WHERE UPPER(CONN_NAME) = UPPER('{0}') AND USER_ID = {1}", oSQLDescription, USER_GUID)
|
||||
Dim oSuccess As Boolean = False
|
||||
If MYDB_ECM.ExecuteNonQuery(Sql) = True Then
|
||||
If MYDB_ECM.ExecuteNonQuery(sql) = True Then
|
||||
oSuccess = True
|
||||
End If
|
||||
If oSuccess = True Then
|
||||
@@ -1029,4 +1030,19 @@ Public Class frmMain
|
||||
Private Sub ADDIBeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ADDIBeendenToolStripMenuItem.Click
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub frmMain_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
|
||||
If Not IsNothing(WMMOD) Then
|
||||
LOGGER.Debug("Closing frmMain - Now logging out...")
|
||||
Try
|
||||
WMMOD.Session.Logout()
|
||||
LOGGER.Debug("WINDREAM_MOD Session logg ed out successfully.")
|
||||
|
||||
Catch ex As Exception
|
||||
LOGGER.Warn("Error while logging out WINDREAM_MOD Session: {0}", ex.Message)
|
||||
LOGGER.Error(ex)
|
||||
End Try
|
||||
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
@@ -178,7 +178,7 @@ Public Class frmNodeNavigation
|
||||
' "FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {2} AND CONSTRUCT_ID = {3} ORDER BY SEQUENCE", USER_LANGUAGE, CURRENT_SCREEN_ID, CURRENT_SCREEN_ID, oConstructID)
|
||||
'DT_VWPMO_CONSTRUCTOR_FORMS = MYDB_ECM.GetDatatable(Sql)
|
||||
|
||||
CURRENT_DT_TBPMO_ENTITY_RIGHT_CONTROLS = MYDB_ECM.GetDatatable(String.Format("SELECT T.* FROM TBPMO_ENTITY_RIGHT_CONTROLS T INNER JOIN VWPMO_CONSTRUCTOR_FORMS T1 ON T.ENTITY_ID = T1.FORM_ID where T1.CONSTRUCT_ID = {0}", CONSTRUCTORID))
|
||||
CURRENT_DT_TBPMO_ENTITY_RIGHT_CONTROLS = MYDB_ECM.GetDatatable(String.Format("SELECT T.* FROM TBPMO_ENTITY_RIGHT_CONTROLS T WITH (NOLOCK) INNER JOIN VWPMO_CONSTRUCTOR_FORMS T1 ON T.ENTITY_ID = T1.FORM_ID where T1.CONSTRUCT_ID = {0}", CONSTRUCTORID))
|
||||
Try
|
||||
If DocumentViewer.Init(LOGCONFIG, MYGDPICTURE_LICENSE_KEY, New DigitalData.Controls.DocumentViewer.DocumentViewer.ToolbarSettings() With {
|
||||
.ShowPrintButton = True,
|
||||
@@ -214,8 +214,8 @@ Public Class frmNodeNavigation
|
||||
'End If
|
||||
ClassWindowLocation.LoadFormLocationSize(Me, CONSTRUCTORID, CURRENT_SCREEN_ID, "NODE_NAVIGATION")
|
||||
Try
|
||||
DT_CONSTRUCT_VIEW = MYDB_ECM.GetDatatable("SELECT * FROM TBPMO_FORM_CONSTRUCTOR WHERE GUID = " & CONSTRUCTORID)
|
||||
Dim SEL1 = String.Format("SELECT * FROM TBPMO_FORM WHERE GUID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {0} AND CONSTRUCT_ID = {1})", CURRENT_SCREEN_ID, CONSTRUCTORID)
|
||||
DT_CONSTRUCT_VIEW = MYDB_ECM.GetDatatable("SELECT * FROM TBPMO_FORM_CONSTRUCTOR WITH (NOLOCK) WHERE GUID = " & CONSTRUCTORID)
|
||||
Dim SEL1 = String.Format("SELECT * FROM TBPMO_FORM WITH (NOLOCK) WHERE GUID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE SCREEN_ID = {0} AND CONSTRUCT_ID = {1})", CURRENT_SCREEN_ID, CONSTRUCTORID)
|
||||
DT_ENTITY_DATA = MYDB_ECM.GetDatatable(SEL1)
|
||||
|
||||
SEL1 = String.Format("SELECT *, dbo.FNPMO_GET_CONTROL_CAPTION ('{0}', 1, CONTROL_ID) AS 'CAPTION' FROM VWPMO_CONTROL_SCREEN", USER_LANGUAGE)
|
||||
@@ -255,7 +255,7 @@ Public Class frmNodeNavigation
|
||||
Dim oTable = Await ClassNodeCommands.LoadNodes(CURRENT_ENTITY_ID)
|
||||
DT_STRUCTURE_NODES = oTable
|
||||
|
||||
Dim oNodeConfigSql = String.Format("select T.* from TBPMO_STRUCTURE_NODES_CONFIGURATION T INNER JOIN VWPMO_CONSTRUCTOR_FORMS T1 ON T.ENTITY_ID = T1.FORM_ID WHERE T.ENTITY_ID = {0}", CURRENT_ENTITY_ID)
|
||||
Dim oNodeConfigSql = String.Format("select T.* from TBPMO_STRUCTURE_NODES_CONFIGURATION T WITH (NOLOCK) INNER JOIN VWPMO_CONSTRUCTOR_FORMS T1 ON T.ENTITY_ID = T1.FORM_ID WHERE T.ENTITY_ID = {0}", CURRENT_ENTITY_ID)
|
||||
Dim DT_TREEVIEW_CONFIGURATION = MYDB_ECM.GetDatatable(oNodeConfigSql)
|
||||
|
||||
Dim imageInit = TryCast(ImageCollection1, System.ComponentModel.ISupportInitialize)
|
||||
@@ -375,9 +375,6 @@ Public Class frmNodeNavigation
|
||||
RPGNodes.Enabled = True
|
||||
|
||||
Dim oNodeId = e.Node.Id
|
||||
Console.Write($"Node ID: {oNodeId}")
|
||||
|
||||
|
||||
|
||||
Dim oRowObject = TreeListDevexpress.GetRow(oNodeId)
|
||||
|
||||
@@ -385,9 +382,7 @@ Public Class frmNodeNavigation
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
'If oNodeId = 0 Then
|
||||
' Exit Sub
|
||||
'End If
|
||||
NNLogger.Debug($"FocusedNodeChanged: NodeID={oNodeId}, NodeCaption='{e.Node.GetDisplayText("NODE_CAPTION")}', NodeConfigID={e.Node.GetValue("NODE_CONFIG_ID")}, RecordID={e.Node.GetValue("RECORD_ID")}")
|
||||
|
||||
Dim oRowView As DataRowView = oRowObject
|
||||
Dim oRow As DataRow = oRowView.Row
|
||||
@@ -716,7 +711,7 @@ Public Class frmNodeNavigation
|
||||
End Sub
|
||||
Sub Load_Adding_users()
|
||||
Try
|
||||
Dim oSql = String.Format("SELECT * FROM TBPMO_ENTITY_USERRIGHT_ADDING where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", oConstructID)
|
||||
Dim oSql = String.Format("SELECT * FROM TBPMO_ENTITY_USERRIGHT_ADDING WITH (NOLOCK) where ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", oConstructID)
|
||||
DT_ADDING_USERS = MYDB_ECM.GetDatatable(oSql)
|
||||
Catch ex As Exception
|
||||
NNLogger.Error(ex)
|
||||
@@ -726,7 +721,7 @@ Public Class frmNodeNavigation
|
||||
Private Sub Load_Configurable_Nodes()
|
||||
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)
|
||||
Dim oSql = String.Format("SELECT * FROM TBPMO_STRUCTURE_NODES_CONFIGURATION WITH (NOLOCK) where TYPE_NODE = 1000 AND ENTITY_ID IN (SELECT FORM_ID FROM VWPMO_CONSTRUCTOR_FORMS WHERE CONSTRUCT_ID = {0})", oConstructID)
|
||||
DT_CONFIGURABLE_NODES = MYDB_ECM.GetDatatable(oSql)
|
||||
|
||||
NNLogger.Info($"Load_Configurable_Nodes: ConstructID={oConstructID}, " &
|
||||
@@ -863,7 +858,7 @@ Public Class frmNodeNavigation
|
||||
ADD_RECORDS_CONSTR = True
|
||||
End Try
|
||||
If ENTITY_TYPE = "Personal file" Then
|
||||
Dim oSQL = "SELECT CAT_STRING FROM TBDD_CATALOG WHERE CAT_TITLE = 'PA_NODE_GUID_STAMM'"
|
||||
Dim oSQL = "SELECT CAT_STRING FROM TBDD_CATALOG WITH (NOLOCK) WHERE CAT_TITLE = 'PA_NODE_GUID_STAMM'"
|
||||
PA_NODE_GUID_STAMM = MYDB_ECM.GetScalarValue(oSQL)
|
||||
oSQL = "SELECT CAT_STRING FROM TBDD_CATALOG WHERE CAT_TITLE = 'PA_NODE_CONFIG_USER_STAMM'"
|
||||
PA_NODE_CONFIG_USER_STAMM = MYDB_ECM.GetScalarValue(oSQL)
|
||||
@@ -886,9 +881,9 @@ Public Class frmNodeNavigation
|
||||
'sql = String.Format("select * from TBPMO_RIGHT_USER WHERE USER_ID = {0} AND oEntityID = {1}", USER_GUID, oEntityID)
|
||||
DT_RIGHTS_USER = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_RIGHT_USER, "ENTITY_ID = " & _ENTITY_ID, "")
|
||||
expression = String.Format("")
|
||||
sql = String.Format("SELECT DISTINCT EDIT_REC,ADD_REC,DELETE_REC,ADD_DOC,VIEW_DOC,DELETE_DOC FROM TBPMO_RIGHT_GROUP WHERE ENTITY_ID = {0} AND GROUP_ID IN (SELECT GROUP_ID FROM TBDD_GROUPS_USER WHERE USER_ID = {1})", _ENTITY_ID, USER_GUID)
|
||||
sql = String.Format("SELECT DISTINCT EDIT_REC,ADD_REC,DELETE_REC,ADD_DOC,VIEW_DOC,DELETE_DOC FROM TBPMO_RIGHT_GROUP WITH (NOLOCK) WHERE ENTITY_ID = {0} AND GROUP_ID IN (SELECT GROUP_ID FROM TBDD_GROUPS_USER WITH (NOLOCK) WHERE USER_ID = {1})", _ENTITY_ID, USER_GUID)
|
||||
DT_RIGHTS_GROUP = MYDB_ECM.GetDatatable(sql)
|
||||
sql = String.Format("SELECT VIEW_ID FROM TBPMO_USER_CONSTR_VIEW_TYPE WHERE CONSTRUCTOR_DETAIL_ID = {0} AND [ENTITY_ID] = {1} AND USER_ID = {2}", CURRENT_CONSTRUCTOR_DETAIL_ID, _ENTITY_ID, USER_GUID)
|
||||
sql = String.Format("SELECT VIEW_ID FROM TBPMO_USER_CONSTR_VIEW_TYPE WITH (NOLOCK) WHERE CONSTRUCTOR_DETAIL_ID = {0} AND [ENTITY_ID] = {1} AND USER_ID = {2}", CURRENT_CONSTRUCTOR_DETAIL_ID, _ENTITY_ID, USER_GUID)
|
||||
|
||||
|
||||
_RECORD_ID = 0
|
||||
@@ -935,7 +930,6 @@ Public Class frmNodeNavigation
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in getting Entity-Data - Check logfile")
|
||||
Else
|
||||
CURRENT_DT_ENTITY_RECORDS.TableName = "VWPMO_ENTITY_TABLE" & _ENTITY_ID
|
||||
' Dim SQL_AutoValues = "SELECT GUID AS CONTROL_ID, CONNECTION_ID_1 AS CONNECTION_ID, SQL_COMMAND_1 AS SQL_COMMAND FROM TBPMO_CONTROL WHERE CONNECTION_ID_1 <> '' AND SQL_COMMAND_1 <> '' AND FORM_ID = " & oEntityID
|
||||
|
||||
Dim DT_AUTOVALUES = ClassHelper.FILTER_DATATABLE(CURRENT_TBPMO_CONTROL, "CONNECTION_ID_1 > 0 AND SQL_COMMAND_1 <> '' AND FORM_ID = " & _ENTITY_ID, "")
|
||||
|
||||
@@ -980,7 +974,7 @@ Public Class frmNodeNavigation
|
||||
CONVERT(VARCHAR(16),ADDED_WHEN,20) AS ADDED_WHEN,
|
||||
COALESCE(CHANGED_WHO,'') AS CHANGED_WHO,
|
||||
COALESCE(CONVERT(VARCHAR(16),CHANGED_WHEN,20),'') AS CHANGED_WHEN
|
||||
FROM TBPMO_RECORD WHERE GUID = {RecordId}"
|
||||
FROM TBPMO_RECORD WITH (NOLOCK) WHERE GUID = {RecordId}"
|
||||
|
||||
Dim oTable As DataTable
|
||||
oTable = MYDB_ECM.GetDatatable(oSql)
|
||||
@@ -1032,64 +1026,48 @@ Public Class frmNodeNavigation
|
||||
Private Async Function Show_Selected_Record_Data(pRecordId As Integer, pLoadRecordData As Boolean) As Task
|
||||
Dim oHandle As IOverlaySplashScreenHandle = Nothing
|
||||
Try
|
||||
' ✅ 1. SPLASHSCREEN FÜR CRITICAL-PATH (Control-Loading)
|
||||
oHandle = SplashScreenManager.ShowOverlayForm(Me)
|
||||
NNLogger.Debug("[OVERLAY] ShowOverlayForm called at {0}", Now.ToString("HH:mm:ss.fff"))
|
||||
|
||||
' ✅ 2. DEBUG LOGGING (wie Original)
|
||||
NNLogger.Debug("Show_Selected_Record_Data_NonBlocking: RecordID={0}, LoadData={1}", pRecordId, pLoadRecordData)
|
||||
|
||||
' ✅ 3. ENTITY-ROW laden (wie Original)
|
||||
Dim ENTITY_ROW = (From form In DT_ENTITY_DATA.AsEnumerable()
|
||||
Select form
|
||||
Where form.Item("GUID") = _ENTITY_ID).Single()
|
||||
NNLogger.Debug("RECORD ID: {0}", pRecordId)
|
||||
' ✅ 4. GLOBALE VARIABLEN setzen (wie Original)
|
||||
|
||||
CURRENT_PARENT_RECORD_ID = 0
|
||||
RIGHT_CONTROL_CHANGED = False
|
||||
ENTITY_RELOAD_AFT_CONTROL_LOAD = False
|
||||
' ✅ 5. PANEL aktivieren
|
||||
|
||||
If pnlControls.Enabled = False Then pnlControls.Enabled = True
|
||||
' ✅ 6. CONTROL-LOADING (CRITICAL PATH - blockierend mit Splashscreen)
|
||||
|
||||
Dim sw As New SW("Show_Selected_Record_Data - Control Loading")
|
||||
If pLoadRecordData = True Then
|
||||
CtrlBuilder.WatchRecordChanges = False
|
||||
ClassControlValues.LoadControlValues(_RECORD_ID, 0, _ENTITY_ID, CtrlBuilder.AllControls, _ENTITY_ID)
|
||||
CtrlBuilder.WatchRecordChanges = True
|
||||
End If
|
||||
|
||||
sw.Done()
|
||||
|
||||
' ✅ 7. RECORD_CHANGED zurücksetzen (wie Original)
|
||||
RECORD_CHANGED = False
|
||||
|
||||
' ✅ 8. RECORD-LABEL aktualisieren (synchron, schnell)
|
||||
Update_Record_Label(_RECORD_ID)
|
||||
|
||||
' ✅ 9. SPLASHSCREEN SCHLIESSEN - Critical-Path abgeschlossen!
|
||||
If oHandle IsNot Nothing Then
|
||||
SplashScreenManager.CloseOverlayForm(oHandle)
|
||||
oHandle = Nothing
|
||||
End If
|
||||
' ── ControlLoading abgeschlossen, Overlay bleibt bis DocSearch fertig ──
|
||||
NNLogger.Debug("[OVERLAY] Kept open - handing to RUN_DOCSEARCH at {0}", Now.ToString("HH:mm:ss.fff"))
|
||||
|
||||
' ══════════════════════════════════════════════════════════════
|
||||
' ✅ AB HIER: NON-BLOCKING BACKGROUND-TASKS
|
||||
' ══════════════════════════════════════════════════════════════
|
||||
|
||||
' ✅ 10. UI-FEEDBACK: Zeige dass DocSearch läuft
|
||||
Update_Document_Label(0) ' "Loading documents..."
|
||||
Update_Notification_Label(True, "Loading documents in background...", "Blue")
|
||||
Update_Document_Label(0)
|
||||
Update_Notification_Label(True, "Loading documents...", "Blue")
|
||||
RibbonPageGroupDocResult.Enabled = False
|
||||
|
||||
' ✅ 11. DOCSEARCH IM HINTERGRUND (ohne UI-Freeze)
|
||||
NNLogger.Debug("Starting background DocSearch for RecordID={0}", pRecordId)
|
||||
|
||||
NNLogger.Debug("[DOCSEARCH] RUN_DOCSEARCH START at {0}", Now.ToString("HH:mm:ss.fff"))
|
||||
Dim oDocumentsFound As Integer = 0
|
||||
|
||||
Try
|
||||
' DocSearch ohne Splashscreen ausführen
|
||||
oDocumentsFound = Await RUN_DOCSEARCH(False)
|
||||
|
||||
NNLogger.Debug("DocSearch completed: {0} documents found", oDocumentsFound)
|
||||
' ✅ FIX: oHandle wird übergeben – RUN_DOCSEARCH schließt es nach FillColumns
|
||||
oDocumentsFound = Await RUN_DOCSEARCH(False, oHandle)
|
||||
oHandle = Nothing ' ← Ownership übertragen, nicht nochmal schließen
|
||||
NNLogger.Debug("[DOCSEARCH] RUN_DOCSEARCH END at {0} - {1} documents found", Now.ToString("HH:mm:ss.fff"), oDocumentsFound)
|
||||
|
||||
Catch ex As Exception
|
||||
NNLogger.Error(ex, "Error in background DocSearch")
|
||||
@@ -1097,22 +1075,17 @@ Public Class frmNodeNavigation
|
||||
oDocumentsFound = 0
|
||||
End Try
|
||||
|
||||
' ✅ 12. UI-UPDATE NACH DOCSEARCH
|
||||
Update_Document_Label(oDocumentsFound)
|
||||
Update_Notification_Label(False, "", "") ' Notification ausblenden
|
||||
Update_Notification_Label(False, "", "")
|
||||
|
||||
' ✅ 13. DOCVIEWER-HANDLING (wie Original)
|
||||
If DocViewInitialized Then
|
||||
If oDocumentsFound = 0 Then
|
||||
Close_Document_Viewer()
|
||||
RibbonPageGroupDocResult.Enabled = False
|
||||
SplitContainerDocView.Collapsed = True
|
||||
|
||||
NNLogger.Debug("No documents found - DocViewer collapsed")
|
||||
Else
|
||||
RibbonPageGroupDocResult.Enabled = True
|
||||
|
||||
' ✅ Original-Logik: Node_AfterSelect-Check
|
||||
If Node_AfterSelect = False Then
|
||||
UpdateDocViewCollapsedState()
|
||||
NNLogger.Debug("Documents found - DocView state updated")
|
||||
@@ -1120,9 +1093,6 @@ Public Class frmNodeNavigation
|
||||
SplitContainerDocView.Collapsed = True
|
||||
NNLogger.Debug("Node_AfterSelect=True - DocView collapsed")
|
||||
End If
|
||||
|
||||
' ✅ OPTIONAL: DocView im Hintergrund laden (falls aktiviert)
|
||||
' ✅ Direkt awaiten statt Task.Run – wir sind bereits im Async-Kontext
|
||||
If checkShowPreview.Checked AndAlso Not Node_AfterSelect Then
|
||||
NNLogger.Debug("Starting DocView loading")
|
||||
Await DocView_DisplaySelectedDoc(AfterNodeChange:=False)
|
||||
@@ -1135,11 +1105,11 @@ Public Class frmNodeNavigation
|
||||
Catch ex As Exception
|
||||
NNLogger.Error(ex, "Error in Show_Selected_Record_Data_NonBlocking")
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in SelectedRecord_ShowData: ", ex.Message)
|
||||
|
||||
Finally
|
||||
' ✅ SICHERSTELLEN: Splashscreen wird IMMER geschlossen
|
||||
' ✅ Sicherheitsnetz: schließen falls RUN_DOCSEARCH es nicht übernommen hat
|
||||
If oHandle IsNot Nothing Then
|
||||
Try
|
||||
NNLogger.Debug("[OVERLAY] CloseOverlayForm (Finally-Fallback) at {0}", Now.ToString("HH:mm:ss.fff"))
|
||||
SplashScreenManager.CloseOverlayForm(oHandle)
|
||||
Catch ex As Exception
|
||||
NNLogger.Warn(ex, "Could not close overlay form")
|
||||
@@ -1742,7 +1712,7 @@ Public Class frmNodeNavigation
|
||||
#End Region
|
||||
Private Sub Customer_Run_Procedures()
|
||||
Try
|
||||
Dim DT As DataTable = MYDB_ECM.GetDatatable("SELECT * FROM TBPMO_RUN_PROCEDURES WHERE FORM_ID = " & _ENTITY_ID)
|
||||
Dim DT As DataTable = MYDB_ECM.GetDatatable("SELECT * FROM TBPMO_RUN_PROCEDURES WITH (NOLOCK) WHERE FORM_ID = " & _ENTITY_ID)
|
||||
If Not DT Is Nothing Then
|
||||
For Each row As DataRow In DT.Rows
|
||||
Dim prsql As String = row.Item("EXECUTE_COMMAND")
|
||||
@@ -1757,17 +1727,19 @@ Public Class frmNodeNavigation
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Customer_Run_Procedures: ", ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
Private Async Function RUN_DOCSEARCH(pShowSplashscreen As Boolean) As Task(Of Integer)
|
||||
Dim oHandle As IOverlaySplashScreenHandle
|
||||
Private Async Function RUN_DOCSEARCH(pShowSplashscreen As Boolean,
|
||||
Optional pExternalHandle As IOverlaySplashScreenHandle = Nothing) As Task(Of Integer)
|
||||
Dim oHandle As IOverlaySplashScreenHandle = pExternalHandle ' ← externer Handle übernommen
|
||||
|
||||
If pShowSplashscreen Then
|
||||
oHandle = SplashScreenManager.ShowOverlayForm(Me)
|
||||
NNLogger.Debug("[OVERLAY] RUN_DOCSEARCH ShowOverlayForm at {0}", Now.ToString("HH:mm:ss.fff"))
|
||||
End If
|
||||
|
||||
Dim sw As New SW("RUN_WDSEARCH_GRID")
|
||||
Dim oFilesFound As Integer = 0
|
||||
|
||||
Try
|
||||
|
||||
If _RECORD_ID = 0 Then
|
||||
GridControlDocSearch.DataSource = Nothing
|
||||
Return 0
|
||||
@@ -1775,59 +1747,58 @@ Public Class frmNodeNavigation
|
||||
|
||||
bsitmtInfoDoc.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
|
||||
If CURRENT_SEARCH_TYPE = "NODE_DOWN" Then
|
||||
|
||||
Dim sql = String.Format("DECLARE @return_value int " & vbNewLine &
|
||||
"EXEC @return_value = [dbo].[PRPMO_NODES_GET_CHILD_RECORDS] @USER_ID = {0}, @NODE_ID = {1} " & vbNewLine &
|
||||
"SELECT 'Return Value' = @return_value", USER_GUID, _NODE_GUID)
|
||||
Dim DT_ASYNC As DataTable = Await MYDB_ECM.GetDatatableAsync(sql)
|
||||
|
||||
If Not IsNothing(DT_ASYNC) Then
|
||||
Dim result = DT_ASYNC.Rows(0).Item(0)
|
||||
If result <> 0 Then
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Getting SubNodes-Structure", "Check the logfile")
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
NNLogger.Debug("[DOCSEARCH] Get_DOC_RESULTTABLE START at {0}", Now.ToString("HH:mm:ss.fff"))
|
||||
Dim DT_RESULT As DataTable
|
||||
DT_RESULT = ClassDOC_SEARCH.Get_DOC_RESULTTABLE(DT_RESULTLIST_OPTIONS, DT_RESULTLIST_VARIABLE_VALUE, DT_COLUMNS_GRID_ENTITY, _ENTITY_ID, _RECORD_ID, True)
|
||||
NNLogger.Debug("[DOCSEARCH] Get_DOC_RESULTTABLE END at {0} - Rows={1}", Now.ToString("HH:mm:ss.fff"), If(IsNothing(DT_RESULT), "Nothing", DT_RESULT.Rows.Count.ToString()))
|
||||
|
||||
If IsNothing(DT_RESULT) Then
|
||||
Dim msg = "wrong DocSearch-Configuration or unexpected Error in Get_DOC_RESULTTABLE - Check logfile and contact Digital Data"
|
||||
GridViewDoc_Search.ViewCaption = msg
|
||||
GridViewDoc_Search.ViewCaption = "wrong DocSearch-Configuration or unexpected Error in Get_DOC_RESULTTABLE - Check logfile and contact Digital Data"
|
||||
oFilesFound = 0
|
||||
Else
|
||||
If DT_RESULT.Rows.Count > 0 Then 'Es gibt Suchergebnisse
|
||||
|
||||
If DT_RESULT.Rows.Count > 0 Then
|
||||
If CURRENT_SEARCH_TYPE = "FULLTEXT" Then
|
||||
GridViewDoc_Search.ShowFindPanel()
|
||||
GridViewDoc_Search.FindFilterText = CURRENT_FULLTEXT_PATTERN
|
||||
End If
|
||||
If Not IsNothing(DT_DOCRESULT_DROPDOWN_ITEMS) Then
|
||||
If DT_DOCRESULT_DROPDOWN_ITEMS.Rows.Count > 0 Then
|
||||
NNLogger.Info($"RUN_WDSEARCH_GRID - DT_DOCRESULT_DROPDOWN_ITEMS [{DT_DOCRESULT_DROPDOWN_ITEMS.Rows.Count}]!")
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
ClassDocGrid.FillColumns(
|
||||
GridViewDoc_Search,
|
||||
DT_RESULT,
|
||||
DT_COLUMNS_GRID_ENTITY,
|
||||
DT_DOCRESULT_DROPDOWN_ITEMS,
|
||||
AddressOf OnCBSelectedValueChanged,
|
||||
AddressOf OnDateSelectedValueChanged,
|
||||
AddressOf OnTextSelectedValueChanged,
|
||||
AddressOf OnCheckboxValueChanged,
|
||||
CURRENT_SEARCH_TYPE, _RECORD_ID)
|
||||
|
||||
If DT_RESULT.Rows.Count > 0 Then
|
||||
If CURRENT_SEARCH_TYPE = "FULLTEXT" Then
|
||||
GridViewDoc_Search.ShowFindPanel()
|
||||
GridViewDoc_Search.FindFilterText = CURRENT_FULLTEXT_PATTERN
|
||||
End If
|
||||
If Not IsNothing(DT_DOCRESULT_DROPDOWN_ITEMS) AndAlso DT_DOCRESULT_DROPDOWN_ITEMS.Rows.Count > 0 Then
|
||||
NNLogger.Info($"RUN_WDSEARCH_GRID - DT_DOCRESULT_DROPDOWN_ITEMS [{DT_DOCRESULT_DROPDOWN_ITEMS.Rows.Count}]!")
|
||||
End If
|
||||
|
||||
NNLogger.Debug("[DOCSEARCH] FillColumns START at {0}", Now.ToString("HH:mm:ss.fff"))
|
||||
ClassDocGrid.FillColumns(
|
||||
GridViewDoc_Search,
|
||||
DT_RESULT,
|
||||
DT_COLUMNS_GRID_ENTITY,
|
||||
DT_DOCRESULT_DROPDOWN_ITEMS,
|
||||
AddressOf OnCBSelectedValueChanged,
|
||||
AddressOf OnDateSelectedValueChanged,
|
||||
AddressOf OnTextSelectedValueChanged,
|
||||
AddressOf OnCheckboxValueChanged,
|
||||
CURRENT_SEARCH_TYPE, _RECORD_ID)
|
||||
NNLogger.Debug("[DOCSEARCH] FillColumns END at {0}", Now.ToString("HH:mm:ss.fff"))
|
||||
|
||||
' ✅ FIX: Overlay NACH FillColumns schließen
|
||||
If oHandle IsNot Nothing Then
|
||||
NNLogger.Debug("[OVERLAY] CloseOverlayForm after FillColumns at {0}", Now.ToString("HH:mm:ss.fff"))
|
||||
SplashScreenManager.CloseOverlayForm(oHandle)
|
||||
oHandle = Nothing
|
||||
End If
|
||||
'BbtnitmDocSearch.Enabled = TruefRe
|
||||
|
||||
oFilesFound = DT_RESULT.Rows.Count
|
||||
Else
|
||||
|
||||
GridControlDocSearch.DataSource = Nothing
|
||||
oFilesFound = 0
|
||||
End If
|
||||
@@ -1840,10 +1811,16 @@ Public Class frmNodeNavigation
|
||||
sw.Done()
|
||||
bsitmtInfoDoc.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||
Update_Notification_Label(False, "", "")
|
||||
If pShowSplashscreen Then
|
||||
|
||||
' ✅ Sicherheitsnetz: Handle schließen falls FillColumns-Pfad nicht erreicht wurde (0 Rows / Fehler)
|
||||
If oHandle IsNot Nothing Then
|
||||
NNLogger.Debug("[OVERLAY] CloseOverlayForm (RUN_DOCSEARCH Finally-Fallback) at {0}", Now.ToString("HH:mm:ss.fff"))
|
||||
SplashScreenManager.CloseOverlayForm(oHandle)
|
||||
End If
|
||||
|
||||
If pShowSplashscreen Then
|
||||
NNLogger.Debug("[OVERLAY] RUN_DOCSEARCH own handle closed at {0}", Now.ToString("HH:mm:ss.fff"))
|
||||
End If
|
||||
End Try
|
||||
|
||||
Return oFilesFound
|
||||
@@ -1851,7 +1828,7 @@ Public Class frmNodeNavigation
|
||||
Private Sub RUN_ENTITY_DOC_SEARCH()
|
||||
Dim sw As New SW("RUN_ENTITY_DOC_SEARCH")
|
||||
Try
|
||||
Dim oSQL = $"SELECT ENTITY_DOC_SEARCH FROM TBPMO_FORM WHERE GUID = {_ENTITY_ID}"
|
||||
Dim oSQL = $"SELECT ENTITY_DOC_SEARCH FROM TBPMO_FORM WITH (NOLOCK) WHERE GUID = {_ENTITY_ID}"
|
||||
CURRENT_DOCSEARCH_SQL = MYDB_ECM.GetScalarValue(oSQL)
|
||||
If CURRENT_DOCSEARCH_SQL <> String.Empty Then
|
||||
Dim oText = $"Die sichtweite Suche wird im Hintergrund ausgeführt und in einem separaten Fenster angezeigt sobald sie fertig ist."
|
||||
@@ -2555,7 +2532,7 @@ Public Class frmNodeNavigation
|
||||
Dim oErrorCount As Integer = 0
|
||||
|
||||
For Each pDocId In pDocIds
|
||||
Dim oSql = $"IF NOT EXISTS (SELECT 1 FROM TBPMO_DOC_RECORD_LINK WHERE DOC_ID = {pDocId} AND RECORD_ID = {_RECORD_ID}) " &
|
||||
Dim oSql = $"IF NOT EXISTS (SELECT 1 FROM TBPMO_DOC_RECORD_LINK WITH (NOLOCK) WHERE DOC_ID = {pDocId} AND RECORD_ID = {_RECORD_ID}) " &
|
||||
$"INSERT INTO TBPMO_DOC_RECORD_LINK (DOC_ID, RECORD_ID, ADDED_WHO, ADDED_WHEN) " &
|
||||
$"VALUES ({pDocId}, {_RECORD_ID}, '{USER_USERNAME}', GETDATE())"
|
||||
|
||||
@@ -2950,7 +2927,7 @@ Public Class frmNodeNavigation
|
||||
Dim oDocuments = Current_DocList.SelectedDocuments
|
||||
If oDocuments.Count = 1 Then
|
||||
Try
|
||||
Dim oSQLDRList = $"Select COALESCE(IN_WORK_USER,'') IN_WORK_USER, COALESCE(IN_WORK_COMMENT,'') IN_WORK_COMMENT,IN_WORK FROM TBPMO_DOCRESULT_LIST where DocID = {oDocuments.First.DocId}"
|
||||
Dim oSQLDRList = $"Select COALESCE(IN_WORK_USER,'') IN_WORK_USER, COALESCE(IN_WORK_COMMENT,'') IN_WORK_COMMENT,IN_WORK FROM TBPMO_DOCRESULT_LIST WITH (NOLOCK) where DocID = {oDocuments.First.DocId}"
|
||||
Dim oDT As DataTable = MYDB_ECM.GetDatatable(oSQLDRList)
|
||||
If Not IsNothing(oDT) Then
|
||||
If oDT.Rows.Count = 1 Then
|
||||
@@ -3261,6 +3238,7 @@ Public Class frmNodeNavigation
|
||||
ClassFileResult.DocID = oDocuments.First.DocId
|
||||
ClassFileResult.ParentID = oDocuments.First.ParentID
|
||||
ClassFileResult.FileName = oDocuments.First.Filename
|
||||
ClassFileResult.DocumentPath = oDocuments.First.DocPath
|
||||
frmWM_CreateVersion.ShowDialog()
|
||||
Await RUN_DOCSEARCH(True)
|
||||
Else
|
||||
@@ -3783,7 +3761,7 @@ Public Class frmNodeNavigation
|
||||
Dim oDElWMFile As Boolean = False
|
||||
Dim oCountLinks As Integer
|
||||
If Not IsNothing(oDoc.DocId) Then
|
||||
oCountLinks = MYDB_ECM.GetScalarValue("SELECT COUNT(GUID) FROM TBPMO_DOC_RECORD_LINK WHERE DOC_ID = " & oDoc.DocId)
|
||||
oCountLinks = MYDB_ECM.GetScalarValue("SELECT COUNT(GUID) FROM TBPMO_DOC_RECORD_LINK WITH (NOLOCK) WHERE DOC_ID = " & oDoc.DocId)
|
||||
If oCountLinks > 1 And CURRENT_SEARCH_TYPE = "RECORD" Then
|
||||
msg = "Diese Datei ist noch mit anderen Datensätzen verknüpft! Wollen Sie diese Verknüpfungen ebenfalls löschen?"
|
||||
If USER_LANGUAGE <> "de-DE" Then
|
||||
@@ -3839,7 +3817,7 @@ Public Class frmNodeNavigation
|
||||
|
||||
Private Sub TimerFileHandle_Tick(sender As Object, e As EventArgs) Handles TimerFileHandle.Tick
|
||||
Try
|
||||
Dim oSql = $"SELECT GUID FROM TBPMO_DOC_USER_REFRESH_VIEW WHERE USER_ID IN ({USER_GUID},0) AND REFRESHED_WHEN IS NULL"
|
||||
Dim oSql = $"SELECT GUID FROM TBPMO_DOC_USER_REFRESH_VIEW WITH (NOLOCK) WHERE USER_ID IN ({USER_GUID},0) AND REFRESHED_WHEN IS NULL"
|
||||
Dim oDTGUID As DataTable = MYDB_ECM.GetDatatable(oSql)
|
||||
If oDTGUID.Rows.Count >= 1 Then
|
||||
Dim omsg = "Attention: The DocID of one document changed or a document has been versioned! The DocSearch has been refreshed!"
|
||||
@@ -3984,7 +3962,7 @@ Public Class frmNodeNavigation
|
||||
If mySelectedDocs.Count = 1 Then
|
||||
Dim oDocId As Integer = mySelectedDocs.First.DocId
|
||||
Dim oJumpToDocSQL = String.Format("DECLARE @PID BIGINT
|
||||
SELECT @PID = dwParentID FROM TBPMO_DOCRESULT_LIST WHERE DocID = {0}
|
||||
SELECT @PID = dwParentID FROM TBPMO_DOCRESULT_LIST WITH (NOLOCK) WHERE DocID = {0}
|
||||
SELECT GUID FROM VWPMO_STRUCTURE_NODES WHERE ENTITY_ID = {1} AND ISNUMERIC(ID1) = 1 AND ID1 = @PID", oDocId, OF_FILESTORE_ENTITY)
|
||||
Dim ojumpID As Integer = MYDB_ECM.GetScalarValue(oJumpToDocSQL)
|
||||
If Not IsNothing(ojumpID) AndAlso ojumpID <> 0 Then
|
||||
|
||||
@@ -13,11 +13,11 @@ Public Class frmWM_CreateVersion
|
||||
'Dim odwVersionId = MYDB_ECM.GetScalarValue(oSql)
|
||||
'Dim oInsert = $"INSERT INTO TBPMO_DOC_ID_CHANGED (USER_ID,PROCESS_ID,VERSION_ID,OLD_DOC_ID,DOC_PATH) VALUES ({USER_GUID},'{ProcID.ToString}',{odwVersionId},{BW_DocID},'{BW_DocPath}')"
|
||||
'MYDB_ECM.ExecuteNonQuery(oInsert)
|
||||
Dim sql = $"SELECT DocID from VWPMO_DOC_SYNC Where dwParentID = {ClassFileResult.ParentID} and Filename = '{ClassFileResult.FileName}'"
|
||||
Dim VERSION = MYDB_ECM.GetScalarValue(sql)
|
||||
If Not IsNothing(VERSION) Then
|
||||
VERSION = VERSION + 1
|
||||
Dim upd = String.Format("UPDATE TBPMO_DOCRESULT_LIST SET Version = {0},Change_DateTime = GETDATE() WHERE DocID = {1}", VERSION, ClassFileResult.DocID)
|
||||
Dim sql = $"SELECT Version from VWPMO_DOC_SYNC Where dwParentID = {ClassFileResult.ParentID} and Filename = '{ClassFileResult.FileName}'"
|
||||
Dim oVERSION = MYDB_ECM.GetScalarValue(sql)
|
||||
If Not IsNothing(oVERSION) Then
|
||||
oVERSION = oVERSION
|
||||
Dim upd = String.Format("UPDATE TBPMO_DOCRESULT_LIST SET Version = {0},Change_DateTime = GETDATE() WHERE DocID = {1}", oVERSION, ClassFileResult.DocID)
|
||||
MYDB_ECM.ExecuteNonQuery(upd)
|
||||
|
||||
End If
|
||||
|
||||
@@ -9,8 +9,6 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RecordOrganizer_RightManage
|
||||
EndProject
|
||||
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup_NoUpdaterVS19", "Setup_NoUpdaterVS19\Setup_NoUpdaterVS19.wixproj", "{A7F7585A-C46A-4436-9F6E-17629325CE58}"
|
||||
EndProject
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Windream", "..\..\..\2_DLL Projekte\DDModules\Windream\Windream.vbproj", "{C602BA85-5E75-6E19-C485-79D912038170}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
CD_ROM|Any CPU = CD_ROM|Any CPU
|
||||
@@ -143,46 +141,6 @@ Global
|
||||
{A7F7585A-C46A-4436-9F6E-17629325CE58}.SingleImage|x64.Build.0 = Release|x86
|
||||
{A7F7585A-C46A-4436-9F6E-17629325CE58}.SingleImage|x86.ActiveCfg = Release|x86
|
||||
{A7F7585A-C46A-4436-9F6E-17629325CE58}.SingleImage|x86.Build.0 = Release|x86
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|x64.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|x64.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|x86.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|x86.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|Any CPU.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|x64.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|x64.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|x86.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|x86.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Release|x64.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.Release|x86.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|x64.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|x64.Build.0 = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|x86.ActiveCfg = Release|Any CPU
|
||||
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
Reference in New Issue
Block a user