This commit is contained in:
2022-04-11 17:13:03 +02:00
12 changed files with 550 additions and 528 deletions

View File

@@ -146,7 +146,7 @@ Public Class ClassInit
My.Database = New DatabaseWithFallback(LogConfig, My.Application.Service.Client, My.DatabaseECM, My.DatabaseIDB)
Catch ex As Exception
Logger.Error(ex)
Throw New InitException("Error InitializeDatabaseWithFallback!", ex)
Throw New InitException("Error in InitializeDatabaseWithFallback!", ex)
End Try
End Sub
Private Sub InitializeUser(MyApplication As My.MyApplication)

View File

@@ -0,0 +1,190 @@
Imports DigitalData.GUIs.Common
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.ZooFlow
Public Class SearchRunner
Inherits BaseClass
Private Const SEARCH_FACT_DATE_DEFAULT As String = "ADDED_WHEN"
Private Environment As Environment
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 Enum DateConstraint
Today
Tomorrow
Yesterday
Last7Days
CurrentMonth
LastMonth
CurrentYear
LastYear
End Enum
Public Event NeedsRefresh As EventHandler(Of Integer)
Private _ActiveDateConstraint As String = String.Empty
Public ReadOnly Property ActiveDateConstraint As String
Get
Return _ActiveDateConstraint
End Get
End Property
Private _ActiveDateAttribute As String = SEARCH_FACT_DATE_DEFAULT
Public ReadOnly Property ActiveDateAttribute As String
Get
Return _ActiveDateAttribute
End Get
End Property
Public Property BaseSearchSQL As String
Public Property ExplicitDate As Boolean = False
Public Sub New(pLogConfig As LogConfig, pEnvironment As Environment)
MyBase.New(pLogConfig)
Environment = pEnvironment
End Sub
Public Async Function Run(pSearchTerm As String, pDateFrom As Date, pDateTo As Date) As Threading.Tasks.Task(Of SearchResult)
Dim oSearchTerm = pSearchTerm
Dim oParams = New DocumentResultList.Params() With {
.WindowGuid = "FlowSearch",
.WindowTitle = GetResultWindowString(oSearchTerm),
.OperationModeOverride = Modules.ZooFlow.Constants.OperationMode.ZooFlow,
.ProfileGuid = 354522,
.ColumnNames = New DocumentResultList.ColumnNames With {
.ObjectIdColumn = "DocID"
}
}
Dim oP3 = $"{_ActiveDateAttribute}~{_ActiveDateConstraint}"
If ExplicitDate Then
Dim oDate2 As Date
If pDateTo.Equals(Date.MinValue) Then
oDate2 = pDateTo
Else
oDate2 = pDateFrom
End If
Dim oProc = $"EXEC PRIDB_SEARCH_ADD_USR_DATE {My.Application.User.UserId},'{pDateFrom}','{oDate2}'"
If Await My.Database.ExecuteNonQueryIDBAsync(oProc) = True Then
oP3 = $"{_ActiveDateAttribute}~DATEPART"
End If
End If
Dim oSQL = $"EXEC PRIDB_SEARCH_TEXT_GET_RESULTS {My.Application.User.UserId},'{oSearchTerm}','{oP3}'"
If Await My.Database.ExecuteNonQueryIDBAsync(oSQL) = True Then
Dim oDTDocResult = Await My.Database.GetDatatableIDBAsync(BaseSearchSQL)
If oDTDocResult.Rows.Count > 0 Then
oParams.Results.Add(New DocumentResultList.DocumentResult() With {
.Title = "FlowSearchXYZ",
.Datatable = oDTDocResult
})
Dim oForm As New frmDocumentResultList(My.LogConfig, Environment, oParams)
' TODO: Implement, not needed right now
'AddHandler oForm.NeedsRefresh, AddressOf Form_NeedsRefresh
oForm.Show()
Return New SearchResult With {
.OK = True
}
Else
'bsiStatus.Caption = "No Results"
Return New SearchResult With {
.OK = False,
.ErrorMessage = "No Results"
}
End If
Else
'bsiStatus.Caption = "Error in FlowSearch - Check Your log"
Return New SearchResult With {
.OK = False,
.ErrorMessage = "Error in FlowSearch - Check Your log"
}
End If
End Function
Private Function GetResultWindowString(SearchContent As String) As String
If SearchContent <> String.Empty Then
If My.Application.User.Language = State.UserState.LANG_DE_DE Then
Return $"Suche Nach '{SearchContent}'"
Else
Return $"Search For '{SearchContent}'"
End If
Else
If My.Application.User.Language = State.UserState.LANG_DE_DE Then
Return $"Suche Datumsbegrenzt"
Else
Return $"Search via date"
End If
End If
End Function
Public Sub SetDateConstraint()
_ActiveDateConstraint = String.Empty
End Sub
Public Sub SetDateConstraint(pConstraintName As String)
_ActiveDateConstraint = pConstraintName
End Sub
Public Sub SetDateConstraint(pConstraint As DateConstraint)
Select Case pConstraint
Case DateConstraint.Today
_ActiveDateConstraint = CREATED_TODAY
Case DateConstraint.Yesterday
_ActiveDateConstraint = CREATED_YESTERDAY
Case DateConstraint.Tomorrow
_ActiveDateConstraint = CREATED_TOMORROW
Case DateConstraint.Last7Days
_ActiveDateConstraint = CREATED_LAST_7_DAYS
Case DateConstraint.CurrentMonth
_ActiveDateConstraint = CREATED_MONTH_CURR
Case DateConstraint.LastMonth
_ActiveDateConstraint = CREATED_MONTH_LAST
Case DateConstraint.CurrentYear
_ActiveDateConstraint = CREATED_YEAR_CURRENT
Case DateConstraint.LastYear
_ActiveDateConstraint = CREATED_YEAR_LAST
Case Else
_ActiveDateAttribute = String.Empty
End Select
End Sub
Public Sub SetDateAttribute(pAttributeName As String)
_ActiveDateAttribute = pAttributeName
End Sub
Public Sub SetDateAttribute()
_ActiveDateAttribute = SEARCH_FACT_DATE_DEFAULT
End Sub
Public Class SearchResult
Public OK As Boolean
Public ErrorMessage As String
End Class
End Class

