This commit is contained in:
SchreiberM
2016-06-06 16:59:05 +02:00
parent 060c375774
commit 65788f29f8
2 changed files with 521 additions and 308 deletions

View File

@@ -145,6 +145,41 @@ Public Class ClassDatabase
Return Nothing
End Try
End Function
Public Shared Function Return_Datatable_Connection(Select_anweisung As String, connectionId As Integer, Optional userInput As Boolean = False)
Try
Dim sw As New SW("Return_Datatable_Connection: " & Select_anweisung)
Dim connectionString As String
connectionString = ClassDatabase.GetConnectionString(connectionId)
If connectionString <> "" Then
Dim SQLconnect As New SqlClient.SqlConnection
Dim SQLcommand As SqlClient.SqlCommand
SQLconnect.ConnectionString = connectionString
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = Select_anweisung
Dim adapter1 As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(SQLcommand)
Dim dt As DataTable = New DataTable()
adapter1.Fill(dt)
SQLconnect.Close()
sw.Done()
Return dt
Else
Return Nothing
End If
Catch ex As Exception
If userInput = True Then
MsgBox("Error in Return_Datatable_Connection - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & Select_anweisung, MsgBoxStyle.Critical)
End If
ClassLogger.Add("Error in Return_Datatable_Connection: " & ex.Message, True)
ClassLogger.Add("#SQL: " & Select_anweisung, False)
Return Nothing
End Try
End Function
Public Shared Function Execute_non_Query(ExecuteCMD As String, Optional Userinput As Boolean = False)
Try
Dim sw As New SW("Execute_non_Query: " & ExecuteCMD)

View File

@@ -117,6 +117,11 @@ Public Class frmConstructor_Main
Private FOLLOW_UPisActive As Boolean = False
Private DT_FU_Record As DataTable
Private DT_FU_ENTITY As DataTable
Private DT_WINDREAM_RESULTLIST As DataTable
Private DT_TBPMO_FORM_VIEW As DataTable
Private FOLL_UP_RECORD_DEFINED As Boolean = False
Private FOLL_UP_DATE_CTRL_ID As Integer
Private FOLL_UP_DONE_CTRL_ID As Integer
@@ -235,6 +240,13 @@ Public Class frmConstructor_Main
'Die Standards ein/ausblenden
End If
Load_Tree_View(CONSTRUCTORID)
Dim gridGUID = 2
If USER_LANGUAGE <> "de-DE" Then
gridGUID = 3
End If
Dim sql_ResultList = "select * from TBPMO_WINDREAM_RESULTLIST_CONFIG where guid = " & gridGUID
DT_WINDREAM_RESULTLIST = ClassDatabase.Return_Datatable(sql_ResultList, "GET RESULTLIST KONFIG")
FORM_LOADED = True
Dim elapsed As Double
elapsed = sw.Elapsed.TotalSeconds
@@ -1257,7 +1269,7 @@ Public Class frmConstructor_Main
sw.Start()
Dim elapsed As Double
FORMVIEW_ID = frmview_id
ENTITY_ID = ClassDatabase.Execute_Scalar("SELECT FORM_ID FROM TBPMO_FORM_VIEW WHERE GUID = " & frmview_id)
ENTITY_ID = DT_TBPMO_FORM_VIEW.Rows(0).Item("FORM_ID") 'ClassDatabase.Execute_Scalar("SELECT FORM_ID FROM TBPMO_FORM_VIEW WHERE GUID = " & frmview_id)
CtrlBuilder = New ClassControlBuilder(pnlDetails)
'LoadControls(thisFormId)
CtrlCommandUI = New ClassControlCommandsUI(CtrlBuilder,
@@ -2025,7 +2037,9 @@ Public Class frmConstructor_Main
_ENTITYSTRING = ACT_EBENE_STRING
CURRENT_PARENT_RECORD_ID = PARENT_RECORDID
act_FormViewID = ClassDatabase.Execute_Scalar("SELECT GUID FROM TBPMO_FORM_VIEW where FORM_ID = " & ENTITY_ID)
DT_TBPMO_FORM_VIEW = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_FORM_VIEW WHERE FORM_ID = " & ENTITY_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID)
act_FormViewID = DT_TBPMO_FORM_VIEW.Rows(0).Item("GUID") 'ClassDatabase.Execute_Scalar("SELECT GUID FROM TBPMO_FORM_VIEW where FORM_ID = " & ENTITY_ID)
If EDIT_STATE = EditState.None Then
'Die Controls der Entität laden
@@ -2121,13 +2135,15 @@ Public Class frmConstructor_Main
grvwTiles.FocusedRowHandle = -1
grvwTiles.OptionsTiles.HighlightFocusedTileOnGridLoad = False
End If
Dim RecLoaded As Boolean = False
If LOAD_DIRECT = True Then
Load_Record_Direct()
RecLoaded = True
End If
If ENTITY_RECORD_COUNT = 1 Then
Load_Record_Direct()
If RecLoaded = False Then
Load_Record_Direct()
End If
End If
' Dim sql1 = _ENTITYSQL
' sql1.Replace("T.*", "TOP 1 [Record-ID]")
@@ -2200,6 +2216,7 @@ Public Class frmConstructor_Main
'Daten zu Record in jedem Fall laden
'ClassControlValues.LoadControlValues(SELECTED_RECORD_ID, ENTITY_ID, CtrlBuilder.AllControls)
CtrlBuilder.WatchRecordChanges = False
ClassControlValues.LoadControlValuesListWithPlaceholders(ENTITY_ID, Grid_RecordID, PARENT_RECORDID, CtrlBuilder.AllControls, ENTITY_ID)
ClassControlValues.LoadControlValues(SELECTED_RECORD_ID, PARENT_RECORDID, ENTITY_ID, CtrlBuilder.AllControls, ENTITY_ID)
CtrlBuilder.WatchRecordChanges = True
' Laden der Daten bedeutet nicht dass Daten vom Benutzer geändert wurden!
@@ -3078,15 +3095,17 @@ Public Class frmConstructor_Main
#Region "WindreamSuche"
Private Function Check_windream_Show(FORM_VIEW_ID As Integer)
Try
Dim sql = "SELECT * FROM TBPMO_FORM_VIEW WHERE WINDREAM_SEARCH <> '' AND GUID = " & FORM_VIEW_ID
Dim DTWD As DataTable = ClassDatabase.Return_Datatable(sql)
If DTWD.Rows.Count = 1 Then
'Dim sql = "SELECT * FROM TBPMO_FORM_VIEW WHERE WINDREAM_SEARCH <> '' AND GUID = " & FORM_VIEW_ID
'Dim DTWD As DataTable = ClassDatabase.Return_Datatable(sql)
Dim wdsearch = DT_TBPMO_FORM_VIEW.Rows(0).Item("WINDREAM_SEARCH")
If wdsearch <> "" Then
TabWindream.PageVisible = True
If IsDBNull(DTWD.Rows(0).Item(0)) Then
windream_Docshow = False
WindreamsucheNeuLadenToolStripMenuItem.Visible = False
Exit Function
End If
'If IsDBNull(DTWD.Rows(0).Item(0)) Then
' windream_Docshow = False
' WindreamsucheNeuLadenToolStripMenuItem.Visible = False
' Exit Function
'End If
WindreamsucheNeuLadenToolStripMenuItem.Visible = True
windream_Docshow = True
If windream_inited = False Then
@@ -3608,312 +3627,471 @@ Public Class frmConstructor_Main
sw.Start()
Dim elapsed As Double
Dim Basesearch As String
Try
Dim windream_temp_search
If Not windream_Docshow = True Or Sett_LoadWD_Docs = False Then
Exit Sub
End If
Cursor = Cursors.WaitCursor
GridControlDocSearch.DataSource = Nothing
Dim DTWD As DataTable
Dim sql = "SELECT WINDREAM_SEARCH,SEARCH_PATTERN1,SEARCH_PATTERN2,SEARCH_PATTERN3,SEARCH_PATTERN4,SEARCH_PATTERN5 FROM TBPMO_FORM_VIEW WHERE WINDREAM_SEARCH <> '' AND FORM_ID = " & ENTITY_ID
DTWD = ClassDatabase.Return_Datatable(sql)
If DTWD.Rows.Count = 1 Then
If IsDBNull(DTWD.Rows(0).Item(0)) Then
Cursor = Cursors.Default
Exit Sub
End If
Else
Cursor = Cursors.Default
Exit Sub
End If
'Die SearchPatterns durchlaufen und zwischenspeichern
If IsDBNull(DTWD.Rows(0).Item(0)) Then
Cursor = Cursors.Default
Exit Sub
End If
Basesearch = DTWD.Rows(0).Item(0)
SP1 = DTWD.Rows(0).Item(1)
If IsDBNull(DTWD.Rows(0).Item(2)) Then
SP2 = ""
Else
SP2 = DTWD.Rows(0).Item(2)
End If
If IsDBNull(DTWD.Rows(0).Item(3)) Then
SP3 = ""
Else
SP3 = DTWD.Rows(0).Item(3)
End If
If IsDBNull(DTWD.Rows(0).Item(4)) Then
SP4 = ""
Else
SP4 = DTWD.Rows(0).Item(4)
End If
If IsDBNull(DTWD.Rows(0).Item(5)) Then
SP5 = ""
Else
SP5 = DTWD.Rows(0).Item(5)
End If
'Eine tempfile generieren
Dim tempFilename1 = My.Computer.FileSystem.GetTempFileName()
'Nur den Filenamen ohne Erweiterung
Dim tempName = Path.GetFileNameWithoutExtension(tempFilename1)
'tempfile lsöchen
If My.Computer.FileSystem.FileExists(tempFilename1) Then
My.Computer.FileSystem.DeleteFile(tempFilename1)
End If
Dim temppath = Path.GetTempPath
Dim EncodingFormat As Encoding
Dim WDUnicode = ClassDatabase.Execute_Scalar("SELECT WD_UNICODE FROM TBPMO_KONFIGURATION WHERE GUID = 1")
If WDUnicode = True Then
EncodingFormat = Encoding.GetEncoding(1252) '1252
If LogErrorsOnly = False Then ClassLogger.Add(" >> Unicode is used (Encoding.GetEncoding(1252))", False)
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> UTF8 (Encoding.GetEncoding(65001))", False)
EncodingFormat = Encoding.GetEncoding(65001)
Dim SQL_DOC_SEARCH = String.Format("SELECT * FROM VWPMO_WD_DOC_SEARCH WHERE [RECORD_ID] = {0}", RECORD_ID)
Dim DT_FILE_RESULT As DataTable = ClassDatabase.Return_Datatable_Connection(SQL_DOC_SEARCH, 1)
If IsNothing(DT_FILE_RESULT) Then
Dim msg = "wrong DocSearch-Configuration - Check logfile"
tslblWindreamView.Text = msg
Exit Sub
End If
If DT_FILE_RESULT.Rows.Count > 0 Then 'Es gibt Suchergebnisse
Dim msg = "Windream-Dokumente für Record: " & RECORD_ID
If USER_LANGUAGE <> "de-DE" Then
msg = "windream-files for record: " & RECORD_ID
End If
Dim fileContents As String
If LogErrorsOnly = False Then ClassLogger.Add(" >> ReadAlltext: " & windream_temp_search, False)
fileContents = My.Computer.FileSystem.ReadAllText(Basesearch, EncodingFormat) ', System.Text.Encoding.Unicode
If LogErrorsOnly = False Then ClassLogger.Add(" >> fileContents geladen", False)
fileContents = fileContents.Replace("Í", "Ö")
Dim _sp1 = SP1
Dim _sp2 = SP2
Dim _sp3 = SP3
Dim _sp4 = SP4
Dim _sp5 = SP5
If _sp1.ToString <> String.Empty Then
_sp1 = Return_SearchPattern(_sp1.ToString)
fileContents = fileContents.Replace("%pattern1%", _sp1)
fileContents = fileContents.Replace("471101", _sp1)
End If
If _sp2.ToString <> String.Empty Then
_sp2 = Return_SearchPattern(_sp2.ToString)
If _sp2 = 0 Then
_sp2 = ""
End If
fileContents = fileContents.Replace("%pattern2%", _sp2)
fileContents = fileContents.Replace("471102", _sp2)
End If
If _sp3.ToString <> String.Empty Then
_sp3 = Return_SearchPattern(_sp3.ToString)
If _sp3 = 0 Then
_sp3 = ""
End If
fileContents = fileContents.Replace("%pattern3%", _sp3)
fileContents = fileContents.Replace("471103", _sp3)
End If
If _sp4.ToString <> String.Empty Then
_sp4 = Return_SearchPattern(_sp4.ToString)
If _sp4 = 0 Then
_sp4 = ""
End If
fileContents = fileContents.Replace("%pattern4%", _sp4)
fileContents = fileContents.Replace("471104", _sp4)
End If
If _sp5.ToString <> String.Empty Then
_sp5 = Return_SearchPattern(_sp5.ToString)
If _sp5 = 0 Then
_sp5 = ""
End If
fileContents = fileContents.Replace("%pattern5%", _sp5)
fileContents = fileContents.Replace("471105", _sp5)
End If
'Die windream File zusammensetzen
windream_temp_search = temppath & tempName & ".wdf"
TEMP_FILES.Add(windream_temp_search)
'Die File schreiben
My.Computer.FileSystem.WriteAllText(windream_temp_search, fileContents, False, EncodingFormat)
My.Computer.FileSystem.WriteAllText(temppath & "SEARCH_COPY.wdf", fileContents, False, EncodingFormat)
' XML-Datei öffnen und laden
Dim Stream As New IO.StreamReader(CStr(windream_temp_search), EncodingFormat)
Dim Reader As New System.Xml.XmlTextReader(Stream)
' XML-Datei initialisieren
Dim xml As New System.Xml.XmlDocument()
' XML-Datei öffnen und laden
xml.Load(Reader)
Reader.Close()
xml.Save(windream_temp_search)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Xml Generiert: " & windream_temp_search, False)
Dim windreamSucheErgebnisse As WINDREAMLib.WMObjects
Try
windreamSucheErgebnisse = ClassWindream.GetSearchDocuments(windream_temp_search)
Catch ex As Exception
MsgBox("Error in windreamSucheErgebnisse:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
elapsed = sw.Elapsed.TotalSeconds
If LogErrorsOnly = False Then ClassLogger.Add(" >> GetSearchDocuments took " & Format(elapsed, "0.000000000") & " seconds", False)
tslblWindreamView.Text = msg
Dim DTGrid As New DataTable
Dim ColArray 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)
'GridViewDoc_Search.Columns.
'TODO: colPath ausblenden
Dim stg As String
If USER_LANGUAGE = "de-DE" Then
stg = "windream-Dateien"
Else
stg = "windream-files"
End If
TabWindream.Text = stg & " (" & windreamSucheErgebnisse.Count & ")"
If windreamSucheErgebnisse.Count > 0 Then 'Es gibt Suchergebnisse
Dim sql_ResultList = "select * from TBPMO_WINDREAM_RESULTLIST_CONFIG where guid = 2"
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql_ResultList, "GET RESULTLIST KONFIG")
Dim ColArray 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)
'GridViewDoc_Search.Columns.
'TODO: colPath ausblenden
If Not DT Is Nothing And DT.Rows.Count = 1 Then
Dim ColCount As Integer = 1
For Each Column As DataColumn In DT.Columns
If Column.ColumnName.StartsWith("COLUMN") And Column.ColumnName.EndsWith("WIDTH") = False Then
Dim sql1 = String.Format("select {0} from TBPMO_WINDREAM_RESULTLIST_CONFIG Where GUID = 2", Column.ColumnName)
Dim ColumnName = ClassDatabase.Execute_Scalar(sql1, True)
If Not IsDBNull(ColumnName) Then
If Not IsDBNull(ColumnName) Or IsNothing(ColumnName) Or ColumnName <> "" Or ColumnName <> "{}" Then
'Jetzt die Spalten aus Array hinzufügen und Breite konfigurieren
sql1 = String.Format("select COLUMN{0}_WIDTH from TBPMO_WINDREAM_RESULTLIST_CONFIG Where GUID = 2", ColCount)
Dim Width = ClassDatabase.Execute_Scalar(sql1, True)
If IsNothing(Width) Or IsDBNull(Width) Then
Width = 200
End If
'Die Spalte definieren
DTGrid.Columns.Add(ColumnName)
ColCount += 1
If Not DT_WINDREAM_RESULTLIST Is Nothing And DT_WINDREAM_RESULTLIST.Rows.Count = 1 Then
Dim ColCount As Integer = 1
For Each Column As DataColumn In DT_WINDREAM_RESULTLIST.Columns
If Column.ColumnName.StartsWith("COLUMN") And Column.ColumnName.EndsWith("WIDTH") = False Then
Dim ColumnName = DT_WINDREAM_RESULTLIST.Rows(0).Item(Column.ColumnName)
If Not IsDBNull(ColumnName) Then
If Not IsDBNull(ColumnName) Or IsNothing(ColumnName) Or ColumnName <> "" Or ColumnName <> "{}" Then
'Jetzt die Spalten aus Array hinzufügen und Breite konfigurieren
Dim Width = DT_WINDREAM_RESULTLIST.Rows(0).Item(String.Format("COLUMN{0}_WIDTH", ColCount))
If IsNothing(Width) Or IsDBNull(Width) Then
Width = 200
End If
'Die Spalte definieren
DTGrid.Columns.Add(ColumnName)
ColCount += 1
End If
End If
Next
'Jetzt das Array zusammenbauen um die Spaltenwerte zu erhalten
ColCount = 1
For Each Column As DataColumn In DT.Columns
If Column.ColumnName = String.Format("COLUMN{0}", ColCount) Then
Dim sql1 = String.Format("select {0} from TBPMO_WINDREAM_RESULTLIST_CONFIG Where GUID = 2", Column.ColumnName)
Dim ColumnName = ClassDatabase.Execute_Scalar(sql1, True)
If Not IsDBNull(ColumnName) Then
If Not IsDBNull(ColumnName) Or IsNothing(ColumnName) Or ColumnName <> "" Or ColumnName <> "{}" Then
'Jetzt die Spalten aus Array hinzufügen und Breite konfigurieren
ColArray.Add(Column.ColumnName)
End If
End If
Next
'Jetzt das Array zusammenbauen um die Spaltenwerte zu erhalten
ColCount = 1
For Each Column As DataColumn In DT_WINDREAM_RESULTLIST.Columns
If Column.ColumnName = String.Format("COLUMN{0}", ColCount) Then
Dim ColumnName = DT_WINDREAM_RESULTLIST.Rows(0).Item(Column.ColumnName)
If Not IsDBNull(ColumnName) Then
If Not IsDBNull(ColumnName) Or IsNothing(ColumnName) Or ColumnName <> "" Or ColumnName <> "{}" Then
'Jetzt die Spalten aus Array hinzufügen und Breite konfigurieren
ColArray.Add(Column.ColumnName)
End If
ColCount += 1
End If
Next
End If
Catch ex As Exception
MsgBox("Unexpected Error in Construct Datatable for GridResult: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
If DTGrid.Columns.Count > 0 Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Datatable Grid created!", False)
'Alle gefundenen Dateien durchlaufen
For Each dok As WMObject In windreamSucheErgebnisse
Dim fullpath = "W:" & dok.aPath
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
Case ".csv"
NewRow.Item(0) = My.Resources.doc_excel_csv
Case ".txt"
NewRow.Item(0) = My.Resources.text
Case ".pdf"
NewRow.Item(0) = My.Resources.pdf
Case ".doc"
NewRow.Item(0) = My.Resources.doc
Case ".docx"
NewRow.Item(0) = My.Resources.doc
Case ".xls"
NewRow.Item(0) = My.Resources.xls
Case ".xlsx"
NewRow.Item(0) = My.Resources.xls
Case ".ppt"
NewRow.Item(0) = My.Resources.ppt
Case ".pptx"
NewRow.Item(0) = My.Resources.ppt
Case ".dwg"
NewRow.Item(0) = My.Resources.dwg
Case Else
NewRow.Item(0) = My.Resources._blank
End Select
'Den Filepath mitgeben
NewRow.Item(1) = fullpath
Dim i = 2 'Fängt bei 2 an, um die ICON Column zu überspringen
For Each Column As String In ColArray
Dim Indexname = DT.Rows(0).Item(Column)
Dim idxvalue
Try
If Indexname.ToString.ToUpper = "Dateiname".ToUpper Then
idxvalue = filename
Else
'windream-Indexwert holen
idxvalue = dok.GetVariableValue(Indexname)
If IsNothing(idxvalue) Then
idxvalue = "-"
End If
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> idxvalue from windream: '" & idxvalue.ToString & "'", False)
Catch ex As Exception
ClassLogger.Add("Unexpected Error in GetVariableValue for Index '" & Indexname & "- Error: " & ex.Message)
If Indexname.ToString.StartsWith("Doct") Or Indexname.ToString.StartsWith("Dokum") Then
idxvalue = ""
Else
idxvalue = "Error getting indexvalue"
End If
End Try
NewRow.Item(i) = idxvalue.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
ColCount += 1
End If
Next
End If
If DTGrid.Rows.Count > 0 Then
GridControlDocSearch.DataSource = DTGrid
' Größe der Icon Column anpassen
GridViewDoc_Search.Columns.Item("ICON").MaxWidth = 24
GridViewDoc_Search.Columns.Item("ICON").MinWidth = 24
GridViewDoc_Search.Columns.Item("FULLPATH").Visible = False
End If
Else
Dim msg = "Windream-Dokumente für Record: " & RECORD_ID & " - Keine Dateien gefunden"
If USER_LANGUAGE <> "de-DE" Then
msg = "windream-files for record: " & RECORD_ID & " - no files found"
End If
tslblWindreamView.Text = "Windream-Dokumente für Record: " & RECORD_ID & " - Keine Dateien gefunden"
'Clear_Windream_ResultList()
End If
Catch ex As Exception
MsgBox("Unexpected Error in Construct Datatable for GridResult: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
For Each row As DataRow In DT_FILE_RESULT.Rows
Cursor = Cursors.Default
Catch ex As Exception
MsgBox("Error in RUN_WDSEARCH_GRID:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
ClassLogger.Add("Unexpected Error in RUN_WDSEARCH_GRID: " & ex.Message)
End Try
Dim fullpath = "W:" & row.Item("FULL_FILENAME")
'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
Case ".csv"
NewRow.Item(0) = My.Resources.doc_excel_csv
Case ".txt"
NewRow.Item(0) = My.Resources.text
Case ".pdf"
NewRow.Item(0) = My.Resources.pdf
Case ".doc"
NewRow.Item(0) = My.Resources.doc
Case ".docx"
NewRow.Item(0) = My.Resources.doc
Case ".xls"
NewRow.Item(0) = My.Resources.xls
Case ".xlsx"
NewRow.Item(0) = My.Resources.xls
Case ".ppt"
NewRow.Item(0) = My.Resources.ppt
Case ".pptx"
NewRow.Item(0) = My.Resources.ppt
Case ".dwg"
NewRow.Item(0) = My.Resources.dwg
Case Else
NewRow.Item(0) = My.Resources._blank
End Select
'Den Filepath mitgeben
NewRow.Item(1) = fullpath
Dim i = 2 'Fängt bei 2 an, um die ICON Column zu überspringen
For Each Column As String In ColArray
Dim Colname = DT_WINDREAM_RESULTLIST.Rows(0).Item(Column)
Dim rowvalue
Try
If Colname = "Dateiname" Or Colname = "filename" Then
rowvalue = filename
ElseIf Colname = "Dokumentart" Or Colname = "doctype" Then
rowvalue = row.Item("Doctype")
ElseIf Colname = "Erstellt" Or Colname = "created" Then
rowvalue = row.Item("Creation_DateTime")
Else
rowvalue = row.Item(Colname)
End If
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
If DTGrid.Rows.Count > 0 Then
GridControlDocSearch.DataSource = DTGrid
' Größe der Icon Column anpassen
GridViewDoc_Search.Columns.Item("ICON").MaxWidth = 24
GridViewDoc_Search.Columns.Item("ICON").MinWidth = 24
GridViewDoc_Search.Columns.Item("FULLPATH").Visible = False
End If
Else
Dim msg = "Windream-Dokumente für Record: " & RECORD_ID & " - Keine Dateien gefunden"
If USER_LANGUAGE <> "de-DE" Then
msg = "windream-files for record: " & RECORD_ID & " - no files found"
End If
tslblWindreamView.Text = msg
GridControlDocSearch.DataSource = Nothing
'Clear_Windream_ResultList()
End If
'Try
' Dim windream_temp_search
' If Not windream_Docshow = True Or Sett_LoadWD_Docs = False Then
' Exit Sub
' End If
' Cursor = Cursors.WaitCursor
' GridControlDocSearch.DataSource = Nothing
' Dim DTWD As DataTable
' Dim sql = "SELECT WINDREAM_SEARCH,SEARCH_PATTERN1,SEARCH_PATTERN2,SEARCH_PATTERN3,SEARCH_PATTERN4,SEARCH_PATTERN5 FROM TBPMO_FORM_VIEW WHERE WINDREAM_SEARCH <> '' AND FORM_ID = " & ENTITY_ID
' DTWD = ClassDatabase.Return_Datatable(sql)
' If DTWD.Rows.Count = 1 Then
' If IsDBNull(DTWD.Rows(0).Item(0)) Then
' Cursor = Cursors.Default
' Exit Sub
' End If
' Else
' Cursor = Cursors.Default
' Exit Sub
' End If
' 'Die SearchPatterns durchlaufen und zwischenspeichern
' If IsDBNull(DTWD.Rows(0).Item(0)) Then
' Cursor = Cursors.Default
' Exit Sub
' End If
' Basesearch = DTWD.Rows(0).Item(0)
' SP1 = DTWD.Rows(0).Item(1)
' If IsDBNull(DTWD.Rows(0).Item(2)) Then
' SP2 = ""
' Else
' SP2 = DTWD.Rows(0).Item(2)
' End If
' If IsDBNull(DTWD.Rows(0).Item(3)) Then
' SP3 = ""
' Else
' SP3 = DTWD.Rows(0).Item(3)
' End If
' If IsDBNull(DTWD.Rows(0).Item(4)) Then
' SP4 = ""
' Else
' SP4 = DTWD.Rows(0).Item(4)
' End If
' If IsDBNull(DTWD.Rows(0).Item(5)) Then
' SP5 = ""
' Else
' SP5 = DTWD.Rows(0).Item(5)
' End If
' 'Eine tempfile generieren
' Dim tempFilename1 = My.Computer.FileSystem.GetTempFileName()
' 'Nur den Filenamen ohne Erweiterung
' Dim tempName = Path.GetFileNameWithoutExtension(tempFilename1)
' 'tempfile lsöchen
' If My.Computer.FileSystem.FileExists(tempFilename1) Then
' My.Computer.FileSystem.DeleteFile(tempFilename1)
' End If
' Dim temppath = Path.GetTempPath
' Dim EncodingFormat As Encoding
' Dim WDUnicode = ClassDatabase.Execute_Scalar("SELECT WD_UNICODE FROM TBPMO_KONFIGURATION WHERE GUID = 1")
' If WDUnicode = True Then
' EncodingFormat = Encoding.GetEncoding(1252) '1252
' If LogErrorsOnly = False Then ClassLogger.Add(" >> Unicode is used (Encoding.GetEncoding(1252))", False)
' Else
' If LogErrorsOnly = False Then ClassLogger.Add(" >> UTF8 (Encoding.GetEncoding(65001))", False)
' EncodingFormat = Encoding.GetEncoding(65001)
' End If
' Dim fileContents As String
' If LogErrorsOnly = False Then ClassLogger.Add(" >> ReadAlltext: " & windream_temp_search, False)
' fileContents = My.Computer.FileSystem.ReadAllText(Basesearch, EncodingFormat) ', System.Text.Encoding.Unicode
' If LogErrorsOnly = False Then ClassLogger.Add(" >> fileContents geladen", False)
' fileContents = fileContents.Replace("Í", "Ö")
' Dim _sp1 = SP1
' Dim _sp2 = SP2
' Dim _sp3 = SP3
' Dim _sp4 = SP4
' Dim _sp5 = SP5
' If _sp1.ToString <> String.Empty Then
' _sp1 = Return_SearchPattern(_sp1.ToString)
' fileContents = fileContents.Replace("%pattern1%", _sp1)
' fileContents = fileContents.Replace("471101", _sp1)
' End If
' If _sp2.ToString <> String.Empty Then
' _sp2 = Return_SearchPattern(_sp2.ToString)
' If _sp2 = 0 Then
' _sp2 = ""
' End If
' fileContents = fileContents.Replace("%pattern2%", _sp2)
' fileContents = fileContents.Replace("471102", _sp2)
' End If
' If _sp3.ToString <> String.Empty Then
' _sp3 = Return_SearchPattern(_sp3.ToString)
' If _sp3 = 0 Then
' _sp3 = ""
' End If
' fileContents = fileContents.Replace("%pattern3%", _sp3)
' fileContents = fileContents.Replace("471103", _sp3)
' End If
' If _sp4.ToString <> String.Empty Then
' _sp4 = Return_SearchPattern(_sp4.ToString)
' If _sp4 = 0 Then
' _sp4 = ""
' End If
' fileContents = fileContents.Replace("%pattern4%", _sp4)
' fileContents = fileContents.Replace("471104", _sp4)
' End If
' If _sp5.ToString <> String.Empty Then
' _sp5 = Return_SearchPattern(_sp5.ToString)
' If _sp5 = 0 Then
' _sp5 = ""
' End If
' fileContents = fileContents.Replace("%pattern5%", _sp5)
' fileContents = fileContents.Replace("471105", _sp5)
' End If
' 'Die windream File zusammensetzen
' windream_temp_search = temppath & tempName & ".wdf"
' TEMP_FILES.Add(windream_temp_search)
' 'Die File schreiben
' My.Computer.FileSystem.WriteAllText(windream_temp_search, fileContents, False, EncodingFormat)
' My.Computer.FileSystem.WriteAllText(temppath & "SEARCH_COPY.wdf", fileContents, False, EncodingFormat)
' ' XML-Datei öffnen und laden
' Dim Stream As New IO.StreamReader(CStr(windream_temp_search), EncodingFormat)
' Dim Reader As New System.Xml.XmlTextReader(Stream)
' ' XML-Datei initialisieren
' Dim xml As New System.Xml.XmlDocument()
' ' XML-Datei öffnen und laden
' xml.Load(Reader)
' Reader.Close()
' xml.Save(windream_temp_search)
' If LogErrorsOnly = False Then ClassLogger.Add(" >> Xml Generiert: " & windream_temp_search, False)
' Dim windreamSucheErgebnisse As WINDREAMLib.WMObjects
' Try
' windreamSucheErgebnisse = ClassWindream.GetSearchDocuments(windream_temp_search)
' Catch ex As Exception
' MsgBox("Error in windreamSucheErgebnisse:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
' End Try
' elapsed = sw.Elapsed.TotalSeconds
' If LogErrorsOnly = False Then ClassLogger.Add(" >> GetSearchDocuments took " & Format(elapsed, "0.000000000") & " seconds", False)
' Dim DTGrid As New DataTable
' Dim stg As String
' If USER_LANGUAGE = "de-DE" Then
' stg = "windream-Dateien"
' Else
' stg = "windream-files"
' End If
' TabWindream.Text = stg & " (" & windreamSucheErgebnisse.Count & ")"
' If windreamSucheErgebnisse.Count > 0 Then 'Es gibt Suchergebnisse
' Dim sql_ResultList = "select * from TBPMO_WINDREAM_RESULTLIST_CONFIG where guid = 2"
' Dim DT As DataTable = ClassDatabase.Return_Datatable(sql_ResultList, "GET RESULTLIST KONFIG")
' Dim ColArray 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)
' 'GridViewDoc_Search.Columns.
' 'TODO: colPath ausblenden
' If Not DT Is Nothing And DT.Rows.Count = 1 Then
' Dim ColCount As Integer = 1
' For Each Column As DataColumn In DT.Columns
' If Column.ColumnName.StartsWith("COLUMN") And Column.ColumnName.EndsWith("WIDTH") = False Then
' Dim sql1 = String.Format("select {0} from TBPMO_WINDREAM_RESULTLIST_CONFIG Where GUID = 2", Column.ColumnName)
' Dim ColumnName = ClassDatabase.Execute_Scalar(sql1, True)
' If Not IsDBNull(ColumnName) Then
' If Not IsDBNull(ColumnName) Or IsNothing(ColumnName) Or ColumnName <> "" Or ColumnName <> "{}" Then
' 'Jetzt die Spalten aus Array hinzufügen und Breite konfigurieren
' sql1 = String.Format("select COLUMN{0}_WIDTH from TBPMO_WINDREAM_RESULTLIST_CONFIG Where GUID = 2", ColCount)
' Dim Width = ClassDatabase.Execute_Scalar(sql1, True)
' If IsNothing(Width) Or IsDBNull(Width) Then
' Width = 200
' End If
' 'Die Spalte definieren
' DTGrid.Columns.Add(ColumnName)
' ColCount += 1
' End If
' End If
' End If
' Next
' 'Jetzt das Array zusammenbauen um die Spaltenwerte zu erhalten
' ColCount = 1
' For Each Column As DataColumn In DT.Columns
' If Column.ColumnName = String.Format("COLUMN{0}", ColCount) Then
' Dim sql1 = String.Format("select {0} from TBPMO_WINDREAM_RESULTLIST_CONFIG Where GUID = 2", Column.ColumnName)
' Dim ColumnName = ClassDatabase.Execute_Scalar(sql1, True)
' If Not IsDBNull(ColumnName) Then
' If Not IsDBNull(ColumnName) Or IsNothing(ColumnName) Or ColumnName <> "" Or ColumnName <> "{}" Then
' 'Jetzt die Spalten aus Array hinzufügen und Breite konfigurieren
' ColArray.Add(Column.ColumnName)
' End If
' End If
' ColCount += 1
' End If
' Next
' End If
' Catch ex As Exception
' MsgBox("Unexpected Error in Construct Datatable for GridResult: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
' End Try
' If DTGrid.Columns.Count > 0 Then
' If LogErrorsOnly = False Then ClassLogger.Add(" >> Datatable Grid created!", False)
' 'Alle gefundenen Dateien durchlaufen
' For Each dok As WMObject In windreamSucheErgebnisse
' Dim fullpath = "W:" & dok.aPath
' 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
' Case ".csv"
' NewRow.Item(0) = My.Resources.doc_excel_csv
' Case ".txt"
' NewRow.Item(0) = My.Resources.text
' Case ".pdf"
' NewRow.Item(0) = My.Resources.pdf
' Case ".doc"
' NewRow.Item(0) = My.Resources.doc
' Case ".docx"
' NewRow.Item(0) = My.Resources.doc
' Case ".xls"
' NewRow.Item(0) = My.Resources.xls
' Case ".xlsx"
' NewRow.Item(0) = My.Resources.xls
' Case ".ppt"
' NewRow.Item(0) = My.Resources.ppt
' Case ".pptx"
' NewRow.Item(0) = My.Resources.ppt
' Case ".dwg"
' NewRow.Item(0) = My.Resources.dwg
' Case Else
' NewRow.Item(0) = My.Resources._blank
' End Select
' 'Den Filepath mitgeben
' NewRow.Item(1) = fullpath
' Dim i = 2 'Fängt bei 2 an, um die ICON Column zu überspringen
' For Each Column As String In ColArray
' Dim Indexname = DT.Rows(0).Item(Column)
' Dim idxvalue
' Try
' If Indexname.ToString.ToUpper = "Dateiname".ToUpper Then
' idxvalue = filename
' Else
' 'windream-Indexwert holen
' idxvalue = dok.GetVariableValue(Indexname)
' If IsNothing(idxvalue) Then
' idxvalue = "-"
' End If
' End If
' If LogErrorsOnly = False Then ClassLogger.Add(" >> idxvalue from windream: '" & idxvalue.ToString & "'", False)
' Catch ex As Exception
' ClassLogger.Add("Unexpected Error in GetVariableValue for Index '" & Indexname & "- Error: " & ex.Message)
' If Indexname.ToString.StartsWith("Doct") Or Indexname.ToString.StartsWith("Dokum") Then
' idxvalue = ""
' Else
' idxvalue = "Error getting indexvalue"
' End If
' End Try
' NewRow.Item(i) = idxvalue.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
' End If
' If DTGrid.Rows.Count > 0 Then
' GridControlDocSearch.DataSource = DTGrid
' ' Größe der Icon Column anpassen
' GridViewDoc_Search.Columns.Item("ICON").MaxWidth = 24
' GridViewDoc_Search.Columns.Item("ICON").MinWidth = 24
' GridViewDoc_Search.Columns.Item("FULLPATH").Visible = False
' End If
' Else
' Dim msg = "Windream-Dokumente für Record: " & RECORD_ID & " - Keine Dateien gefunden"
' If USER_LANGUAGE <> "de-DE" Then
' msg = "windream-files for record: " & RECORD_ID & " - no files found"
' End If
' tslblWindreamView.Text = "Windream-Dokumente für Record: " & RECORD_ID & " - Keine Dateien gefunden"
' 'Clear_Windream_ResultList()
' End If
' Cursor = Cursors.Default
'Catch ex As Exception
' MsgBox("Error in RUN_WDSEARCH_GRID:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
' ClassLogger.Add("Unexpected Error in RUN_WDSEARCH_GRID: " & ex.Message)
'End Try
elapsed = sw.Elapsed.TotalSeconds
sw.Stop()
sw.Reset()
@@ -4941,7 +5119,7 @@ Public Class frmConstructor_Main
End Sub
Private Sub DatenNeuLadenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DatenNeuLadenToolStripMenuItem.Click
Load_Tree_View_Data()
Load_Tree_View_Data()
End Sub
Private Sub AnwendungscacheFreigebenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AnwendungscacheFreigebenToolStripMenuItem.Click
@@ -5321,7 +5499,7 @@ Public Class frmConstructor_Main
Save_Grid_Layout()
frmMass_Change.ShowDialog()
If SUCCESSFULL = True Then
Load_Tree_View_Data()
Load_Tree_View_Data()
End If
Catch ex As Exception
MsgBox("Unexpected Error in MassChange Collector:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)