Files
2017-03-08 11:21:27 +01:00

114 lines
5.5 KiB
VB.net

Imports System
Imports System.ComponentModel
Imports System.Collections.Generic
Imports System.Diagnostics
Imports System.Text
Imports DevExpress.ExpressApp
Imports DevExpress.ExpressApp.Actions
Imports DevExpress.Persistent.Base
Imports DevExpress.ExpressApp.Model
Imports DevExpress.Data.Filtering
Public Class DateYearCriteriaVC
Inherits DevExpress.ExpressApp.ViewController
Public Sub New()
MyBase.New()
'This call is required by the Component Designer.
InitializeComponent()
RegisterActions(components)
'Me.aDateYearFilter.Items.Clear()
'Me.aDateYearFilter.Items.Add(
For Each _item In Me.aDateYearFilter.Items
Select Case _item.Caption
Case "CurrentYear"
_item.Caption = Year(Now).ToString
_item.Id = "CurrentYear"
Me.aDateYearFilter.SelectedItem = _item
Case "PrevYear"
_item.Caption = Year(DateAdd(DateInterval.Year, -1, Now)).ToString
_item.Id = "PrevYear"
Case "Prev2Year"
_item.Caption = Year(DateAdd(DateInterval.Year, -2, Now)).ToString
_item.Id = "Prev2Year"
Case "Prev3Year"
_item.Caption = Year(DateAdd(DateInterval.Year, -3, Now)).ToString
_item.Id = "Prev3Year"
Case "Prev4Year"
_item.Caption = Year(DateAdd(DateInterval.Year, -4, Now)).ToString
_item.Id = "Prev4Year"
Case "All"
_item.Id = "All"
End Select
Next
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
Frame.GetController(Of DateYearCriteriaVC).aDateYearFilter.Active.SetItemValue("", False)
If TryCast(View, ListView) IsNot Nothing Then
Dim _ListView As ListView = TryCast(View, ListView)
Dim _IModelListView As IModelListView
Dim _IModelListViewExtender As IModelListViewExtender
_IModelListView = _ListView.Model
_IModelListViewExtender = TryCast(_IModelListView, IModelListViewExtender)
If _IModelListViewExtender.DefaultDateYearInFilter = True Then
Frame.GetController(Of DateYearCriteriaVC).aDateYearFilter.Active.SetItemValue("", True)
Dim _Item As DevExpress.ExpressApp.Actions.ChoiceActionItem = Me.aDateYearFilter.FindItemByIdPath("CurrentYear")
If _Item IsNot Nothing Then
Me.aDateYearFilter.SelectedItem = _Item
If _ListView.Id Like "*LookupListView*" Then
Else
_ListView.CollectionSource.BeginUpdateCriteria()
_ListView.CollectionSource.Criteria("DateYearFilter") = CriteriaOperator.Parse("GetYear(" & _IModelListViewExtender.DefaultDateYearInFilterProperty & ")=?", Year(Now).ToString)
_ListView.CollectionSource.EndUpdateCriteria()
End If
End If
End If
End If
End Sub
Private Sub aDateYearFilter_Execute(sender As Object, e As SingleChoiceActionExecuteEventArgs) Handles aDateYearFilter.Execute
Dim _ListView As ListView = TryCast(View, ListView)
Dim _IModelListView As IModelListView
Dim _IModelListViewExtender As IModelListViewExtender
If _ListView IsNot Nothing Then
If _ListView.Id Like "*LookupListView*" Then Exit Sub
_IModelListView = _ListView.Model
_IModelListViewExtender = TryCast(_IModelListView, IModelListViewExtender)
_ListView.CollectionSource.BeginUpdateCriteria()
Select Case e.SelectedChoiceActionItem.Caption
Case Year(Now).ToString
_ListView.CollectionSource.Criteria("DateYearFilter") = CriteriaOperator.Parse("GetYear(" & _IModelListViewExtender.DefaultDateYearInFilterProperty & ")=?", Year(Now).ToString)
Case Year(DateAdd(DateInterval.Year, -1, Now)).ToString
_ListView.CollectionSource.Criteria("DateYearFilter") = CriteriaOperator.Parse("GetYear(" & _IModelListViewExtender.DefaultDateYearInFilterProperty & ")=?", Year(DateAdd(DateInterval.Year, -1, Now)).ToString)
Case Year(DateAdd(DateInterval.Year, -2, Now)).ToString
_ListView.CollectionSource.Criteria("DateYearFilter") = CriteriaOperator.Parse("GetYear(" & _IModelListViewExtender.DefaultDateYearInFilterProperty & ")=?", Year(DateAdd(DateInterval.Year, -2, Now)).ToString)
Case Year(DateAdd(DateInterval.Year, -3, Now)).ToString
_ListView.CollectionSource.Criteria("DateYearFilter") = CriteriaOperator.Parse("GetYear(" & _IModelListViewExtender.DefaultDateYearInFilterProperty & ")=?", Year(DateAdd(DateInterval.Year, -3, Now)).ToString)
Case Year(DateAdd(DateInterval.Year, -4, Now)).ToString
_ListView.CollectionSource.Criteria("DateYearFilter") = CriteriaOperator.Parse("GetYear(" & _IModelListViewExtender.DefaultDateYearInFilterProperty & ")=?", Year(DateAdd(DateInterval.Year, -4, Now)).ToString)
Case Else
_ListView.CollectionSource.BeginUpdateCriteria()
_ListView.CollectionSource.Criteria.Remove("DateYearFilter")
_ListView.CollectionSource.EndUpdateCriteria()
End Select
_ListView.CollectionSource.EndUpdateCriteria()
End If
End Sub
End Class