This commit is contained in:
Digital Data - Marlon Schreiber
2018-02-06 10:28:02 +01:00
parent ef06120f13
commit 17946f1a19
68 changed files with 4065 additions and 3630 deletions

View File

@@ -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