From 7fd8af6a1496f829e38830ba1c83e935ad2c6be6 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Tue, 10 Nov 2020 16:25:29 +0100 Subject: [PATCH] ZooFlow: Add Time Filter, Loading indicator when running search --- GUIs.Common/My Project/licenses.licx | 5 +- GUIs.ZooFlow/My Project/licenses.licx | 17 +-- GUIs.ZooFlow/frmSearchStart.Designer.vb | 166 +++++++++++++++++++----- GUIs.ZooFlow/frmSearchStart.resx | 44 +++---- GUIs.ZooFlow/frmSearchStart.vb | 161 +++++++++++++++-------- 5 files changed, 276 insertions(+), 117 deletions(-) diff --git a/GUIs.Common/My Project/licenses.licx b/GUIs.Common/My Project/licenses.licx index 1b8e60c5..0916fd88 100644 --- a/GUIs.Common/My Project/licenses.licx +++ b/GUIs.Common/My Project/licenses.licx @@ -1,4 +1,5 @@ -DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.ZooFlow/My Project/licenses.licx b/GUIs.ZooFlow/My Project/licenses.licx index dda02e90..f385a333 100644 --- a/GUIs.ZooFlow/My Project/licenses.licx +++ b/GUIs.ZooFlow/My Project/licenses.licx @@ -1,13 +1,14 @@ -DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraBars.FormAssistant, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a -DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/GUIs.ZooFlow/frmSearchStart.Designer.vb b/GUIs.ZooFlow/frmSearchStart.Designer.vb index 2f3abc6f..8e225e47 100644 --- a/GUIs.ZooFlow/frmSearchStart.Designer.vb +++ b/GUIs.ZooFlow/frmSearchStart.Designer.vb @@ -23,6 +23,7 @@ Partial Class frmSearchStart Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() + Dim SplashScreenManager As DevExpress.XtraSplashScreen.SplashScreenManager = New DevExpress.XtraSplashScreen.SplashScreenManager(Me, Nothing, true, true) Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmSearchStart)) Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() Me.BarButtonItemNewSearch = New DevExpress.XtraBars.BarButtonItem() @@ -36,9 +37,20 @@ Partial Class frmSearchStart Me.RepositoryItemComboBox1 = New DevExpress.XtraEditors.Repository.RepositoryItemComboBox() Me.BarStaticItemInfo = New DevExpress.XtraBars.BarStaticItem() Me.BarButtonItem4 = New DevExpress.XtraBars.BarButtonItem() + Me.BarStaticItem1 = New DevExpress.XtraBars.BarStaticItem() + Me.txtFilterFrom = New DevExpress.XtraBars.BarEditItem() + Me.RepositoryItemDateEdit1 = New DevExpress.XtraEditors.Repository.RepositoryItemDateEdit() + Me.txtFilterTo = New DevExpress.XtraBars.BarEditItem() + Me.RepositoryItemDateEdit2 = New DevExpress.XtraEditors.Repository.RepositoryItemDateEdit() + Me.cmbFilterTimeframe = New DevExpress.XtraBars.BarEditItem() + Me.RepositoryItemComboBox2 = New DevExpress.XtraEditors.Repository.RepositoryItemComboBox() + Me.SwitchFilter = New DevExpress.XtraBars.BarToggleSwitchItem() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RibbonPageGroupFilter = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RepositoryItemTextEdit1 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit() + Me.RepositoryItemTimeSpanEdit1 = New DevExpress.XtraEditors.Repository.RepositoryItemTimeSpanEdit() Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.Panel1 = New System.Windows.Forms.Panel() Me.cmbProfile = New System.Windows.Forms.ComboBox() @@ -65,10 +77,16 @@ Partial Class frmSearchStart Me.ContextMenuStripMultiselect = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.MehrfachauswahlAktivierenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.MehrfachauswahlInaktivierenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.DateEdit1 = New DevExpress.XtraEditors.DateEdit() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RepositoryItemRadioGroup1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RepositoryItemComboBox1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RepositoryItemDateEdit1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RepositoryItemDateEdit1.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RepositoryItemDateEdit2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RepositoryItemDateEdit2.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RepositoryItemComboBox2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RepositoryItemTimeSpanEdit1, System.ComponentModel.ISupportInitialize).BeginInit() Me.Panel1.SuspendLayout() CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).BeginInit() Me.XtraTabControl1.SuspendLayout() @@ -78,20 +96,22 @@ Partial Class frmSearchStart CType(Me.SplitContainerControlSearch, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainerControlSearch.SuspendLayout() Me.ContextMenuStripMultiselect.SuspendLayout() - CType(Me.DateEdit1.Properties.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.DateEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' + 'SplashScreenManager + ' + SplashScreenManager.ClosingDelay = 500 + ' 'RibbonControl1 ' Me.RibbonControl1.AutoSizeItems = True Me.RibbonControl1.ExpandCollapseItem.Id = 0 - Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItemNewSearch, Me.BarButtonItem2, Me.BarHeaderItem1, Me.BarEditItem1, Me.BarButtonItem1, Me.BarButtonItem3, Me.BarEditItem2, Me.BarStaticItemInfo, Me.BarButtonItem4}) + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItemNewSearch, Me.BarButtonItem2, Me.BarHeaderItem1, Me.BarEditItem1, Me.BarButtonItem1, Me.BarButtonItem3, Me.BarEditItem2, Me.BarStaticItemInfo, Me.BarButtonItem4, Me.BarStaticItem1, Me.txtFilterFrom, Me.txtFilterTo, Me.cmbFilterTimeframe, Me.SwitchFilter}) Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) - Me.RibbonControl1.MaxItemId = 11 + Me.RibbonControl1.MaxItemId = 20 Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) - Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemRadioGroup1, Me.RepositoryItemComboBox1}) + Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemRadioGroup1, Me.RepositoryItemComboBox1, Me.RepositoryItemTextEdit1, Me.RepositoryItemDateEdit1, Me.RepositoryItemDateEdit2, Me.RepositoryItemComboBox2, Me.RepositoryItemTimeSpanEdit1}) Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] Me.RibbonControl1.Size = New System.Drawing.Size(1070, 159) Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 @@ -143,10 +163,9 @@ Partial Class frmSearchStart ' 'BarEditItem2 ' - Me.BarEditItem2.Caption = "Suchen" Me.BarEditItem2.Edit = Me.RepositoryItemComboBox1 + Me.BarEditItem2.EditWidth = 100 Me.BarEditItem2.Id = 7 - Me.BarEditItem2.ImageOptions.SvgImage = CType(resources.GetObject("BarEditItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.BarEditItem2.Name = "BarEditItem2" ' 'RepositoryItemComboBox1 @@ -167,9 +186,69 @@ Partial Class frmSearchStart Me.BarButtonItem4.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem4.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.BarButtonItem4.Name = "BarButtonItem4" ' + 'BarStaticItem1 + ' + Me.BarStaticItem1.Caption = "Suchen" + Me.BarStaticItem1.Id = 12 + Me.BarStaticItem1.ImageOptions.SvgImage = CType(resources.GetObject("BarStaticItem1.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.BarStaticItem1.Name = "BarStaticItem1" + Me.BarStaticItem1.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph + ' + 'txtFilterFrom + ' + Me.txtFilterFrom.Caption = "Von" + Me.txtFilterFrom.Edit = Me.RepositoryItemDateEdit1 + Me.txtFilterFrom.EditWidth = 100 + Me.txtFilterFrom.Id = 15 + Me.txtFilterFrom.Name = "txtFilterFrom" + ' + 'RepositoryItemDateEdit1 + ' + Me.RepositoryItemDateEdit1.AutoHeight = False + Me.RepositoryItemDateEdit1.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.RepositoryItemDateEdit1.CalendarTimeProperties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.RepositoryItemDateEdit1.Name = "RepositoryItemDateEdit1" + Me.RepositoryItemDateEdit1.NullDate = "" + ' + 'txtFilterTo + ' + Me.txtFilterTo.Caption = "Bis" + Me.txtFilterTo.Edit = Me.RepositoryItemDateEdit2 + Me.txtFilterTo.EditWidth = 100 + Me.txtFilterTo.Id = 16 + Me.txtFilterTo.Name = "txtFilterTo" + ' + 'RepositoryItemDateEdit2 + ' + Me.RepositoryItemDateEdit2.AutoHeight = False + Me.RepositoryItemDateEdit2.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.RepositoryItemDateEdit2.CalendarTimeProperties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.RepositoryItemDateEdit2.Name = "RepositoryItemDateEdit2" + Me.RepositoryItemDateEdit2.NullDate = "" + ' + 'cmbFilterTimeframe + ' + Me.cmbFilterTimeframe.Caption = "Zeitraum" + Me.cmbFilterTimeframe.Edit = Me.RepositoryItemComboBox2 + Me.cmbFilterTimeframe.EditWidth = 100 + Me.cmbFilterTimeframe.Id = 17 + Me.cmbFilterTimeframe.Name = "cmbFilterTimeframe" + ' + 'RepositoryItemComboBox2 + ' + Me.RepositoryItemComboBox2.AutoHeight = False + Me.RepositoryItemComboBox2.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.RepositoryItemComboBox2.Name = "RepositoryItemComboBox2" + ' + 'SwitchFilter + ' + Me.SwitchFilter.Caption = "Suche Filtern" + Me.SwitchFilter.Id = 18 + Me.SwitchFilter.Name = "SwitchFilter" + ' 'RibbonPage1 ' - Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2}) + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroupFilter}) Me.RibbonPage1.Name = "RibbonPage1" Me.RibbonPage1.Text = "Start" ' @@ -179,15 +258,37 @@ Partial Class frmSearchStart Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem1) Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItemNewSearch) Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem2) + Me.RibbonPageGroup1.ItemLinks.Add(Me.SwitchFilter) Me.RibbonPageGroup1.Name = "RibbonPageGroup1" Me.RibbonPageGroup1.Text = "Suchfunktionen" ' 'RibbonPageGroup2 ' + Me.RibbonPageGroup2.ItemLinks.Add(Me.BarStaticItem1) Me.RibbonPageGroup2.ItemLinks.Add(Me.BarEditItem2) Me.RibbonPageGroup2.Name = "RibbonPageGroup2" Me.RibbonPageGroup2.Text = "Auswahl Suche" ' + 'RibbonPageGroupFilter + ' + Me.RibbonPageGroupFilter.Enabled = False + Me.RibbonPageGroupFilter.ItemLinks.Add(Me.cmbFilterTimeframe) + Me.RibbonPageGroupFilter.ItemLinks.Add(Me.txtFilterFrom) + Me.RibbonPageGroupFilter.ItemLinks.Add(Me.txtFilterTo) + Me.RibbonPageGroupFilter.Name = "RibbonPageGroupFilter" + Me.RibbonPageGroupFilter.Text = "Filter" + ' + 'RepositoryItemTextEdit1 + ' + Me.RepositoryItemTextEdit1.AutoHeight = False + Me.RepositoryItemTextEdit1.Name = "RepositoryItemTextEdit1" + ' + 'RepositoryItemTimeSpanEdit1 + ' + Me.RepositoryItemTimeSpanEdit1.AutoHeight = False + Me.RepositoryItemTimeSpanEdit1.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) + Me.RepositoryItemTimeSpanEdit1.Name = "RepositoryItemTimeSpanEdit1" + ' 'RibbonStatusBar1 ' Me.RibbonStatusBar1.ItemLinks.Add(Me.BarStaticItemInfo) @@ -238,14 +339,14 @@ Partial Class frmSearchStart Me.XtraTabControl1.Location = New System.Drawing.Point(0, 0) Me.XtraTabControl1.Name = "XtraTabControl1" Me.XtraTabControl1.SelectedTabPage = Me.XtraTabPage1 - Me.XtraTabControl1.Size = New System.Drawing.Size(750, 310) + Me.XtraTabControl1.Size = New System.Drawing.Size(750, 363) Me.XtraTabControl1.TabIndex = 12 Me.XtraTabControl1.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.XtraTabPage1, Me.XtraTabPage2, Me.XtraTabPage3, Me.XtraTabPage4, Me.XtraTabPage5, Me.XtraTabPage6, Me.XtraTabPage7, Me.XtraTabPage8, Me.XtraTabPage9, Me.XtraTabPage10}) ' 'XtraTabPage1 ' Me.XtraTabPage1.Name = "XtraTabPage1" - Me.XtraTabPage1.Size = New System.Drawing.Size(748, 287) + Me.XtraTabPage1.Size = New System.Drawing.Size(748, 340) Me.XtraTabPage1.Text = "Search#1" ' 'XtraTabPage2 @@ -310,7 +411,7 @@ Partial Class frmSearchStart Me.GridControlSerchTerms.MainView = Me.GridViewSearchTerms Me.GridControlSerchTerms.MenuManager = Me.RibbonControl1 Me.GridControlSerchTerms.Name = "GridControlSerchTerms" - Me.GridControlSerchTerms.Size = New System.Drawing.Size(310, 310) + Me.GridControlSerchTerms.Size = New System.Drawing.Size(310, 363) Me.GridControlSerchTerms.TabIndex = 15 Me.GridControlSerchTerms.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewSearchTerms}) ' @@ -360,18 +461,16 @@ Partial Class frmSearchStart ' 'SplitContainerControlSearch ' - Me.SplitContainerControlSearch.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ - Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.SplitContainerControlSearch.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2 + Me.SplitContainerControlSearch.Dock = System.Windows.Forms.DockStyle.Fill Me.SplitContainerControlSearch.FixedPanel = DevExpress.XtraEditors.SplitFixedPanel.Panel2 - Me.SplitContainerControlSearch.Location = New System.Drawing.Point(0, 207) + Me.SplitContainerControlSearch.Location = New System.Drawing.Point(0, 216) Me.SplitContainerControlSearch.Name = "SplitContainerControlSearch" Me.SplitContainerControlSearch.Panel1.Controls.Add(Me.XtraTabControl1) Me.SplitContainerControlSearch.Panel1.Text = "Panel1" Me.SplitContainerControlSearch.Panel2.Controls.Add(Me.GridControlSerchTerms) Me.SplitContainerControlSearch.Panel2.Text = "Panel2" - Me.SplitContainerControlSearch.Size = New System.Drawing.Size(1070, 310) + Me.SplitContainerControlSearch.Size = New System.Drawing.Size(1070, 363) Me.SplitContainerControlSearch.SplitterPosition = 310 Me.SplitContainerControlSearch.TabIndex = 16 ' @@ -395,17 +494,6 @@ Partial Class frmSearchStart Me.MehrfachauswahlInaktivierenToolStripMenuItem.Size = New System.Drawing.Size(232, 22) Me.MehrfachauswahlInaktivierenToolStripMenuItem.Text = "Mehrfachauswahl inaktivieren" ' - 'DateEdit1 - ' - Me.DateEdit1.EditValue = Nothing - Me.DateEdit1.Location = New System.Drawing.Point(173, 543) - Me.DateEdit1.MenuManager = Me.RibbonControl1 - Me.DateEdit1.Name = "DateEdit1" - Me.DateEdit1.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) - Me.DateEdit1.Properties.CalendarTimeProperties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}) - Me.DateEdit1.Size = New System.Drawing.Size(100, 20) - Me.DateEdit1.TabIndex = 19 - ' 'frmSearchStart ' Me.AllowFormGlass = DevExpress.Utils.DefaultBoolean.[True] @@ -413,7 +501,6 @@ Partial Class frmSearchStart Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(1070, 601) - Me.Controls.Add(Me.DateEdit1) Me.Controls.Add(Me.SplitContainerControlSearch) Me.Controls.Add(Me.Panel1) Me.Controls.Add(Me.RibbonStatusBar1) @@ -429,6 +516,13 @@ Partial Class frmSearchStart CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RepositoryItemRadioGroup1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RepositoryItemComboBox1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RepositoryItemDateEdit1.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RepositoryItemDateEdit1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RepositoryItemDateEdit2.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RepositoryItemDateEdit2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RepositoryItemComboBox2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RepositoryItemTimeSpanEdit1, System.ComponentModel.ISupportInitialize).EndInit() Me.Panel1.ResumeLayout(False) Me.Panel1.PerformLayout() CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).EndInit() @@ -439,8 +533,6 @@ Partial Class frmSearchStart CType(Me.SplitContainerControlSearch, System.ComponentModel.ISupportInitialize).EndInit() Me.SplitContainerControlSearch.ResumeLayout(False) Me.ContextMenuStripMultiselect.ResumeLayout(False) - CType(Me.DateEdit1.Properties.CalendarTimeProperties, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.DateEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout @@ -487,5 +579,15 @@ End Sub Friend WithEvents KlammerRechtsToolStripMenuItem As ToolStripMenuItem Friend WithEvents KlammerEntfernenToolStripMenuItem As ToolStripMenuItem Friend WithEvents BarButtonItem4 As DevExpress.XtraBars.BarButtonItem - Friend WithEvents DateEdit1 As DevExpress.XtraEditors.DateEdit + Friend WithEvents RibbonPageGroupFilter As DevExpress.XtraBars.Ribbon.RibbonPageGroup + Friend WithEvents BarStaticItem1 As DevExpress.XtraBars.BarStaticItem + Friend WithEvents RepositoryItemTextEdit1 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit + Friend WithEvents txtFilterFrom As DevExpress.XtraBars.BarEditItem + Friend WithEvents RepositoryItemDateEdit1 As DevExpress.XtraEditors.Repository.RepositoryItemDateEdit + Friend WithEvents txtFilterTo As DevExpress.XtraBars.BarEditItem + Friend WithEvents RepositoryItemDateEdit2 As DevExpress.XtraEditors.Repository.RepositoryItemDateEdit + Friend WithEvents cmbFilterTimeframe As DevExpress.XtraBars.BarEditItem + Friend WithEvents RepositoryItemComboBox2 As DevExpress.XtraEditors.Repository.RepositoryItemComboBox + Friend WithEvents SwitchFilter As DevExpress.XtraBars.BarToggleSwitchItem + Friend WithEvents RepositoryItemTimeSpanEdit1 As DevExpress.XtraEditors.Repository.RepositoryItemTimeSpanEdit End Class diff --git a/GUIs.ZooFlow/frmSearchStart.resx b/GUIs.ZooFlow/frmSearchStart.resx index 78482693..4cc7d351 100644 --- a/GUIs.ZooFlow/frmSearchStart.resx +++ b/GUIs.ZooFlow/frmSearchStart.resx @@ -167,26 +167,6 @@ Ni4xLDIzLjF6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPHBhdGggZD0iTTI3LjUsMTEuOGwtMTAsMTBsLTku Mi05LjJsMTAtMTBjMC43LTAuNywxLjktMC43LDIuNiwwbDYuNiw2LjZDMjguMiw5LjksMjguMiwxMSwy Ny41LDExLjh6IiBjbGFzcz0iUmVkIiAvPg0KPC9zdmc+Cw== - - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAPcCAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iRmluZCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzIg - MzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cjwvc3R5 - bGU+DQogIDxwYXRoIGQ9Ik0yOS41LDE5LjdMMjkuNSwxOS43TDI5LjUsMTkuN0MyOS41LDE5LjcsMjku - NSwxOS43LDI5LjUsMTkuN0wyMy44LDZsMCwwYy0wLjQtMS4yLTEuNS0yLTIuOC0yICBjLTEuNywwLTMs - MS4zLTMsM3YzaC00VjdjMC0xLjctMS4zLTMtMy0zQzkuNyw0LDguNiw0LjksOC4yLDZsMCwwTDIuNSwx - OS43YzAsMCwwLDAsMCwwbDAsMGgwQzIuMiwyMC40LDIsMjEuMiwyLDIyICBjMCwzLjMsMi43LDYsNiw2 - czYtMi43LDYtNnYtNGg0djRjMCwzLjMsMi43LDYsNiw2czYtMi43LDYtNkMzMCwyMS4yLDI5LjgsMjAu - NCwyOS41LDE5Ljd6IE04LDI2Yy0yLjIsMC00LTEuOC00LTRzMS44LTQsNC00ICBzNCwxLjgsNCw0UzEw - LjIsMjYsOCwyNnogTTI0LDI2Yy0yLjIsMC00LTEuOC00LTRzMS44LTQsNC00czQsMS44LDQsNFMyNi4y - LDI2LDI0LDI2eiIgY2xhc3M9IkJsYWNrIiAvPg0KPC9zdmc+Cw== @@ -207,13 +187,33 @@ IDxwYXRoIGQ9Ik0xNiwyQzguMywyLDIsOC4zLDIsMTZzNi4zLDE0LDE0LDE0czE0LTYuMywxNC0xNFMy My43LDIsMTYsMnogTTEyLDIyVjEwbDEwLDZMMTIsMjJ6IiBjbGFzcz0iR3JlZW4iIC8+DQogIDwvZz4N Cjwvc3ZnPgs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAPcCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iRmluZCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzIg + MzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cjwvc3R5 + bGU+DQogIDxwYXRoIGQ9Ik0yOS41LDE5LjdMMjkuNSwxOS43TDI5LjUsMTkuN0MyOS41LDE5LjcsMjku + NSwxOS43LDI5LjUsMTkuN0wyMy44LDZsMCwwYy0wLjQtMS4yLTEuNS0yLTIuOC0yICBjLTEuNywwLTMs + MS4zLTMsM3YzaC00VjdjMC0xLjctMS4zLTMtMy0zQzkuNyw0LDguNiw0LjksOC4yLDZsMCwwTDIuNSwx + OS43YzAsMCwwLDAsMCwwbDAsMGgwQzIuMiwyMC40LDIsMjEuMiwyLDIyICBjMCwzLjMsMi43LDYsNiw2 + czYtMi43LDYtNnYtNGg0djRjMCwzLjMsMi43LDYsNiw2czYtMi43LDYtNkMzMCwyMS4yLDI5LjgsMjAu + NCwyOS41LDE5Ljd6IE04LDI2Yy0yLjIsMC00LTEuOC00LTRzMS44LTQsNC00ICBzNCwxLjgsNCw0UzEw + LjIsMjYsOCwyNnogTTI0LDI2Yy0yLjIsMC00LTEuOC00LTRzMS44LTQsNC00czQsMS44LDQsNFMyNi4y + LDI2LDI0LDI2eiIgY2xhc3M9IkJsYWNrIiAvPg0KPC9zdmc+Cw== - 17, 17 + 189, 17 - 237, 17 + 409, 17 174 diff --git a/GUIs.ZooFlow/frmSearchStart.vb b/GUIs.ZooFlow/frmSearchStart.vb index fad90499..bcaa2613 100644 --- a/GUIs.ZooFlow/frmSearchStart.vb +++ b/GUIs.ZooFlow/frmSearchStart.vb @@ -7,6 +7,8 @@ Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraEditors Imports DigitalData.GUIs.Common Imports System.Random +Imports DevExpress.XtraSplashScreen +Imports DevExpress.XtraEditors.Repository Public Class frmSearchStart Private Logger As Logger @@ -43,9 +45,70 @@ Public Class frmSearchStart oSearchTerms.Columns.Add("BracketRight", GetType(String)) oSearchTerms.Columns.Add("Operator", GetType(String)) DTSearchTerms = oSearchTerms + End Sub + + Private Sub frmSearchStart_Load(sender As Object, e As EventArgs) Handles Me.Load + Try + Me.Panel1.Visible = False + For Each oTab As XtraTabPage In XtraTabControl1.TabPages + oTab.PageVisible = False + Next + + RepositoryItemComboBox2.Items.AddRange(New List(Of FilterTimeframe) From { + New FilterTimeframe() With {.Name = "Alle", .From = Nothing, .[To] = Nothing}, + New FilterTimeframe() With {.Name = "Eigener", .From = Nothing, .[To] = Nothing}, + New FilterTimeframe() With { + .Name = "letzte 7 Tage", + .From = Date.Now.Subtract(TimeSpan.FromDays(7)), + .[To] = Date.Now + }, + New FilterTimeframe() With { + .Name = "letzte 14 Tage", + .From = Date.Now.Subtract(TimeSpan.FromDays(14)), + .[To] = Date.Now + } + }) + + If DTSearchProfiles.Rows.Count > 1 Then + cmbProfile.DataSource = DTSearchProfiles + cmbProfile.ValueMember = DTSearchProfiles.Columns("SEARCH_PROFILE_ID").ColumnName + cmbProfile.DisplayMember = DTSearchProfiles.Columns("TITLE").ColumnName + cmbProfile.AutoCompleteMode = AutoCompleteMode.Suggest + cmbProfile.AutoCompleteSource = AutoCompleteSource.ListItems + cmbProfile.SelectedIndex = -1 + TabSelectedIndex = -1 + + Me.Panel1.Visible = True + For Each orow As DataRow In DTSearchProfiles.Rows + RepositoryItemComboBox1.Items.Add(orow.Item("TITLE")) + Next + + Else + TabSelectedIndex = 0 + TabSelected = XtraTabControl1.TabPages(0) + TabSelected.PageVisible = True + PSEARCH_ID = DTSearchProfiles.Rows(0).Item("SEARCH_PROFILE_ID") + SEARCH_SQL = DTSearchProfiles.Rows(0).Item("RESULT_SQL") + SEARCH_TITLE = DTSearchProfiles.Rows(0).Item("TITLE") + TabSelected.Text = DTSearchProfiles.Rows(0).Item("TITLE") + Load_Search_Attributes() + BarButtonItemNewSearch.Visibility = DevExpress.XtraBars.BarItemVisibility.Never + End If + SEARCH_COUNT = DTSearchProfiles.Rows.Count + SplitContainerControlSearch.Collapsed = True + RibbonControl1.ColorScheme = DevExpress.XtraBars.Ribbon.RibbonControlColorScheme.Red + If My.UIConfig.SearchForm.Location.X > 0 And My.UIConfig.SearchForm.Location.Y > 0 Then + Me.Location = My.UIConfig.SearchForm.Location + End If + Catch ex As Exception + Logger.Error(ex.Message) + MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while loading ProfileSearches:") + End Try End Sub + + Public Sub AddSearchAttribute(pAttributeId As String, pAttributeTitle As String, pSearchTerm As String, Optional pCriteria As String = "=") GridControlSerchTerms.DataSource = Nothing Dim oMultiselect As Boolean = False @@ -107,51 +170,6 @@ Public Class frmSearchStart End Sub - - Private Sub frmSearchStart_Load(sender As Object, e As EventArgs) Handles Me.Load - Try - Me.Panel1.Visible = False - For Each oTab As XtraTabPage In XtraTabControl1.TabPages - oTab.PageVisible = False - Next - If DTSearchProfiles.Rows.Count > 1 Then - cmbProfile.DataSource = DTSearchProfiles - cmbProfile.ValueMember = DTSearchProfiles.Columns("SEARCH_PROFILE_ID").ColumnName - cmbProfile.DisplayMember = DTSearchProfiles.Columns("TITLE").ColumnName - cmbProfile.AutoCompleteMode = AutoCompleteMode.Suggest - cmbProfile.AutoCompleteSource = AutoCompleteSource.ListItems - cmbProfile.SelectedIndex = -1 - TabSelectedIndex = -1 - - Me.Panel1.Visible = True - For Each orow As DataRow In DTSearchProfiles.Rows - RepositoryItemComboBox1.Items.Add(orow.Item("TITLE")) - Next - - Else - TabSelectedIndex = 0 - TabSelected = XtraTabControl1.TabPages(0) - TabSelected.PageVisible = True - PSEARCH_ID = DTSearchProfiles.Rows(0).Item("SEARCH_PROFILE_ID") - SEARCH_SQL = DTSearchProfiles.Rows(0).Item("RESULT_SQL") - SEARCH_TITLE = DTSearchProfiles.Rows(0).Item("TITLE") - TabSelected.Text = DTSearchProfiles.Rows(0).Item("TITLE") - Load_Search_Attributes() - BarButtonItemNewSearch.Visibility = DevExpress.XtraBars.BarItemVisibility.Never - End If - SEARCH_COUNT = DTSearchProfiles.Rows.Count - SplitContainerControlSearch.Collapsed = True - RibbonControl1.ColorScheme = DevExpress.XtraBars.Ribbon.RibbonControlColorScheme.Red - If My.UIConfig.SearchForm.Location.X > 0 And My.UIConfig.SearchForm.Location.Y > 0 Then - Me.Location = My.UIConfig.SearchForm.Location - End If - - Catch ex As Exception - Logger.Error(ex.Message) - MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while loading ProfileSearches:") - End Try - - End Sub Sub Load_Search_Attributes() Try DataLoaded = False @@ -754,10 +772,14 @@ Public Class frmSearchStart End Function Private Sub BarButtonItem4_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem4.ItemClick - Start_Search + Start_Search() End Sub - Private Function Start_Search() + Private Sub Start_Search() + Dim oHandle As IOverlaySplashScreenHandle = Nothing + Try + oHandle = SplashScreenManager.ShowOverlayForm(Me) + Dim oSEARCH_SQL = SEARCH_SQL Dim oOperator As String Dim oCount As Integer = 1 @@ -772,14 +794,18 @@ Public Class frmSearchStart oOperator = oRow.Item("Operator").ToString Dim oSearchTerm = GetSearchTermForType(oRow.Item("AttrID"), oRow.Item("AttrTitle").ToString, oRow.Item("Criteria").ToString, oRow.Item("SearchTerm").ToString) - oSEARCH_SQL &= IIf(oCount = 0, " ", "") + $"{oRow.Item("BracketLeft").ToString}{oSearchTerm}{oRow.Item("BracketLeft").ToString}" + Dim oBracketLeft As String = oRow.Item("BracketLeft").ToString + Dim oBracketRight As String = oRow.Item("BracketLeft").ToString + Dim oSpaceChar = IIf(oCount = 0, " ", "") + + oSEARCH_SQL &= $"{oSpaceChar}{oBracketLeft}{oSearchTerm}{oBracketRight}" If DTSearchTerms.Rows.Count > oCount Then oSEARCH_SQL &= $" {oOperator} {Chr(13)}" End If oCount += 1 Next - Dim oEnvironment As New DigitalData.Modules.ZooFlow.Environment() With { + Dim oEnvironment As New Modules.ZooFlow.Environment() With { .User = My.Application.User, .Modules = My.Application.Modules, .Database = My.Database, @@ -791,6 +817,7 @@ Public Class frmSearchStart Dim oShortGuid = Guid.NewGuid() Dim oWindowGuid = $"{PSEARCH_ID.ToString}-{My.User.Name}" Dim oParams = New DocumentResultParams() With { + .IsIDBResult = True, .WindowGuid = oWindowGuid, .Results = New List(Of DocumentResult) From { New DocumentResult() With { @@ -805,12 +832,11 @@ Public Class frmSearchStart Else Display_InfoItem("No results for this searchcombination!", Color.OrangeRed) End If - - Catch ex As Exception - + Finally + SplashScreenManager.CloseOverlayForm(oHandle) End Try - End Function + End Sub Private Sub frmSearchStart_KeyUp(sender As Object, e As KeyEventArgs) Handles Me.KeyUp If e.KeyCode = Keys.F2 Then @@ -818,5 +844,34 @@ Public Class frmSearchStart End If End Sub + Private Sub SwitchFilter_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles SwitchFilter.CheckedChanged + If SwitchFilter.Checked Then + RibbonPageGroupFilter.Enabled = True + Else + RibbonPageGroupFilter.Enabled = False + End If + End Sub + + Private Class FilterTimeframe + Public Property Name As String + Public Property From As Date + Public Property [To] As Date + Public Overrides Function ToString() As String + Return Name.ToString + End Function + End Class + + Private Sub cmbFilterTimeframe_EditValueChanged(sender As Object, e As EventArgs) Handles cmbFilterTimeframe.EditValueChanged + Dim oTimeframe As FilterTimeframe = DirectCast(cmbFilterTimeframe.EditValue, FilterTimeframe) + + If IsNothing(oTimeframe.From) And IsNothing(oTimeframe.To) Then + txtFilterFrom.Reset() + txtFilterTo.Reset() + Else + txtFilterFrom.EditValue = oTimeframe.From + txtFilterTo.EditValue = oTimeframe.[To] + End If + + End Sub End Class \ No newline at end of file