From 65788f29f8140d407209604d6a21704842b633e7 Mon Sep 17 00:00:00 2001 From: SchreiberM Date: Mon, 6 Jun 2016 16:59:05 +0200 Subject: [PATCH] MS --- app/DD-Record-Organiser/ClassDatabase.vb | 35 + .../frmConstructor_Main.vb | 792 +++++++++++------- 2 files changed, 520 insertions(+), 307 deletions(-) diff --git a/app/DD-Record-Organiser/ClassDatabase.vb b/app/DD-Record-Organiser/ClassDatabase.vb index 5dfe6e1..96cd983 100644 --- a/app/DD-Record-Organiser/ClassDatabase.vb +++ b/app/DD-Record-Organiser/ClassDatabase.vb @@ -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) diff --git a/app/DD-Record-Organiser/frmConstructor_Main.vb b/app/DD-Record-Organiser/frmConstructor_Main.vb index bf04a67..ac97066 100644 --- a/app/DD-Record-Organiser/frmConstructor_Main.vb +++ b/app/DD-Record-Organiser/frmConstructor_Main.vb @@ -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) - 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) + 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 - '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 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 + 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_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 + 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 + For Each row As DataRow In DT_FILE_RESULT.Rows + + 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 - 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 + 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 - DTGrid.Rows.Add(NewRow) - Catch ex As Exception - ClassLogger.Add("Unexpected Error in CreateRow for doc '" & filename & "- Error: " & ex.Message) - End Try + 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 - 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() + 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 - 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 + + '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)