frmDocumentResultList

This commit is contained in:
Jonathan Jenne 2019-09-30 14:16:37 +02:00
parent d78254fc9c
commit 9f270d93c9
14 changed files with 436 additions and 114 deletions

View File

@ -8,6 +8,7 @@ Public Class ProfileSearches
Private _Params As ClipboardWatcherParams Private _Params As ClipboardWatcherParams
Public Class Search Public Class Search
Public Guid As Integer
Public DataTable As DataTable Public DataTable As DataTable
Public TabIndex As Integer Public TabIndex As Integer
Public TabCaption As String Public TabCaption As String
@ -38,6 +39,7 @@ Public Class ProfileSearches
Dim oProfileId As Integer = oRow.Item("PROFILE_ID") Dim oProfileId As Integer = oRow.Item("PROFILE_ID")
Dim oTabTitle As String = oRow.Item("TAB_TITLE") Dim oTabTitle As String = oRow.Item("TAB_TITLE")
Dim oConnectionId As Integer = oRow.Item("CONN_ID") Dim oConnectionId As Integer = oRow.Item("CONN_ID")
Dim oGuid As Integer = oRow.Item("GUID")
oSQL = oRow.Item("SQL_COMMAND") oSQL = oRow.Item("SQL_COMMAND")
oSQL = oPatterns.ReplaceUserValues(oSQL, _Environment.User) oSQL = oPatterns.ReplaceUserValues(oSQL, _Environment.User)
@ -46,6 +48,7 @@ Public Class ProfileSearches
Dim oDatatable As DataTable = _Environment.Database.GetDatatable(oSQL, oConnectionId) Dim oDatatable As DataTable = _Environment.Database.GetDatatable(oSQL, oConnectionId)
oDocSearches.Add(New Search() With { oDocSearches.Add(New Search() With {
.Guid = oGuid,
.DataTable = oDatatable, .DataTable = oDatatable,
.ProfileId = oProfileId, .ProfileId = oProfileId,
.TabCaption = oTabTitle, .TabCaption = oTabTitle,

View File

@ -4,6 +4,7 @@ Imports DevExpress.XtraEditors
Imports DigitalData.GUIs.Common Imports DigitalData.GUIs.Common
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Windows Imports DigitalData.Modules.Windows
Imports DigitalData.Modules.Language
Imports DigitalData.Modules.ZooFlow Imports DigitalData.Modules.ZooFlow
Imports DigitalData.Modules.ZooFlow.Params Imports DigitalData.Modules.ZooFlow.Params
@ -182,6 +183,10 @@ Public Class frmMatch
Dim oProfileId As Integer = oItem.Tag Dim oProfileId As Integer = oItem.Tag
Dim oProfileSearch As New ProfileSearches(_LogConfig, _Environment, _Params) Dim oProfileSearch As New ProfileSearches(_LogConfig, _Environment, _Params)
Dim oProfile As ProfileData = _Params.MatchingProfiles.
Where(Function(p) p.Guid = oProfileId).
ToList().
First()
Select Case oItem.Group.Name Select Case oItem.Group.Name
Case TileGroupData.Name Case TileGroupData.Name
@ -189,7 +194,7 @@ Public Class frmMatch
Case TileGroupDocuments.Name Case TileGroupDocuments.Name
Dim oSearches = Await oProfileSearch.LoadDocumentSearchesAsync() Dim oSearches = Await oProfileSearch.LoadDocumentSearchesAsync()
OpenDocumentResults(oProfileId, oSearches) OpenDocumentResults(oProfile, oSearches)
Case Else Case Else
'OpenResultForms(oProfileId, ProfileType.ANY) 'OpenResultForms(oProfileId, ProfileType.ANY)
@ -198,12 +203,18 @@ Public Class frmMatch
Hide() Hide()
End Sub End Sub
Private Sub OpenDocumentResults(ProfileId As Integer, Searches As List(Of ProfileSearches.Search)) Private Sub OpenDocumentResults(Profile As ProfileData, Searches As List(Of ProfileSearches.Search))
Dim oParams = New ResultListParams() Dim oNameSlug = Language.Utils.ConvertTextToSlug(Profile.Name)
Dim oSearchGuids = Searches.Select(Function(s) s.Guid).ToArray
Dim oWindowGuid = $"{Profile.Guid}-{oNameSlug}-{String.Join("-", oSearchGuids)}"
Dim oParams = New ResultListParams() With {
.WindowGuid = oWindowGuid
}
For Each oSearch In Searches For Each oSearch In Searches
oParams.Results.Add(New DocumentResult() With { oParams.Results.Add(New DocumentResult() With {
.Datatable = oSearch.DataTable .Title = oSearch.TabCaption,
.Datatable = oSearch.DataTable
}) })
Next Next

View File

@ -44,13 +44,16 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="DevExpress.Data.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.Data.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Dialogs.v18.1.Core, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Printing.v18.1.Core, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.Printing.v18.1.Core, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Utils.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.Utils.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" /> <Reference Include="DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraDialogs.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" /> <Reference Include="DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraLayout.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.XtraLayout.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraPrinting.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.XtraPrinting.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraTreeList.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.6.7\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.6.7\lib\net45\NLog.dll</HintPath>
@ -82,6 +85,7 @@
<Import Include="System.Threading.Tasks" /> <Import Include="System.Threading.Tasks" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="DocumentResultConfig.vb" />
<Compile Include="frmDocumentResultList.Designer.vb"> <Compile Include="frmDocumentResultList.Designer.vb">
<DependentUpon>frmDocumentResultList.vb</DependentUpon> <DependentUpon>frmDocumentResultList.vb</DependentUpon>
</Compile> </Compile>
@ -140,10 +144,18 @@
<None Include="packages.config" /> <None Include="packages.config" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Modules.Config\Config.vbproj">
<Project>{44982f9b-6116-44e2-85d0-f39650b1ef99}</Project>
<Name>Config</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.Database\Database.vbproj"> <ProjectReference Include="..\Modules.Database\Database.vbproj">
<Project>{EAF0EA75-5FA7-485D-89C7-B2D843B03A96}</Project> <Project>{EAF0EA75-5FA7-485D-89C7-B2D843B03A96}</Project>
<Name>Database</Name> <Name>Database</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\Modules.Language\Language.vbproj">
<Project>{d3c8cfed-d6f6-43a8-9bdf-454145d0352f}</Project>
<Name>Language</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.Logging\Logging.vbproj"> <ProjectReference Include="..\Modules.Logging\Logging.vbproj">
<Project>{903B2D7D-3B80-4BE9-8713-7447B704E1B0}</Project> <Project>{903B2D7D-3B80-4BE9-8713-7447B704E1B0}</Project>
<Name>Logging</Name> <Name>Logging</Name>

View File

@ -0,0 +1,6 @@
Public Class DocumentResultConfig
Public Property SplitContainer1Distance As Integer = 500
Public Property SplitContainer1Horizontal As Boolean = True
Public Property SplitContainer2Distance As Integer = 250
Public Property SplitContainer2Horizontal As Boolean = False
End Class

View File

@ -1,7 +1,12 @@
Public Class ResultListParams Public Class ResultListParams
''' <summary>
''' WindowGuid is used to save layout data
''' </summary>
Public WindowGuid As String
Public Results As New List(Of DocumentResult) Public Results As New List(Of DocumentResult)
End Class End Class
Public Class DocumentResult Public Class DocumentResult
Public Title As String
Public Datatable As DataTable Public Datatable As DataTable
End Class End Class

View File

@ -19,20 +19,28 @@ Partial Class frmDocumentResultList
'Do not modify it using the code editor. 'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _ <System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent() Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmDocumentResultList))
Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl() Me.RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.BarToggleSwitchItem1 = New DevExpress.XtraBars.BarToggleSwitchItem() Me.SwitchMainContainerHorizontal = New DevExpress.XtraBars.BarToggleSwitchItem()
Me.BarToggleSwitchItem2 = New DevExpress.XtraBars.BarToggleSwitchItem() Me.SwitchDetailContainerHorizontal = New DevExpress.XtraBars.BarToggleSwitchItem()
Me.BarButtonItemExportGrid1 = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
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.Grid.GridView() Me.GridView1 = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridView()
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.Grid.GridView() Me.GridView2 = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridView()
Me.GridBand2 = New DevExpress.XtraGrid.Views.BandedGrid.GridBand()
Me.GridControl3 = New DevExpress.XtraGrid.GridControl() Me.GridControl3 = New DevExpress.XtraGrid.GridControl()
Me.GridView3 = New DevExpress.XtraGrid.Views.Grid.GridView() Me.GridView3 = New DevExpress.XtraGrid.Views.BandedGrid.BandedGridView()
Me.GridBand3 = New DevExpress.XtraGrid.Views.BandedGrid.GridBand()
Me.XtraSaveFileDialog = New DevExpress.XtraEditors.XtraSaveFileDialog(Me.components)
CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerControl1.SuspendLayout() Me.SplitContainerControl1.SuspendLayout()
@ -49,39 +57,56 @@ Partial Class frmDocumentResultList
'RibbonControl 'RibbonControl
' '
Me.RibbonControl.ExpandCollapseItem.Id = 0 Me.RibbonControl.ExpandCollapseItem.Id = 0
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.BarToggleSwitchItem1, Me.BarToggleSwitchItem2}) Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.SwitchMainContainerHorizontal, Me.SwitchDetailContainerHorizontal, Me.BarButtonItemExportGrid1})
Me.RibbonControl.Location = New System.Drawing.Point(0, 0) Me.RibbonControl.Location = New System.Drawing.Point(0, 0)
Me.RibbonControl.MaxItemId = 3 Me.RibbonControl.MaxItemId = 4
Me.RibbonControl.Name = "RibbonControl" Me.RibbonControl.Name = "RibbonControl"
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
Me.RibbonControl.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
Me.RibbonControl.Size = New System.Drawing.Size(1189, 143) Me.RibbonControl.Size = New System.Drawing.Size(1189, 143)
Me.RibbonControl.StatusBar = Me.RibbonStatusBar Me.RibbonControl.StatusBar = Me.RibbonStatusBar
' '
'BarToggleSwitchItem1 'SwitchMainContainerHorizontal
' '
Me.BarToggleSwitchItem1.Caption = "BarToggleSwitchItem1" Me.SwitchMainContainerHorizontal.BindableChecked = True
Me.BarToggleSwitchItem1.Id = 1 Me.SwitchMainContainerHorizontal.Caption = "Hauptgrid Horizontal"
Me.BarToggleSwitchItem1.Name = "BarToggleSwitchItem1" Me.SwitchMainContainerHorizontal.Checked = True
Me.SwitchMainContainerHorizontal.Id = 1
Me.SwitchMainContainerHorizontal.Name = "SwitchMainContainerHorizontal"
' '
'BarToggleSwitchItem2 'SwitchDetailContainerHorizontal
' '
Me.BarToggleSwitchItem2.Caption = "BarToggleSwitchItem2" Me.SwitchDetailContainerHorizontal.Caption = "Detailgrid Horizontal"
Me.BarToggleSwitchItem2.Id = 2 Me.SwitchDetailContainerHorizontal.Id = 2
Me.BarToggleSwitchItem2.Name = "BarToggleSwitchItem2" Me.SwitchDetailContainerHorizontal.Name = "SwitchDetailContainerHorizontal"
'
'BarButtonItemExportGrid1
'
Me.BarButtonItemExportGrid1.Caption = "Haupttabelle exportieren"
Me.BarButtonItemExportGrid1.Id = 3
Me.BarButtonItemExportGrid1.ImageOptions.Image = CType(resources.GetObject("BarButtonItemExportGrid1.ImageOptions.Image"), System.Drawing.Image)
Me.BarButtonItemExportGrid1.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItemExportGrid1.ImageOptions.LargeImage"), System.Drawing.Image)
Me.BarButtonItemExportGrid1.Name = "BarButtonItemExportGrid1"
' '
'RibbonPage1 'RibbonPage1
' '
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2})
Me.RibbonPage1.Name = "RibbonPage1" Me.RibbonPage1.Name = "RibbonPage1"
Me.RibbonPage1.Text = "RibbonPage1" Me.RibbonPage1.Text = "Ergebnisse"
' '
'RibbonPageGroup1 'RibbonPageGroup1
' '
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarToggleSwitchItem1) Me.RibbonPageGroup1.ItemLinks.Add(Me.SwitchMainContainerHorizontal)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarToggleSwitchItem2) Me.RibbonPageGroup1.ItemLinks.Add(Me.SwitchDetailContainerHorizontal)
Me.RibbonPageGroup1.Name = "RibbonPageGroup1" Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
Me.RibbonPageGroup1.Text = "Layout" Me.RibbonPageGroup1.Text = "Layout"
' '
'RibbonPageGroup2
'
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItemExportGrid1)
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
Me.RibbonPageGroup2.Text = "Export"
'
'RibbonStatusBar 'RibbonStatusBar
' '
Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 640) Me.RibbonStatusBar.Location = New System.Drawing.Point(0, 640)
@ -91,6 +116,7 @@ Partial Class frmDocumentResultList
' '
'SplitContainerControl1 'SplitContainerControl1
' '
Me.SplitContainerControl1.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2
Me.SplitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainerControl1.Location = New System.Drawing.Point(0, 143) Me.SplitContainerControl1.Location = New System.Drawing.Point(0, 143)
Me.SplitContainerControl1.Name = "SplitContainerControl1" Me.SplitContainerControl1.Name = "SplitContainerControl1"
@ -116,12 +142,28 @@ Partial Class frmDocumentResultList
' '
'GridView1 'GridView1
' '
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.OptionsView.ShowAutoFilterRow = True Me.GridView1.OptionsView.ShowAutoFilterRow = True
Me.GridView1.OptionsView.ShowGroupPanel = False
'
'GridBand1
'
Me.GridBand1.AppearanceHeader.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
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.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainerControl2.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainerControl2.Horizontal = False Me.SplitContainerControl2.Horizontal = False
Me.SplitContainerControl2.Location = New System.Drawing.Point(0, 0) Me.SplitContainerControl2.Location = New System.Drawing.Point(0, 0)
@ -148,9 +190,23 @@ Partial Class frmDocumentResultList
' '
'GridView2 'GridView2
' '
Me.GridView2.Bands.AddRange(New DevExpress.XtraGrid.Views.BandedGrid.GridBand() {Me.GridBand2})
Me.GridView2.GridControl = Me.GridControl2 Me.GridView2.GridControl = Me.GridControl2
Me.GridView2.Name = "GridView2" Me.GridView2.Name = "GridView2"
Me.GridView2.OptionsView.ShowAutoFilterRow = True Me.GridView2.OptionsView.ShowAutoFilterRow = True
Me.GridView2.OptionsView.ShowGroupPanel = False
'
'GridBand2
'
Me.GridBand2.AppearanceHeader.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.GridBand2.AppearanceHeader.Options.UseFont = True
Me.GridBand2.Caption = "GridBand2"
Me.GridBand2.Name = "GridBand2"
Me.GridBand2.OptionsBand.AllowHotTrack = False
Me.GridBand2.OptionsBand.AllowMove = False
Me.GridBand2.OptionsBand.AllowPress = False
Me.GridBand2.OptionsBand.AllowSize = False
Me.GridBand2.VisibleIndex = 0
' '
'GridControl3 'GridControl3
' '
@ -165,9 +221,27 @@ Partial Class frmDocumentResultList
' '
'GridView3 'GridView3
' '
Me.GridView3.Bands.AddRange(New DevExpress.XtraGrid.Views.BandedGrid.GridBand() {Me.GridBand3})
Me.GridView3.GridControl = Me.GridControl3 Me.GridView3.GridControl = Me.GridControl3
Me.GridView3.Name = "GridView3" Me.GridView3.Name = "GridView3"
Me.GridView3.OptionsView.ShowAutoFilterRow = True Me.GridView3.OptionsView.ShowAutoFilterRow = True
Me.GridView3.OptionsView.ShowGroupPanel = False
'
'GridBand3
'
Me.GridBand3.AppearanceHeader.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.GridBand3.AppearanceHeader.Options.UseFont = True
Me.GridBand3.Caption = "GridBand3"
Me.GridBand3.Name = "GridBand3"
Me.GridBand3.OptionsBand.AllowHotTrack = False
Me.GridBand3.OptionsBand.AllowMove = False
Me.GridBand3.OptionsBand.AllowPress = False
Me.GridBand3.OptionsBand.AllowSize = False
Me.GridBand3.VisibleIndex = 0
'
'XtraSaveFileDialog
'
Me.XtraSaveFileDialog.FileName = "XtraSaveFileDialog1"
' '
'frmDocumentResultList 'frmDocumentResultList
' '
@ -177,10 +251,11 @@ Partial Class frmDocumentResultList
Me.Controls.Add(Me.SplitContainerControl1) Me.Controls.Add(Me.SplitContainerControl1)
Me.Controls.Add(Me.RibbonStatusBar) Me.Controls.Add(Me.RibbonStatusBar)
Me.Controls.Add(Me.RibbonControl) Me.Controls.Add(Me.RibbonControl)
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "frmDocumentResultList" Me.Name = "frmDocumentResultList"
Me.Ribbon = Me.RibbonControl Me.Ribbon = Me.RibbonControl
Me.StatusBar = Me.RibbonStatusBar Me.StatusBar = Me.RibbonStatusBar
Me.Text = "frmDocumentResultList" Me.Text = "Dokumenten Suche ({0} Ergebnisse)"
CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerControl1.ResumeLayout(False) Me.SplitContainerControl1.ResumeLayout(False)
@ -201,15 +276,20 @@ Partial Class frmDocumentResultList
Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents RibbonStatusBar As DevExpress.XtraBars.Ribbon.RibbonStatusBar Friend WithEvents RibbonStatusBar As DevExpress.XtraBars.Ribbon.RibbonStatusBar
Friend WithEvents BarToggleSwitchItem1 As DevExpress.XtraBars.BarToggleSwitchItem Friend WithEvents SwitchMainContainerHorizontal As DevExpress.XtraBars.BarToggleSwitchItem
Friend WithEvents BarToggleSwitchItem2 As DevExpress.XtraBars.BarToggleSwitchItem Friend WithEvents SwitchDetailContainerHorizontal As DevExpress.XtraBars.BarToggleSwitchItem
Friend WithEvents SplitContainerControl1 As DevExpress.XtraEditors.SplitContainerControl Friend WithEvents SplitContainerControl1 As DevExpress.XtraEditors.SplitContainerControl
Friend WithEvents GridControl1 As DevExpress.XtraGrid.GridControl Friend WithEvents GridControl1 As DevExpress.XtraGrid.GridControl
Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView
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 GridView2 As DevExpress.XtraGrid.Views.Grid.GridView
Friend WithEvents GridControl3 As DevExpress.XtraGrid.GridControl Friend WithEvents GridControl3 As DevExpress.XtraGrid.GridControl
Friend WithEvents GridView3 As DevExpress.XtraGrid.Views.Grid.GridView 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 GridBand2 As DevExpress.XtraGrid.Views.BandedGrid.GridBand
Friend WithEvents GridView3 As DevExpress.XtraGrid.Views.BandedGrid.BandedGridView
Friend WithEvents GridBand3 As DevExpress.XtraGrid.Views.BandedGrid.GridBand
Friend WithEvents BarButtonItemExportGrid1 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents XtraSaveFileDialog As DevExpress.XtraEditors.XtraSaveFileDialog
End Class End Class

View File

@ -117,4 +117,94 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="BarButtonItemExportGrid1.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAfdEVYdFRpdGxlAEV4cG9ydDtYc2x0O0V4cG9ydFRv
WHNsdDsT1nubAAAAd0lEQVQ4T91S2wmAMAzs1E6QHRzBHVzBTweKXMpJDBUN8cuDI6/LtZQ2VTWKiGbI
vYvBW/zVAJ0kusG0zFqhGQCjCK77ZjUw0pwGFPphzFl7rRmwgUgRF+Is1o83INkDvPb2DQCf80TARzOo
sP4PmHzylTPse9oOhn1G54TA0vAAAAAASUVORK5CYII=
</value>
</data>
<data name="BarButtonItemExportGrid1.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAfdEVYdFRpdGxlAEV4cG9ydDtYc2x0O0V4cG9ydFRv
WHNsdDsT1nubAAABNUlEQVRYR+WQPQ7CMAyFOV+PwgE4QdcOiIGpMxNiZGJAYuIOnZA4BAzhPYRRcJ02
paH8PemTa9dpPhg5596KORwSczgk5nBIzCHJ89x15AAywLM1rDuIOSQ4hBIf7hdFcS7LMkOrv/XQ+5jD
G51CgaqqTIlWgcli7vrAyD9mSVAAezX4LrkAoyWiBBirkuV+e+2Z0K4vwNwkTpSIFpCLpGfVz9LrXS3A
iATeZdhrFpAPsrJnWK131i4FGjhir1mAkQ9Lz+ojM0bvNoUS2GsX0JXxn/1fbO2GEiXQh7Z8hYD1Mlla
BWbjVQ0eShnrDozTCaymO15yhZFnHzXfoE0ngDN3Qr1Ub/4nAqE58jqBUNTeawRiQX5QICbe7ocLxMLg
TFqBJ/gMgS6kFlgD86IA67vA+3CjC4yA0LudSp2BAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="XtraSaveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAIAEBAAAAEACABoBQAAJgAAACAgAAABAAgAqAgAAI4FAAAoAAAAEAAAACAAAAABAAgAAAAAAEAB
AAAAAAAAAAAAAAABAAAAAAAA3ufvAM7n7wDG1tYAwMDAAL21tQCkoKAAraWUAISEhADvpUoAzpRKAPeM
MQC1lHsA72sAAMZrKQDOYwAArXNKAJRzYwCtezEAtUIAAGtrYwBrY1IAWlpSAHNaGABaUjkAUikQAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA////AP7+/v7+/v7+/v7+/v7+/v7+BxAQExMTExMTExMTExAHBBYYGBgY
GBgYGBgYGBgYFAsAAAAADwAAAAAAAAAACxULAAAAAA8BBAQEBAMCAQsXCwAAAAAPAQYGBQUEAwELFwsA
AAAADwIEBAQEAwIBCxcLAAAAAA8AAAAAAAAAAAsXCwAAAAAPAQQEBAQDAgELFwsAAAAADwIFBgUFBAMB
CxcLAAAAAA8BAgICAgIBAQsXCwAAAAAPAAICAgICAQELFQsMDAwMDgwMDAwKCggRERMLDQ0NDQ0NDQ0N
CQkJDxIE/gQGBgYGBgYGBgYGBgYDAv7+/v7+/v7+/v7+/v7+/v7/////gAD//wAA//8AAP//AAD//wAA
//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//4AA////////KAAAACAAAABAAAAAAQAIAAAA
AACABAAAAAAAAAAAAAAAAQAAAAAAAN7r7wDW6+8A1ufvANbj5wDW3+cA3tvWAN7X1gDW3t4A1s/OANbL
xgDO294AztfeAM7V1gDOz84AzsvGAM7HxgDGzc4AxsXGAMbDvQDGvr0AxrKlAL28vQC9urUAvbS1AL2y
rQC9rK0Ava6lALWqpQC1pqUAtaScAL2ijAC9loQArZ6cAK2blACtlpQArZqMAK2UjACtjpQArYuMAKWM
hAClhIQA78NzAPe6ewD3qkoA755SAOeSSgDeqmMA55I5AO+WIQDvjhAA74oIAO+CAADeghAApYJ7AJSG
ewD/AP8AznEpANZ1EADedQAAzmUAAKV9ewCleWMAtXlaAK1tSgCceXMAnHFzAJR5ewCcbWsAhHFjAIxp
awCEbVoAlF1CAL19OQC1ZSEAvWUYAKVVMQCtSQgAnEkhAIRFIQClPAAAnDAAAEpt1gB7ZVoAe2FSAHNh
UgBzXVIAa1lSAGtVSgBjUUoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/v43CAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQgFNzdGU1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVUjYFPk1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NVAlLFA4ODg4ODg4OUA4ODg4ODg4ODg4O
Dg4ODg4ODlBXD0sOAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAUFgPSw4AAAAAAAAAAFAAACUoKCYk
IiEgHR0YEQwDAABQWA9LDgAAAAAAAAAAUAAACwsLCwoKCgoHBwQDAgEAAFBYD0sOAAAAAAAAAABQAAAA
AAAAAAAAAAAAAAAAAAAAUFgPSw4AAAAAAAAAAFAAADxDQUA8NScnJCMcFhAEAABQWA9LDgAAAAAAAAAA
UAAAAAAAAAAAAAAAAAAAAAAAAFBYD0sOAAAAAAAAAABQAAALCwsLCgoKCgcHBAMCAQAAUFgPSw4AAAAA
AAAAAFAAACUoKCYmIiEhHR0YEw0EAABQWA9LDgAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAFBYD0sO
AAAAAAAAAABQAAAXGRkXFxcVFRMSEAwKAgAAUFgPSw4AAAAAAAAAAFAAABcZGRcXFxUVExIRDAoDAABQ
WA9LDgAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAFBYD0sOAAAAAAAAAABQAAA8Q0FAPDUnJyQhGxYQ
BwEAUFgPSw4AAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAABQWA9LDgAAAAAAAAAAUAAACgsKCgoHBwQE
AwMCAgEAAFBYD0sOAAAAAAAAAABQAAAlKCckIiEdHRsXFRAMBwEAUFgPSw4AAAAAAAAAAFAAAAAAAAAA
AAAAAAAAAAAAAABQWA9LLikpKSkpKSkpOykpKSkpKSkpKSkpKSkpKSkpKVBYD0s6MzMzMzMzMzMzMzMz
MzMzMzMzMSswMSsxSEI0UFYJR0o7Ozs7Ozs7Ozs7Ozs7Ozs7OzsvKi8vKjlFUUlQRAYeTzgsLCwsLCws
LCwsLCwsLCwsLCwsLCwsLCwtTE4a/v4fP0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0s9/v7+/v7+/v7+
/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+////////////////AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAf///////////////8=
</value>
</data>
</root> </root>

View File

@ -1,75 +1,121 @@
Imports System.Drawing Imports System.Drawing
Imports System.IO
Imports System.Windows.Forms
Imports DevExpress.Utils Imports DevExpress.Utils
Imports DevExpress.XtraGrid Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Columns Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraPrinting
Imports DigitalData.Modules.Config
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.ZooFlow Imports DigitalData.Modules.ZooFlow
Imports DigitalData.Modules.Language
Public Class frmDocumentResultList Public Class frmDocumentResultList
Private _LogConfig As LogConfig Private _LogConfig As LogConfig
Private _Logger As Logger Private _Logger As Logger
Private _Config As ConfigManager(Of DocumentResultConfig)
Private _Environment As Environment Private _Environment As Environment
Private _ResultLists As List(Of DocumentResult) Private _ResultLists As List(Of DocumentResult)
Private _IsLoading As Boolean = True
Public Sub New(LogConfig As LogConfig, Environment As Environment, Params As ResultListParams) Public Sub New(LogConfig As LogConfig, Environment As Environment, Params As ResultListParams)
' Dieser Aufruf ist für den Designer erforderlich. ' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent() InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
Dim oConfigPath As String = Path.Combine(Application.UserAppDataPath, "DocumentResultList", Params.WindowGuid)
_LogConfig = LogConfig _LogConfig = LogConfig
_Logger = LogConfig.GetLogger() _Logger = LogConfig.GetLogger()
_Config = New ConfigManager(Of DocumentResultConfig)(LogConfig, oConfigPath)
_Environment = Environment _Environment = Environment
_ResultLists = Params.Results _ResultLists = Params.Results
End Sub End Sub
Private Sub frmDocumentResultList_Load(sender As Object, e As EventArgs) Handles MyBase.Load Private Sub frmDocumentResultList_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim oCounter = 1 Try
' Load config
SplitContainerControl1.SplitterPosition = _Config.Config.SplitContainer1Distance
SwitchMainContainerHorizontal.Checked = _Config.Config.SplitContainer1Horizontal
SplitContainerControl2.SplitterPosition = _Config.Config.SplitContainer2Distance
SwitchDetailContainerHorizontal.Checked = _Config.Config.SplitContainer2Horizontal
For Each oList In _ResultLists Dim oTotalResults = 0
For Each oList In _ResultLists
oTotalResults += oList.Datatable.Rows.Count
Next
Text = String.Format(Text, oTotalResults)
' Load Grids
For index = 0 To _ResultLists.Count - 1
Select Case index
Case 0
Dim oResult As DocumentResult = _ResultLists.Item(0)
GridBand1.Caption = $"{oResult.Title} ({oResult.Datatable.Rows.Count})"
CreateDocumentGrid(GridView1, oResult.Datatable)
Case 1
Dim oResult As DocumentResult = _ResultLists.Item(1)
GridBand2.Caption = $"{oResult.Title} ({oResult.Datatable.Rows.Count})"
CreateDocumentGrid(GridView2, oResult.Datatable)
Case 2
Dim oResult As DocumentResult = _ResultLists.Item(2)
GridBand3.Caption = $"{oResult.Title} ({oResult.Datatable.Rows.Count})"
CreateDocumentGrid(GridView3, oResult.Datatable)
Case Else
MessageBox.Show("You have more than three searches configured. This Window will only show the first three result lists!")
Exit For
End Select
Next
' Hide Grids depending on Result count
Select Case _ResultLists.Count Select Case _ResultLists.Count
Case 1 Case 1
CreateDocumentGrid(GridView1, oList.Datatable) SplitContainerControl1.SetPanelCollapsed(True)
SplitContainerControl2.SetPanelCollapsed(True)
Case 2 Case 2
CreateDocumentGrid(GridView2, oList.Datatable) SplitContainerControl2.SetPanelCollapsed(True)
Case 3
CreateDocumentGrid(GridView3, oList.Datatable)
End Select End Select
oCounter += 1 Catch ex As Exception
Next _Logger.Error(ex)
MessageBox.Show("Error while loading results:" & vbNewLine & vbNewLine & ex.Message, Text)
Finally
_IsLoading = False
End Try
End Sub End Sub
Private Sub CreateDocumentGrid(GridView As GridView, Datatable As DataTable) Private Sub CreateDocumentGrid(GridView As GridView, Datatable As DataTable)
Dim oMyDocDatatable As New DataTable Dim oMyDocDatatable As New DataTable
Try Try
'Die Icon Colum erstellen und konfigurieren 'Die Icon Colum erstellen und konfigurieren
Dim oColIcon As New DataColumn() With { oMyDocDatatable.Columns.Add(New DataColumn() With {
.DataType = GetType(Image), .DataType = GetType(Image),
.ColumnName = "ICON", .ColumnName = "ICON",
.Caption = "" .Caption = ""
} })
oMyDocDatatable.Columns.Add(oColIcon) oMyDocDatatable.Columns.Add(New DataColumn() With {
Dim oColPath As New DataColumn() With {
.DataType = GetType(String), .DataType = GetType(String),
.ColumnName = "FULL_FILENAME", .ColumnName = "FULL_FILENAME",
.Caption = "Fullpath" .Caption = "Fullpath"
} })
oMyDocDatatable.Columns.Add(oColPath) oMyDocDatatable.Columns.Add(New DataColumn() With {
Dim oColDocID As New DataColumn() With {
.DataType = GetType(Int32), .DataType = GetType(Int32),
.ColumnName = "DocID", .ColumnName = "DocID",
.Caption = "DocID" .Caption = "DocID"
} })
oMyDocDatatable.Columns.Add(oColDocID) oMyDocDatatable.Columns.Add(New DataColumn() With {
Dim oColFilename As New DataColumn() With {
.DataType = GetType(String), .DataType = GetType(String),
.ColumnName = "Filename", .ColumnName = "Filename",
.Caption = "Filename" .Caption = "Filename"
} })
oMyDocDatatable.Columns.Add(oColFilename)
Dim oRestColArray As New List(Of String) Dim oRestColArray As New List(Of String)
For Each oCol As DataColumn In Datatable.Columns For Each oCol As DataColumn In Datatable.Columns
@ -135,12 +181,12 @@ Public Class frmDocumentResultList
oNewRow.Item(2) = oDocID oNewRow.Item(2) = oDocID
oNewRow.Item(3) = oFilename oNewRow.Item(3) = oFilename
Dim i = 4 'Fängt bei 3 an, um die definierten Spalten zu überspringen Dim oIndex = 4 'Fängt bei 4 an, um die definierten Spalten zu überspringen
For Each Colname As String In oRestColArray For Each oColumnName As String In oRestColArray
Dim oRowValue Dim oRowValue
oRowValue = oRow.Item(Colname) oRowValue = oRow.Item(oColumnName)
oNewRow.Item(i) = oRowValue.ToString oNewRow.Item(oIndex) = oRowValue.ToString
i += 1 oIndex += 1
Next Next
oMyDocDatatable.Rows.Add(oNewRow) oMyDocDatatable.Rows.Add(oNewRow)
Next Next
@ -157,30 +203,32 @@ Public Class frmDocumentResultList
Catch ex As Exception Catch ex As Exception
End Try End Try
Dim created, changed As String Dim oCreated, oChanged As String
If _Environment.User.Language <> "de-DE" Then If _Environment.User.Language <> "de-DE" Then
changed = "Changed" oChanged = "Changed"
created = "Created" oCreated = "Created"
Else Else
changed = "Geändert" oChanged = "Geändert"
created = "Erstellt" oCreated = "Erstellt"
End If End If
Dim createdColumn = GridView.Columns(created) Dim oCreatedColumn = GridView.Columns(oCreated)
If Not IsNothing(createdColumn) Then If Not IsNothing(oCreatedColumn) Then
createdColumn.DisplayFormat.FormatType = FormatType.DateTime oCreatedColumn.DisplayFormat.FormatType = FormatType.DateTime
createdColumn.DisplayFormat.FormatString = _Environment.User.DateFormat & " HH:MM:ss" oCreatedColumn.DisplayFormat.FormatString = _Environment.User.DateFormat & " HH:MM:ss"
End If End If
Dim changedColumn = GridView.Columns(changed) Dim oChangedColumn = GridView.Columns(oChanged)
If Not IsNothing(changedColumn) Then If Not IsNothing(oChangedColumn) Then
changedColumn.DisplayFormat.FormatType = FormatType.DateTime oChangedColumn.DisplayFormat.FormatType = FormatType.DateTime
changedColumn.DisplayFormat.FormatString = _Environment.User.DateFormat & " HH:MM:ss" oChangedColumn.DisplayFormat.FormatString = _Environment.User.DateFormat & " HH:MM:ss"
End If End If
' Alle Spalten aus ReadOnly setzen, danach werden alle passenden auf nicht ReadOnly gesetzt ' Alle Spalten aus ReadOnly setzen, danach werden alle passenden auf nicht ReadOnly gesetzt
For Each column As GridColumn In GridView.Columns For Each oColumn As GridColumn In GridView.Columns
column.OptionsColumn.AllowEdit = False oColumn.OptionsColumn.AllowEdit = False
Next Next
GridView.Columns.Item("ICON").MaxWidth = 24 GridView.Columns.Item("ICON").MaxWidth = 24
GridView.Columns.Item("ICON").MinWidth = 24 GridView.Columns.Item("ICON").MinWidth = 24
GridView.OptionsView.BestFitMaxRowCount = -1 GridView.OptionsView.BestFitMaxRowCount = -1
@ -190,11 +238,47 @@ Public Class frmDocumentResultList
End Try End Try
End Sub End Sub
Private Sub BarToggleSwitchItem1_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarToggleSwitchItem1.CheckedChanged Private Sub SwitchMainContainerHorizontal_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles SwitchMainContainerHorizontal.CheckedChanged
SplitContainerControl1.Horizontal = BarToggleSwitchItem1.Checked SplitContainerControl1.Horizontal = SwitchMainContainerHorizontal.Checked
If _Config IsNot Nothing And _IsLoading = False Then
_Config.Config.SplitContainer1Horizontal = SwitchMainContainerHorizontal.Checked
_Config.Save()
End If
End Sub End Sub
Private Sub BarToggleSwitchItem2_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarToggleSwitchItem2.CheckedChanged Private Sub BarToggleSwitchItem2_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles SwitchDetailContainerHorizontal.CheckedChanged
SplitContainerControl2.Horizontal = BarToggleSwitchItem2.Checked SplitContainerControl2.Horizontal = SwitchDetailContainerHorizontal.Checked
If _Config IsNot Nothing And _IsLoading = False Then
_Config.Config.SplitContainer2Horizontal = SwitchDetailContainerHorizontal.Checked
_Config.Save()
End If
End Sub
Private Sub BarButtonItemExportGrid1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItemExportGrid1.ItemClick
XtraSaveFileDialog.FileName = Utils.ConvertTextToSlug(GridBand1.Caption) & ".xlsx"
XtraSaveFileDialog.DefaultExt = ".xlsx"
If XtraSaveFileDialog.ShowDialog() = Windows.Forms.DialogResult.OK Then
Dim oOptions As New XlsxExportOptions() With {
.ExportMode = XlsxExportMode.SingleFile
}
GridControl1.ExportToXlsx(XtraSaveFileDialog.FileName, oOptions)
End If
End Sub
Private Sub SplitContainerControl1_SplitterPositionChanged(sender As Object, e As EventArgs) Handles SplitContainerControl1.SplitterPositionChanged
If _IsLoading = False Then
_Config.Config.SplitContainer1Distance = SplitContainerControl1.SplitterPosition
_Config.Save()
End If
End Sub
Private Sub SplitContainerControl2_SplitterPositionChanged(sender As Object, e As EventArgs) Handles SplitContainerControl2.SplitterPositionChanged
If _IsLoading = False Then
_Config.Config.SplitContainer2Distance = SplitContainerControl2.SplitterPosition
_Config.Save()
End If
End Sub End Sub
End Class End Class

View File

@ -17,6 +17,10 @@ Public Class EventBus
End Get End Get
End Property End Property
''' <summary>
''' Register a form as an event listener.
''' </summary>
''' <param name="listener">The event listener, usually `Me`</param>
Public Sub Register(ByVal listener As Object) Public Sub Register(ByVal listener As Object)
If Not _Listeners.Any(Function(l) l.Listener.Equals(listener)) Then If Not _Listeners.Any(Function(l) l.Listener.Equals(listener)) Then
_Listeners.Add(New EventListenerWrapper(listener)) _Listeners.Add(New EventListenerWrapper(listener))

View File

@ -62,8 +62,8 @@ Public Class ConfigManager(Of T)
''' </summary> ''' </summary>
''' <seealso cref="ConfigSample"/> ''' <seealso cref="ConfigSample"/>
''' <param name="LogConfig">LogConfig instance</param> ''' <param name="LogConfig">LogConfig instance</param>
''' <param name="UserConfigPath">The path to check for a user config file, eg. AppData</param> ''' <param name="UserConfigPath">The path to check for a user config file, eg. AppData (Usually Application.UserAppDataPath or Application.LocalUserAppDataPath)</param>
''' <param name="ComputerConfigPath">The path to check for a computer config file, eg. ProgramData</param> ''' <param name="ComputerConfigPath">The path to check for a computer config file, eg. ProgramData (Usually Application.CommonAppDataPath)</param>
''' <param name="ForceUserConfig">Override values from ComputerConfig with UserConfig</param> ''' <param name="ForceUserConfig">Override values from ComputerConfig with UserConfig</param>
Public Sub New(LogConfig As LogConfig, UserConfigPath As String, ComputerConfigPath As String, Optional ForceUserConfig As Boolean = False) Public Sub New(LogConfig As LogConfig, UserConfigPath As String, ComputerConfigPath As String, Optional ForceUserConfig As Boolean = False)
_LogConfig = LogConfig _LogConfig = LogConfig
@ -87,8 +87,8 @@ Public Class ConfigManager(Of T)
''' <summary> ''' <summary>
''' Creates a new ConfigManager with a single (user)config path ''' Creates a new ConfigManager with a single (user)config path
''' </summary> ''' </summary>
''' <param name="LogConfig"></param> ''' <param name="LogConfig">LogConfig instance</param>
''' <param name="ConfigPath"></param> ''' <param name="ConfigPath">The path to check for a user config file, eg. AppData (Usually Application.UserAppDataPath or Application.LocalUserAppDataPath)</param>
Public Sub New(LogConfig As LogConfig, ConfigPath As String) Public Sub New(LogConfig As LogConfig, ConfigPath As String)
MyClass.New(LogConfig, ConfigPath, ConfigPath, ForceUserConfig:=True) MyClass.New(LogConfig, ConfigPath, ConfigPath, ForceUserConfig:=True)
End Sub End Sub

View File

@ -1,4 +1,5 @@
''' <summary> Imports System.Text
''' <summary>
''' Provides common utility functions that do not require a specific context. ''' Provides common utility functions that do not require a specific context.
''' </summary> ''' </summary>
Public Class Utils Public Class Utils
@ -35,4 +36,31 @@ Public Class Utils
Return value Return value
End If End If
End Function End Function
''' <summary>
''' Creates a "slug" from text that can be used as part of a valid URL.
''' Invalid characters are converted to hyphens. Punctuation that Is
''' perfect valid in a URL Is also converted to hyphens to keep the
''' result mostly text. Steps are taken to prevent leading, trailing,
''' And consecutive hyphens.
''' </summary>
''' <param name="s">The string to convert</param>
Public Shared Function ConvertTextToSlug(ByVal s As String) As String
Dim oBuilder As StringBuilder = New StringBuilder()
Dim oWasHyphen As Boolean = True
For Each oChar As Char In s
If Char.IsLetterOrDigit(oChar) Then
oBuilder.Append(Char.ToLower(oChar))
oWasHyphen = False
ElseIf Char.IsWhiteSpace(oChar) AndAlso Not oWasHyphen Then
oBuilder.Append("-"c)
oWasHyphen = True
End If
Next
If oWasHyphen AndAlso oBuilder.Length > 0 Then oBuilder.Length -= 1
Return oBuilder.ToString()
End Function
End Class End Class

View File

@ -39,9 +39,6 @@ Public Class ClassInit
AddHandler oInit.ProgressChanged, AddressOf ProgressChanged AddHandler oInit.ProgressChanged, AddressOf ProgressChanged
AddHandler oInit.InitCompleted, AddressOf InitCompleted AddHandler oInit.InitCompleted, AddressOf InitCompleted
SplashScreenManager.ActivateParentOnSplashFormClosing = True
SplashScreenManager.ShowForm(_MainForm, GetType(frmSplash), False, False)
oInit.Run() oInit.Run()
End If End If
End Sub End Sub

View File

@ -1,12 +1,8 @@
Public Class ClassUIConfig Public Class ClassUIConfig
Public Property SkinName As String = "Office 2016 Colorful" Public Property SkinName As String = "Office 2016 Colorful"
Public Property FlowForm As New FlowFormConfig
Public Property EditFormConfigs As New List(Of EditFormConfig) Public Class FlowFormConfig
Public Property Location As New Point(0, 0)
Public Class EditFormConfig
Public Property SysKey As String
Public Property SplitterDistance As Integer = 700
Public Property SplitterHorizontal As Boolean = True
End Class End Class
End Class End Class

View File

@ -28,6 +28,9 @@ Partial Public Class frmAdmin
AddHandler Init.Completed, AddressOf Init_Completed AddHandler Init.Completed, AddressOf Init_Completed
Init.InitializeApplication() Init.InitializeApplication()
' === Show Splash Screen ===
SplashScreenManager.ShowForm(Me, GetType(frmSplash), False, False)
' === Layout and Skin === ' === Layout and Skin ===
UserLookAndFeel.Default.SetSkinStyle(My.UIConfig.SkinName) UserLookAndFeel.Default.SetSkinStyle(My.UIConfig.SkinName)
@ -35,6 +38,28 @@ Partial Public Class frmAdmin
EventBus.Instance.Register(Me) EventBus.Instance.Register(Me)
End Sub End Sub
Private Sub Init_Completed(sender As Object, e As EventArgs)
' === Initialization Complete ===
Loading = False
SplashScreenManager.CloseForm(False)
' === Setup Timers ===
AddHandler TimerRefreshData.Tick, AddressOf TimerRefreshData_Tick
TimerRefreshData.Enabled = True
' === Setup Flow Form ===
FlowForm = New frmFlowForm(My.Application.ModulesActive)
FlowForm.Location = My.UIConfig.FlowForm.Location
FlowForm.Show()
' === Load Data ===
RefreshData()
End Sub
Private Sub frmAdmin_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Visible = False
End Sub
Private Sub frmMain_FormClosed(sender As Object, e As FormClosedEventArgs) Private Sub frmMain_FormClosed(sender As Object, e As FormClosedEventArgs)
EventBus.Instance.Unregister(Me) EventBus.Instance.Unregister(Me)
End Sub End Sub
@ -58,31 +83,10 @@ Partial Public Class frmAdmin
End Select End Select
End Sub End Sub
Private Sub Init_Completed(sender As Object, e As EventArgs)
' === Initialization Complete ===
Loading = False
SplashScreenManager.CloseForm(False)
' === Setup Timers ===
AddHandler TimerRefreshData.Tick, AddressOf TimerRefreshData_Tick
TimerRefreshData.Enabled = True
' === Setup Flow Form ===
FlowForm = New frmFlowForm(My.Application.ModulesActive)
FlowForm.Show()
' === Load Data ===
RefreshData()
End Sub
Private Sub TimerRefreshData_Tick(sender As Object, e As EventArgs) Private Sub TimerRefreshData_Tick(sender As Object, e As EventArgs)
RefreshData() RefreshData()
End Sub End Sub
Private Sub frmMain_Shown(sender As Object, e As EventArgs)
WindowState = FormWindowState.Minimized
End Sub
Private Async Sub FlowForm_ClipboardChanged(sender As Object, e As IDataObject) Handles FlowForm.ClipboardChanged Private Async Sub FlowForm_ClipboardChanged(sender As Object, e As IDataObject) Handles FlowForm.ClipboardChanged
If My.Application.ClipboardWatcher.UserProfiles.Rows.Count = 0 Then If My.Application.ClipboardWatcher.UserProfiles.Rows.Count = 0 Then
Logger.Warn("Clipboard Changed but no profiles configured!") Logger.Warn("Clipboard Changed but no profiles configured!")
@ -118,7 +122,7 @@ Partial Public Class frmAdmin
End Function) End Function)
oMatchingProfiles = oProfileFilter.ClearNotMatchedProfiles(oMatchingProfiles) oMatchingProfiles = oProfileFilter.ClearNotMatchedProfiles(oMatchingProfiles)
Catch ex As Exception Catch ex As Exception
MsgBox("Fehler beim Laden der Profile. Möglicherweise liegt ein Konfigurationsfehler vor.", MsgBoxStyle.Critical, Text) MsgBox("Fehler beim Laden der Profile. Möglicherweise liegt ein Konfigurationsfehler vor." & vbNewLine & vbNewLine & ex.Message, MsgBoxStyle.Critical, Text)
Exit Sub Exit Sub
End Try End Try
@ -192,4 +196,6 @@ Partial Public Class frmAdmin
Logger.Error(ex) Logger.Error(ex)
End Try End Try
End Sub End Sub
End Class End Class