From d78254fc9c6783bac16a02856f642ab0c6454e39 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Fri, 27 Sep 2019 16:28:42 +0200 Subject: [PATCH] DocumentResultList --- ClipboardWatcher/ClipboardWatcher.vbproj | 2 + ClipboardWatcher/ProfileFilter.vb | 5 +- ClipboardWatcher/ProfileSearches.vb | 97 +++++++++ ClipboardWatcher/frmMatch.vb | 64 +++--- Common/Common.vbproj | 1 + Common/ResultListParams.vb | 7 + Common/frmDocumentResultList.Designer.vb | 71 +++---- Common/frmDocumentResultList.vb | 189 +++++++++++++++++- Patterns/Patterns.vb | 2 + ZooFlow/My Project/Application.Designer.vb | 4 +- ZooFlow/My Project/Settings.Designer.vb | 4 +- .../Queries/ClassClipboardWatcherQueries.vb | 2 +- ZooFlow/frmAdmin.vb | 4 +- 13 files changed, 381 insertions(+), 71 deletions(-) create mode 100644 ClipboardWatcher/ProfileSearches.vb create mode 100644 Common/ResultListParams.vb diff --git a/ClipboardWatcher/ClipboardWatcher.vbproj b/ClipboardWatcher/ClipboardWatcher.vbproj index c8bcd6d4..9f5f488b 100644 --- a/ClipboardWatcher/ClipboardWatcher.vbproj +++ b/ClipboardWatcher/ClipboardWatcher.vbproj @@ -51,6 +51,7 @@ False D:\ProgramFiles\DevExpress 18.1\Components\Bin\Framework\DevExpress.Utils.v18.1.dll + False D:\ProgramFiles\DevExpress 18.1\Components\Bin\Framework\DevExpress.XtraEditors.v18.1.dll @@ -115,6 +116,7 @@ + diff --git a/ClipboardWatcher/ProfileFilter.vb b/ClipboardWatcher/ProfileFilter.vb index 0fc64ab8..62eb4181 100644 --- a/ClipboardWatcher/ProfileFilter.vb +++ b/ClipboardWatcher/ProfileFilter.vb @@ -238,7 +238,7 @@ Public Class ProfileFilter Return oFilteredProfiles End Function - Public Function FilterProfilesBySearchResults(Profiles As List(Of ProfileData), Database As MSSQLServer, User As UserState) As List(Of ProfileData) + Public Function FilterProfilesBySearchResults(Profiles As List(Of ProfileData), Database As MSSQLServer, User As UserState, ClipboardContents As String) As List(Of ProfileData) Dim oProfiles As New List(Of ProfileData) For Each oProfile In Profiles @@ -275,6 +275,7 @@ Public Class ProfileFilter oCountCommand = oPatterns.ReplaceInternalValues(oCountCommand) oCountCommand = oPatterns.ReplaceUserValues(oCountCommand, User) + oCountCommand = oPatterns.ReplaceClipboardContents(oCountCommand, ClipboardContents) oResultData += NotNull(Of Integer)(Database.GetScalarValue(oCountCommand), 0) Catch ex As Exception @@ -293,6 +294,8 @@ Public Class ProfileFilter oCountCommand = oPatterns.ReplaceInternalValues(oCountCommand) oCountCommand = oPatterns.ReplaceUserValues(oCountCommand, User) + oCountCommand = oPatterns.ReplaceClipboardContents(oCountCommand, ClipboardContents) + oResultDocs += NotNull(Of Integer)(Database.GetScalarValue(oCountCommand), 0) Catch ex As Exception _Logger.Warn("Invalid SQL Query for Counting Data in Profile {0}: {1}", oProfile.Guid, oCountCommand) diff --git a/ClipboardWatcher/ProfileSearches.vb b/ClipboardWatcher/ProfileSearches.vb new file mode 100644 index 00000000..b7bf21a8 --- /dev/null +++ b/ClipboardWatcher/ProfileSearches.vb @@ -0,0 +1,97 @@ +Imports DigitalData.Modules.Logging +Imports DigitalData.Modules.ZooFlow + +Public Class ProfileSearches + Private _LogConfig As LogConfig + Private _Logger As Logger + Private _Environment As Environment + Private _Params As ClipboardWatcherParams + + Public Class Search + Public DataTable As DataTable + Public TabIndex As Integer + Public TabCaption As String + Public ProfileId As Integer + Public SQLCommand As String + End Class + + Public Sub New(LogConfig As LogConfig, Environment As Environment, Params As ClipboardWatcherParams) + _LogConfig = LogConfig + _Logger = LogConfig.GetLogger() + _Environment = Environment + _Params = Params + End Sub + + Public Async Function LoadDocumentSearchesAsync() As Task(Of List(Of Search)) + Return Await Task.Run(AddressOf DoLoadDocumentSearches) + End Function + + Private Function DoLoadDocumentSearches() As List(Of Search) + Dim oMatchingIds = String.Join(",", _Params.MatchingProfiles.Select(Function(p) p.Guid).ToArray()) + Dim oSQL As String = $"SELECT * FROM TBCW_PROF_DOC_SEARCH WHERE ACTIVE = 1 AND PROFILE_ID in ({oMatchingIds}) ORDER BY TAB_INDEX" + Dim oSearchesDataTable = _Environment.Database.GetDatatable(oSQL) + Dim oDocSearches As New List(Of Search) + Dim oCounter As Integer = 0 + Dim oPatterns As New Patterns.ClassPatterns(_LogConfig) + + For Each oRow As DataRow In oSearchesDataTable.Rows + Dim oProfileId As Integer = oRow.Item("PROFILE_ID") + Dim oTabTitle As String = oRow.Item("TAB_TITLE") + Dim oConnectionId As Integer = oRow.Item("CONN_ID") + + oSQL = oRow.Item("SQL_COMMAND") + oSQL = oPatterns.ReplaceUserValues(oSQL, _Environment.User) + oSQL = oPatterns.ReplaceInternalValues(oSQL) + oSQL = oPatterns.ReplaceClipboardContents(oSQL, _Params.ClipboardContents) + + Dim oDatatable As DataTable = _Environment.Database.GetDatatable(oSQL, oConnectionId) + oDocSearches.Add(New Search() With { + .DataTable = oDatatable, + .ProfileId = oProfileId, + .TabCaption = oTabTitle, + .TabIndex = oCounter, + .SQLCommand = oSQL + }) + + oCounter += 1 + Next + + Return oDocSearches + End Function + + Public Async Function LoadDataSearchesAsync() As Task(Of List(Of Search)) + Return Await Task.Run(AddressOf DoLoadDataSearches) + End Function + + Private Function DoLoadDataSearches() As List(Of Search) + Dim oMatchingIds = String.Join(",", _Params.MatchingProfiles.Select(Function(p) p.Guid).ToArray()) + Dim oSQL As String = $"SELECT * FROM TBCW_PROF_DATA_SEARCH WHERE ACTIVE = 1 AND PROFILE_ID in ({oMatchingIds}) ORDER BY TAB_INDEX" + Dim oSearchesDataTable = _Environment.Database.GetDatatable(oSQL) + Dim oDataSearches As New List(Of Search) + Dim oCounter As Integer = 0 + Dim oPatterns As New Patterns.ClassPatterns(_LogConfig) + + For Each oRow As DataRow In oSearchesDataTable.Rows + Dim oProfileId As Integer = oRow.Item("PROFILE_ID") + Dim oTabTitle As String = oRow.Item("TAB_TITLE") + Dim oConnectionId As Integer = oRow.Item("CONN_ID") + + oSQL = oRow.Item("SQL_COMMAND") + oSQL = oPatterns.ReplaceUserValues(oSQL, _Environment.User) + oSQL = oPatterns.ReplaceInternalValues(oSQL) + + Dim oDatatable As DataTable = _Environment.Database.GetDatatable(oSQL, oConnectionId) + oDataSearches.Add(New Search() With { + .DataTable = oDatatable, + .ProfileId = oProfileId, + .TabCaption = oTabTitle, + .TabIndex = oCounter, + .SQLCommand = oSQL + }) + + oCounter += 1 + Next + + Return oDataSearches + End Function +End Class diff --git a/ClipboardWatcher/frmMatch.vb b/ClipboardWatcher/frmMatch.vb index d3a8704c..08fc4b9d 100644 --- a/ClipboardWatcher/frmMatch.vb +++ b/ClipboardWatcher/frmMatch.vb @@ -177,52 +177,58 @@ Public Class frmMatch oForm.ShowDialog() End Sub - Private Sub TileControlMatch_ItemClick(sender As Object, e As TileItemEventArgs) Handles TileControlMatch.ItemClick + Private Async Sub TileControlMatch_ItemClick(sender As Object, e As TileItemEventArgs) Handles TileControlMatch.ItemClick Dim oItem As TileItem = e.Item Dim oProfileId As Integer = oItem.Tag + Dim oProfileSearch As New ProfileSearches(_LogConfig, _Environment, _Params) + Select Case oItem.Group.Name Case TileGroupData.Name - OpenResultForms(oProfileId, ProfileType.DATA_ONLY) + 'OpenResultForms(oProfileId, ProfileType.DATA_ONLY) Case TileGroupDocuments.Name - OpenResultForms(oProfileId, ProfileType.DOCS_ONLY) + Dim oSearches = Await oProfileSearch.LoadDocumentSearchesAsync() + OpenDocumentResults(oProfileId, oSearches) Case Else - OpenResultForms(oProfileId, ProfileType.ANY) + 'OpenResultForms(oProfileId, ProfileType.ANY) End Select Hide() End Sub - Private Sub OpenResultForms(ProfileId As Integer, OpenType As ProfileType) - Dim oMatchingProfiles As New List(Of ProfileData) - - ' TODO: Implement Show All + Private Sub OpenDocumentResults(ProfileId As Integer, Searches As List(Of ProfileSearches.Search)) + Dim oParams = New ResultListParams() - ' Click on specific profile - Dim oProfile As ProfileData = _Params.MatchingProfiles. - Where(Function(p) p.Guid = ProfileId). - First() - oMatchingProfiles.Add(oProfile) + For Each oSearch In Searches + oParams.Results.Add(New DocumentResult() With { + .Datatable = oSearch.DataTable + }) + Next - If OpenType = ProfileType.ANY Or OpenType = ProfileType.DOCS_ONLY Then - ' Show Result Document Form - Dim oForm As New frmResult(_LogConfig, _Environment, _Params, frmResult.ResultType.Document) - AddHandler oForm.FormClosed, AddressOf ProfileResultForm_Closed - OpenForms.Add(oForm) - - oForm.Show() - End If - - If OpenType = ProfileType.ANY Or OpenType = ProfileType.DATA_ONLY Then - ' Show Result Data Form - Dim oForm As New frmResult(_LogConfig, _Environment, _Params, frmResult.ResultType.Data) - AddHandler oForm.FormClosed, AddressOf ProfileResultForm_Closed - OpenForms.Add(oForm) + Dim oForm As New frmDocumentResultList(_LogConfig, _Environment, oParams) + oForm.Show() + End Sub - oForm.Show() - End If + Private Sub OpenResultForms(ProfileId As Integer, OpenType As ProfileType) + 'If OpenType = ProfileType.ANY Or OpenType = ProfileType.DOCS_ONLY Then + ' ' Show Result Document Form + ' Dim oForm As New frmResult(_LogConfig, _Environment, _Params, frmResult.ResultType.Document) + ' AddHandler oForm.FormClosed, AddressOf ProfileResultForm_Closed + ' OpenForms.Add(oForm) + + ' oForm.Show() + 'End If + + 'If OpenType = ProfileType.ANY Or OpenType = ProfileType.DATA_ONLY Then + ' ' Show Result Data Form + ' Dim oForm As New frmResult(_LogConfig, _Environment, _Params, frmResult.ResultType.Data) + ' AddHandler oForm.FormClosed, AddressOf ProfileResultForm_Closed + ' OpenForms.Add(oForm) + + ' oForm.Show() + 'End If End Sub Private Sub ProfileResultForm_Closed(sender As Object, e As FormClosedEventArgs) diff --git a/Common/Common.vbproj b/Common/Common.vbproj index e4d04fb0..5ebf4597 100644 --- a/Common/Common.vbproj +++ b/Common/Common.vbproj @@ -110,6 +110,7 @@ Settings.settings True + diff --git a/Common/ResultListParams.vb b/Common/ResultListParams.vb new file mode 100644 index 00000000..6deaf514 --- /dev/null +++ b/Common/ResultListParams.vb @@ -0,0 +1,7 @@ +Public Class ResultListParams + Public Results As New List(Of DocumentResult) +End Class + +Public Class DocumentResult + Public Datatable As DataTable +End Class diff --git a/Common/frmDocumentResultList.Designer.vb b/Common/frmDocumentResultList.Designer.vb index 044f131a..80dd923c 100644 --- a/Common/frmDocumentResultList.Designer.vb +++ b/Common/frmDocumentResultList.Designer.vb @@ -20,26 +20,26 @@ Partial Class frmDocumentResultList _ Private Sub InitializeComponent() Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl() + Me.BarToggleSwitchItem1 = New DevExpress.XtraBars.BarToggleSwitchItem() + Me.BarToggleSwitchItem2 = New DevExpress.XtraBars.BarToggleSwitchItem() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl() - Me.SplitContainerControl2 = New DevExpress.XtraEditors.SplitContainerControl() Me.GridControl1 = New DevExpress.XtraGrid.GridControl() Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView() + Me.SplitContainerControl2 = New DevExpress.XtraEditors.SplitContainerControl() Me.GridControl2 = New DevExpress.XtraGrid.GridControl() Me.GridView2 = New DevExpress.XtraGrid.Views.Grid.GridView() Me.GridControl3 = New DevExpress.XtraGrid.GridControl() Me.GridView3 = New DevExpress.XtraGrid.Views.Grid.GridView() - Me.BarToggleSwitchItem1 = New DevExpress.XtraBars.BarToggleSwitchItem() - Me.BarToggleSwitchItem2 = New DevExpress.XtraBars.BarToggleSwitchItem() CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainerControl1.SuspendLayout() - CType(Me.SplitContainerControl2, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SplitContainerControl2.SuspendLayout() CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.SplitContainerControl2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainerControl2.SuspendLayout() CType(Me.GridControl2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.GridView2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.GridControl3, System.ComponentModel.ISupportInitialize).BeginInit() @@ -57,6 +57,18 @@ Partial Class frmDocumentResultList Me.RibbonControl.Size = New System.Drawing.Size(1189, 143) Me.RibbonControl.StatusBar = Me.RibbonStatusBar ' + 'BarToggleSwitchItem1 + ' + Me.BarToggleSwitchItem1.Caption = "BarToggleSwitchItem1" + Me.BarToggleSwitchItem1.Id = 1 + Me.BarToggleSwitchItem1.Name = "BarToggleSwitchItem1" + ' + 'BarToggleSwitchItem2 + ' + Me.BarToggleSwitchItem2.Caption = "BarToggleSwitchItem2" + Me.BarToggleSwitchItem2.Id = 2 + Me.BarToggleSwitchItem2.Name = "BarToggleSwitchItem2" + ' 'RibbonPage1 ' Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) @@ -91,21 +103,6 @@ Partial Class frmDocumentResultList Me.SplitContainerControl1.TabIndex = 2 Me.SplitContainerControl1.Text = "SplitContainerControl1" ' - 'SplitContainerControl2 - ' - Me.SplitContainerControl2.Dock = System.Windows.Forms.DockStyle.Fill - Me.SplitContainerControl2.Horizontal = False - Me.SplitContainerControl2.Location = New System.Drawing.Point(0, 0) - Me.SplitContainerControl2.Name = "SplitContainerControl2" - Me.SplitContainerControl2.Panel1.Controls.Add(Me.GridControl2) - Me.SplitContainerControl2.Panel1.Text = "Panel1" - Me.SplitContainerControl2.Panel2.Controls.Add(Me.GridControl3) - Me.SplitContainerControl2.Panel2.Text = "Panel2" - Me.SplitContainerControl2.Size = New System.Drawing.Size(653, 497) - Me.SplitContainerControl2.SplitterPosition = 223 - Me.SplitContainerControl2.TabIndex = 0 - Me.SplitContainerControl2.Text = "SplitContainerControl2" - ' 'GridControl1 ' Me.GridControl1.Dock = System.Windows.Forms.DockStyle.Fill @@ -121,6 +118,22 @@ Partial Class frmDocumentResultList ' Me.GridView1.GridControl = Me.GridControl1 Me.GridView1.Name = "GridView1" + Me.GridView1.OptionsView.ShowAutoFilterRow = True + ' + 'SplitContainerControl2 + ' + Me.SplitContainerControl2.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainerControl2.Horizontal = False + Me.SplitContainerControl2.Location = New System.Drawing.Point(0, 0) + Me.SplitContainerControl2.Name = "SplitContainerControl2" + Me.SplitContainerControl2.Panel1.Controls.Add(Me.GridControl2) + Me.SplitContainerControl2.Panel1.Text = "Panel1" + Me.SplitContainerControl2.Panel2.Controls.Add(Me.GridControl3) + Me.SplitContainerControl2.Panel2.Text = "Panel2" + Me.SplitContainerControl2.Size = New System.Drawing.Size(653, 497) + Me.SplitContainerControl2.SplitterPosition = 223 + Me.SplitContainerControl2.TabIndex = 0 + Me.SplitContainerControl2.Text = "SplitContainerControl2" ' 'GridControl2 ' @@ -137,6 +150,7 @@ Partial Class frmDocumentResultList ' Me.GridView2.GridControl = Me.GridControl2 Me.GridView2.Name = "GridView2" + Me.GridView2.OptionsView.ShowAutoFilterRow = True ' 'GridControl3 ' @@ -153,18 +167,7 @@ Partial Class frmDocumentResultList ' Me.GridView3.GridControl = Me.GridControl3 Me.GridView3.Name = "GridView3" - ' - 'BarToggleSwitchItem1 - ' - Me.BarToggleSwitchItem1.Caption = "BarToggleSwitchItem1" - Me.BarToggleSwitchItem1.Id = 1 - Me.BarToggleSwitchItem1.Name = "BarToggleSwitchItem1" - ' - 'BarToggleSwitchItem2 - ' - Me.BarToggleSwitchItem2.Caption = "BarToggleSwitchItem2" - Me.BarToggleSwitchItem2.Id = 2 - Me.BarToggleSwitchItem2.Name = "BarToggleSwitchItem2" + Me.GridView3.OptionsView.ShowAutoFilterRow = True ' 'frmDocumentResultList ' @@ -181,10 +184,10 @@ Partial Class frmDocumentResultList CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit() Me.SplitContainerControl1.ResumeLayout(False) - CType(Me.SplitContainerControl2, System.ComponentModel.ISupportInitialize).EndInit() - Me.SplitContainerControl2.ResumeLayout(False) CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.SplitContainerControl2, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainerControl2.ResumeLayout(False) CType(Me.GridControl2, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.GridView2, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.GridControl3, System.ComponentModel.ISupportInitialize).EndInit() diff --git a/Common/frmDocumentResultList.vb b/Common/frmDocumentResultList.vb index cb9c535e..80452989 100644 --- a/Common/frmDocumentResultList.vb +++ b/Common/frmDocumentResultList.vb @@ -1,6 +1,193 @@ -Public Class frmDocumentResultList +Imports System.Drawing +Imports DevExpress.Utils +Imports DevExpress.XtraGrid +Imports DevExpress.XtraGrid.Columns +Imports DevExpress.XtraGrid.Views.Grid +Imports DigitalData.Modules.Logging +Imports DigitalData.Modules.ZooFlow + +Public Class frmDocumentResultList + Private _LogConfig As LogConfig + Private _Logger As Logger + Private _Environment As Environment + Private _ResultLists As List(Of DocumentResult) + + Public Sub New(LogConfig As LogConfig, Environment As Environment, Params As ResultListParams) + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + _LogConfig = LogConfig + _Logger = LogConfig.GetLogger() + _Environment = Environment + _ResultLists = Params.Results + End Sub + Private Sub frmDocumentResultList_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Dim oCounter = 1 + + For Each oList In _ResultLists + Select Case _ResultLists.Count + Case 1 + CreateDocumentGrid(GridView1, oList.Datatable) + Case 2 + CreateDocumentGrid(GridView2, oList.Datatable) + Case 3 + CreateDocumentGrid(GridView3, oList.Datatable) + End Select + oCounter += 1 + Next + End Sub + + Private Sub CreateDocumentGrid(GridView As GridView, Datatable As DataTable) + Dim oMyDocDatatable As New DataTable + Try + 'Die Icon Colum erstellen und konfigurieren + Dim oColIcon As New DataColumn() With { + .DataType = GetType(Image), + .ColumnName = "ICON", + .Caption = "" + } + oMyDocDatatable.Columns.Add(oColIcon) + + Dim oColPath As New DataColumn() With { + .DataType = GetType(String), + .ColumnName = "FULL_FILENAME", + .Caption = "Fullpath" + } + oMyDocDatatable.Columns.Add(oColPath) + + Dim oColDocID As New DataColumn() With { + .DataType = GetType(Int32), + .ColumnName = "DocID", + .Caption = "DocID" + } + oMyDocDatatable.Columns.Add(oColDocID) + + Dim oColFilename As New DataColumn() With { + .DataType = GetType(String), + .ColumnName = "Filename", + .Caption = "Filename" + } + oMyDocDatatable.Columns.Add(oColFilename) + + Dim oRestColArray As New List(Of String) + For Each oCol As DataColumn In Datatable.Columns + Dim onewColumn As New DataColumn() + If oCol.ColumnName <> "DocID" And oCol.ColumnName <> "FULL_FILENAME" And oCol.ColumnName <> "Filename" Then + onewColumn.DataType = GetType(String) + onewColumn.ColumnName = oCol.ColumnName + onewColumn.Caption = oCol.Caption + oMyDocDatatable.Columns.Add(onewColumn) + oRestColArray.Add(onewColumn.ColumnName) + End If + + Next + For Each oRow As DataRow In Datatable.Rows + Dim oFullpath = oRow.Item("FULL_FILENAME") + Dim oDocID = oRow.Item("DocID") + 'Dim Folderpath = Path.GetDirectoryName(fullpath) + Dim oFilename = IO.Path.GetFileName(oFullpath) + Dim oFileextension = IO.Path.GetExtension(oFullpath) + Dim oNewRow As DataRow + oNewRow = oMyDocDatatable.NewRow() + 'Icon zuweisen + Select Case oFileextension.ToUpper + Case ".csv".ToUpper + oNewRow.Item(0) = My.Resources.xls + Case ".txt".ToUpper + oNewRow.Item(0) = My.Resources.txt + Case ".pdf".ToUpper + oNewRow.Item(0) = My.Resources.pdf + Case ".doc".ToUpper + oNewRow.Item(0) = My.Resources.doc + Case ".docx".ToUpper + oNewRow.Item(0) = My.Resources.doc + Case ".xls".ToUpper + oNewRow.Item(0) = My.Resources.xls + Case ".xlsx".ToUpper + oNewRow.Item(0) = My.Resources.xls + Case ".xlsm".ToUpper + oNewRow.Item(0) = My.Resources.xls + Case ".ppt".ToUpper + oNewRow.Item(0) = My.Resources.ppt + Case ".pptx".ToUpper + oNewRow.Item(0) = My.Resources.ppt + Case ".dwg".ToUpper + oNewRow.Item(0) = My.Resources.dwg + Case ".dxf".ToUpper + oNewRow.Item(0) = My.Resources.dxf + Case ".msg".ToUpper + oNewRow.Item(0) = My.Resources._page + Case ".msg".ToUpper + oNewRow.Item(0) = My.Resources._page + Case ".tif".ToUpper + oNewRow.Item(0) = My.Resources.tiff + Case ".tiff".ToUpper + oNewRow.Item(0) = My.Resources.tiff + Case ".jpg".ToUpper + oNewRow.Item(0) = My.Resources.jpg + Case Else + oNewRow.Item(0) = My.Resources._blank + End Select + 'Den Filepath mitgeben + oNewRow.Item(1) = oFullpath + oNewRow.Item(2) = oDocID + oNewRow.Item(3) = oFilename + + Dim i = 4 'Fängt bei 3 an, um die definierten Spalten zu überspringen + For Each Colname As String In oRestColArray + Dim oRowValue + oRowValue = oRow.Item(Colname) + oNewRow.Item(i) = oRowValue.ToString + i += 1 + Next + oMyDocDatatable.Rows.Add(oNewRow) + Next + + Dim oGridControl As GridControl = GridView.GridControl + oGridControl.DataSource = oMyDocDatatable + oGridControl.ForceInitialize() + Try + GridView.Columns.Item("DocID").Visible = False + Catch ex As Exception + End Try + Try + GridView.Columns.Item("FULL_FILENAME").Visible = False + Catch ex As Exception + End Try + + Dim created, changed As String + If _Environment.User.Language <> "de-DE" Then + changed = "Changed" + created = "Created" + Else + changed = "Geändert" + created = "Erstellt" + End If + + Dim createdColumn = GridView.Columns(created) + If Not IsNothing(createdColumn) Then + createdColumn.DisplayFormat.FormatType = FormatType.DateTime + createdColumn.DisplayFormat.FormatString = _Environment.User.DateFormat & " HH:MM:ss" + End If + Dim changedColumn = GridView.Columns(changed) + If Not IsNothing(changedColumn) Then + changedColumn.DisplayFormat.FormatType = FormatType.DateTime + changedColumn.DisplayFormat.FormatString = _Environment.User.DateFormat & " HH:MM:ss" + End If + ' Alle Spalten aus ReadOnly setzen, danach werden alle passenden auf nicht ReadOnly gesetzt + For Each column As GridColumn In GridView.Columns + column.OptionsColumn.AllowEdit = False + Next + GridView.Columns.Item("ICON").MaxWidth = 24 + GridView.Columns.Item("ICON").MinWidth = 24 + GridView.OptionsView.BestFitMaxRowCount = -1 + GridView.BestFitColumns(True) + Catch ex As Exception + _Logger.Error(ex) + End Try End Sub Private Sub BarToggleSwitchItem1_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarToggleSwitchItem1.CheckedChanged diff --git a/Patterns/Patterns.vb b/Patterns/Patterns.vb index 4a3369cf..960771dc 100644 --- a/Patterns/Patterns.vb +++ b/Patterns/Patterns.vb @@ -84,6 +84,8 @@ Public Class ClassPatterns oResult = oResult.Replace(CLIPBOARD_VALUE_DE.ToUpper, ClipboardContents) oResult = oResult.Replace(CLIPBOARD_VALUE_EN.ToLower, ClipboardContents) oResult = oResult.Replace(CLIPBOARD_VALUE_EN.ToUpper, ClipboardContents) + oResult = oResult.Replace(CLIPBOARD_VALUE_DE, ClipboardContents) + oResult = oResult.Replace(CLIPBOARD_VALUE_EN, ClipboardContents) Return oResult End Function diff --git a/ZooFlow/My Project/Application.Designer.vb b/ZooFlow/My Project/Application.Designer.vb index d9bc2765..a3af7133 100644 --- a/ZooFlow/My Project/Application.Designer.vb +++ b/ZooFlow/My Project/Application.Designer.vb @@ -29,8 +29,8 @@ Namespace My Me.SaveMySettingsOnExit = true Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses End Sub - - _ + + Protected Overrides Sub OnCreateMainForm() Me.MainForm = Global.DigitalData.GUIs.ZooFlow.frmAdmin End Sub diff --git a/ZooFlow/My Project/Settings.Designer.vb b/ZooFlow/My Project/Settings.Designer.vb index 424beaf9..2859c418 100644 --- a/ZooFlow/My Project/Settings.Designer.vb +++ b/ZooFlow/My Project/Settings.Designer.vb @@ -43,8 +43,8 @@ Partial Friend NotInheritable Class Settings If Not addedHandler Then SyncLock addedHandlerLockObject If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True End If End SyncLock End If diff --git a/ZooFlow/Queries/ClassClipboardWatcherQueries.vb b/ZooFlow/Queries/ClassClipboardWatcherQueries.vb index 042a79ed..3077888a 100644 --- a/ZooFlow/Queries/ClassClipboardWatcherQueries.vb +++ b/ZooFlow/Queries/ClassClipboardWatcherQueries.vb @@ -1,6 +1,6 @@ Public Class ClassClipboardWatcherQueries Public Function VWCW_USER_PROFILE(UserId As Integer) As String - Return $"SELECT DISTINCT GUID, NAME, REGEX_EXPRESSION, COMMENT, PROC_NAME, PROFILE_TYPE FROM VWCW_USER_PROFILE WHERE USER_ID = {UserId} OR GROUP_ID IN (SELECT DISTINCT GUID FROM TBDD_GROUPS WHERE GUID IN (SELECT GROUP_ID FROM TBDD_GROUPS_USER WHERE USER_ID = {0}))" + Return $"SELECT DISTINCT GUID, NAME, REGEX_EXPRESSION, COMMENT, PROC_NAME, PROFILE_TYPE FROM VWCW_USER_PROFILE WHERE USER_ID = {UserId} OR GROUP_ID IN (SELECT DISTINCT GUID FROM TBDD_GROUPS WHERE GUID IN (SELECT GROUP_ID FROM TBDD_GROUPS_USER WHERE USER_ID = {UserId}))" End Function Public Function TBCW_PROFILE_PROCESS(UserId As Integer) As String diff --git a/ZooFlow/frmAdmin.vb b/ZooFlow/frmAdmin.vb index 930d9a88..b2c2a1c1 100644 --- a/ZooFlow/frmAdmin.vb +++ b/ZooFlow/frmAdmin.vb @@ -94,6 +94,7 @@ Partial Public Class frmAdmin Dim oWindow As New Window(My.LogConfig) Dim oWindowInfo = oWindow.GetWindowInfo() Dim oClipboardContents As String = Clipboard.GetText() + Dim oUserState = My.Application.User Try oProfileFilter = New ProfileFilter(My.LogConfig, @@ -112,7 +113,8 @@ Partial Public Class frmAdmin Return oProfileFilter.FilterProfilesBySearchResults( oMatchingProfiles, My.Database, - My.Application.User) + oUserState, + oClipboardContents) End Function) oMatchingProfiles = oProfileFilter.ClearNotMatchedProfiles(oMatchingProfiles) Catch ex As Exception