MS_1708
This commit is contained in:
299
app/DD-Record-Organiser/ClassDOC_SEARCH.vb
Normal file
299
app/DD-Record-Organiser/ClassDOC_SEARCH.vb
Normal file
@@ -0,0 +1,299 @@
|
||||
Imports System.IO
|
||||
|
||||
Public Class ClassDOC_SEARCH
|
||||
Private Shared DT_RESULTLIST_OPTIONS As DataTable
|
||||
Private Shared ENTITY_ID As Integer
|
||||
Private Shared RECORD_ID As Integer
|
||||
Private Shared Function GET_DOCSEARCH_DATATABLE(Type As String)
|
||||
Try
|
||||
Dim OPTION1
|
||||
Dim OPTION2
|
||||
Dim OPTION3
|
||||
Dim OPTION4
|
||||
Dim OPTION5
|
||||
If DT_RESULTLIST_OPTIONS.Rows.Count = 0 Then
|
||||
OPTION1 = 0
|
||||
OPTION2 = 0
|
||||
OPTION3 = 0
|
||||
OPTION4 = 0
|
||||
OPTION5 = 0
|
||||
Else
|
||||
OPTION1 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION1_CTRL")
|
||||
OPTION2 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION2_CTRL")
|
||||
OPTION3 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION3_CTRL")
|
||||
OPTION4 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION4_CTRL")
|
||||
OPTION5 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION5_CTRL")
|
||||
End If
|
||||
|
||||
Dim SQL_DOC_SEARCH
|
||||
If Type = "ENTITY" Then
|
||||
' SQL_DOC_SEARCH = String.Format("SELECT * ," & _
|
||||
' "(CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}) " & _
|
||||
' "WHEN {1} THEN " & _
|
||||
' " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {2} AND RECORD_ID = {0}) " & _
|
||||
' "ELSE '' END) AS OPTION1," & _
|
||||
' "CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = 3305) " & _
|
||||
' "WHEN {1} THEN " & _
|
||||
' " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {3} AND RECORD_ID = {0}) " & _
|
||||
' "ELSE '' END AS OPTION2," & _
|
||||
' "CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = 3305) " & _
|
||||
' "WHEN {1} THEN " & _
|
||||
' " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {4} AND RECORD_ID = {0}) " & _
|
||||
' "ELSE '' END AS OPTION3," & _
|
||||
' "CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = 3305) " & _
|
||||
' "WHEN {1} THEN " & _
|
||||
' " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {5} AND RECORD_ID = {0}) " & _
|
||||
' "ELSE '' END AS OPTION4 " & _
|
||||
'"FROM VWPMO_WD_DOC_SEARCH WHERE ENTITY_ID LIKE '%#{1}%'", RECORD_ID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4)
|
||||
SQL_DOC_SEARCH = String.Format("SELECT * ," & _
|
||||
"CASE " & _
|
||||
"WHEN [ENTITY_ID] = {1} THEN " & _
|
||||
" (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {2} AND RECORD_ID = {0}) " & _
|
||||
"ELSE '' END AS OPTION1," & _
|
||||
"CASE " & _
|
||||
"WHEN [ENTITY_ID] = {1} THEN " & _
|
||||
" (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {3} AND RECORD_ID = {0}) " & _
|
||||
"ELSE '' END AS OPTION2," & _
|
||||
"CASE " & _
|
||||
"WHEN [ENTITY_ID] = {1} THEN " & _
|
||||
" (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {4} AND RECORD_ID = {0}) " & _
|
||||
"ELSE '' END AS OPTION3," & _
|
||||
"CASE " & _
|
||||
"WHEN [ENTITY_ID] = {1} THEN " & _
|
||||
" (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {5} AND RECORD_ID = {0}) " & _
|
||||
"ELSE '' END AS OPTION4 " & _
|
||||
"FROM VWPMO_WD_DOC_SEARCH WHERE ENTITY_ID = {1} AND DocID IN (SELECT dwObjectID FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {6})", RECORD_ID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4, USERID_FK_INT_ECM)
|
||||
If CURRENT_ENTITYSQL.ToUpper.Contains("WHERE") Then
|
||||
Dim where = CURRENT_ENTITYSQL.ToUpper.Replace("SELECT T.*", "SELECT '#' + CONVERT(VARCHAR(10),T.[Record-ID]) + '#'")
|
||||
SQL_DOC_SEARCH = SQL_DOC_SEARCH & String.Format(" AND RECORD_ID IN ({0})", where)
|
||||
End If
|
||||
Else
|
||||
SQL_DOC_SEARCH = String.Format("SELECT * ," & _
|
||||
"(CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}) " & _
|
||||
"WHEN {1} THEN " & _
|
||||
" (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {2} AND RECORD_ID = {0}) " & _
|
||||
"ELSE '' END) AS OPTION1," & _
|
||||
"CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}) " & _
|
||||
"WHEN {1} THEN " & _
|
||||
" (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {3} AND RECORD_ID = {0}) " & _
|
||||
"ELSE '' END AS OPTION2," & _
|
||||
"CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}) " & _
|
||||
"WHEN {1} THEN " & _
|
||||
" (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {4} AND RECORD_ID = {0}) " & _
|
||||
"ELSE '' END AS OPTION3," & _
|
||||
"CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}) " & _
|
||||
"WHEN {1} THEN " & _
|
||||
" (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {5} AND RECORD_ID = {0}) " & _
|
||||
"ELSE '' END AS OPTION4 " & _
|
||||
"FROM VWPMO_WD_DOC_SEARCH WHERE RECORD_ID = {0} AND ENTITY_ID = {1} AND DocID IN (SELECT dwObjectID FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {6})", RECORD_ID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4, USERID_FK_INT_ECM)
|
||||
End If
|
||||
Return ClassDatabase.Return_Datatable_Connection(SQL_DOC_SEARCH, 1)
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Unexpected Error in GET_DOCSEARCH_DATATABLE: " & ex.Message, True)
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function Get_DOC_RESULTTABLE(vDT_RESULTLIST_OPTIONS As DataTable, DT_WINDREAM_RESULTLIST As DataTable, ENT_ID As Integer, REC_ID As Integer, vType As String)
|
||||
Dim COL_ARRAY_RESULTLIST As List(Of String)
|
||||
ENTITY_ID = ENT_ID
|
||||
DT_RESULTLIST_OPTIONS = vDT_RESULTLIST_OPTIONS
|
||||
RECORD_ID = REC_ID
|
||||
Try
|
||||
Dim sw As New Stopwatch
|
||||
sw.Start()
|
||||
Dim elapsed As Double
|
||||
Dim DT_FILE_RESULT As DataTable = GET_DOCSEARCH_DATATABLE(vType)
|
||||
CURRENT_DOC_RESULTS = DT_FILE_RESULT
|
||||
If IsNothing(DT_FILE_RESULT) Then
|
||||
ClassLogger.Add(">> ATTENTION: GET_DOCSEARCH_DATATABLE IS NOTHING!!", False)
|
||||
Return Nothing
|
||||
End If
|
||||
elapsed = sw.Elapsed.TotalSeconds
|
||||
sw.Stop()
|
||||
sw.Reset()
|
||||
Console.WriteLine(">> GET_DOCSEARCH_DATATABLE took " & Format(elapsed, "0.000000000") & " seconds")
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Run GET_DOCSEARCH_DATATABLE took " & Format(elapsed, "0.000000000") & " seconds", False)
|
||||
sw.Start()
|
||||
Dim DTGrid As New DataTable
|
||||
Dim ColArrayDEFINITION As New List(Of String)
|
||||
Try
|
||||
'Die Icon Colum erstellen und konfigurieren
|
||||
Dim colIcon As New System.Data.DataColumn()
|
||||
colIcon.DataType = GetType(Image)
|
||||
colIcon.ColumnName = "ICON"
|
||||
colIcon.Caption = ""
|
||||
DTGrid.Columns.Add(colIcon)
|
||||
'
|
||||
Dim colPath As New System.Data.DataColumn()
|
||||
colPath.DataType = GetType(String)
|
||||
colPath.ColumnName = "FULLPATH"
|
||||
colPath.Caption = "Fullpath"
|
||||
DTGrid.Columns.Add(colPath)
|
||||
|
||||
Dim colOtype As New System.Data.DataColumn()
|
||||
colOtype.DataType = GetType(String)
|
||||
colOtype.ColumnName = "OBJECTTYPE"
|
||||
colOtype.Caption = "Objecttype"
|
||||
DTGrid.Columns.Add(colOtype)
|
||||
Dim colDocID As New System.Data.DataColumn()
|
||||
colDocID.DataType = GetType(String)
|
||||
colDocID.ColumnName = "DocID"
|
||||
colDocID.Caption = "DocID"
|
||||
DTGrid.Columns.Add(colDocID)
|
||||
|
||||
|
||||
If Not DT_WINDREAM_RESULTLIST Is Nothing And DT_WINDREAM_RESULTLIST.Rows.Count >= 1 Then
|
||||
Dim ColCount As Integer = 1
|
||||
For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows
|
||||
Dim ColumnName = rw.Item("HEADER_CAPTION")
|
||||
Dim Width = rw.Item("WIDTH")
|
||||
If IsNothing(Width) Or IsDBNull(Width) Then
|
||||
Width = 200
|
||||
End If
|
||||
'Die Spalte definieren
|
||||
DTGrid.Columns.Add(ColumnName)
|
||||
ColCount += 1
|
||||
Next
|
||||
'Jetzt das Array zusammenbauen um die Spaltenwerte zu erhalten
|
||||
For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows
|
||||
ColArrayDEFINITION.Add(rw.Item("COLUMN_VIEW"))
|
||||
Next
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in Construct Datatable for GridResult: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
elapsed = sw.Elapsed.TotalSeconds
|
||||
sw.Stop()
|
||||
sw.Reset()
|
||||
Console.WriteLine(">> DTGrid-Definition took " & Format(elapsed, "0.000000000") & " seconds")
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> DTGrid-Definition took " & Format(elapsed, "0.000000000") & " seconds", False)
|
||||
sw.Start()
|
||||
COL_ARRAY_RESULTLIST = ColArrayDEFINITION
|
||||
|
||||
For Each FILE_ROW As DataRow In DT_FILE_RESULT.Rows
|
||||
|
||||
Dim fullpath = FILE_ROW.Item("FULL_FILENAME")
|
||||
Dim objecttype = FILE_ROW.Item("OBJECTTYPE")
|
||||
Dim DocID = FILE_ROW.Item("DocID")
|
||||
'Dim Folderpath = Path.GetDirectoryName(fullpath)
|
||||
Dim filename = Path.GetFileName(fullpath)
|
||||
Dim extension = Path.GetExtension(fullpath)
|
||||
' Try
|
||||
Dim NewRow As DataRow
|
||||
NewRow = DTGrid.NewRow()
|
||||
|
||||
'Icon zuweisen
|
||||
Select Case extension.ToUpper
|
||||
Case ".csv".ToUpper
|
||||
NewRow.Item(0) = My.Resources.doc_excel_csv
|
||||
Case ".txt".ToUpper
|
||||
NewRow.Item(0) = My.Resources.text
|
||||
Case ".pdf".ToUpper
|
||||
NewRow.Item(0) = My.Resources.pdf
|
||||
Case ".doc".ToUpper
|
||||
NewRow.Item(0) = My.Resources.doc
|
||||
Case ".docx".ToUpper
|
||||
NewRow.Item(0) = My.Resources.doc
|
||||
Case ".xls".ToUpper
|
||||
NewRow.Item(0) = My.Resources.xls
|
||||
Case ".xlsx".ToUpper
|
||||
NewRow.Item(0) = My.Resources.xls
|
||||
Case ".ppt".ToUpper
|
||||
NewRow.Item(0) = My.Resources.ppt
|
||||
Case ".pptx".ToUpper
|
||||
NewRow.Item(0) = My.Resources.ppt
|
||||
Case ".dwg".ToUpper
|
||||
NewRow.Item(0) = My.Resources.dwg
|
||||
Case Else
|
||||
NewRow.Item(0) = My.Resources._blank
|
||||
End Select
|
||||
'Den Filepath mitgeben
|
||||
NewRow.Item(1) = fullpath
|
||||
NewRow.Item(2) = objecttype
|
||||
NewRow.Item(3) = DocID
|
||||
Dim i = 4 'Fängt bei 2 an, um die definierten Spalten zu überspringen
|
||||
For Each Colname As String In ColArrayDEFINITION
|
||||
Dim rowvalue
|
||||
Try
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> now rowvalue for Colname '" & Colname & "'", False)
|
||||
rowvalue = FILE_ROW.Item(Colname)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> rowvalue : '" & rowvalue.ToString & "'", False)
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Unexpected Error in GetVariableValue for Column '" & Colname & "- Error: " & ex.Message)
|
||||
If Colname.ToString.StartsWith("doct") Or Colname.ToString.StartsWith("Dokum") Then
|
||||
rowvalue = ""
|
||||
Else
|
||||
rowvalue = "Error getting rowvalue"
|
||||
End If
|
||||
End Try
|
||||
NewRow.Item(i) = rowvalue.ToString
|
||||
i += 1
|
||||
Next
|
||||
DTGrid.Rows.Add(NewRow)
|
||||
' Catch ex As Exception
|
||||
' ClassLogger.Add("Unexpected Error in CreateRow for doc '" & filename & "- Error: " & ex.Message)
|
||||
' End Try
|
||||
Next
|
||||
|
||||
|
||||
Return DTGrid
|
||||
|
||||
elapsed = sw.Elapsed.TotalSeconds
|
||||
sw.Stop()
|
||||
sw.Reset()
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Run Get_DOC_RESULTTABLE took " & Format(elapsed, "0.000000000") & " seconds", False)
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in Get_DOC_RESULTTABLE: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Shared Function REFRESH_DOC_TABLE_RESULTS()
|
||||
Try
|
||||
Dim execute = "EXEC[dbo].[PRPMO_DOCRESULT_CHANGE]"
|
||||
Return ClassDatabase.Execute_non_Query_withConn(execute, 1)
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in REFRESH_TABLE_RESULTS: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function SET_RECORD_DOCID_LINK(DOC_ID As Integer, RECORD_ID As Integer)
|
||||
Try
|
||||
Dim ins = String.Format("INSERT INTO TBPMO_DOC_RECORD_LINK (DOC_ID, RECORD_ID,ADDED_WHO) VALUES ({0},{1},'{2}')", DOC_ID, RECORD_ID, Environment.UserName)
|
||||
Return ClassDatabase.Execute_non_Query(ins)
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in SET_RECORD_DOCID_LINK: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function SET_WD_RIGHTS(ByVal RESULT_DOC_PATH)
|
||||
Try
|
||||
DD_Rights.ClassLogger.Init(Application.UserAppDataPath() & "\Log", Environment.UserName)
|
||||
If DD_Rights.ClassDatabase.Init(MyConnectionString) = True Then
|
||||
If DD_Rights.ClassRights.Init(ENTITY_ID, LogErrorsOnly) = True Then
|
||||
If DD_Rights.ClassRights.Collect_Users(RECORD_ID) = True Then
|
||||
If DD_Rights.ClassRights.File_DeleteAndSetRight(RESULT_DOC_PATH, True) Then
|
||||
If DD_Rights.ClassRights.MSG_RESULT <> "" Then
|
||||
MsgBox("Unexpected Errors in setting rights: " & vbNewLine & DD_Rights.ClassRights.MSG_RESULT, MsgBoxStyle.Exclamation)
|
||||
Return False
|
||||
Else
|
||||
Return True
|
||||
End If
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in SET_WD_RIGHTS: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
End Class
|
||||
Reference in New Issue
Block a user