View File

@@ -1,9 +1,9 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class frmFlowSearch1
Inherits DevExpress.XtraBars.Ribbon.RibbonForm
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
@@ -20,13 +20,13 @@ Partial Class frmFlowSearch1
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmFlowSearch1))
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonStartSearch = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonReset = New DevExpress.XtraBars.BarButtonItem()
Me.bsiStatus = New DevExpress.XtraBars.BarStaticItem()
Me.BarSubItem1 = New DevExpress.XtraBars.BarSubItem()
Me.BarListItem1 = New DevExpress.XtraBars.BarListItem()
@@ -57,9 +57,9 @@ Partial Class frmFlowSearch1
Me.XtraTabPage2 = New DevExpress.XtraTab.XtraTabPage()
Me.Label1 = New System.Windows.Forms.Label()
Me.cmbLimitationDateAttr = New System.Windows.Forms.ComboBox()
Me.LabelControl1 = New DevExpress.XtraEditors.LabelControl()
Me.PictureEdit1 = New DevExpress.XtraEditors.PictureEdit()
Me.txtSearchInput = New DevExpress.XtraEditors.TextEdit()
Me.SimpleButton1 = New DevExpress.XtraEditors.SimpleButton()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.DockManager1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.DockPanel1.SuspendLayout()
@@ -86,29 +86,31 @@ Partial Class frmFlowSearch1
'
'RibbonControl1
'
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.BarButtonItem1, Me.BarButtonItem2, Me.bsiStatus, Me.BarSubItem1, Me.BarListItem1, Me.BarToggleSwitchItemTerm, Me.BarToggleSwitchItemFulltext})
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})
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
Me.RibbonControl1.MaxItemId = 8
Me.RibbonControl1.Name = "RibbonControl1"
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
Me.RibbonControl1.Size = New System.Drawing.Size(938, 158)
Me.RibbonControl1.Size = New System.Drawing.Size(936, 89)
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
'
'BarButtonItem1
'BarButtonStartSearch
'
Me.BarButtonItem1.Caption = "Suche starten"
Me.BarButtonItem1.Id = 1
Me.BarButtonItem1.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem1.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonItem1.Name = "BarButtonItem1"
Me.BarButtonStartSearch.Caption = "Suche starten"
Me.BarButtonStartSearch.Id = 1
Me.BarButtonStartSearch.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonStartSearch.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonStartSearch.Name = "BarButtonStartSearch"
Me.BarButtonStartSearch.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
'
'BarButtonItem2
'BarButtonReset
'
Me.BarButtonItem2.Caption = "Suche zurücksetzen"
Me.BarButtonItem2.Id = 2
Me.BarButtonItem2.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonItem2.Name = "BarButtonItem2"
Me.BarButtonReset.Caption = "Suche zurücksetzen"
Me.BarButtonReset.Id = 2
Me.BarButtonReset.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonReset.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonReset.Name = "BarButtonReset"
'
'bsiStatus
'
@@ -152,8 +154,8 @@ Partial Class frmFlowSearch1
'
'RibbonPageGroup2
'
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem1)
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem2)
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonStartSearch)
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonReset)
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
Me.RibbonPageGroup2.Text = "Suchfunktionen"
'
@@ -168,10 +170,10 @@ Partial Class frmFlowSearch1
'RibbonStatusBar1
'
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsiStatus)
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 580)
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 745)
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
Me.RibbonStatusBar1.Size = New System.Drawing.Size(938, 24)
Me.RibbonStatusBar1.Size = New System.Drawing.Size(936, 24)
'
'RibbonPage2
'
@@ -192,10 +194,10 @@ Partial Class frmFlowSearch1
Me.DockPanel1.Dock = DevExpress.XtraBars.Docking.DockingStyle.Left
Me.DockPanel1.ID = New System.Guid("404a591d-3a18-4984-8b8d-d8ac23bfc3db")
Me.DockPanel1.ImageOptions.SvgImage = CType(resources.GetObject("DockPanel1.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.DockPanel1.Location = New System.Drawing.Point(0, 158)
Me.DockPanel1.Location = New System.Drawing.Point(0, 89)
Me.DockPanel1.Name = "DockPanel1"
Me.DockPanel1.OriginalSize = New System.Drawing.Size(225, 200)
Me.DockPanel1.Size = New System.Drawing.Size(225, 422)
Me.DockPanel1.OriginalSize = New System.Drawing.Size(193, 200)
Me.DockPanel1.Size = New System.Drawing.Size(193, 656)
Me.DockPanel1.Text = "Datum"
'
'DockPanel1_Container
@@ -205,7 +207,7 @@ Partial Class frmFlowSearch1
Me.DockPanel1_Container.Controls.Add(Me.cmbLimitationDateAttr)
Me.DockPanel1_Container.Location = New System.Drawing.Point(3, 40)
Me.DockPanel1_Container.Name = "DockPanel1_Container"
Me.DockPanel1_Container.Size = New System.Drawing.Size(218, 379)
Me.DockPanel1_Container.Size = New System.Drawing.Size(186, 613)
Me.DockPanel1_Container.TabIndex = 0
'
'XtraTabControl1
@@ -218,7 +220,7 @@ Partial Class frmFlowSearch1
Me.XtraTabControl1.Name = "XtraTabControl1"
Me.XtraTabControl1.SelectedTabPage = Me.XtraTabPage1
Me.XtraTabControl1.ShowTabHeader = DevExpress.Utils.DefaultBoolean.[True]
Me.XtraTabControl1.Size = New System.Drawing.Size(203, 318)
Me.XtraTabControl1.Size = New System.Drawing.Size(171, 552)
Me.XtraTabControl1.TabIndex = 10
Me.XtraTabControl1.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.XtraTabPage1, Me.XtraTabPage2})
'
@@ -239,7 +241,7 @@ Partial Class frmFlowSearch1
Me.XtraTabPage1.Controls.Add(Me.ToggleSwitchYear_Last)
Me.XtraTabPage1.Controls.Add(Me.ToggleSwitchYear)
Me.XtraTabPage1.Name = "XtraTabPage1"
Me.XtraTabPage1.Size = New System.Drawing.Size(201, 293)
Me.XtraTabPage1.Size = New System.Drawing.Size(169, 527)
Me.XtraTabPage1.Text = "Standard"
'
'DateEditTill
@@ -368,7 +370,7 @@ Partial Class frmFlowSearch1
'XtraTabPage2
'
Me.XtraTabPage2.Name = "XtraTabPage2"
Me.XtraTabPage2.Size = New System.Drawing.Size(201, 458)
Me.XtraTabPage2.Size = New System.Drawing.Size(169, 527)
Me.XtraTabPage2.Text = "...tbd"
'
'Label1
@@ -383,28 +385,18 @@ Partial Class frmFlowSearch1
'cmbLimitationDateAttr
'
Me.cmbLimitationDateAttr.FormattingEnabled = True
Me.cmbLimitationDateAttr.Location = New System.Drawing.Point(7, 24)
Me.cmbLimitationDateAttr.Location = New System.Drawing.Point(6, 24)
Me.cmbLimitationDateAttr.Name = "cmbLimitationDateAttr"
Me.cmbLimitationDateAttr.Size = New System.Drawing.Size(178, 21)
Me.cmbLimitationDateAttr.Size = New System.Drawing.Size(171, 21)
Me.cmbLimitationDateAttr.TabIndex = 1
'
'LabelControl1
'
Me.LabelControl1.Appearance.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.LabelControl1.Appearance.Options.UseFont = True
Me.LabelControl1.Location = New System.Drawing.Point(231, 166)
Me.LabelControl1.Name = "LabelControl1"
Me.LabelControl1.Size = New System.Drawing.Size(69, 17)
Me.LabelControl1.TabIndex = 3
Me.LabelControl1.Text = "Suchbegriff:"
'
'PictureEdit1
'
Me.PictureEdit1.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.PictureEdit1.EditValue = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.ZooFlow_CW_DevExpress
Me.PictureEdit1.Location = New System.Drawing.Point(666, 365)
Me.PictureEdit1.Location = New System.Drawing.Point(709, 537)
Me.PictureEdit1.MenuManager = Me.RibbonControl1
Me.PictureEdit1.Name = "PictureEdit1"
Me.PictureEdit1.Properties.Appearance.BackColor = System.Drawing.SystemColors.Control
@@ -413,32 +405,43 @@ Partial Class frmFlowSearch1
Me.PictureEdit1.Properties.PictureAlignment = System.Drawing.ContentAlignment.BottomRight
Me.PictureEdit1.Properties.ShowCameraMenuItem = DevExpress.XtraEditors.Controls.CameraMenuItemVisibility.[Auto]
Me.PictureEdit1.Properties.ZoomPercent = 300.0R
Me.PictureEdit1.Size = New System.Drawing.Size(260, 209)
Me.PictureEdit1.Size = New System.Drawing.Size(215, 202)
Me.PictureEdit1.TabIndex = 8
'
'txtSearchInput
'
Me.txtSearchInput.Location = New System.Drawing.Point(229, 193)
Me.txtSearchInput.EditValue = ""
Me.txtSearchInput.Location = New System.Drawing.Point(206, 95)
Me.txtSearchInput.MenuManager = Me.RibbonControl1
Me.txtSearchInput.Name = "txtSearchInput"
Me.txtSearchInput.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 11.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txtSearchInput.Properties.Appearance.ForeColor = System.Drawing.Color.Blue
Me.txtSearchInput.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI Semibold", 11.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txtSearchInput.Properties.Appearance.ForeColor = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(19, Byte), Integer))
Me.txtSearchInput.Properties.Appearance.Options.UseFont = True
Me.txtSearchInput.Properties.Appearance.Options.UseForeColor = True
Me.txtSearchInput.Properties.NullText = "Suchbegriff eingeben"
Me.txtSearchInput.Properties.Padding = New System.Windows.Forms.Padding(10)
Me.txtSearchInput.Size = New System.Drawing.Size(697, 46)
Me.txtSearchInput.Size = New System.Drawing.Size(673, 46)
Me.txtSearchInput.TabIndex = 12
'
'SimpleButton1
'
Me.SimpleButton1.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.ZooFlow_CW_DevExpress
Me.SimpleButton1.ImageOptions.SvgImageSize = New System.Drawing.Size(40, 40)
Me.SimpleButton1.Location = New System.Drawing.Point(878, 95)
Me.SimpleButton1.Name = "SimpleButton1"
Me.SimpleButton1.Size = New System.Drawing.Size(46, 46)
Me.SimpleButton1.TabIndex = 16
'
'frmFlowSearch1
'
Me.Appearance.BackColor = System.Drawing.SystemColors.Control
Me.Appearance.Options.UseBackColor = True
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(938, 604)
Me.ClientSize = New System.Drawing.Size(936, 769)
Me.Controls.Add(Me.SimpleButton1)
Me.Controls.Add(Me.txtSearchInput)
Me.Controls.Add(Me.PictureEdit1)
Me.Controls.Add(Me.LabelControl1)
Me.Controls.Add(Me.DockPanel1)
Me.Controls.Add(Me.RibbonStatusBar1)
Me.Controls.Add(Me.RibbonControl1)
@@ -493,9 +496,8 @@ Partial Class frmFlowSearch1
Friend WithEvents ToggleSwitchTomorrow As DevExpress.XtraEditors.ToggleSwitch
Friend WithEvents ToggleSwitchMonth_Last As DevExpress.XtraEditors.ToggleSwitch
Friend WithEvents ToggleSwitchMonth As DevExpress.XtraEditors.ToggleSwitch
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents LabelControl1 As DevExpress.XtraEditors.LabelControl
Friend WithEvents BarButtonStartSearch As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarButtonReset As DevExpress.XtraBars.BarButtonItem
Friend WithEvents bsiStatus As DevExpress.XtraBars.BarStaticItem
Friend WithEvents ToggleSwitchYear As DevExpress.XtraEditors.ToggleSwitch
Friend WithEvents BarSubItem1 As DevExpress.XtraBars.BarSubItem
@@ -512,4 +514,5 @@ Partial Class frmFlowSearch1
Friend WithEvents DateEditFrom As DevExpress.XtraEditors.DateEdit
Friend WithEvents ToggleSwitchDateto As DevExpress.XtraEditors.ToggleSwitch
Friend WithEvents txtSearchInput As DevExpress.XtraEditors.TextEdit
Friend WithEvents SimpleButton1 As DevExpress.XtraEditors.SimpleButton
End Class

