From 0027d15d8786b01eac767567b5c1db4248418e60 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Mon, 16 May 2022 15:25:33 +0200 Subject: [PATCH] Zooflow: Zooflow: Rework New Search --- GUIs.ZooFlow/Search/SearchRunner.vb | 70 ++- .../Search/Test/frmFlowSearch2.Designer.vb | 399 +++++++++++++++--- GUIs.ZooFlow/Search/Test/frmFlowSearch2.vb | 185 +++++++- .../Search/frmFlowSearch1.Designer.vb | 23 +- GUIs.ZooFlow/frmFlowForm.vb | 2 + 5 files changed, 579 insertions(+), 100 deletions(-) diff --git a/GUIs.ZooFlow/Search/SearchRunner.vb b/GUIs.ZooFlow/Search/SearchRunner.vb index 86725133..7b466f19 100644 --- a/GUIs.ZooFlow/Search/SearchRunner.vb +++ b/GUIs.ZooFlow/Search/SearchRunner.vb @@ -9,14 +9,14 @@ Public Class SearchRunner Private Const SEARCH_FACT_DATE_DEFAULT As String = "ADDED_WHEN" - Private Const CREATED_TOMORROW As String = "TOMORROW" - Private Const CREATED_TODAY As String = "ECM_CREATED_TODAY" - Private Const CREATED_YESTERDAY As String = "ECM_CREATED_YESTERDAY" - Private Const CREATED_LAST_7_DAYS As String = "ECM_CREATED_LAST7DAYS" - Private Const CREATED_YEAR_CURRENT As String = "ECM_CREATED_YEAR_CURRENT" - Private Const CREATED_YEAR_LAST As String = "ECM_CREATED_YEAR_LAST" - Private Const CREATED_MONTH_CURR As String = "ECM_CREATED_MONTH_CURRENT" - Private Const CREATED_MONTH_LAST As String = "ECM_CREATED_MONTH_LAST" + Public Const CREATED_TOMORROW As String = "TOMORROW" + Public Const CREATED_TODAY As String = "ECM_CREATED_TODAY" + Public Const CREATED_YESTERDAY As String = "ECM_CREATED_YESTERDAY" + Public Const CREATED_LAST_7_DAYS As String = "ECM_CREATED_LAST7DAYS" + Public Const CREATED_YEAR_CURRENT As String = "ECM_CREATED_YEAR_CURRENT" + Public Const CREATED_YEAR_LAST As String = "ECM_CREATED_YEAR_LAST" + Public Const CREATED_MONTH_CURR As String = "ECM_CREATED_MONTH_CURRENT" + Public Const CREATED_MONTH_LAST As String = "ECM_CREATED_MONTH_LAST" Public Enum DateConstraint Today @@ -27,6 +27,7 @@ Public Class SearchRunner LastMonth CurrentYear LastYear + Undefined End Enum Public Event NeedsRefresh As EventHandler(Of Integer) @@ -85,10 +86,13 @@ Public Class SearchRunner End Function Public Async Function Run(pSearchTerm As String) As Task(Of SearchResult) - Dim oWindowTitle = GetResultWindowString(pSearchTerm) Return Await Run(pSearchTerm, Nothing, Nothing) End Function + Public Async Function Run() As Task(Of SearchResult) + Return Await Run("") + End Function + Public Async Function Run(pSearchTerm As String, pDateFrom As Date, pDateTo As Date) As Threading.Tasks.Task(Of SearchResult) If pDateFrom.Equals(Date.MinValue) = False Then @@ -129,7 +133,7 @@ Public Class SearchRunner Dim oForm As New frmDocumentResultList(My.LogConfig, Environment, oParams) - ' TODO: Implement, not needed right now + ' TODO: Implement 'AddHandler oForm.NeedsRefresh, AddressOf Form_NeedsRefresh AddHandler oForm.FormClosed, AddressOf Form_Closed @@ -190,36 +194,62 @@ Public Class SearchRunner End Sub Public Sub SetDateConstraint(pConstraint As DateConstraint) + _ActiveDateConstraint = DateConstraintToConstant(pConstraint) + End Sub + + Public Function DateConstraintToConstant(pConstraint As DateConstraint) As String Select Case pConstraint Case DateConstraint.Today - _ActiveDateConstraint = CREATED_TODAY + Return CREATED_TODAY Case DateConstraint.Yesterday - _ActiveDateConstraint = CREATED_YESTERDAY + Return CREATED_YESTERDAY Case DateConstraint.Tomorrow - _ActiveDateConstraint = CREATED_TOMORROW + Return CREATED_TOMORROW Case DateConstraint.Last7Days - _ActiveDateConstraint = CREATED_LAST_7_DAYS + Return CREATED_LAST_7_DAYS Case DateConstraint.CurrentMonth - _ActiveDateConstraint = CREATED_MONTH_CURR + Return CREATED_MONTH_CURR Case DateConstraint.LastMonth - _ActiveDateConstraint = CREATED_MONTH_LAST + Return CREATED_MONTH_LAST Case DateConstraint.CurrentYear - _ActiveDateConstraint = CREATED_YEAR_CURRENT + Return CREATED_YEAR_CURRENT Case DateConstraint.LastYear - _ActiveDateConstraint = CREATED_YEAR_LAST + Return CREATED_YEAR_LAST Case Else - _ActiveDateAttribute = String.Empty + Return String.Empty End Select - End Sub + End Function + Public Function ConstantToDateConstraint(pConstant As String) As DateConstraint + Select Case pConstant + Case CREATED_TODAY + Return DateConstraint.Today + Case CREATED_YESTERDAY + Return DateConstraint.Yesterday + Case CREATED_TOMORROW + Return DateConstraint.Tomorrow + Case CREATED_LAST_7_DAYS + Return DateConstraint.Last7Days + Case CREATED_MONTH_CURR + Return DateConstraint.CurrentMonth + Case CREATED_MONTH_LAST + Return DateConstraint.LastMonth + Case CREATED_YEAR_CURRENT + Return DateConstraint.CurrentYear + Case CREATED_YEAR_LAST + Return DateConstraint.LastYear + Case Else + Return DateConstraint.Undefined + End Select + End Function Public Sub SetDateAttribute(pAttributeName As String) _ActiveDateAttribute = pAttributeName diff --git a/GUIs.ZooFlow/Search/Test/frmFlowSearch2.Designer.vb b/GUIs.ZooFlow/Search/Test/frmFlowSearch2.Designer.vb index 5e2b4e20..5c15df47 100644 --- a/GUIs.ZooFlow/Search/Test/frmFlowSearch2.Designer.vb +++ b/GUIs.ZooFlow/Search/Test/frmFlowSearch2.Designer.vb @@ -27,19 +27,42 @@ Partial Class frmFlowSearch2 Dim SerializableAppearanceObject2 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() Dim SerializableAppearanceObject3 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() Dim SerializableAppearanceObject4 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() + Dim TableColumnDefinition1 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition() + Dim TableRowDefinition1 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition() + Dim TableRowDefinition2 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition() + Dim TileViewItemElement1 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() + Dim TileViewItemElement2 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement() + Me.colName = New DevExpress.XtraGrid.Columns.TileViewColumn() + Me.colDescription = New DevExpress.XtraGrid.Columns.TileViewColumn() Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() - Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() - Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.PanelControl1 = New DevExpress.XtraEditors.PanelControl() Me.PanelControl2 = New DevExpress.XtraEditors.PanelControl() Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() + Me.TextEdit1 = New DevExpress.XtraEditors.ButtonEdit() + Me.GridControl1 = New DevExpress.XtraGrid.GridControl() + Me.TileView1 = New DevExpress.XtraGrid.Views.Tile.TileView() + Me.colCount = New DevExpress.XtraGrid.Columns.TileViewColumn() + Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView() Me.RadioGroup1 = New DevExpress.XtraEditors.RadioGroup() + Me.DateEditFrom = New DevExpress.XtraEditors.DateEdit() + Me.DateEditTo = New DevExpress.XtraEditors.DateEdit() + Me.CheckEdit1 = New DevExpress.XtraEditors.ToggleSwitch() Me.Root = New DevExpress.XtraLayout.LayoutControlGroup() + Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup() Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem() - Me.TextEdit1 = New DevExpress.XtraEditors.ButtonEdit() + Me.LayoutControlGroup2 = New DevExpress.XtraLayout.LayoutControlGroup() + Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem() + Me.EmptySpaceItem1 = New DevExpress.XtraLayout.EmptySpaceItem() + Me.LayoutControlItem6 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlGroup3 = New DevExpress.XtraLayout.LayoutControlGroup() + Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem() + Me.LayoutControlItem5 = New DevExpress.XtraLayout.LayoutControlItem() + Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.BarToggleSwitchItem1 = New DevExpress.XtraBars.BarToggleSwitchItem() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).BeginInit() Me.PanelControl1.SuspendLayout() @@ -47,42 +70,70 @@ Partial Class frmFlowSearch2 Me.PanelControl2.SuspendLayout() CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit() Me.LayoutControl1.SuspendLayout() + CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TileView1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RadioGroup1.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.DateEditFrom.Properties.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.DateEditFrom.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.DateEditTo.Properties.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.DateEditTo.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.CheckEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.Root, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlGroup2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlGroup3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' + 'colName + ' + Me.colName.Caption = "Name" + Me.colName.FieldName = "DisplayName" + Me.colName.Name = "colName" + Me.colName.Visible = True + Me.colName.VisibleIndex = 0 + ' + 'colDescription + ' + Me.colDescription.Caption = "Beschreibung" + Me.colDescription.FieldName = "Description" + Me.colDescription.Name = "colDescription" + Me.colDescription.Visible = True + Me.colDescription.VisibleIndex = 1 + ' 'RibbonControl1 ' + Me.RibbonControl1.ColorScheme = DevExpress.XtraBars.Ribbon.RibbonControlColorScheme.Green + Me.RibbonControl1.CommandLayout = DevExpress.XtraBars.Ribbon.CommandLayout.Simplified Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem}) + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarToggleSwitchItem1}) Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 1 + Me.RibbonControl1.MaxItemId = 2 Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) - Me.RibbonControl1.Size = New System.Drawing.Size(1011, 158) + Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] + Me.RibbonControl1.ShowToolbarCustomizeItem = False + Me.RibbonControl1.Size = New System.Drawing.Size(1011, 89) Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 + Me.RibbonControl1.Toolbar.ShowCustomizeItem = False ' 'RibbonPage1 ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2}) + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup2}) Me.RibbonPage1.Name = "RibbonPage1" - Me.RibbonPage1.Text = "RibbonPage1" - ' - 'RibbonPageGroup1 - ' - Me.RibbonPageGroup1.Name = "RibbonPageGroup1" - Me.RibbonPageGroup1.Text = "RibbonPageGroup1" - ' - 'RibbonPageGroup2 - ' - Me.RibbonPageGroup2.Name = "RibbonPageGroup2" - Me.RibbonPageGroup2.Text = "RibbonPageGroup2" + Me.RibbonPage1.Text = "Start" ' 'RibbonStatusBar1 ' - Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 645) + Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 779) Me.RibbonStatusBar1.Name = "RibbonStatusBar1" Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 Me.RibbonStatusBar1.Size = New System.Drawing.Size(1011, 24) @@ -95,89 +146,302 @@ Partial Class frmFlowSearch2 'PanelControl1 ' Me.PanelControl1.Controls.Add(Me.PanelControl2) - Me.PanelControl1.Controls.Add(Me.TextEdit1) Me.PanelControl1.Dock = System.Windows.Forms.DockStyle.Fill - Me.PanelControl1.Location = New System.Drawing.Point(0, 158) + Me.PanelControl1.Location = New System.Drawing.Point(0, 89) Me.PanelControl1.Name = "PanelControl1" Me.PanelControl1.Padding = New System.Windows.Forms.Padding(30) - Me.PanelControl1.Size = New System.Drawing.Size(1011, 487) + Me.PanelControl1.Size = New System.Drawing.Size(1011, 690) Me.PanelControl1.TabIndex = 3 ' 'PanelControl2 ' Me.PanelControl2.Controls.Add(Me.LayoutControl1) Me.PanelControl2.Dock = System.Windows.Forms.DockStyle.Fill - Me.PanelControl2.Location = New System.Drawing.Point(32, 72) + Me.PanelControl2.Location = New System.Drawing.Point(32, 32) + Me.PanelControl2.Margin = New System.Windows.Forms.Padding(0) Me.PanelControl2.Name = "PanelControl2" - Me.PanelControl2.Size = New System.Drawing.Size(947, 383) + Me.PanelControl2.Size = New System.Drawing.Size(947, 626) Me.PanelControl2.TabIndex = 3 ' 'LayoutControl1 ' + Me.LayoutControl1.Controls.Add(Me.TextEdit1) + Me.LayoutControl1.Controls.Add(Me.GridControl1) Me.LayoutControl1.Controls.Add(Me.RadioGroup1) - Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Top + Me.LayoutControl1.Controls.Add(Me.DateEditFrom) + Me.LayoutControl1.Controls.Add(Me.DateEditTo) + Me.LayoutControl1.Controls.Add(Me.CheckEdit1) + Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill Me.LayoutControl1.Location = New System.Drawing.Point(2, 2) Me.LayoutControl1.Name = "LayoutControl1" + Me.LayoutControl1.OptionsView.GroupStyle = DevExpress.Utils.GroupStyle.Title + Me.LayoutControl1.OptionsView.ItemBorderColor = System.Drawing.Color.Transparent Me.LayoutControl1.Root = Me.Root - Me.LayoutControl1.Size = New System.Drawing.Size(943, 120) + Me.LayoutControl1.Size = New System.Drawing.Size(943, 622) Me.LayoutControl1.TabIndex = 0 Me.LayoutControl1.Text = "LayoutControl1" ' + 'TextEdit1 + ' + Me.TextEdit1.Location = New System.Drawing.Point(0, 0) + Me.TextEdit1.MenuManager = Me.RibbonControl1 + Me.TextEdit1.Name = "TextEdit1" + Me.TextEdit1.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.TextEdit1.Properties.Appearance.Options.UseFont = True + EditorButtonImageOptions1.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.ZooFlow_CW_DevExpress + EditorButtonImageOptions1.SvgImageSize = New System.Drawing.Size(20, 20) + Me.TextEdit1.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, True, True, False, EditorButtonImageOptions1, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject1, SerializableAppearanceObject2, SerializableAppearanceObject3, SerializableAppearanceObject4, "", "SEARCH", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])}) + Me.TextEdit1.Properties.NullText = "Suchbegriff eingeben.." + Me.TextEdit1.Properties.Padding = New System.Windows.Forms.Padding(5, 10, 10, 10) + Me.TextEdit1.Size = New System.Drawing.Size(943, 44) + Me.TextEdit1.StyleController = Me.LayoutControl1 + Me.TextEdit1.TabIndex = 2 + ' + 'GridControl1 + ' + Me.GridControl1.Location = New System.Drawing.Point(14, 316) + Me.GridControl1.MainView = Me.TileView1 + Me.GridControl1.MenuManager = Me.RibbonControl1 + Me.GridControl1.Name = "GridControl1" + Me.GridControl1.Size = New System.Drawing.Size(915, 292) + Me.GridControl1.TabIndex = 1 + Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.TileView1, Me.GridView1}) + ' + 'TileView1 + ' + Me.TileView1.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colName, Me.colDescription, Me.colCount}) + Me.TileView1.GridControl = Me.GridControl1 + Me.TileView1.Name = "TileView1" + Me.TileView1.OptionsTiles.AllowItemHover = True + Me.TileView1.OptionsTiles.ItemSize = New System.Drawing.Size(150, 80) + Me.TileView1.TileColumns.Add(TableColumnDefinition1) + TableRowDefinition2.Length.Value = 2.0R + Me.TileView1.TileRows.Add(TableRowDefinition1) + Me.TileView1.TileRows.Add(TableRowDefinition2) + TileViewItemElement1.Appearance.Normal.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + TileViewItemElement1.Appearance.Normal.Options.UseFont = True + TileViewItemElement1.Column = Me.colName + TileViewItemElement1.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + TileViewItemElement1.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze + TileViewItemElement1.Text = "colName" + TileViewItemElement1.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + TileViewItemElement2.Column = Me.colDescription + TileViewItemElement2.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + TileViewItemElement2.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.Squeeze + TileViewItemElement2.RowIndex = 1 + TileViewItemElement2.Text = "colDescription" + TileViewItemElement2.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter + Me.TileView1.TileTemplate.Add(TileViewItemElement1) + Me.TileView1.TileTemplate.Add(TileViewItemElement2) + ' + 'colCount + ' + Me.colCount.Caption = "Anzahl" + Me.colCount.FieldName = "Count" + Me.colCount.Name = "colCount" + Me.colCount.Visible = True + Me.colCount.VisibleIndex = 2 + ' + 'GridView1 + ' + Me.GridView1.GridControl = Me.GridControl1 + Me.GridView1.Name = "GridView1" + ' 'RadioGroup1 ' - Me.RadioGroup1.Location = New System.Drawing.Point(12, 12) + Me.RadioGroup1.Location = New System.Drawing.Point(4, 88) Me.RadioGroup1.MenuManager = Me.RibbonControl1 Me.RadioGroup1.Name = "RadioGroup1" - Me.RadioGroup1.Properties.Items.AddRange(New DevExpress.XtraEditors.Controls.RadioGroupItem() {New DevExpress.XtraEditors.Controls.RadioGroupItem("TODAY", "Heute", True, "TODAY"), New DevExpress.XtraEditors.Controls.RadioGroupItem("YEAR_CURRENT", "Dieses Jahr", True, "YEAR_CURRENT")}) + Me.RadioGroup1.Properties.Appearance.BackColor = System.Drawing.SystemColors.Control + Me.RadioGroup1.Properties.Appearance.Options.UseBackColor = True + Me.RadioGroup1.Properties.Columns = 2 + Me.RadioGroup1.Properties.ItemHorzAlignment = DevExpress.XtraEditors.RadioItemHorzAlignment.Near Me.RadioGroup1.Properties.ItemsLayout = DevExpress.XtraEditors.RadioGroupItemsLayout.Flow - Me.RadioGroup1.Size = New System.Drawing.Size(919, 96) + Me.RadioGroup1.Size = New System.Drawing.Size(655, 170) Me.RadioGroup1.StyleController = Me.LayoutControl1 Me.RadioGroup1.TabIndex = 4 ' + 'DateEditFrom + ' + Me.DateEditFrom.EditValue = Nothing + Me.DateEditFrom.Location = New System.Drawing.Point(740, 91) + Me.DateEditFrom.MenuManager = Me.RibbonControl1 + Me.DateEditFrom.Name = "DateEditFrom" + Me.DateEditFrom.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.DateEditFrom.Properties.CalendarTimeProperties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.DateEditFrom.Size = New System.Drawing.Size(196, 20) + Me.DateEditFrom.StyleController = Me.LayoutControl1 + Me.DateEditFrom.TabIndex = 5 + ' + 'DateEditTo + ' + Me.DateEditTo.EditValue = Nothing + Me.DateEditTo.Location = New System.Drawing.Point(740, 144) + Me.DateEditTo.MenuManager = Me.RibbonControl1 + Me.DateEditTo.Name = "DateEditTo" + Me.DateEditTo.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.DateEditTo.Properties.CalendarTimeProperties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.DateEditTo.Size = New System.Drawing.Size(196, 20) + Me.DateEditTo.StyleController = Me.LayoutControl1 + Me.DateEditTo.TabIndex = 7 + ' + 'CheckEdit1 + ' + Me.CheckEdit1.Location = New System.Drawing.Point(667, 118) + Me.CheckEdit1.MenuManager = Me.RibbonControl1 + Me.CheckEdit1.Name = "CheckEdit1" + Me.CheckEdit1.Properties.OffText = "Datum bis deaktiviert" + Me.CheckEdit1.Properties.OnText = "Datum bis aktiviert" + Me.CheckEdit1.Size = New System.Drawing.Size(272, 19) + Me.CheckEdit1.StyleController = Me.LayoutControl1 + Me.CheckEdit1.TabIndex = 8 + ' 'Root ' Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True] Me.Root.GroupBordersVisible = False - Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1}) + Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlGroup1, Me.LayoutControlGroup2, Me.LayoutControlGroup3, Me.LayoutControlItem5}) Me.Root.Name = "Root" - Me.Root.Size = New System.Drawing.Size(943, 120) + Me.Root.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0) + Me.Root.Size = New System.Drawing.Size(943, 622) Me.Root.TextVisible = False ' + 'LayoutControlGroup1 + ' + Me.LayoutControlGroup1.AppearanceGroup.BackColor = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(19, Byte), Integer)) + Me.LayoutControlGroup1.AppearanceGroup.BackColor2 = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(19, Byte), Integer)) + Me.LayoutControlGroup1.AppearanceGroup.BorderColor = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(19, Byte), Integer)) + Me.LayoutControlGroup1.AppearanceGroup.Options.UseBackColor = True + Me.LayoutControlGroup1.AppearanceGroup.Options.UseBorderColor = True + Me.LayoutControlGroup1.BestFitWeight = 0 + Me.LayoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[False] + Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1}) + Me.LayoutControlGroup1.Location = New System.Drawing.Point(0, 44) + Me.LayoutControlGroup1.Name = "LayoutControlGroup1" + Me.LayoutControlGroup1.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0) + Me.LayoutControlGroup1.Size = New System.Drawing.Size(663, 218) + Me.LayoutControlGroup1.Spacing = New DevExpress.XtraLayout.Utils.Padding(2, 2, 20, 2) + Me.LayoutControlGroup1.Text = "Datums Einschränkung" + ' 'LayoutControlItem1 ' Me.LayoutControlItem1.Control = Me.RadioGroup1 Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 0) Me.LayoutControlItem1.Name = "LayoutControlItem1" - Me.LayoutControlItem1.Size = New System.Drawing.Size(923, 100) + Me.LayoutControlItem1.Size = New System.Drawing.Size(659, 174) Me.LayoutControlItem1.TextSize = New System.Drawing.Size(0, 0) Me.LayoutControlItem1.TextVisible = False ' - 'TextEdit1 + 'LayoutControlGroup2 ' - Me.TextEdit1.Dock = System.Windows.Forms.DockStyle.Top - Me.TextEdit1.Location = New System.Drawing.Point(32, 32) - Me.TextEdit1.MenuManager = Me.RibbonControl1 - Me.TextEdit1.Name = "TextEdit1" - EditorButtonImageOptions1.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.ZooFlow_CW_DevExpress - EditorButtonImageOptions1.SvgImageSize = New System.Drawing.Size(20, 20) - Me.TextEdit1.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, True, True, False, EditorButtonImageOptions1, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject1, SerializableAppearanceObject2, SerializableAppearanceObject3, SerializableAppearanceObject4, "", "SEARCH", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])}) - Me.TextEdit1.Properties.NullText = "Suchbegriff eingeben.." - Me.TextEdit1.Properties.Padding = New System.Windows.Forms.Padding(5, 10, 10, 10) - Me.TextEdit1.Size = New System.Drawing.Size(947, 40) - Me.TextEdit1.TabIndex = 2 + Me.LayoutControlGroup2.AppearanceGroup.BackColor = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(19, Byte), Integer)) + Me.LayoutControlGroup2.AppearanceGroup.BorderColor = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(19, Byte), Integer)) + Me.LayoutControlGroup2.AppearanceGroup.Options.UseBackColor = True + Me.LayoutControlGroup2.AppearanceGroup.Options.UseBorderColor = True + Me.LayoutControlGroup2.BestFitWeight = 0 + Me.LayoutControlGroup2.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem2, Me.LayoutControlItem4, Me.EmptySpaceItem1, Me.LayoutControlItem6}) + Me.LayoutControlGroup2.Location = New System.Drawing.Point(663, 44) + Me.LayoutControlGroup2.Name = "LayoutControlGroup2" + Me.LayoutControlGroup2.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0) + Me.LayoutControlGroup2.Size = New System.Drawing.Size(280, 218) + Me.LayoutControlGroup2.Spacing = New DevExpress.XtraLayout.Utils.Padding(2, 2, 20, 2) + Me.LayoutControlGroup2.Text = "Eigenes Datum" + ' + 'LayoutControlItem2 + ' + Me.LayoutControlItem2.Control = Me.DateEditFrom + Me.LayoutControlItem2.Location = New System.Drawing.Point(0, 0) + Me.LayoutControlItem2.Name = "LayoutControlItem2" + Me.LayoutControlItem2.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5) + Me.LayoutControlItem2.Size = New System.Drawing.Size(276, 30) + Me.LayoutControlItem2.Text = "Datum Von" + Me.LayoutControlItem2.TextSize = New System.Drawing.Size(58, 13) + ' + 'LayoutControlItem4 + ' + Me.LayoutControlItem4.Control = Me.DateEditTo + Me.LayoutControlItem4.Enabled = False + Me.LayoutControlItem4.Location = New System.Drawing.Point(0, 53) + Me.LayoutControlItem4.Name = "LayoutControlItem4" + Me.LayoutControlItem4.Padding = New DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5) + Me.LayoutControlItem4.Size = New System.Drawing.Size(276, 30) + Me.LayoutControlItem4.Text = "Datum Bis" + Me.LayoutControlItem4.TextSize = New System.Drawing.Size(58, 13) + ' + 'EmptySpaceItem1 + ' + Me.EmptySpaceItem1.AllowHotTrack = False + Me.EmptySpaceItem1.Location = New System.Drawing.Point(0, 83) + Me.EmptySpaceItem1.Name = "EmptySpaceItem1" + Me.EmptySpaceItem1.Size = New System.Drawing.Size(276, 91) + Me.EmptySpaceItem1.TextSize = New System.Drawing.Size(0, 0) + ' + 'LayoutControlItem6 + ' + Me.LayoutControlItem6.Control = Me.CheckEdit1 + Me.LayoutControlItem6.Location = New System.Drawing.Point(0, 30) + Me.LayoutControlItem6.Name = "LayoutControlItem6" + Me.LayoutControlItem6.Size = New System.Drawing.Size(276, 23) + Me.LayoutControlItem6.TextSize = New System.Drawing.Size(0, 0) + Me.LayoutControlItem6.TextVisible = False + ' + 'LayoutControlGroup3 + ' + Me.LayoutControlGroup3.AppearanceGroup.BorderColor = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(19, Byte), Integer)) + Me.LayoutControlGroup3.AppearanceGroup.Options.UseBorderColor = True + Me.LayoutControlGroup3.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem3}) + Me.LayoutControlGroup3.Location = New System.Drawing.Point(0, 262) + Me.LayoutControlGroup3.Name = "LayoutControlGroup3" + Me.LayoutControlGroup3.Size = New System.Drawing.Size(943, 360) + Me.LayoutControlGroup3.Spacing = New DevExpress.XtraLayout.Utils.Padding(2, 2, 20, 2) + Me.LayoutControlGroup3.Text = "Meine Suchen" + ' + 'LayoutControlItem3 + ' + Me.LayoutControlItem3.Control = Me.GridControl1 + Me.LayoutControlItem3.Location = New System.Drawing.Point(0, 0) + Me.LayoutControlItem3.Name = "LayoutControlItem3" + Me.LayoutControlItem3.Size = New System.Drawing.Size(919, 296) + Me.LayoutControlItem3.TextSize = New System.Drawing.Size(0, 0) + Me.LayoutControlItem3.TextVisible = False + ' + 'LayoutControlItem5 + ' + Me.LayoutControlItem5.BestFitWeight = 0 + Me.LayoutControlItem5.Control = Me.TextEdit1 + Me.LayoutControlItem5.Location = New System.Drawing.Point(0, 0) + Me.LayoutControlItem5.Name = "LayoutControlItem5" + Me.LayoutControlItem5.Padding = New DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0) + Me.LayoutControlItem5.Size = New System.Drawing.Size(943, 44) + Me.LayoutControlItem5.TextSize = New System.Drawing.Size(0, 0) + Me.LayoutControlItem5.TextVisible = False + ' + 'RibbonPageGroup2 + ' + Me.RibbonPageGroup2.ItemLinks.Add(Me.BarToggleSwitchItem1) + Me.RibbonPageGroup2.Name = "RibbonPageGroup2" + Me.RibbonPageGroup2.Text = "RibbonPageGroup2" + ' + 'BarToggleSwitchItem1 + ' + Me.BarToggleSwitchItem1.Caption = "Volltext durchsuchen" + Me.BarToggleSwitchItem1.Enabled = False + Me.BarToggleSwitchItem1.Id = 1 + Me.BarToggleSwitchItem1.Name = "BarToggleSwitchItem1" ' 'frmFlowSearch2 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(1011, 669) + Me.ClientSize = New System.Drawing.Size(1011, 803) Me.Controls.Add(Me.PanelControl1) Me.Controls.Add(Me.RibbonStatusBar1) Me.Controls.Add(Me.RibbonControl1) + Me.IconOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.ZooFlow_CW_DevExpress Me.Name = "frmFlowSearch2" Me.Ribbon = Me.RibbonControl1 Me.StatusBar = Me.RibbonStatusBar1 - Me.Text = "frmFlowSearch2" + Me.Text = "Search Flow" CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).EndInit() Me.PanelControl1.ResumeLayout(False) @@ -185,10 +449,27 @@ Partial Class frmFlowSearch2 Me.PanelControl2.ResumeLayout(False) CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit() Me.LayoutControl1.ResumeLayout(False) + CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TileView1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RadioGroup1.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.DateEditFrom.Properties.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.DateEditFrom.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.DateEditTo.Properties.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.DateEditTo.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.CheckEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.Root, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.TextEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlGroup2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.EmptySpaceItem1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlGroup3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() @@ -196,8 +477,6 @@ Partial Class frmFlowSearch2 Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage - Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup - Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage Friend WithEvents PanelControl1 As DevExpress.XtraEditors.PanelControl @@ -207,4 +486,24 @@ Partial Class frmFlowSearch2 Friend WithEvents RadioGroup1 As DevExpress.XtraEditors.RadioGroup Friend WithEvents LayoutControlItem1 As DevExpress.XtraLayout.LayoutControlItem Friend WithEvents TextEdit1 As DevExpress.XtraEditors.ButtonEdit + Friend WithEvents GridControl1 As DevExpress.XtraGrid.GridControl + Friend WithEvents TileView1 As DevExpress.XtraGrid.Views.Tile.TileView + Friend WithEvents colName As DevExpress.XtraGrid.Columns.TileViewColumn + Friend WithEvents colDescription As DevExpress.XtraGrid.Columns.TileViewColumn + Friend WithEvents colCount As DevExpress.XtraGrid.Columns.TileViewColumn + Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView + Friend WithEvents DateEditFrom As DevExpress.XtraEditors.DateEdit + Friend WithEvents LayoutControlGroup1 As DevExpress.XtraLayout.LayoutControlGroup + Friend WithEvents LayoutControlGroup2 As DevExpress.XtraLayout.LayoutControlGroup + Friend WithEvents LayoutControlItem2 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents DateEditTo As DevExpress.XtraEditors.DateEdit + Friend WithEvents LayoutControlItem4 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents EmptySpaceItem1 As DevExpress.XtraLayout.EmptySpaceItem + Friend WithEvents LayoutControlGroup3 As DevExpress.XtraLayout.LayoutControlGroup + Friend WithEvents LayoutControlItem3 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents LayoutControlItem5 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents CheckEdit1 As DevExpress.XtraEditors.ToggleSwitch + Friend WithEvents LayoutControlItem6 As DevExpress.XtraLayout.LayoutControlItem + Friend WithEvents BarToggleSwitchItem1 As DevExpress.XtraBars.BarToggleSwitchItem + Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup End Class diff --git a/GUIs.ZooFlow/Search/Test/frmFlowSearch2.vb b/GUIs.ZooFlow/Search/Test/frmFlowSearch2.vb index deb94ce1..6332cdd7 100644 --- a/GUIs.ZooFlow/Search/Test/frmFlowSearch2.vb +++ b/GUIs.ZooFlow/Search/Test/frmFlowSearch2.vb @@ -1,43 +1,190 @@ -Imports DigitalData.GUIs.ZooFlow.ClassConstants +Imports DevExpress.XtraEditors.Controls +Imports DevExpress.XtraGrid.Views.Tile +Imports DevExpress.XtraSplashScreen +Imports DigitalData.GUIs.ZooFlow.ClassConstants +Imports DigitalData.Modules.Logging Public Class frmFlowSearch2 + Private ReadOnly LogConfig As LogConfig = My.LogConfig + Private ReadOnly Logger = My.LogConfig.GetLogger() Private SearchRunner As SearchRunner - Private BaseSearchSQL As String Private Sub frmFlowSearch2_Load(sender As Object, e As EventArgs) Handles MyBase.Load + SearchRunner = New SearchRunner(My.LogConfig, My.Application.GetEnvironment, "FlowSearch") With { + .BaseSearchSQL = LoadBaseSQL() + } + + TextEdit1.MaskBox.AutoCompleteSource = AutoCompleteSource.CustomSource + TextEdit1.MaskBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend + TextEdit1.MaskBox.AutoCompleteCustomSource = LoadAutoSuggest() + + RadioGroup1.Properties.Items.AddRange(LoadDateConstraints.ToArray) + + GridControl1.DataSource = LoadPredefinedSearches() + End Sub + + Private Function LoadBaseSQL() As String + Dim oSQL = "" + For Each oRow As DataRow In My.Tables.DTIDB_COMMON_SQL.Rows If oRow.Item("TITLE") = SQLCMD_FLOW_SEARCH_BASE Then - BaseSearchSQL = oRow.Item("SQL_COMMAND") - BaseSearchSQL = BaseSearchSQL.Replace("@USER_ID", My.Application.User.UserId) - BaseSearchSQL = BaseSearchSQL.Replace("@LANG_CODE", My.Application.User.Language) + oSQL = oRow.Item("SQL_COMMAND") + oSQL = oSQL.Replace("@USER_ID", My.Application.User.UserId) + oSQL = oSQL.Replace("@LANG_CODE", My.Application.User.Language) End If Next - SearchRunner = New SearchRunner(My.LogConfig, My.Application.GetEnvironment, "FlowSearch") - SearchRunner.BaseSearchSQL = BaseSearchSQL + Return oSQL + End Function + + Private Function LoadAutoSuggest() As AutoCompleteStringCollection + Dim oCollection As New AutoCompleteStringCollection + Dim oSql = $"EXEC PRIDB_SEARCH_AUTOSUGGEST '{My.Application.User.Language}',{My.Application.User.UserId}" + Dim oTable As DataTable = My.Database.GetDatatableIDB(oSql) + + If oTable Is Nothing Then + + Return New AutoCompleteStringCollection() + End If - Dim osql = $"EXEC PRIDB_SEARCH_AUTOSUGGEST '{My.Application.User.Language}',{My.Application.User.UserId}" - Dim oDTSuggest As DataTable - oDTSuggest = My.Database.GetDatatableIDB(osql) - Dim collection As AutoCompleteStringCollection = New AutoCompleteStringCollection - For Each orow As DataRow In oDTSuggest.Rows - collection.Add(orow.Item("TERM")) + For Each oRow As DataRow In oTable.Rows + oCollection.Add(oRow.Item("TERM")) Next - TextEdit1.MaskBox.AutoCompleteSource = AutoCompleteSource.CustomSource - TextEdit1.MaskBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend - TextEdit1.MaskBox.AutoCompleteCustomSource = collection - End Sub + Return oCollection + End Function + + Private Function LoadDateConstraints() As List(Of RadioGroupItem) + Return New List(Of RadioGroupItem) From { + New RadioGroupItem(SearchRunner.CREATED_TODAY, "Heute"), + New RadioGroupItem(SearchRunner.CREATED_TOMORROW, "Gestern"), + New RadioGroupItem(SearchRunner.CREATED_LAST_7_DAYS, "Letzte 7 Tage"), + New RadioGroupItem(SearchRunner.CREATED_MONTH_CURR, "Dieser Monat"), + New RadioGroupItem(SearchRunner.CREATED_LAST_7_DAYS, "Letzter Monat"), + New RadioGroupItem(SearchRunner.CREATED_YEAR_CURRENT, "Dieses Jahr"), + New RadioGroupItem(SearchRunner.CREATED_YEAR_LAST, "Letztes Jahr"), + New RadioGroupItem("NOTHING", "Keine Einschränkung") + } + End Function + + Private Function LoadPredefinedSearches() As List(Of PredefinedSearch) + Return New List(Of PredefinedSearch) From { + New PredefinedDateSearch() With { + .Name = "Heute", + .Description = "Dokumente, die heute abgelegt wurden", + .DateConstraint = SearchRunner.DateConstraint.Today + }, + New PredefinedDateSearch() With { + .Name = "Gestern", + .Description = "Dokumente, die gestern abgelegt wurden", + .DateConstraint = SearchRunner.DateConstraint.Yesterday + }, + New PredefinedDateSearch() With { + .Name = "Letzte Woche", + .Description = "Dokumente, die in den letzten 7 Tagen abgelegt wurden", + .DateConstraint = SearchRunner.DateConstraint.Last7Days + }, + New PredefinedDateSearch() With { + .Name = "Dieser Monat", + .Description = "Dokumente, die in diesem Monat abgelegt wurden", + .DateConstraint = SearchRunner.DateConstraint.CurrentMonth + }, + New PredefinedDateSearch() With { + .Name = "Letzter Monat", + .Description = "Dokumente, die im letzten Monat abgelegt wurden", + .DateConstraint = SearchRunner.DateConstraint.LastMonth + } + } + End Function Private Async Sub TextEdit1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextEdit1.KeyUp If e.KeyCode = Keys.Enter Then - Await SearchRunner.Run(TextEdit1.EditValue, Nothing, Nothing) + Await RunSearch() End If End Sub Private Async Sub TextEdit1_ButtonClick(sender As Object, e As DevExpress.XtraEditors.Controls.ButtonPressedEventArgs) Handles TextEdit1.ButtonClick If e.Button.Tag = "SEARCH" Then - Await SearchRunner.Run(TextEdit1.EditValue, Nothing, Nothing) + Await RunSearch() End If End Sub + + Private Async Function RunSearch() As Threading.Tasks.Task + Dim oHandle = SplashScreenManager.ShowOverlayForm(Me) + + Try + Dim oDateFrom = DateEditFrom.EditValue + Dim oDateTo = DateEditTo.EditValue + + If CheckEdit1.IsOn = False Then + oDateTo = Nothing + End If + + SearchRunner.SetDateConstraint() + Await SearchRunner.Run(TextEdit1.EditValue, oDateFrom, oDateTo) + + Catch ex As Exception + MsgBox(ex.Message) + + Finally + SplashScreenManager.CloseOverlayForm(oHandle) + + End Try + End Function + + Private Sub RadioGroup1_EditValueChanged(sender As Object, e As EventArgs) Handles RadioGroup1.EditValueChanged + Dim oIndex = RadioGroup1.SelectedIndex + Dim oItem As RadioGroupItem = RadioGroup1.Properties.Items.Item(oIndex) + Dim oSearchConstraintString As String = oItem.Value + Dim oDateConstraint = SearchRunner.ConstantToDateConstraint(oSearchConstraintString) + + If oDateConstraint <> SearchRunner.DateConstraint.Undefined Then + SearchRunner.SetDateConstraint(oDateConstraint) + End If + End Sub + + Friend Class PredefinedSearch + Public Property Name As String + Public Property Description As String + Public Property Count As Integer = 0 + + Public ReadOnly Property DisplayName As String + Get + Return $"{Name} ({Count})" + End Get + End Property + + End Class + + Friend Class PredefinedSQLSearch + Public Property SQLCommand As String + End Class + + Friend Class PredefinedDateSearch + Inherits PredefinedSearch + + Public DateConstraint As SearchRunner.DateConstraint + End Class + + Private Async Sub TileView1_ItemClick(sender As Object, e As TileViewItemClickEventArgs) Handles TileView1.ItemClick + Dim oHandle = SplashScreenManager.ShowOverlayForm(Me) + + Try + Dim oSearch = TileView1.GetRow(TileView1.FocusedRowHandle) + + If TypeOf oSearch Is PredefinedDateSearch Then + Dim oDateSearch As PredefinedDateSearch = oSearch + SearchRunner.SetDateConstraint(oDateSearch.DateConstraint) + End If + + Await SearchRunner.Run() + Catch ex As Exception + Finally + SplashScreenManager.CloseOverlayForm(oHandle) + End Try + End Sub + + Private Sub CheckEdit1_Properties_EditValueChanged(sender As Object, e As EventArgs) Handles CheckEdit1.Properties.EditValueChanged + DateEditTo.Enabled = CheckEdit1.IsOn + End Sub End Class \ No newline at end of file diff --git a/GUIs.ZooFlow/Search/frmFlowSearch1.Designer.vb b/GUIs.ZooFlow/Search/frmFlowSearch1.Designer.vb index 93dfb1c2..f688db91 100644 --- a/GUIs.ZooFlow/Search/frmFlowSearch1.Designer.vb +++ b/GUIs.ZooFlow/Search/frmFlowSearch1.Designer.vb @@ -88,6 +88,7 @@ Partial Class frmFlowSearch1 ' 'RibbonControl1 ' + Me.RibbonControl1.ColorScheme = DevExpress.XtraBars.Ribbon.RibbonControlColorScheme.Green Me.RibbonControl1.CommandLayout = DevExpress.XtraBars.Ribbon.CommandLayout.Simplified Me.RibbonControl1.ExpandCollapseItem.Id = 0 Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonStartSearch, Me.BarButtonReset, Me.bsiStatus, Me.BarSubItem1, Me.BarListItem1, Me.BarToggleSwitchItemTerm, Me.BarToggleSwitchItemFulltext}) @@ -263,7 +264,7 @@ Partial Class frmFlowSearch1 Me.ToggleSwitchMonth_Last.Name = "ToggleSwitchMonth_Last" Me.ToggleSwitchMonth_Last.Properties.OffText = "Letzter Monat" Me.ToggleSwitchMonth_Last.Properties.OnText = "Letzter Monat" - Me.ToggleSwitchMonth_Last.Size = New System.Drawing.Size(195, 18) + Me.ToggleSwitchMonth_Last.Size = New System.Drawing.Size(195, 19) Me.ToggleSwitchMonth_Last.TabIndex = 9 ' 'ToggleSwitchDateto @@ -273,14 +274,14 @@ Partial Class frmFlowSearch1 Me.ToggleSwitchDateto.Name = "ToggleSwitchDateto" Me.ToggleSwitchDateto.Properties.OffText = "Datum bis" Me.ToggleSwitchDateto.Properties.OnText = "Datum bis" - Me.ToggleSwitchDateto.Size = New System.Drawing.Size(122, 18) + Me.ToggleSwitchDateto.Size = New System.Drawing.Size(122, 19) Me.ToggleSwitchDateto.TabIndex = 0 ' 'lblDatefrom ' Me.lblDatefrom.Location = New System.Drawing.Point(2, 190) Me.lblDatefrom.Name = "lblDatefrom" - Me.lblDatefrom.Size = New System.Drawing.Size(31, 13) + Me.lblDatefrom.Size = New System.Drawing.Size(34, 13) Me.lblDatefrom.TabIndex = 3 Me.lblDatefrom.Text = "Datum" ' @@ -304,7 +305,7 @@ Partial Class frmFlowSearch1 Me.ToggleSwitchMonth.Name = "ToggleSwitchMonth" Me.ToggleSwitchMonth.Properties.OffText = "Dieser Monat" Me.ToggleSwitchMonth.Properties.OnText = "Dieser Monat" - Me.ToggleSwitchMonth.Size = New System.Drawing.Size(195, 18) + Me.ToggleSwitchMonth.Size = New System.Drawing.Size(195, 19) Me.ToggleSwitchMonth.TabIndex = 8 ' 'ToggleSwitchTomorrow @@ -314,7 +315,7 @@ Partial Class frmFlowSearch1 Me.ToggleSwitchTomorrow.Name = "ToggleSwitchTomorrow" Me.ToggleSwitchTomorrow.Properties.OffText = "Morgen" Me.ToggleSwitchTomorrow.Properties.OnText = "Morgen" - Me.ToggleSwitchTomorrow.Size = New System.Drawing.Size(95, 18) + Me.ToggleSwitchTomorrow.Size = New System.Drawing.Size(95, 19) Me.ToggleSwitchTomorrow.TabIndex = 7 Me.ToggleSwitchTomorrow.Visible = False ' @@ -325,7 +326,7 @@ Partial Class frmFlowSearch1 Me.ToggleSwitchToday.Name = "ToggleSwitchToday" Me.ToggleSwitchToday.Properties.OffText = "Heute" Me.ToggleSwitchToday.Properties.OnText = "Heute" - Me.ToggleSwitchToday.Size = New System.Drawing.Size(95, 18) + Me.ToggleSwitchToday.Size = New System.Drawing.Size(95, 19) Me.ToggleSwitchToday.TabIndex = 2 ' 'ToggleSwitchLastWeek @@ -335,7 +336,7 @@ Partial Class frmFlowSearch1 Me.ToggleSwitchLastWeek.Name = "ToggleSwitchLastWeek" Me.ToggleSwitchLastWeek.Properties.OffText = "Letzten 7 Tage" Me.ToggleSwitchLastWeek.Properties.OnText = "Letzten 7 Tage" - Me.ToggleSwitchLastWeek.Size = New System.Drawing.Size(195, 18) + Me.ToggleSwitchLastWeek.Size = New System.Drawing.Size(195, 19) Me.ToggleSwitchLastWeek.TabIndex = 6 ' 'ToggleSwitchYesterday @@ -345,7 +346,7 @@ Partial Class frmFlowSearch1 Me.ToggleSwitchYesterday.Name = "ToggleSwitchYesterday" Me.ToggleSwitchYesterday.Properties.OffText = "Gestern" Me.ToggleSwitchYesterday.Properties.OnText = "Gestern" - Me.ToggleSwitchYesterday.Size = New System.Drawing.Size(95, 18) + Me.ToggleSwitchYesterday.Size = New System.Drawing.Size(95, 19) Me.ToggleSwitchYesterday.TabIndex = 3 ' 'ToggleSwitchYear_Last @@ -355,7 +356,7 @@ Partial Class frmFlowSearch1 Me.ToggleSwitchYear_Last.Name = "ToggleSwitchYear_Last" Me.ToggleSwitchYear_Last.Properties.OffText = "Letztes Jahr" Me.ToggleSwitchYear_Last.Properties.OnText = "Letztes Jahr" - Me.ToggleSwitchYear_Last.Size = New System.Drawing.Size(195, 18) + Me.ToggleSwitchYear_Last.Size = New System.Drawing.Size(195, 19) Me.ToggleSwitchYear_Last.TabIndex = 5 ' 'ToggleSwitchYear @@ -365,7 +366,7 @@ Partial Class frmFlowSearch1 Me.ToggleSwitchYear.Name = "ToggleSwitchYear" Me.ToggleSwitchYear.Properties.OffText = "Dieses Jahr" Me.ToggleSwitchYear.Properties.OnText = "Dieses Jahr" - Me.ToggleSwitchYear.Size = New System.Drawing.Size(195, 18) + Me.ToggleSwitchYear.Size = New System.Drawing.Size(195, 19) Me.ToggleSwitchYear.TabIndex = 4 ' 'XtraTabPage2 @@ -379,7 +380,7 @@ Partial Class frmFlowSearch1 Me.Label1.AutoSize = True Me.Label1.Location = New System.Drawing.Point(4, 8) Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(44, 13) + Me.Label1.Size = New System.Drawing.Size(47, 13) Me.Label1.TabIndex = 0 Me.Label1.Text = "Attribut" ' diff --git a/GUIs.ZooFlow/frmFlowForm.vb b/GUIs.ZooFlow/frmFlowForm.vb index 152c5c87..1f8e534f 100644 --- a/GUIs.ZooFlow/frmFlowForm.vb +++ b/GUIs.ZooFlow/frmFlowForm.vb @@ -643,6 +643,8 @@ Public Class frmFlowForm If oDroppedFiles.Count > 0 Then Await Globix_CheckDroppedFiles(oDroppedFiles) End If + + Await Load_Recent_Files() End Function Private Async Function Globix_CheckDroppedFiles(pDroppedFiles As List(Of FileDrop.DroppedFile)) As Task