Imports DevExpress.XtraEditors Imports DevExpress.XtraSplashScreen Imports DigitalData.GUIs.Common Imports DigitalData.GUIs.ZooFlow.ClassConstants Imports DigitalData.Modules.Logging Imports DigitalData.Modules.ZooFlow Public Class frmFlowSearch1 Private Environment As Environment Private Logger As Logger Private SearchRunner As SearchRunner Private Property BaseSearchSQL As String Private Property TogglesDate As List(Of ToggleSwitch) Private Property TogglesDateChanging As Boolean = False Private Sub ResetTogglesDate() ResetTogglesDate(Nothing) End Sub Private Sub ResetTogglesDate(pExcludeToggle As ToggleSwitch) TogglesDateChanging = True 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 TogglesDateChanging = False End Sub Private Sub ToggleSwitchToday_Toggled(sender As Object, e As EventArgs) Handles _ ToggleSwitchToday.Toggled, ToggleSwitchYesterday.Toggled, ToggleSwitchYear.Toggled, ToggleSwitchYear_Last.Toggled, ToggleSwitchMonth_Last.Toggled, ToggleSwitchMonth.Toggled, ToggleSwitchLastWeek.Toggled, ToggleSwitchTomorrow.Toggled If TogglesDateChanging = True Then Exit Sub End If Dim oToggle As ToggleSwitch = TryCast(sender, ToggleSwitch) If oToggle.IsOn Then TogglesDateChanging = True Select Case oToggle.Name Case "ToggleSwitchTomorrow" ResetTogglesDate(ToggleSwitchTomorrow) SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.Tomorrow) Case "ToggleSwitchYear" ResetTogglesDate(ToggleSwitchYear) SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.CurrentYear) Case "ToggleSwitchYear_Last" ResetTogglesDate(ToggleSwitchYear_Last) SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.Today) Case "ToggleSwitchMonth" ResetTogglesDate(ToggleSwitchMonth) SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.CurrentMonth) Case "ToggleSwitchMonth_Last" ResetTogglesDate(ToggleSwitchMonth_Last) SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.LastMonth) Case "ToggleSwitchToday" ResetTogglesDate(ToggleSwitchToday) SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.Today) Case "ToggleSwitchYesterday" ResetTogglesDate(ToggleSwitchYesterday) SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.Yesterday) Case "ToggleSwitchLastWeek" ResetTogglesDate(ToggleSwitchLastWeek) SearchRunner.SetDateConstraint(SearchRunner.DateConstraint.Last7Days) End Select 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 SearchRunner.SetDateConstraint() End If End If End Sub Private Sub cmbLimitationDateAttr_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmbLimitationDateAttr.SelectedValueChanged If cmbLimitationDateAttr.SelectedIndex <> -1 Then Try Dim oEditValue As String = cmbLimitationDateAttr.SelectedItem.ToString If oEditValue = IDB_ADDED_WHEN_String_German Or oEditValue = IDB_ADDED_WHEN_String_Englisch Then SearchRunner.SetDateAttribute() Else SearchRunner.SetDateAttribute(oEditValue) End If Catch ex As Exception Logger.Error(ex) End Try End If End Sub 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 cmbLimitationDateAttr.Items.Add(IDB_ADDED_WHEN_String_German) Else cmbLimitationDateAttr.Items.Add(IDB_ADDED_WHEN_String_Englisch) End If 'Dim oDT As DataTable = My.DatabaseIDB.GetDatatable($"SELECT * FROM VWIDB_BE_ATTRIBUTE WHERE TYPE_ID IN (5,6) AND LANG_ID = {My.Application.User.LanguageId}") For Each oRow As DataRow In My.Tables.DTIDB_ATTRIBUTE.Rows If CBool(oRow.Item("SYS_ATTRIBUTE")) = False And (oRow.Item("TYP_ID") = 5 Or oRow.Item("TYP_ID") = 6) Then cmbLimitationDateAttr.Items.Add(oRow.Item("ATTR_TITLE")) End If Next Environment = My.Application.GetEnvironment 'Dim editor As BarEditItem = BarEditItemDate ' editor = TryCast(BarEditItemDate, ComboBoxEdit) If My.Application.User.Language = "de-DE" Then cmbLimitationDateAttr.SelectedIndex = 0 ' BarEditItemDate.EditValue = "Erstellt Wann" Else cmbLimitationDateAttr.SelectedIndex = 1 ' BarEditItemDate.EditValue = "Added When" End If For Each oRow As DataRow In My.Tables.DTIDB_COMMON_SQL.Rows If oRow.Item("TITLE") = SQLCMD_FLOW_SEARCH_BASE Then BaseSearchSQL = oRow.Item("SQL_COMMAND") BaseSearchSQL = BaseSearchSQL.Replace("@USER_ID", My.Application.User.UserId) BaseSearchSQL = BaseSearchSQL.Replace("@LANG_CODE", My.Application.User.Language) 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) Dim collection As AutoCompleteStringCollection = New AutoCompleteStringCollection For Each orow As DataRow In oDTSuggest.Rows 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 BringToFront() End Sub 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 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 Sub Form_NeedsRefresh(sender As Object, e As Integer) End Sub Private Async Function txtSearchInput_KeyUp(sender As Object, e As KeyEventArgs) As Threading.Tasks.Task Handles txtSearchInput.KeyUp If e.KeyCode = Keys.Return Then If txtSearchInput.Text = String.Empty Then Return End If 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 If End Function Private Sub BarButtonReset_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonReset.ItemClick txtSearchInput.Text = "" ResetTogglesDate() ToggleSwitchDateto.IsOn = False SearchRunner.ExplicitDate = False End Sub Private Sub ToggleSwitch1_Toggled(sender As Object, e As EventArgs) Handles ToggleSwitchDateto.Toggled Dim oToggle As ToggleSwitch = TryCast(sender, ToggleSwitch) If oToggle.IsOn Then DateEditTill.Enabled = True lblDatefrom.Text = "Datum von" Else DateEditTill.Enabled = False lblDatefrom.Text = "Datum" End If End Sub Private Sub DateEdit1_EditValueChanged(sender As Object, e As EventArgs) Handles DateEditFrom.EditValueChanged Dim oDateFrom = DateEditFrom.EditValue If Not IsNothing(oDateFrom) Then ResetTogglesDate() 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