Files
Nuvolar/Nuvolar.Module.Win/Controllers/CountListView.vb
2017-03-08 11:21:27 +01:00

46 lines
1.9 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
Imports DevExpress.ExpressApp.SystemModule
Public Class CountListView
Inherits DevExpress.ExpressApp.ViewController
Public Sub New()
MyBase.New()
'This call is required by the Component Designer.
InitializeComponent()
RegisterActions(components)
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
'SetNavitemCaptionCount("RegistryTasks_ListView_Not_Completed", "@RegistryTask_ListView_Not_Completed")
'SetNavitemCaptionCount("CRM_Leads_Activity_Task_ListView", "CRM_Leads_Activity_Task_ListView")
End Sub
Sub SetNavitemCaptionCount(_ListView As String, _NavigationItem As String)
Dim ListViewModel As IModelListView = Application.FindModelView(_ListView)
Dim count As Long = TryCast(View.ObjectSpace, Xpo.XPObjectSpace).Session.Evaluate(ListViewModel.ModelClass.TypeInfo.Type, New AggregateOperand("", Aggregate.Count), CriteriaOperator.Parse(ListViewModel.Criteria))
Dim navItem As ChoiceActionItem = Application.MainWindow.GetController(Of ShowNavigationItemController).ShowNavigationItemAction.Items.Find(_NavigationItem, ChoiceActionItemFindType.Recursive, ChoiceActionItemFindTarget.Any)
Dim sArray() As String
If navItem IsNot Nothing Then
sArray = Split(navItem.Caption, "[")
If UBound(sArray) > 0 Then
navItem.Caption = Replace(sArray(0).ToString, "[", "").Trim + String.Format(" [{0}]", count)
Else
navItem.Caption += String.Format(" [{0}]", count)
End If
End If
End Sub
End Class