Common/DocumentResultList: Performance Improvements for Grid Result
This commit is contained in:
parent
de685806f0
commit
b5120e4115
@ -45,8 +45,7 @@ Partial Class frmDocumentResultList
|
|||||||
Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
||||||
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
|
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
|
||||||
Me.GridControl1 = New DevExpress.XtraGrid.GridControl()
|
Me.GridControl1 = New DevExpress.XtraGrid.GridControl()
|
||||||
Me.GridView1 = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridView()
|
Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView()
|
||||||
Me.GridBand1 = New DevExpress.XtraGrid.Views.BandedGrid.GridBand()
|
|
||||||
Me.SplitContainerControl2 = New DevExpress.XtraEditors.SplitContainerControl()
|
Me.SplitContainerControl2 = New DevExpress.XtraEditors.SplitContainerControl()
|
||||||
Me.GridControl2 = New DevExpress.XtraGrid.GridControl()
|
Me.GridControl2 = New DevExpress.XtraGrid.GridControl()
|
||||||
Me.GridView2 = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridView()
|
Me.GridView2 = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridView()
|
||||||
@ -84,7 +83,7 @@ Partial Class frmDocumentResultList
|
|||||||
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
|
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
|
||||||
Me.RibbonControl.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemTextEdit1, Me.RepositoryItemTextEdit2})
|
Me.RibbonControl.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemTextEdit1, Me.RepositoryItemTextEdit2})
|
||||||
Me.RibbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
|
Me.RibbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
|
||||||
Me.RibbonControl.Size = New System.Drawing.Size(1189, 159)
|
Me.RibbonControl.Size = New System.Drawing.Size(1189, 157)
|
||||||
Me.RibbonControl.StatusBar = Me.RibbonStatusBar
|
Me.RibbonControl.StatusBar = Me.RibbonStatusBar
|
||||||
'
|
'
|
||||||
'SwitchMainContainerHorizontal
|
'SwitchMainContainerHorizontal
|
||||||
@ -260,7 +259,7 @@ Partial Class frmDocumentResultList
|
|||||||
Me.SplitContainerControl1.Panel1.Text = "Panel1"
|
Me.SplitContainerControl1.Panel1.Text = "Panel1"
|
||||||
Me.SplitContainerControl1.Panel2.Controls.Add(Me.SplitContainerControl2)
|
Me.SplitContainerControl1.Panel2.Controls.Add(Me.SplitContainerControl2)
|
||||||
Me.SplitContainerControl1.Panel2.Text = "Panel2"
|
Me.SplitContainerControl1.Panel2.Text = "Panel2"
|
||||||
Me.SplitContainerControl1.Size = New System.Drawing.Size(762, 490)
|
Me.SplitContainerControl1.Size = New System.Drawing.Size(762, 492)
|
||||||
Me.SplitContainerControl1.SplitterPosition = 382
|
Me.SplitContainerControl1.SplitterPosition = 382
|
||||||
Me.SplitContainerControl1.TabIndex = 2
|
Me.SplitContainerControl1.TabIndex = 2
|
||||||
Me.SplitContainerControl1.Text = "SplitContainerControl1"
|
Me.SplitContainerControl1.Text = "SplitContainerControl1"
|
||||||
@ -272,7 +271,7 @@ Partial Class frmDocumentResultList
|
|||||||
Me.GridControl1.MainView = Me.GridView1
|
Me.GridControl1.MainView = Me.GridView1
|
||||||
Me.GridControl1.MenuManager = Me.RibbonControl
|
Me.GridControl1.MenuManager = Me.RibbonControl
|
||||||
Me.GridControl1.Name = "GridControl1"
|
Me.GridControl1.Name = "GridControl1"
|
||||||
Me.GridControl1.Size = New System.Drawing.Size(382, 490)
|
Me.GridControl1.Size = New System.Drawing.Size(382, 492)
|
||||||
Me.GridControl1.TabIndex = 0
|
Me.GridControl1.TabIndex = 0
|
||||||
Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1})
|
Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1})
|
||||||
'
|
'
|
||||||
@ -282,25 +281,13 @@ Partial Class frmDocumentResultList
|
|||||||
Me.GridView1.Appearance.EvenRow.Options.UseBackColor = True
|
Me.GridView1.Appearance.EvenRow.Options.UseBackColor = True
|
||||||
Me.GridView1.Appearance.FocusedRow.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))
|
Me.GridView1.Appearance.FocusedRow.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))
|
||||||
Me.GridView1.Appearance.FocusedRow.Options.UseBackColor = True
|
Me.GridView1.Appearance.FocusedRow.Options.UseBackColor = True
|
||||||
Me.GridView1.Bands.AddRange(New DevExpress.XtraGrid.Views.BandedGrid.GridBand() {Me.GridBand1})
|
|
||||||
Me.GridView1.GridControl = Me.GridControl1
|
Me.GridView1.GridControl = Me.GridControl1
|
||||||
Me.GridView1.Name = "GridView1"
|
Me.GridView1.Name = "GridView1"
|
||||||
|
Me.GridView1.OptionsBehavior.Editable = False
|
||||||
|
Me.GridView1.OptionsBehavior.ReadOnly = True
|
||||||
Me.GridView1.OptionsView.EnableAppearanceEvenRow = True
|
Me.GridView1.OptionsView.EnableAppearanceEvenRow = True
|
||||||
Me.GridView1.OptionsView.ShowAutoFilterRow = True
|
Me.GridView1.OptionsView.ShowAutoFilterRow = True
|
||||||
'
|
'
|
||||||
'GridBand1
|
|
||||||
'
|
|
||||||
Me.GridBand1.AppearanceHeader.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Bold)
|
|
||||||
Me.GridBand1.AppearanceHeader.Options.UseFont = True
|
|
||||||
Me.GridBand1.Caption = "GridBand1"
|
|
||||||
Me.GridBand1.Name = "GridBand1"
|
|
||||||
Me.GridBand1.OptionsBand.AllowHotTrack = False
|
|
||||||
Me.GridBand1.OptionsBand.AllowMove = False
|
|
||||||
Me.GridBand1.OptionsBand.AllowPress = False
|
|
||||||
Me.GridBand1.OptionsBand.AllowSize = False
|
|
||||||
Me.GridBand1.VisibleIndex = 0
|
|
||||||
Me.GridBand1.Width = 513
|
|
||||||
'
|
|
||||||
'SplitContainerControl2
|
'SplitContainerControl2
|
||||||
'
|
'
|
||||||
Me.SplitContainerControl2.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2
|
Me.SplitContainerControl2.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2
|
||||||
@ -312,7 +299,7 @@ Partial Class frmDocumentResultList
|
|||||||
Me.SplitContainerControl2.Panel1.Text = "Panel1"
|
Me.SplitContainerControl2.Panel1.Text = "Panel1"
|
||||||
Me.SplitContainerControl2.Panel2.Controls.Add(Me.GridControl3)
|
Me.SplitContainerControl2.Panel2.Controls.Add(Me.GridControl3)
|
||||||
Me.SplitContainerControl2.Panel2.Text = "Panel2"
|
Me.SplitContainerControl2.Panel2.Text = "Panel2"
|
||||||
Me.SplitContainerControl2.Size = New System.Drawing.Size(370, 490)
|
Me.SplitContainerControl2.Size = New System.Drawing.Size(370, 492)
|
||||||
Me.SplitContainerControl2.SplitterPosition = 223
|
Me.SplitContainerControl2.SplitterPosition = 223
|
||||||
Me.SplitContainerControl2.TabIndex = 0
|
Me.SplitContainerControl2.TabIndex = 0
|
||||||
Me.SplitContainerControl2.Text = "SplitContainerControl2"
|
Me.SplitContainerControl2.Text = "SplitContainerControl2"
|
||||||
@ -357,7 +344,7 @@ Partial Class frmDocumentResultList
|
|||||||
Me.GridControl3.MainView = Me.GridView3
|
Me.GridControl3.MainView = Me.GridView3
|
||||||
Me.GridControl3.MenuManager = Me.RibbonControl
|
Me.GridControl3.MenuManager = Me.RibbonControl
|
||||||
Me.GridControl3.Name = "GridControl3"
|
Me.GridControl3.Name = "GridControl3"
|
||||||
Me.GridControl3.Size = New System.Drawing.Size(370, 257)
|
Me.GridControl3.Size = New System.Drawing.Size(370, 259)
|
||||||
Me.GridControl3.TabIndex = 0
|
Me.GridControl3.TabIndex = 0
|
||||||
Me.GridControl3.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView3})
|
Me.GridControl3.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView3})
|
||||||
'
|
'
|
||||||
@ -386,13 +373,13 @@ Partial Class frmDocumentResultList
|
|||||||
'SplitContainerControl3
|
'SplitContainerControl3
|
||||||
'
|
'
|
||||||
Me.SplitContainerControl3.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.SplitContainerControl3.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.SplitContainerControl3.Location = New System.Drawing.Point(0, 159)
|
Me.SplitContainerControl3.Location = New System.Drawing.Point(0, 157)
|
||||||
Me.SplitContainerControl3.Name = "SplitContainerControl3"
|
Me.SplitContainerControl3.Name = "SplitContainerControl3"
|
||||||
Me.SplitContainerControl3.Panel1.Controls.Add(Me.SplitContainerControl1)
|
Me.SplitContainerControl3.Panel1.Controls.Add(Me.SplitContainerControl1)
|
||||||
Me.SplitContainerControl3.Panel1.Text = "Panel1"
|
Me.SplitContainerControl3.Panel1.Text = "Panel1"
|
||||||
Me.SplitContainerControl3.Panel2.Controls.Add(Me.DocumentViewer1)
|
Me.SplitContainerControl3.Panel2.Controls.Add(Me.DocumentViewer1)
|
||||||
Me.SplitContainerControl3.Panel2.Text = "Panel2"
|
Me.SplitContainerControl3.Panel2.Text = "Panel2"
|
||||||
Me.SplitContainerControl3.Size = New System.Drawing.Size(1189, 490)
|
Me.SplitContainerControl3.Size = New System.Drawing.Size(1189, 492)
|
||||||
Me.SplitContainerControl3.SplitterPosition = 762
|
Me.SplitContainerControl3.SplitterPosition = 762
|
||||||
Me.SplitContainerControl3.TabIndex = 5
|
Me.SplitContainerControl3.TabIndex = 5
|
||||||
Me.SplitContainerControl3.Text = "SplitContainerControl3"
|
Me.SplitContainerControl3.Text = "SplitContainerControl3"
|
||||||
@ -403,7 +390,7 @@ Partial Class frmDocumentResultList
|
|||||||
Me.DocumentViewer1.FileLoaded = False
|
Me.DocumentViewer1.FileLoaded = False
|
||||||
Me.DocumentViewer1.Location = New System.Drawing.Point(0, 0)
|
Me.DocumentViewer1.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.DocumentViewer1.Name = "DocumentViewer1"
|
Me.DocumentViewer1.Name = "DocumentViewer1"
|
||||||
Me.DocumentViewer1.Size = New System.Drawing.Size(417, 490)
|
Me.DocumentViewer1.Size = New System.Drawing.Size(417, 492)
|
||||||
Me.DocumentViewer1.TabIndex = 0
|
Me.DocumentViewer1.TabIndex = 0
|
||||||
'
|
'
|
||||||
'XtraSaveFileDialog
|
'XtraSaveFileDialog
|
||||||
@ -457,8 +444,6 @@ Partial Class frmDocumentResultList
|
|||||||
Friend WithEvents SplitContainerControl2 As DevExpress.XtraEditors.SplitContainerControl
|
Friend WithEvents SplitContainerControl2 As DevExpress.XtraEditors.SplitContainerControl
|
||||||
Friend WithEvents GridControl2 As DevExpress.XtraGrid.GridControl
|
Friend WithEvents GridControl2 As DevExpress.XtraGrid.GridControl
|
||||||
Friend WithEvents GridControl3 As DevExpress.XtraGrid.GridControl
|
Friend WithEvents GridControl3 As DevExpress.XtraGrid.GridControl
|
||||||
Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.BandedGrid.BandedGridView
|
|
||||||
Friend WithEvents GridBand1 As DevExpress.XtraGrid.Views.BandedGrid.GridBand
|
|
||||||
Friend WithEvents GridView2 As DevExpress.XtraGrid.Views.BandedGrid.BandedGridView
|
Friend WithEvents GridView2 As DevExpress.XtraGrid.Views.BandedGrid.BandedGridView
|
||||||
Friend WithEvents GridBand2 As DevExpress.XtraGrid.Views.BandedGrid.GridBand
|
Friend WithEvents GridBand2 As DevExpress.XtraGrid.Views.BandedGrid.GridBand
|
||||||
Friend WithEvents GridView3 As DevExpress.XtraGrid.Views.BandedGrid.BandedGridView
|
Friend WithEvents GridView3 As DevExpress.XtraGrid.Views.BandedGrid.BandedGridView
|
||||||
@ -482,4 +467,5 @@ Partial Class frmDocumentResultList
|
|||||||
Friend WithEvents RepositoryItemTextEdit2 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
|
Friend WithEvents RepositoryItemTextEdit2 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
|
||||||
Friend WithEvents labelCriticalError As DevExpress.XtraBars.BarStaticItem
|
Friend WithEvents labelCriticalError As DevExpress.XtraBars.BarStaticItem
|
||||||
Friend WithEvents labelWarning As DevExpress.XtraBars.BarStaticItem
|
Friend WithEvents labelWarning As DevExpress.XtraBars.BarStaticItem
|
||||||
|
Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -17,14 +17,17 @@ Imports DevExpress.XtraGrid.Views.BandedGrid
|
|||||||
Imports System.ComponentModel
|
Imports System.ComponentModel
|
||||||
Imports DevExpress.XtraGrid.Views.Grid.ViewInfo
|
Imports DevExpress.XtraGrid.Views.Grid.ViewInfo
|
||||||
Imports DevExpress.XtraEditors.ViewInfo
|
Imports DevExpress.XtraEditors.ViewInfo
|
||||||
|
Imports DevExpress.XtraEditors
|
||||||
|
|
||||||
Public Class frmDocumentResultList
|
Public Class frmDocumentResultList
|
||||||
Implements IResultForm
|
Implements IResultForm
|
||||||
|
|
||||||
Private COLUMN_FILEPATH = "FULL_FILENAME"
|
' These are NOT constants, only defaults
|
||||||
Private COLUMN_FILENAME = "Filename"
|
' Can be changed when calling frmDocumentResultList
|
||||||
Private COLUMN_DOCID = "DocID"
|
Private COLUMN_FILEPATH As String = "FULL_FILENAME"
|
||||||
Private COLUMN_ICON = "ICON"
|
Private COLUMN_FILENAME As String = "Filename"
|
||||||
|
Private COLUMN_DOCID As String = "DocID"
|
||||||
|
Private COLUMN_ICON As String = "ICON"
|
||||||
|
|
||||||
Private _IsLoading As Boolean = True
|
Private _IsLoading As Boolean = True
|
||||||
Private _IDBClient As Client
|
Private _IDBClient As Client
|
||||||
@ -140,14 +143,17 @@ Public Class frmDocumentResultList
|
|||||||
If IsNothing(_DocumentInfo) Or DocumentViewer1.FileLoaded = False Then
|
If IsNothing(_DocumentInfo) Or DocumentViewer1.FileLoaded = False Then
|
||||||
Show_Warning("File could not be loaded!")
|
Show_Warning("File could not be loaded!")
|
||||||
End If
|
End If
|
||||||
DocumentViewer1.LoadFile(_DocumentInfo.FullPath)
|
|
||||||
|
|
||||||
If _DocumentInfo.AccessRight = Rights.AccessRight.VIEW_ONLY Then
|
If Not IsNothing(_DocumentInfo) Then
|
||||||
DocumentViewer1.SetViewOnly(True)
|
DocumentViewer1.LoadFile(_DocumentInfo.FullPath)
|
||||||
RibbonPageGroup_Export.Visible = False
|
|
||||||
Else
|
If _DocumentInfo.AccessRight = Rights.AccessRight.VIEW_ONLY Then
|
||||||
DocumentViewer1.SetViewOnly(False)
|
DocumentViewer1.SetViewOnly(True)
|
||||||
RibbonPageGroup_Export.Visible = True
|
RibbonPageGroup_Export.Visible = False
|
||||||
|
Else
|
||||||
|
DocumentViewer1.SetViewOnly(False)
|
||||||
|
RibbonPageGroup_Export.Visible = True
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
@ -215,26 +221,46 @@ Public Class frmDocumentResultList
|
|||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Sub LoadGridData(Result As DocumentResult)
|
||||||
|
If Result.Datatable.Columns.Contains(COLUMN_DOCID) = False Then
|
||||||
|
Throw New ApplicationException($"Datatable is missing DocId Column [{COLUMN_DOCID}] for search {Result.Title}!")
|
||||||
|
End If
|
||||||
|
|
||||||
|
If OperationMode = IResultForm.Mode.NoAppServer And Result.Datatable.Columns.Contains(COLUMN_FILEPATH) = False Then
|
||||||
|
Throw New ApplicationException($"Datatable is missing Filepath Column [{COLUMN_FILEPATH}] for search {Result.Title}!")
|
||||||
|
End If
|
||||||
|
|
||||||
|
GridControl1.DataSource = Result.Datatable
|
||||||
|
GridControl1.ForceInitialize()
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub UpdateGridData()
|
Private Sub UpdateGridData()
|
||||||
' Load Grids
|
' Load Grids
|
||||||
For index = 0 To _ResultLists.Count - 1
|
For oIndex = 0 To _ResultLists.Count - 1
|
||||||
Select Case index
|
Select Case oIndex
|
||||||
Case 0
|
Case 0
|
||||||
Dim oResult As DocumentResult = _ResultLists.Item(0)
|
Dim oResult As DocumentResult = _ResultLists.Item(0)
|
||||||
|
|
||||||
|
LoadGridData(oResult)
|
||||||
CreateDocumentGrid(GridView1, oResult)
|
CreateDocumentGrid(GridView1, oResult)
|
||||||
RestoreLayout(GridView1)
|
RestoreLayout(GridView1)
|
||||||
UpdateGridHeader(_ResultLists, index, oResult.Datatable.Rows.Count)
|
UpdateGridHeader(_ResultLists, oIndex, oResult.Datatable.Rows.Count)
|
||||||
|
|
||||||
Case 1
|
Case 1
|
||||||
Dim oResult As DocumentResult = _ResultLists.Item(1)
|
Dim oResult As DocumentResult = _ResultLists.Item(1)
|
||||||
|
|
||||||
|
LoadGridData(oResult)
|
||||||
CreateDocumentGrid(GridView2, oResult)
|
CreateDocumentGrid(GridView2, oResult)
|
||||||
RestoreLayout(GridView1)
|
RestoreLayout(GridView2)
|
||||||
UpdateGridHeader(_ResultLists, index, oResult.Datatable.Rows.Count)
|
UpdateGridHeader(_ResultLists, oIndex, oResult.Datatable.Rows.Count)
|
||||||
|
|
||||||
Case 2
|
Case 2
|
||||||
Dim oResult As DocumentResult = _ResultLists.Item(2)
|
Dim oResult As DocumentResult = _ResultLists.Item(2)
|
||||||
|
|
||||||
|
LoadGridData(oResult)
|
||||||
CreateDocumentGrid(GridView3, oResult)
|
CreateDocumentGrid(GridView3, oResult)
|
||||||
RestoreLayout(GridView1)
|
RestoreLayout(GridView3)
|
||||||
UpdateGridHeader(_ResultLists, index, oResult.Datatable.Rows.Count)
|
UpdateGridHeader(_ResultLists, oIndex, oResult.Datatable.Rows.Count)
|
||||||
|
|
||||||
Case Else
|
Case Else
|
||||||
MessageBox.Show(Constants.MESSAGE_TOO_MANY_SEARCHES, Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
|
MessageBox.Show(Constants.MESSAGE_TOO_MANY_SEARCHES, Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
|
||||||
@ -285,7 +311,7 @@ Public Class frmDocumentResultList
|
|||||||
Select Case pIndex
|
Select Case pIndex
|
||||||
Case 0
|
Case 0
|
||||||
Dim oResult = pResultList.Item(0)
|
Dim oResult = pResultList.Item(0)
|
||||||
GridBand1.Caption = $"{oResult.Title} ({pCount})"
|
'GridBand1.Caption = $"{oResult.Title} ({pCount})"
|
||||||
|
|
||||||
Case 1
|
Case 1
|
||||||
Dim oResult = pResultList.Item(1)
|
Dim oResult = pResultList.Item(1)
|
||||||
@ -298,89 +324,23 @@ Public Class frmDocumentResultList
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub CreateDocumentGrid(GridView As GridView, Result As DocumentResult)
|
Private Sub CreateDocumentGrid(GridView As GridView, Result As DocumentResult)
|
||||||
Dim oDocDatatable As New DataTable
|
|
||||||
Try
|
Try
|
||||||
If Result.Datatable.Columns.Contains(COLUMN_DOCID) = False Then
|
If IsNothing(GridView.Columns("ICON")) Then
|
||||||
Throw New ApplicationException($"Datatable is missing DocId Column [{COLUMN_DOCID}] for search {Result.Title}!")
|
Dim oIconColumn = GridView.Columns.AddVisible("ICON", "ICON")
|
||||||
|
With oIconColumn
|
||||||
|
.OptionsColumn.AllowSort = False
|
||||||
|
.OptionsColumn.AllowSize = False
|
||||||
|
.OptionsColumn.ShowCaption = False
|
||||||
|
.OptionsColumn.FixedWidth = True
|
||||||
|
.Width = 20
|
||||||
|
.MaxWidth = 20
|
||||||
|
.MinWidth = 20
|
||||||
|
.VisibleIndex = 0
|
||||||
|
End With
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If OperationMode = IResultForm.Mode.NoAppServer And Result.Datatable.Columns.Contains(COLUMN_FILEPATH) = False Then
|
|
||||||
Throw New ApplicationException($"Datatable is missing Filepath Column [{COLUMN_FILEPATH}] for search {Result.Title}!")
|
|
||||||
End If
|
|
||||||
|
|
||||||
'Die Icon Colum erstellen und konfigurieren
|
|
||||||
oDocDatatable.Columns.Add(New DataColumn() With {
|
|
||||||
.DataType = GetType(Image),
|
|
||||||
.ColumnName = COLUMN_ICON,
|
|
||||||
.Caption = ""
|
|
||||||
})
|
|
||||||
oDocDatatable.Columns.Add(New DataColumn() With {
|
|
||||||
.DataType = GetType(String),
|
|
||||||
.ColumnName = COLUMN_FILEPATH,
|
|
||||||
.Caption = "Fullpath"
|
|
||||||
})
|
|
||||||
oDocDatatable.Columns.Add(New DataColumn() With {
|
|
||||||
.DataType = GetType(Int32),
|
|
||||||
.ColumnName = COLUMN_DOCID,
|
|
||||||
.Caption = "DocID"
|
|
||||||
})
|
|
||||||
oDocDatatable.Columns.Add(New DataColumn() With {
|
|
||||||
.DataType = GetType(String),
|
|
||||||
.ColumnName = COLUMN_FILENAME,
|
|
||||||
.Caption = "Filename"
|
|
||||||
})
|
|
||||||
|
|
||||||
Dim oRestColArray As New List(Of String)
|
|
||||||
For Each oColumn As DataColumn In Result.Datatable.Columns
|
|
||||||
If oColumn.ColumnName <> COLUMN_DOCID And oColumn.ColumnName <> COLUMN_FILEPATH And oColumn.ColumnName <> COLUMN_FILENAME Then
|
|
||||||
Dim oNewColumn As New DataColumn() With {
|
|
||||||
.DataType = oColumn.DataType,
|
|
||||||
.ColumnName = oColumn.ColumnName,
|
|
||||||
.Caption = oColumn.Caption
|
|
||||||
}
|
|
||||||
|
|
||||||
oDocDatatable.Columns.Add(oNewColumn)
|
|
||||||
oRestColArray.Add(oNewColumn.ColumnName)
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
|
|
||||||
For Each oRow As DataRow In Result.Datatable.Rows
|
|
||||||
Dim oDocId = TryGetItem(oRow, COLUMN_DOCID)
|
|
||||||
Dim oFullpath = TryGetItem(oRow, COLUMN_FILEPATH)
|
|
||||||
Dim oFilename = TryGetItem(oRow, COLUMN_FILENAME)
|
|
||||||
|
|
||||||
Dim oNewRow As DataRow
|
|
||||||
oNewRow = oDocDatatable.NewRow()
|
|
||||||
|
|
||||||
If OperationMode = IResultForm.Mode.NoAppServer Then
|
|
||||||
oNewRow.Item(COLUMN_ICON) = _Helpers.GetIconByExtension(oFullpath)
|
|
||||||
oNewRow.Item(COLUMN_FILEPATH) = oFullpath
|
|
||||||
oNewRow.Item(COLUMN_FILENAME) = oFilename
|
|
||||||
Else
|
|
||||||
oNewRow.Item(COLUMN_ICON) = _Helpers.GetIconByExtension(oFilename)
|
|
||||||
oNewRow.Item(COLUMN_FILEPATH) = String.Empty
|
|
||||||
oNewRow.Item(COLUMN_FILENAME) = oFilename
|
|
||||||
End If
|
|
||||||
|
|
||||||
oNewRow.Item(COLUMN_DOCID) = oDocId
|
|
||||||
|
|
||||||
Dim oIndex = 4 'Fängt bei 4 an, um die definierten Spalten zu überspringen
|
|
||||||
For Each oColumnName As String In oRestColArray
|
|
||||||
Dim oRowValue
|
|
||||||
oRowValue = oRow.Item(oColumnName)
|
|
||||||
oNewRow.Item(oIndex) = oRowValue
|
|
||||||
oIndex += 1
|
|
||||||
Next
|
|
||||||
|
|
||||||
oDocDatatable.Rows.Add(oNewRow)
|
|
||||||
Next
|
|
||||||
|
|
||||||
Dim oGridControl As GridControl = GridView.GridControl
|
|
||||||
oGridControl.DataSource = oDocDatatable
|
|
||||||
oGridControl.ForceInitialize()
|
|
||||||
|
|
||||||
Dim oCreated, oChanged As String
|
Dim oCreated, oChanged As String
|
||||||
If _Environment.User.Language <> "de-DE" Then
|
If _Environment?.User?.Language <> "de-DE" Then
|
||||||
oChanged = "Changed"
|
oChanged = "Changed"
|
||||||
oCreated = "Created"
|
oCreated = "Created"
|
||||||
Else
|
Else
|
||||||
@ -389,16 +349,19 @@ Public Class frmDocumentResultList
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Try
|
Try
|
||||||
GridView.Columns.Item(COLUMN_DOCID).Visible = False
|
Dim oDocIdColumn As GridColumn = GridView.Columns(COLUMN_DOCID)
|
||||||
GridView.Columns.Item(COLUMN_FILEPATH).Visible = False
|
If Not IsNothing(oDocIdColumn) Then
|
||||||
GridView.Columns.Item(COLUMN_ICON).MaxWidth = 24
|
oDocIdColumn.Visible = False
|
||||||
GridView.Columns.Item(COLUMN_ICON).MinWidth = 24
|
End If
|
||||||
|
|
||||||
If OperationMode = IResultForm.Mode.WithAppServer Then
|
Dim oFilePathColumn As GridColumn = GridView.Columns(COLUMN_FILEPATH)
|
||||||
' Hide Fullpath completely in AppServer Mode
|
If Not IsNothing(oFilePathColumn) Then
|
||||||
GridView.Columns.Item(COLUMN_FILEPATH).OptionsColumn.ShowInCustomizationForm = False
|
oFilePathColumn.Visible = False
|
||||||
'GridView.Columns.Item(COLUMN_ICON).Visible = False
|
|
||||||
GridView.Columns.Item(COLUMN_FILEPATH).Visible = False
|
' Hide Fullpath column completely in AppServer-Mode
|
||||||
|
If OperationMode = IResultForm.Mode.WithAppServer Then
|
||||||
|
oFilePathColumn.OptionsColumn.ShowInCustomizationForm = False
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim oCreatedColumn = GridView.Columns(oCreated)
|
Dim oCreatedColumn = GridView.Columns(oCreated)
|
||||||
@ -412,17 +375,12 @@ Public Class frmDocumentResultList
|
|||||||
oChangedColumn.DisplayFormat.FormatType = FormatType.DateTime
|
oChangedColumn.DisplayFormat.FormatType = FormatType.DateTime
|
||||||
oChangedColumn.DisplayFormat.FormatString = _Environment.User.DateFormat & " HH:MM:ss"
|
oChangedColumn.DisplayFormat.FormatString = _Environment.User.DateFormat & " HH:MM:ss"
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Alle Spalten auf ReadOnly setzen, danach werden alle passenden auf nicht ReadOnly gesetzt
|
|
||||||
For Each oColumn As GridColumn In GridView.Columns
|
|
||||||
oColumn.OptionsColumn.AllowEdit = False
|
|
||||||
Next
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
_Logger.Error(ex)
|
_Logger.Error(ex)
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
GridView.OptionsView.BestFitMaxRowCount = -1
|
GridView.OptionsView.BestFitMaxRowCount = 30
|
||||||
GridView.BestFitColumns(True)
|
GridView.BestFitColumns()
|
||||||
Catch ex As ApplicationException
|
Catch ex As ApplicationException
|
||||||
MsgBox($"Error while loading grid data for search {Result.Title}: {vbNewLine}{vbNewLine}{ex.Message}", MsgBoxStyle.Critical, Text)
|
MsgBox($"Error while loading grid data for search {Result.Title}: {vbNewLine}{vbNewLine}{ex.Message}", MsgBoxStyle.Critical, Text)
|
||||||
_Logger.Error(ex)
|
_Logger.Error(ex)
|
||||||
@ -430,26 +388,53 @@ Public Class frmDocumentResultList
|
|||||||
_Logger.Error(ex)
|
_Logger.Error(ex)
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Private Sub GridView1_CustomDrawCell(sender As Object, e As RowCellCustomDrawEventArgs) Handles GridView1.CustomDrawCell
|
Private Sub GridView1_CustomDrawCell(sender As Object, e As RowCellCustomDrawEventArgs) Handles GridView1.CustomDrawCell
|
||||||
Dim view As GridView = TryCast(sender, GridView)
|
If e.RowHandle < 0 Then
|
||||||
If e.Column.FieldName = "Name" Then
|
Exit Sub
|
||||||
Dim cellInfo As GridCellInfo = TryCast(e.Cell, GridCellInfo)
|
|
||||||
Dim info As TextEditViewInfo = TryCast(cellInfo.ViewInfo, TextEditViewInfo)
|
|
||||||
If info IsNot Nothing Then
|
|
||||||
If OperationMode = IResultForm.Mode.NoAppServer Then
|
|
||||||
' oNewRow.Item(COLUMN_ICON) = _Helpers.GetIconByExtension(oFullpath)
|
|
||||||
' oNewRow.Item(COLUMN_FILEPATH) = oFullpath
|
|
||||||
' oNewRow.Item(COLUMN_FILENAME) = oFilename
|
|
||||||
Else
|
|
||||||
'info.ContextImage = _Helpers.GetIconByExtension(oFilename)
|
|
||||||
' oNewRow.Item(COLUMN_ICON) = _Helpers.GetIconByExtension(oFilename)
|
|
||||||
' oNewRow.Item(COLUMN_FILEPATH) = String.Empty
|
|
||||||
' oNewRow.Item(COLUMN_FILENAME) = oFilename
|
|
||||||
End If
|
|
||||||
info.CalcViewInfo()
|
|
||||||
End If
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
Dim oView As GridView = TryCast(sender, GridView)
|
||||||
|
Dim oCellInfo As GridCellInfo = TryCast(e.Cell, GridCellInfo)
|
||||||
|
Dim oRow As DataRow = oView.GetDataRow(e.RowHandle)
|
||||||
|
Dim oValue = oRow.Item(COLUMN_FILENAME)
|
||||||
|
|
||||||
|
e.DefaultDraw()
|
||||||
|
|
||||||
|
If e.Column.FieldName = COLUMN_ICON Then
|
||||||
|
Dim oIcon = _Helpers.GetIconByExtension(oValue)
|
||||||
|
Dim offsetX = 0
|
||||||
|
Dim offsetY = 0
|
||||||
|
|
||||||
|
e.Cache.DrawImage(oIcon, e.Bounds.X + offsetX, e.Bounds.Y + offsetY, 18, 18)
|
||||||
|
End If
|
||||||
|
|
||||||
|
'Dim view As GridView = TryCast(sender, GridView)
|
||||||
|
'If e.Column.FieldName = COLUMN_FILENAME Then
|
||||||
|
' Dim oCellInfo As GridCellInfo = TryCast(e.Cell, GridCellInfo)
|
||||||
|
' Dim oViewInfo As TextEditViewInfo = TryCast(oCellInfo.ViewInfo, TextEditViewInfo)
|
||||||
|
' Dim oFilename As String = e.DisplayText
|
||||||
|
|
||||||
|
' If oViewInfo IsNot Nothing And oFilename <> String.Empty Then
|
||||||
|
' If OperationMode = IResultForm.Mode.NoAppServer Then
|
||||||
|
' ' oNewRow.Item(COLUMN_ICON) = _Helpers.GetIconByExtension(oFullpath)
|
||||||
|
' ' oNewRow.Item(COLUMN_FILEPATH) = oFullpath
|
||||||
|
' ' oNewRow.Item(COLUMN_FILENAME) = oFilename
|
||||||
|
' Else
|
||||||
|
' oViewInfo.ContextImage = _Helpers.GetIconByExtension(oFilename)
|
||||||
|
' oViewInfo.ContextImageAlignment = ContextImageAlignment.Near
|
||||||
|
' ' oNewRow.Item(COLUMN_ICON) = _Helpers.GetIconByExtension(oFilename)
|
||||||
|
' ' oNewRow.Item(COLUMN_FILEPATH) = String.Empty
|
||||||
|
' ' oNewRow.Item(COLUMN_FILENAME) = oFilename
|
||||||
|
' End If
|
||||||
|
' oViewInfo.CalcViewInfo()
|
||||||
|
' End If
|
||||||
|
'End If
|
||||||
|
'e.DefaultDraw()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Function TryGetItem(DataRow As DataRow, ColumnName As String, Optional DefaultValue As String = "") As String
|
Private Function TryGetItem(DataRow As DataRow, ColumnName As String, Optional DefaultValue As String = "") As String
|
||||||
Try
|
Try
|
||||||
Return DataRow.Item(ColumnName)
|
Return DataRow.Item(ColumnName)
|
||||||
@ -545,7 +530,6 @@ Public Class frmDocumentResultList
|
|||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub RestoreLayout(pGridView As GridView)
|
Private Sub RestoreLayout(pGridView As GridView)
|
||||||
|
|
||||||
Try
|
Try
|
||||||
Dim oXml As String = GetDevexpressGrid_LayoutName(pGridView)
|
Dim oXml As String = GetDevexpressGrid_LayoutName(pGridView)
|
||||||
pGridView.RestoreLayoutFromXml(oXml, OptionsLayoutBase.FullLayout)
|
pGridView.RestoreLayoutFromXml(oXml, OptionsLayoutBase.FullLayout)
|
||||||
@ -569,7 +553,7 @@ Public Class frmDocumentResultList
|
|||||||
|
|
||||||
Private Sub SetActiveGridBand()
|
Private Sub SetActiveGridBand()
|
||||||
If _ActiveGrid.Equals(GridControl1) Then
|
If _ActiveGrid.Equals(GridControl1) Then
|
||||||
_ActiveGridBand = GridBand1
|
'_ActiveGridBand = GridBand1
|
||||||
ElseIf _ActiveGrid.Equals(GridControl2) Then
|
ElseIf _ActiveGrid.Equals(GridControl2) Then
|
||||||
_ActiveGridBand = GridBand2
|
_ActiveGridBand = GridBand2
|
||||||
ElseIf _ActiveGrid.Equals(GridControl3) Then
|
ElseIf _ActiveGrid.Equals(GridControl3) Then
|
||||||
@ -669,7 +653,7 @@ Public Class frmDocumentResultList
|
|||||||
OpenFile()
|
OpenFile()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub GridView_PopupMenuShowing(sender As Object, e As PopupMenuShowingEventArgs) Handles GridView1.PopupMenuShowing, GridView2.PopupMenuShowing, GridView3.PopupMenuShowing
|
Private Sub GridView_PopupMenuShowing(sender As Object, e As PopupMenuShowingEventArgs) Handles GridView2.PopupMenuShowing, GridView3.PopupMenuShowing
|
||||||
Try
|
Try
|
||||||
Dim oView As GridView = sender
|
Dim oView As GridView = sender
|
||||||
|
|
||||||
@ -719,19 +703,15 @@ Public Class frmDocumentResultList
|
|||||||
Dim oFile = GetDevexpressGrid_LayoutName(_ActiveGrid.MainView)
|
Dim oFile = GetDevexpressGrid_LayoutName(_ActiveGrid.MainView)
|
||||||
If File.Exists(oFile) Then
|
If File.Exists(oFile) Then
|
||||||
File.Delete(oFile)
|
File.Delete(oFile)
|
||||||
UpdateGridData()
|
|
||||||
End If
|
End If
|
||||||
|
UpdateGridData()
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
|
_Logger.Error(ex)
|
||||||
End Try
|
End Try
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub frmDocumentResultList_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
|
Private Sub frmDocumentResultList_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
|
||||||
GridViewSave_Layout(_ActiveGrid.MainView)
|
GridViewSave_Layout(_ActiveGrid.MainView)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
Loading…
x
Reference in New Issue
Block a user