View File

@@ -118,7 +118,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="DevExpress.Data.v21.2" name="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="BarButtonItem1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="BarButtonStartSearch.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
@@ -133,7 +133,7 @@
cz0iQmx1ZSIgLz4NCjwvc3ZnPgs=
</value>
</data>
<data name="BarButtonItem2.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="BarButtonReset.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl

View File

@@ -6,53 +6,31 @@ Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.ZooFlow
Public Class frmFlowSearch1
Private _Environment As Environment
Private Environment As Environment
Private Logger As Logger
Private SearchRunner As SearchRunner
Private TOGGLE_Change As Boolean = False
Private AttributeSearch As String = "ADDED_WHEN"
Private DateConstraint As String = ""
Private BaseSearchSQL As String
Private Property BaseSearchSQL As String
Private Property TogglesDate As List(Of ToggleSwitch)
Private Property TogglesDateChanging As Boolean = False
'Private LIMITATION_DATE As Boolean = False
'Private SEARCH_FACT_DATE As String = "MONTH(OBJ.ADDED_WHEN) <> 13"
Private Sub ResetTogglesDate()
ResetTogglesDate(Nothing)
End Sub
Private Const SEARCH_FACT_DATE_DEFAULT As String = "ADDED_WHEN"
Private Sub ResetTogglesDate(pExcludeToggle As ToggleSwitch)
TogglesDateChanging = True
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"
For Each oToggle As ToggleSwitch In TogglesDate
If pExcludeToggle IsNot Nothing Then
If oToggle.Name = pExcludeToggle.Name Then
Continue For
End If
End If
oToggle.IsOn = False
Next
Private ExplizitDate As Boolean = False
'Private Enum DateConstraintEnum
' Today
' Yesterday
' Last7Days
' CurrentYear
' LastYear
' CurrentMonth
' LastMonth
'End Enum
Sub ResetTogglesDate()
TOGGLE_Change = True
ToggleSwitchToday.IsOn = False
ToggleSwitchYesterday.IsOn = False
ToggleSwitchTomorrow.IsOn = False
ToggleSwitchLastWeek.IsOn = False
ToggleSwitchYear_Last.IsOn = False
ToggleSwitchYear.IsOn = False
ToggleSwitchMonth.IsOn = False
ToggleSwitchMonth_Last.IsOn = False
TOGGLE_Change = False
TogglesDateChanging = False
End Sub
Private Sub ToggleSwitchToday_Toggled(sender As Object, e As EventArgs) Handles _
@@ -65,171 +43,60 @@ Public Class frmFlowSearch1
ToggleSwitchLastWeek.Toggled,
ToggleSwitchTomorrow.Toggled
If TOGGLE_Change = True Then
If TogglesDateChanging = True Then
Exit Sub
End If
Dim oToggle As ToggleSwitch = TryCast(sender, ToggleSwitch)
If oToggle.IsOn Then
TOGGLE_Change = True
'Dim oWHENDATE As String
TogglesDateChanging = True
Select Case oToggle.Name
Case "ToggleSwitchTomorrow"
ToggleSwitchToday.IsOn = False
ToggleSwitchYesterday.IsOn = False
ToggleSwitchTomorrow.IsOn = False
ToggleSwitchLastWeek.IsOn = False
ToggleSwitchYear_Last.IsOn = False
ToggleSwitchYear.IsOn = False
ToggleSwitchMonth.IsOn = False
ToggleSwitchMonth_Last.IsOn = False
'oWHENDATE = GET_DATE_LIMITATION("YEAR(@ATTRIBUTE) = YEAR(GETDATE())", CREATED_TOMORROW)
DateConstraint = CREATED_TOMORROW
ResetTogglesDate(ToggleSwitchTomorrow)
SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.Tomorrow)
Case "ToggleSwitchYear"
ToggleSwitchToday.IsOn = False
ToggleSwitchYesterday.IsOn = False
ToggleSwitchTomorrow.IsOn = False
ToggleSwitchLastWeek.IsOn = False
ToggleSwitchYear_Last.IsOn = False
ToggleSwitchMonth.IsOn = False
ToggleSwitchMonth_Last.IsOn = False
'oWHENDATE = GET_DATE_LIMITATION("YEAR(@ATTRIBUTE) = YEAR(GETDATE())", CREATED_YEAR_CURRENT)
ResetTogglesDate(ToggleSwitchYear)
SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.CurrentYear)
DateConstraint = CREATED_YEAR_CURRENT
Case "ToggleSwitchYear_Last"
ToggleSwitchToday.IsOn = False
ToggleSwitchYesterday.IsOn = False
ToggleSwitchTomorrow.IsOn = False
ToggleSwitchLastWeek.IsOn = False
ToggleSwitchYear.IsOn = False
ToggleSwitchMonth.IsOn = False
ToggleSwitchMonth_Last.IsOn = False
'oWHENDATE = GET_DATE_LIMITATION("YEAR(@ATTRIBUTE) = YEAR(GETDATE())", CREATED_YEAR_LAST)
DateConstraint = CREATED_TODAY
ResetTogglesDate(ToggleSwitchYear_Last)
SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.Today)
Case "ToggleSwitchMonth"
ToggleSwitchToday.IsOn = False
ToggleSwitchYesterday.IsOn = False
ToggleSwitchTomorrow.IsOn = False
ToggleSwitchLastWeek.IsOn = False
ToggleSwitchYear.IsOn = False
ToggleSwitchYear_Last.IsOn = False
ToggleSwitchMonth_Last.IsOn = False
'oWHENDATE = GET_DATE_LIMITATION("MONTH(@ATTRIBUTE) = MONTH(GETDATE())", CREATED_MONTH_CURR)
DateConstraint = CREATED_MONTH_CURR
ResetTogglesDate(ToggleSwitchMonth)
SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.CurrentMonth)
Case "ToggleSwitchMonth_Last"
ToggleSwitchToday.IsOn = False
ToggleSwitchYesterday.IsOn = False
ToggleSwitchTomorrow.IsOn = False
ToggleSwitchLastWeek.IsOn = False
ToggleSwitchYear.IsOn = False
ToggleSwitchYear_Last.IsOn = False
ToggleSwitchMonth.IsOn = False
'Dim currentDate As DateTime = DateTime.Now
'If currentDate.Month = 1 Then
' oWHENDATE = GET_DATE_LIMITATION($"MONTH(@ATTRIBUTE) = 12 {vbNewLine}AND YEAR(@ATTRIBUTE) = (YEAR(GETDATE()) -1)", CREATED_MONTH_LAST)
'Else
' oWHENDATE = GET_DATE_LIMITATION("MONTH(@ATTRIBUTE) = (MONTH(GETDATE()) -1)", CREATED_MONTH_LAST)
'End If
DateConstraint = CREATED_MONTH_LAST
ResetTogglesDate(ToggleSwitchMonth_Last)
SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.LastMonth)
Case "ToggleSwitchToday"
ToggleSwitchYesterday.IsOn = False
ToggleSwitchTomorrow.IsOn = False
ToggleSwitchLastWeek.IsOn = False
ToggleSwitchYear.IsOn = False
ToggleSwitchYear_Last.IsOn = False
ToggleSwitchMonth.IsOn = False
ToggleSwitchMonth_Last.IsOn = False
'oWHENDATE = GET_DATE_LIMITATION("convert(DATE,@ATTRIBUTE) = convert(DATE,GETDATE())", CREATED_TODAY)
DateConstraint = CREATED_TODAY
ResetTogglesDate(ToggleSwitchToday)
SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.Today)
Case "ToggleSwitchYesterday"
ToggleSwitchToday.IsOn = False
ToggleSwitchTomorrow.IsOn = False
ToggleSwitchLastWeek.IsOn = False
ToggleSwitchYear.IsOn = False
ToggleSwitchYear_Last.IsOn = False
ToggleSwitchMonth.IsOn = False
ToggleSwitchMonth_Last.IsOn = False
'oWHENDATE = GET_DATE_LIMITATION("convert(DATE,@ATTRIBUTE) = convert(DATE,GETDATE()-1)", CREATED_YESTERDAY)
DateConstraint = CREATED_YESTERDAY
ResetTogglesDate(ToggleSwitchYesterday)
SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.Yesterday)
Case "ToggleSwitchLastWeek"
ToggleSwitchToday.IsOn = False
ToggleSwitchTomorrow.IsOn = False
ToggleSwitchYesterday.IsOn = False
ToggleSwitchYear.IsOn = False
ToggleSwitchYear_Last.IsOn = False
ToggleSwitchMonth.IsOn = False
ToggleSwitchMonth_Last.IsOn = False
'oWHENDATE = GET_DATE_LIMITATION("convert(DATE,@ATTRIBUTE) = convert(DATE,GETDATE()-1)", CREATED_LAST_7_DAYS)
DateConstraint = CREATED_LAST_7_DAYS
ResetTogglesDate(ToggleSwitchLastWeek)
SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.Last7Days)
End Select
'SEARCH_FACT_DATE = oWHENDATE
TOGGLE_Change = False
'LIMITATION_DATE = True
TogglesDateChanging = False
Else
If ToggleSwitchToday.IsOn = False And ToggleSwitchYesterday.IsOn = False And ToggleSwitchYear.IsOn = False And ToggleSwitchYear_Last.IsOn = False And
ToggleSwitchMonth_Last.IsOn = False And ToggleSwitchMonth.IsOn = False And ToggleSwitchLastWeek.IsOn = False And ToggleSwitchTomorrow.IsOn = False Then
'LIMITATION_DATE = False
DateConstraint = ""
SearchRunner.SetDateConstraint()
End If
End If
End Sub
'Private Function GetDateConstraint(pDateConstraint As DateConstraint) As String
' Select Case pDateConstraint
' Case DateConstraint.Today
' Return GET_DATE_LIMITATION("convert(DATE,@ATTRIBUTE) = convert(DATE,GETDATE())", CREATED_TODAY)
' Case DateConstraint.Yesterday
' Return GET_DATE_LIMITATION("convert(DATE,@ATTRIBUTE) = convert(DATE,GETDATE()-1)", CREATED_YESTERDAY)
' Case DateConstraint.Last7Days
' Return GET_DATE_LIMITATION("convert(DATE,@ATTRIBUTE) = convert(DATE,GETDATE()-1)", CREATED_LAST_7_DAYS)
' Case DateConstraint.CurrentMonth
' Return GET_DATE_LIMITATION("MONTH(@ATTRIBUTE) = MONTH(GETDATE())", CREATED_MONTH_CURR)
' Case DateConstraint.LastMonth
' If Now.Month = 1 Then
' Return GET_DATE_LIMITATION($"MONTH(@ATTRIBUTE) = 12 {vbNewLine}AND YEAR(@ATTRIBUTE) = (YEAR(GETDATE()) -1)", CREATED_MONTH_LAST)
' Else
' Return GET_DATE_LIMITATION("MONTH(@ATTRIBUTE) = (MONTH(GETDATE()) -1)", CREATED_MONTH_LAST)
' End If
' Case DateConstraint.CurrentYear
' Return GET_DATE_LIMITATION("YEAR(@ATTRIBUTE) = YEAR(GETDATE())", CREATED_YEAR_CURRENT)
' Case DateConstraint.LastYear
' Return GET_DATE_LIMITATION("YEAR(@ATTRIBUTE) = YEAR(GETDATE())", CREATED_YEAR_LAST)
' Case Else
' Return ""
' End Select
'End Function
'Private Function GET_DATE_LIMITATION(pInput As String, pVariant As String) As String
' Try
' If SEARCH_FACT_DATE_ATTRIBUTE = SEARCH_FACT_DATE_DEFAULT Then
' SEARCH_PARAM3 = pVariant
' Return pInput.Replace("@ATTRIBUTE", "OBJ.ADDED_WHEN")
' Else
' Dim oSTR = $"GRPDATE.[{SEARCH_FACT_DATE_ATTRIBUTE}]"
' Return pInput.Replace("@ATTRIBUTE", oSTR)
' End If
' Catch ex As Exception
' Return pInput
' Logger.Error(ex)
' End Try
'End Function
Private Sub cmbLimitationDateAttr_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmbLimitationDateAttr.SelectedValueChanged
If cmbLimitationDateAttr.SelectedIndex <> -1 Then
@@ -238,12 +105,10 @@ Public Class frmFlowSearch1
Dim oEditValue As String = cmbLimitationDateAttr.SelectedItem.ToString
If oEditValue = IDB_ADDED_WHEN_String_German Or oEditValue = IDB_ADDED_WHEN_String_Englisch Then
AttributeSearch = SEARCH_FACT_DATE_DEFAULT
SearchRunner.SetDateAttribute()
Else
AttributeSearch = oEditValue
'SEARCH_FACT_DATE = $"MONTH(GRPDATE.[{SEARCH_FACT_DATE_ATTRIBUTE}]) <> 13"
SearchRunner.SetDateAttribute(oEditValue)
End If
'SearchContent()
Catch ex As Exception
Logger.Error(ex)
End Try
@@ -252,6 +117,7 @@ Public Class frmFlowSearch1
Private Sub frmFlowSearch1_Load(sender As Object, e As EventArgs) Handles Me.Load
Logger = My.LogConfig.GetLogger()
SearchRunner = New SearchRunner(My.LogConfig, My.Application.GetEnvironment)
Try
If My.Application.User.Language = "de-DE" Then
@@ -267,7 +133,7 @@ Public Class frmFlowSearch1
End If
Next
_Environment = My.Application.GetEnvironment
Environment = My.Application.GetEnvironment
'Dim editor As BarEditItem = BarEditItemDate
' editor = TryCast(BarEditItemDate, ComboBoxEdit)
If My.Application.User.Language = "de-DE" Then
@@ -285,6 +151,10 @@ Public Class frmFlowSearch1
BaseSearchSQL = BaseSearchSQL.Replace("@LANG_CODE", My.Application.User.Language)
End If
Next
SearchRunner.BaseSearchSQL = BaseSearchSQL
Dim osql = $"EXEC PRIDB_SEARCH_AUTOSUGGEST '{My.Application.User.Language}',{My.Application.User.UserId}"
Dim oDTSuggest As DataTable
oDTSuggest = My.Database.GetDatatableIDB(osql)
@@ -293,79 +163,44 @@ Public Class frmFlowSearch1
collection.Add(orow.Item("TERM"))
Next
txtSearchInput.MaskBox.AutoCompleteSource = AutoCompleteSource.CustomSource
txtSearchInput.MaskBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend
txtSearchInput.MaskBox.AutoCompleteCustomSource = collection
TogglesDate = New List(Of ToggleSwitch) From {
ToggleSwitchTomorrow,
ToggleSwitchToday,
ToggleSwitchYesterday,
ToggleSwitchYear,
ToggleSwitchYear_Last,
ToggleSwitchMonth,
ToggleSwitchMonth_Last,
ToggleSwitchLastWeek
}
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
Logger.Error(ex)
End Try
Me.BringToFront()
BringToFront()
End Sub
Private Async Function BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) As Threading.Tasks.Task Handles BarButtonItem1.ItemClick
Private Async Function BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) As Threading.Tasks.Task Handles BarButtonStartSearch.ItemClick
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
Try
Await ExecuteSearch()
Dim oResult = Await SearchRunner.Run(txtSearchInput.Text, DateEditFrom.EditValue, DateEditTill.EditValue)
If oResult.OK = False Then
bsiStatus.Caption = oResult.ErrorMessage
End If
Catch ex As Exception
Logger.Error(ex)
Finally
SplashScreenManager.CloseOverlayForm(oHandle)
End Try
End Function
Private Async Function ExecuteSearch() As Threading.Tasks.Task
Dim oSearchTerm = txtSearchInput.Text
Dim oParams = New DocumentResultList.Params() With {
.WindowGuid = "FlowSearch",
.WindowTitle = GetResultWindowString(oSearchTerm),
.OperationModeOverride = Modules.ZooFlow.Constants.OperationMode.ZooFlow,
.ProfileGuid = 354522,
.ColumnNames = New DocumentResultList.ColumnNames With {
.ObjectIdColumn = "DocID"
}
}
Dim oP3 = $"{AttributeSearch}~{DateConstraint}"
If ExplizitDate Then
Dim oDate2 As Date
If Not IsNothing(DateEditTill.EditValue) Then
oDate2 = CDate(DateEditTill.EditValue)
Else
oDate2 = CDate(DateEditFrom.EditValue)
End If
Dim oProc = $"EXEC PRIDB_SEARCH_ADD_USR_DATE {My.Application.User.UserId},'{CDate(DateEditFrom.EditValue)}','{oDate2}'"
If Await My.Database.ExecuteNonQueryIDBAsync(oProc) = True Then
oP3 = $"{AttributeSearch}~DATEPART"
End If
End If
Dim oSQL = $"EXEC PRIDB_SEARCH_TEXT_GET_RESULTS {My.Application.User.UserId},'{oSearchTerm}','{oP3}'"
If Await My.Database.ExecuteNonQueryIDBAsync(oSQL) = True Then
Dim oDTDocResult = Await My.Database.GetDatatableIDBAsync(BaseSearchSQL)
If oDTDocResult.Rows.Count > 0 Then
oParams.Results.Add(New DocumentResultList.DocumentResult() With {
.Title = "FlowSearchXYZ",
.Datatable = oDTDocResult
})
Dim oForm As New frmDocumentResultList(My.LogConfig, _Environment, oParams)
AddHandler oForm.NeedsRefresh, AddressOf Form_NeedsRefresh
oForm.Show()
Else
bsiStatus.Caption = "No Results"
End If
Else
bsiStatus.Caption = "Error in FlowSearch - Check Your log"
End If
End Function
Private Sub Form_NeedsRefresh(sender As Object, e As Integer)
@@ -380,7 +215,10 @@ Public Class frmFlowSearch1
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
Try
Await ExecuteSearch()
Dim oResult = Await SearchRunner.Run(txtSearchInput.Text, DateEditFrom.EditValue, DateEditTill.EditValue)
If oResult.OK = False Then
bsiStatus.Caption = oResult.ErrorMessage
End If
Catch ex As Exception
Logger.Error(ex)
Finally
@@ -388,28 +226,12 @@ Public Class frmFlowSearch1
End Try
End If
End Function
Private Function GetResultWindowString(SearchContent As String) As String
If SearchContent <> String.Empty Then
If My.Application.User.Language = State.UserState.LANG_DE_DE Then
Return $"Suche Nach '{txtSearchInput.Text}'"
Else
Return $"Search For '{txtSearchInput.Text}'"
End If
Else
If My.Application.User.Language = State.UserState.LANG_DE_DE Then
Return $"Suche Datumsbegrenzt"
Else
Return $"Search via date"
End If
End If
End Function
Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
Private Sub BarButtonReset_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonReset.ItemClick
txtSearchInput.Text = ""
ResetTogglesDate()
ToggleSwitchDateto.IsOn = False
ExplizitDate = False
SearchRunner.ExplicitDate = False
End Sub
Private Sub ToggleSwitch1_Toggled(sender As Object, e As EventArgs) Handles ToggleSwitchDateto.Toggled
@@ -428,7 +250,22 @@ Public Class frmFlowSearch1
Dim oDateFrom = DateEditFrom.EditValue
If Not IsNothing(oDateFrom) Then
ResetTogglesDate()
ExplizitDate = True
SearchRunner.ExplicitDate = True
End If
End Sub
Private Async Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles SimpleButton1.Click
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
Try
Dim oResult = Await SearchRunner.Run(txtSearchInput.Text, DateEditFrom.EditValue, DateEditTill.EditValue)
If oResult.OK = False Then
bsiStatus.Caption = oResult.ErrorMessage
End If
Catch ex As Exception
Logger.Error(ex)
Finally
SplashScreenManager.CloseOverlayForm(oHandle)
End Try
End Sub
End Class

View File

@@ -441,6 +441,7 @@
<Compile Include="Search\Search.vb" />
<Compile Include="Search\SearchCriteria.vb" />
<Compile Include="Search\SearchFilter.vb" />
<Compile Include="Search\SearchRunner.vb" />
<Compile Include="Search\SearchToken.vb" />
<Compile Include="Search\State.vb" />
<EmbeddedResource Include="Administration\frmAdmin_ClipboardWatcher.resx">