ms
This commit is contained in:
@@ -12,6 +12,7 @@ Public Class ClassWindreamDocGrid
|
||||
'Public Shared RESULT_OBJECTTYPE As String
|
||||
Public Shared SELECTED_INWORK As Boolean
|
||||
Public Shared SELECTED_DOC_ID As Integer
|
||||
Public Shared SELECTED_DOC_RIGHT As Integer
|
||||
'Public Shared RESULT_DISPLAYNAME As String
|
||||
Public Shared RESULT_CONFIG_IDS As Hashtable
|
||||
Private Shared DATE_COLUMNS As New List(Of String)
|
||||
@@ -35,6 +36,7 @@ Public Class ClassWindreamDocGrid
|
||||
table.Columns.Add("OBJECTTYPE", GetType(System.String))
|
||||
table.Columns.Add("INWORK", GetType(System.Boolean))
|
||||
table.Columns.Add("DISPLAYNAME", GetType(System.String))
|
||||
table.Columns.Add("ACCESS_RIGHT", GetType(Integer))
|
||||
DT_RESULTFILES = table
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
@@ -49,7 +51,7 @@ Public Class ClassWindreamDocGrid
|
||||
If Init_Table() = True Then
|
||||
SELECTED_DOC_ID = 0
|
||||
Console.WriteLine("gridView.SelectedRowsCount: " & gridView.SelectedRowsCount.ToString)
|
||||
If gridView.SelectedRowsCount > 1 Then
|
||||
If gridView.SelectedRowsCount >= 1 Then
|
||||
DT_RESULTFILES.Clear()
|
||||
For Each row In gridView.GetSelectedRows
|
||||
Dim newRow As DataRow = DT_RESULTFILES.NewRow()
|
||||
@@ -62,6 +64,12 @@ Public Class ClassWindreamDocGrid
|
||||
newRow("DOC_ID") = 0
|
||||
SELECTED_DOC_ID = 0
|
||||
End Try
|
||||
Try
|
||||
SELECTED_DOC_RIGHT = gridView.GetRowCellValue(row, "ACCESS_RIGHT")
|
||||
newRow("ACCESS_RIGHT") = gridView.GetRowCellValue(row, SELECTED_DOC_RIGHT)
|
||||
Catch ex As Exception
|
||||
newRow("ACCESS_RIGHT") = 1
|
||||
End Try
|
||||
Try
|
||||
SELECTED_DOC_PATH = gridView.GetRowCellValue(row, "FULLPATH")
|
||||
newRow("DOC_PATH") = gridView.GetRowCellValue(row, "FULLPATH")
|
||||
@@ -178,53 +186,73 @@ Public Class ClassWindreamDocGrid
|
||||
|
||||
' Neues Dataset für Master- und Detail-Tabelle erstellen
|
||||
Dim ds As New DataSet()
|
||||
Dim DT_DETAILS_SQL
|
||||
|
||||
'"FROM TBPMO_DOC_VALUES T INNER JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 ON T.CONFIG_ID = T1.GUID WHERE T1.ENTITY_ID = {0} AND T1.LANGUAGE = '{1}' AND T.RECORD_ID = {2} ORDER BY T.DocID, T1.SEQUENCE", CURRENT_ENTITY_ID, USER_LANGUAGE, RECORD_ID)
|
||||
Dim DT_DETAILS_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 " &
|
||||
Select Case CURRENT_SEARCH_TYPE
|
||||
Case "NODE_DOWN"
|
||||
DT_DETAILS_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 WHERE T1.ENTITY_ID = {0} AND LANGUAGE = '{1}' AND T1.CONFIG_COLUMNS = 1", CURRENT_ENTITY_ID, USER_LANGUAGE)
|
||||
|
||||
Case Else
|
||||
DT_DETAILS_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 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)
|
||||
|
||||
End Select
|
||||
'"FROM TBPMO_DOC_VALUES T INNER JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 ON T.CONFIG_ID = T1.GUID WHERE T1.ENTITY_ID = {0} AND T1.LANGUAGE = '{1}' AND T.RECORD_ID = {2} ORDER BY T.DocID, T1.SEQUENCE", CURRENT_ENTITY_ID, USER_LANGUAGE, RECORD_ID)
|
||||
|
||||
Dim DT_DETAILS As DataTable = ClassDatabase.Return_Datatable(DT_DETAILS_SQL, True)
|
||||
|
||||
Try
|
||||
' Werte für Konfigurierte Spalten aus TBPMO_DOC_VALUES auslesen und Zellenweise einfügen
|
||||
For Each row As DataRow In DT_RESULT.Rows
|
||||
For Each col As DataColumn In DT_RESULT.Columns
|
||||
Dim colName As String = col.ColumnName
|
||||
Dim docId As Integer = row.Item("DocID")
|
||||
Dim configId As Integer = RESULT_CONFIG_IDS.Item(col.ColumnName)
|
||||
|
||||
' Werte für Konfigurierte Spalten aus TBPMO_DOC_VALUES auslesen und Zellenweise einfügen
|
||||
For Each row As DataRow In DT_RESULT.Rows
|
||||
For Each col As DataColumn In DT_RESULT.Columns
|
||||
Dim colName As String = col.ColumnName
|
||||
Dim docId As Integer = row.Item("DocID")
|
||||
Dim configId As Integer = RESULT_CONFIG_IDS.Item(col.ColumnName)
|
||||
If configId <> 0 Then
|
||||
Dim value As String = ""
|
||||
|
||||
If configId <> 0 Then
|
||||
Dim value As String = ""
|
||||
Try
|
||||
value = ClassDatabase.Execute_Scalar(String.Format("SELECT VALUE FROM TBPMO_DOC_VALUES WHERE CONFIG_ID = {0} AND DocID = {1}", configId, docId))
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(String.Format(">> Attention: Could not get Value from TBPMO_DOC_VALUES for ConfigId[{0}], DocId[{1}]: ", configId, docId) & ex.Message, False)
|
||||
End Try
|
||||
|
||||
Try
|
||||
value = ClassDatabase.Execute_Scalar(String.Format("SELECT VALUE FROM TBPMO_DOC_VALUES WHERE CONFIG_ID = {0} AND DocID = {1}", configId, docId))
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(String.Format(">> Attention: Could not get Value from TBPMO_DOC_VALUES for ConfigId[{0}], DocId[{1}]: ", configId, docId) & ex.Message, False)
|
||||
End Try
|
||||
|
||||
row.Item(colName) = value
|
||||
End If
|
||||
row.Item(colName) = value
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
Next
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(">> Attention: Could not load values from TBPMO_DOC_VALUES: " & ex.Message, False)
|
||||
End Try
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Values loaded...", False)
|
||||
Try
|
||||
' Tabellen zum DataSet hinzufügen
|
||||
ds.Tables.Add(DT_RESULT)
|
||||
ds.Tables.Add(DT_DETAILS)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> tables added to ds.Tables...", False)
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(">> Attention: Could not Add tables to ds.Tables: " & ex.Message, False)
|
||||
End Try
|
||||
|
||||
' Tabellen zum DataSet hinzufügen
|
||||
ds.Tables.Add(DT_RESULT)
|
||||
ds.Tables.Add(DT_DETAILS)
|
||||
|
||||
Dim resultTable As DataTable = ds.Tables(0)
|
||||
Dim detailsTable As DataTable = ds.Tables(1)
|
||||
|
||||
' Relation `docIdDetails` erstellen
|
||||
Dim parentColumn As DataColumn = resultTable.Columns("docId")
|
||||
Dim childColumn As DataColumn = detailsTable.Columns("docId")
|
||||
|
||||
' Unique Constraint für DT_RESULT auf Spalte `docId` erstellen
|
||||
Dim uniqueConstraint As UniqueConstraint = New UniqueConstraint(parentColumn)
|
||||
resultTable.Constraints.Add(uniqueConstraint)
|
||||
|
||||
Try
|
||||
Dim resultTable As DataTable = ds.Tables(0)
|
||||
Dim detailsTable As DataTable = ds.Tables(1)
|
||||
|
||||
' Relation `docIdDetails` erstellen
|
||||
Dim parentColumn As DataColumn = resultTable.Columns("docId")
|
||||
Dim childColumn As DataColumn = detailsTable.Columns("docId")
|
||||
|
||||
' Unique Constraint für DT_RESULT auf Spalte `docId` erstellen
|
||||
Dim uniqueConstraint As UniqueConstraint = New UniqueConstraint(parentColumn)
|
||||
resultTable.Constraints.Add(uniqueConstraint)
|
||||
|
||||
' Parameter `createConstraints` auf false setzen, um erstellung eines unsinnigen
|
||||
' `foreignKeyConstraints` zu verhindern
|
||||
ds.Relations.Add("docIdDetails", parentColumn, childColumn, False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> relationdocIdDetails created...", False)
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(">> Could not set master-detail Relation DocSearch: " & ex.Message, False)
|
||||
End Try
|
||||
|
||||
Reference in New Issue
Block a user