MS FlowSearchCriteria

This commit is contained in:
SchreiberM 2021-02-05 12:22:39 +01:00
parent 124cc97e3b
commit a05c1ad8e9
2 changed files with 122 additions and 36 deletions

View File

@ -48,6 +48,8 @@ Partial Class frmFlowSearch
Me.BarCheckItem1 = New DevExpress.XtraBars.BarCheckItem()
Me.BarToggleSwitchItem1 = New DevExpress.XtraBars.BarToggleSwitchItem()
Me.BarToggleSwitchItem2 = New DevExpress.XtraBars.BarToggleSwitchItem()
Me.BarEditItemDate = New DevExpress.XtraBars.BarEditItem()
Me.RepositoryItemComboBox1 = New DevExpress.XtraEditors.Repository.RepositoryItemComboBox()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
@ -55,6 +57,7 @@ Partial Class frmFlowSearch
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.Panel1.SuspendLayout()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RepositoryItemComboBox1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'Panel1
@ -67,7 +70,7 @@ Partial Class frmFlowSearch
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top
Me.Panel1.Location = New System.Drawing.Point(0, 159)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(1245, 61)
Me.Panel1.Size = New System.Drawing.Size(1237, 61)
Me.Panel1.TabIndex = 0
'
'CheckButton1
@ -117,13 +120,17 @@ Partial Class frmFlowSearch
'Panel2
'
Me.Panel2.Dock = System.Windows.Forms.DockStyle.Bottom
Me.Panel2.Location = New System.Drawing.Point(0, 452)
Me.Panel2.Location = New System.Drawing.Point(0, 627)
Me.Panel2.Name = "Panel2"
Me.Panel2.Size = New System.Drawing.Size(1245, 18)
Me.Panel2.Size = New System.Drawing.Size(1237, 18)
Me.Panel2.TabIndex = 1
'
'TileControlMatch
'
Me.TileControlMatch.AppearanceGroupText.ForeColor = System.Drawing.Color.White
Me.TileControlMatch.AppearanceGroupText.Options.UseForeColor = True
Me.TileControlMatch.AppearanceText.ForeColor = System.Drawing.Color.Yellow
Me.TileControlMatch.AppearanceText.Options.UseForeColor = True
Me.TileControlMatch.BackColor = System.Drawing.Color.DimGray
Me.TileControlMatch.Dock = System.Windows.Forms.DockStyle.Fill
Me.TileControlMatch.Groups.Add(Me.TileGroup2)
@ -132,7 +139,8 @@ Partial Class frmFlowSearch
Me.TileControlMatch.MaxId = 2
Me.TileControlMatch.Name = "TileControlMatch"
Me.TileControlMatch.ScrollMode = DevExpress.XtraEditors.TileControlScrollMode.ScrollBar
Me.TileControlMatch.Size = New System.Drawing.Size(1245, 232)
Me.TileControlMatch.ShowGroupText = True
Me.TileControlMatch.Size = New System.Drawing.Size(1237, 407)
Me.TileControlMatch.TabIndex = 2
Me.TileControlMatch.Text = "TileControl1"
'
@ -170,14 +178,15 @@ Partial Class frmFlowSearch
'RibbonControl1
'
Me.RibbonControl1.ExpandCollapseItem.Id = 0
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarToggleSwitchItemDateALL, Me.BarToggleSwitchItemCURRENTYEAR, Me.BarToggleSwitchItemLASTYEAR, Me.BarToggleSwitchItemCURRENTMONTH, Me.BarToggleSwitchItemLASTMONTH, Me.BarButtonGroup1, Me.BarToggleSwitchItemTODAY, Me.BarToggleSwitchItemYESTERDAY, Me.BarCheckItem1, Me.BarToggleSwitchItem1, Me.BarToggleSwitchItem2})
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarToggleSwitchItemDateALL, Me.BarToggleSwitchItemCURRENTYEAR, Me.BarToggleSwitchItemLASTYEAR, Me.BarToggleSwitchItemCURRENTMONTH, Me.BarToggleSwitchItemLASTMONTH, Me.BarButtonGroup1, Me.BarToggleSwitchItemTODAY, Me.BarToggleSwitchItemYESTERDAY, Me.BarCheckItem1, Me.BarToggleSwitchItem1, Me.BarToggleSwitchItem2, Me.BarEditItemDate})
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
Me.RibbonControl1.MaxItemId = 12
Me.RibbonControl1.MaxItemId = 13
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.RepositoryItemComboBox1})
Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
Me.RibbonControl1.ShowToolbarCustomizeItem = False
Me.RibbonControl1.Size = New System.Drawing.Size(1245, 159)
Me.RibbonControl1.Size = New System.Drawing.Size(1237, 159)
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
Me.RibbonControl1.Toolbar.ShowCustomizeItem = False
'
@ -191,6 +200,7 @@ Partial Class frmFlowSearch
'
'BarToggleSwitchItemCURRENTYEAR
'
Me.BarToggleSwitchItemCURRENTYEAR.Alignment = DevExpress.XtraBars.BarItemLinkAlignment.Left
Me.BarToggleSwitchItemCURRENTYEAR.Caption = "Aktuelles Jahr"
Me.BarToggleSwitchItemCURRENTYEAR.Id = 2
Me.BarToggleSwitchItemCURRENTYEAR.Name = "BarToggleSwitchItemCURRENTYEAR"
@ -250,6 +260,20 @@ Partial Class frmFlowSearch
Me.BarToggleSwitchItem2.Id = 11
Me.BarToggleSwitchItem2.Name = "BarToggleSwitchItem2"
'
'BarEditItemDate
'
Me.BarEditItemDate.Caption = "Attribut "
Me.BarEditItemDate.Edit = Me.RepositoryItemComboBox1
Me.BarEditItemDate.EditWidth = 120
Me.BarEditItemDate.Id = 12
Me.BarEditItemDate.Name = "BarEditItemDate"
'
'RepositoryItemComboBox1
'
Me.RepositoryItemComboBox1.AutoHeight = False
Me.RepositoryItemComboBox1.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.RepositoryItemComboBox1.Name = "RepositoryItemComboBox1"
'
'RibbonPage1
'
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2})
@ -259,27 +283,28 @@ Partial Class frmFlowSearch
'RibbonPageGroup1
'
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarToggleSwitchItemDateALL)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarEditItemDate)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonGroup1)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarToggleSwitchItemCURRENTMONTH)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarToggleSwitchItemLASTMONTH)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarToggleSwitchItemTODAY)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarToggleSwitchItemTODAY, True)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarToggleSwitchItemYESTERDAY)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarToggleSwitchItemCURRENTYEAR, True)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarToggleSwitchItemLASTYEAR)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarToggleSwitchItemLASTMONTH, True)
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarToggleSwitchItemCURRENTMONTH)
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
Me.RibbonPageGroup1.Text = "Datumeingränzung"
Me.RibbonPageGroup1.Text = "Eingrenzung Datum"
'
'RibbonPageGroup2
'
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarToggleSwitchItemCURRENTYEAR)
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarToggleSwitchItemLASTYEAR)
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
Me.RibbonPageGroup2.Text = "RibbonPageGroup2"
'
'RibbonStatusBar1
'
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 470)
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 645)
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
Me.RibbonStatusBar1.Size = New System.Drawing.Size(1245, 22)
Me.RibbonStatusBar1.Size = New System.Drawing.Size(1237, 22)
'
'RibbonPage2
'
@ -292,7 +317,7 @@ Partial Class frmFlowSearch
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(1245, 492)
Me.ClientSize = New System.Drawing.Size(1237, 667)
Me.Controls.Add(Me.TileControlMatch)
Me.Controls.Add(Me.Panel2)
Me.Controls.Add(Me.Panel1)
@ -306,6 +331,7 @@ Partial Class frmFlowSearch
Me.Panel1.ResumeLayout(False)
Me.Panel1.PerformLayout()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.RepositoryItemComboBox1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
@ -339,4 +365,6 @@ Partial Class frmFlowSearch
Friend WithEvents BarToggleSwitchItem1 As DevExpress.XtraBars.BarToggleSwitchItem
Friend WithEvents BarToggleSwitchItem2 As DevExpress.XtraBars.BarToggleSwitchItem
Friend WithEvents CheckButton1 As DevExpress.XtraEditors.CheckButton
Friend WithEvents BarEditItemDate As DevExpress.XtraBars.BarEditItem
Friend WithEvents RepositoryItemComboBox1 As DevExpress.XtraEditors.Repository.RepositoryItemComboBox
End Class

