MS FlowSearchCriteria

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

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