Files
SISBusiness/SISBusiness.Module.Win/Controllers/WinGroupFooterViewController.vb
T
2017-03-26 20:00:03 +02:00

81 lines
3.9 KiB
VB.net

Imports Microsoft.VisualBasic
Imports System
Imports DevExpress.Data
Imports DevExpress.ExpressApp
Imports DevExpress.ExpressApp.Model
Imports DevExpress.ExpressApp.Win.Editors
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraGrid.Columns
Public Class WinGroupFooterViewController
Inherits ViewController(Of ListView)
Public Sub New()
MyBase.New()
'This call is required by the Component Designer.
InitializeComponent()
RegisterActions(components)
End Sub
Private Sub View_InfoSynchronized(ByVal sender As Object, ByVal e As EventArgs)
Dim modelListView As IModelListViewExtender = TryCast(View.Model, IModelListViewExtender)
If modelListView IsNot Nothing AndAlso modelListView.IsGroupFooterVisible Then
Dim gridListEditor As GridListEditor = TryCast(View.Editor, GridListEditor)
If gridListEditor IsNot Nothing Then
Dim gridView As GridView = gridListEditor.GridView
If gridView IsNot Nothing Then
For i As Integer = 0 To gridView.GroupSummary.Count - 1
Dim modelColumn As IModelColumnExtender = TryCast(CType(View.Model.Columns, IModelList(Of IModelColumn))(gridView.GroupSummary(i).FieldName), IModelColumnExtender)
If modelColumn IsNot Nothing Then
modelColumn.GroupFooterSummaryType = gridView.GroupSummary(i).SummaryType
End If
Next i
End If
End If
End If
End Sub
Protected Overloads Overrides Sub OnViewControlsCreated()
MyBase.OnViewControlsCreated()
Dim displayFormat As String
Dim modelListView As IModelListViewExtender = TryCast(View.Model, IModelListViewExtender)
If modelListView IsNot Nothing AndAlso modelListView.IsGroupFooterVisible Then
Dim gridListEditor As GridListEditor = TryCast(View.Editor, GridListEditor)
If gridListEditor IsNot Nothing Then
Dim gridView As GridView = gridListEditor.GridView
gridView.OptionsView.GroupFooterShowMode = GroupFooterShowMode.VisibleAlways
For Each modelColumn As IModelColumn In View.Model.Columns
Dim modelColumnExtender As IModelColumnExtender = TryCast(modelColumn, IModelColumnExtender)
If modelColumnExtender IsNot Nothing AndAlso modelColumnExtender.GroupFooterSummaryType <> SummaryItemType.None Then
Dim gridColumn As GridColumn = gridView.Columns(modelColumn.ModelMember.MemberInfo.BindingName)
If modelColumn.DisplayFormat.ToString <> "" Then
If Mid(modelColumn.DisplayFormat, 1, 1) = "{" Then
displayFormat = modelColumn.DisplayFormat
gridView.GroupSummary.Add(modelColumnExtender.GroupFooterSummaryType, modelColumn.Id, gridColumn, displayFormat)
Else
displayFormat = String.Format("{{0:{0}}}", modelColumn.DisplayFormat)
gridView.GroupSummary.Add(modelColumnExtender.GroupFooterSummaryType, modelColumn.Id, gridColumn, displayFormat)
End If
Else
gridView.GroupSummary.Add(modelColumnExtender.GroupFooterSummaryType, modelColumn.Id, gridColumn)
End If
End If
Next modelColumn
End If
End If
End Sub
Protected Overloads Overrides Sub OnActivated()
MyBase.OnActivated()
AddHandler View.ModelSaved, AddressOf View_InfoSynchronized
End Sub
Protected Overloads Overrides Sub OnDeactivated()
RemoveHandler View.ModelSaved, AddressOf View_InfoSynchronized
MyBase.OnDeactivated()
End Sub
End Class