View File

@ -18,17 +18,62 @@ Public Class frmFlowSearch
Private EventtoggleChange As Boolean = False
Private SEARCH_FACT_DATE As String = "MONTH(OBJ.ADDED_WHEN) <> 13"
Private SEARCH_FACT_DATE_ATTRIBUTE = "ADDED_WHEN"
Private Language_Term_Object As String
Public Sub New(pBaseSearchSql As String)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
BASE_SEARCHCommand = pBaseSearchSql
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
Logger = My.LogConfig.GetLogger()
ASorDB = New ClassDataASorDB(My.LogConfig)
If My.Application.User.Language = "de-DE" Then
Language_Term_Object = "Objekte"
Else
Language_Term_Object = "objects"
End If
End Sub
Private Sub frmFlowSearch_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
TileControlMatch.Groups.Clear()
Dim oDT As DataTable = ASorDB.GetDatatable("IDB", $"SELECT * FROM VWIDB_BE_ATTRIBUTE", "VWIDB_BE_ATTRIBUTE", "", "ATTR_TITLE")
RepositoryItemComboBox1.Items.Add("Erstellt Wann")
For Each oRow As DataRow In oDT.Rows
If oRow.Item("TYPE_ID") = 5 Then
RepositoryItemComboBox1.Items.Add(oRow.Item("ATTR_TITLE"))
End If
Next
'Dim editor As BarEditItem = BarEditItemDate
' editor = TryCast(BarEditItemDate, ComboBoxEdit)
If My.Application.User.Language = "de-DE" Then
BarEditItemDate.EditValue = "Erstellt Wann"
Else
BarEditItemDate.EditValue = "Added when"
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
Logger.Error(ex)
End Try
End Sub
Private Sub RepositoryItemComboBox1_EditValueChanged(sender As Object, e As EventArgs) Handles RepositoryItemComboBox1.EditValueChanged
Try
Dim oEditor As ComboBoxEdit
Dim oEditValue As String
oEditor = TryCast(RibbonControl1.Manager.ActiveEditor, ComboBoxEdit)
oEditValue = oEditor.EditValue
If oEditValue = "Erstellt Wann" Or oEditValue = "Added when" Then
SEARCH_FACT_DATE_ATTRIBUTE = "ADDED_WHEN"
Else
SEARCH_FACT_DATE_ATTRIBUTE = oEditValue
End If
Catch ex As Exception
Logger.Error(ex)
End Try
End Sub
Private Sub txtSearch_TextChanged(sender As Object, e As EventArgs) Handles txtSearch.TextChanged
Try
@ -56,7 +101,12 @@ Public Class frmFlowSearch
If BarToggleSwitchItemDateALL.Checked = False Then
oSQL = oSQL.Replace("MONTH(OBJ.ADDED_WHEN) <> 13", SEARCH_FACT_DATE)
If SEARCH_FACT_DATE_ATTRIBUTE = "ADDED_WHEN" Then
oSQL = oSQL.Replace("MONTH(OBJ.ADDED_WHEN) <> 13", SEARCH_FACT_DATE)
Else
oSQL = oSQL.Replace("AND MONTH(OBJ.ADDED_WHEN) <> 13", "")
oSQL = oSQL.Replace("--@INNERJOIN_DATE", "INNER JOIN VWIDB_GROUP_DATA_DATE GRP_DATE ON MD.IDB_OBJ_ID = GRP_DATE.IDB_OBJ_ID")
End If
End If
Dim oResultCountAttributes As Integer = 0
TileControlMatch.Groups.Clear()
@ -81,15 +131,16 @@ Public Class frmFlowSearch
oResultCountAttributes += orow.Item(1)
Next
lblFoundResult.Text = GetResultString(oResultCountAttributes, oAttrCount, oSearchValue)
TileControlMatch.Text = GetResultString(oResultCountAttributes, oAttrCount, oSearchValue)
lblFoundResult.Visible = True
End If
oNewTable.DefaultView.Sort = "COUNT ASC"
oNewTable = oNewTable.DefaultView.ToTable
For Each oGroupRow As DataRow In oNewTable.Rows
Dim oGroup As New TileGroup
oGroup.Text = $"{oGroupRow.Item(0).ToString} [{oGroupRow.Item(1).ToString}]"
oGroup.Text = $"{oGroupRow.Item(0).ToString} ({oGroupRow.Item(1).ToString} {Language_Term_Object})"
oGroup.Visible = True
For Each oitemRow As DataRow In oResultsfromSearchDT.Rows
If oitemRow.Item("ATTRIBUTE") = oGroupRow.Item(0) Then
@ -97,7 +148,6 @@ Public Class frmFlowSearch
If Not IsNothing(oItem) Then
oGroup.Items.Add(oItem)
End If
End If
Next
TileControlMatch.Groups.Add(oGroup)
@ -276,9 +326,7 @@ Public Class frmFlowSearch
Label1.Visible = True
End Sub
Private Sub frmFlowSearch_Load(sender As Object, e As EventArgs) Handles Me.Load
TileControlMatch.Groups.Clear()
End Sub
Private Sub TileControlMatch_ItemClick(sender As Object, e As TileItemEventArgs) Handles TileControlMatch.ItemClick
Try
@ -311,7 +359,20 @@ Public Class frmFlowSearch
Logger.Error(ex)
End Try
End Sub
Private Function GET_DATE_LIMITATION(pInput As String) As String
Try
Dim oReturn As String
If SEARCH_FACT_DATE_ATTRIBUTE = "ADDED_WHEN" Then
Return pInput.Replace("@ATTRIBUTE", "OBJ.ADDED_WHEN")
Else
Dim oSTR = $"GRP_DATE.[{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 BarToggleSwitchItem_CheckedChanged(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarToggleSwitchItemCURRENTYEAR.CheckedChanged, BarToggleSwitchItemLASTYEAR.CheckedChanged, BarToggleSwitchItemCURRENTMONTH.CheckedChanged,
BarToggleSwitchItemLASTMONTH.CheckedChanged, BarToggleSwitchItemTODAY.CheckedChanged, BarToggleSwitchItemYESTERDAY.CheckedChanged
Dim btsi As BarToggleSwitchItem = TryCast(sender, BarToggleSwitchItem)
@ -320,22 +381,23 @@ Public Class frmFlowSearch
Dim oWHENDATE As String
Select Case btsi.Name
Case "BarToggleSwitchItemCURRENTYEAR"
oWHENDATE = "YEAR(OBJ.ADDED_WHEN) = YEAR(GETDATE())"
oWHENDATE = GET_DATE_LIMITATION("YEAR(@ATTRIBUTE) = YEAR(GETDATE())")
Case "BarToggleSwitchItemLASTYEAR"
oWHENDATE = "YEAR(OBJ.ADDED_WHEN) = (YEAR(GETDATE()) -1)"
oWHENDATE = GET_DATE_LIMITATION("YEAR(@ATTRIBUTE) = (YEAR(GETDATE()) -1)")
Case "BarToggleSwitchItemCURRENTMONTH"
oWHENDATE = GET_DATE_LIMITATION("MONTH(@ATTRIBUTE) = MONTH(GETDATE())")
Case "BarToggleSwitchItemLASTMONTH"
Dim currentDate As DateTime = DateTime.Now
If currentDate.Month = 1 Then
oWHENDATE = "MONTH(OBJ.ADDED_WHEN) = 12 " & vbNewLine & "AND YEAR(OBJ.ADDED_WHEN) = (YEAR(GETDATE()) -1)"
oWHENDATE = GET_DATE_LIMITATION("MONTH(@ATTRIBUTE) = 12 " & vbNewLine & "AND YEAR(@ATTRIBUTE) = (YEAR(GETDATE()) -1)")
Else
oWHENDATE = "MONTH(OBJ.ADDED_WHEN) = MONTH(GETDATE())"
oWHENDATE = GET_DATE_LIMITATION("MONTH(@ATTRIBUTE) = (MONTH(GETDATE()) -1)")
End If
Case "BarToggleSwitchItemTODAY"
oWHENDATE = "convert(DATE,OBJ.ADDED_WHEN) = convert(DATE,GETDATE())"
oWHENDATE = GET_DATE_LIMITATION("convert(DATE,@ATTRIBUTE) = convert(DATE,GETDATE())")
Case "BarToggleSwitchItemYESTERDAY"
oWHENDATE = "convert(DATE,OBJ.ADDED_WHEN) = convert(DATE,GETDATE()-1)"
oWHENDATE = GET_DATE_LIMITATION("convert(DATE,@ATTRIBUTE) = convert(DATE,GETDATE()-1)")
End Select
SEARCH_FACT_DATE = oWHENDATE
Select Case btsi.Name
@ -418,8 +480,4 @@ Public Class frmFlowSearch
StartSearch_Full("")
CheckButton1.Checked = True
End Sub
Private Sub btnFindAll_Click_1(sender As Object, e As EventArgs)
End Sub
End Class