Imports System.Diagnostics Imports System.Text Imports DevExpress.ExpressApp Imports DevExpress.ExpressApp.Actions Imports DevExpress.Persistent.Base Imports DevExpress.ExpressApp.Win.SystemModule Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.ExpressApp.Editors Imports DevExpress.ExpressApp.Win.Editors Imports DevExpress.XtraGrid.Columns Public Class GLMixedVC Inherits DevExpress.ExpressApp.ViewController Private _GridListEditor As GridListEditor Public Sub New() MyBase.New() 'This call is required by the Component Designer. InitializeComponent() RegisterActions(components) End Sub Protected Overrides Sub OnActivated() MyBase.OnActivated() If View.Id = "GLMixed_DetailView" Or View.Id = "GLMixed_GLRows_ListView" Then Frame.GetController(Of WinModificationsController).ModificationsHandlingMode = SystemModule.ModificationsHandlingMode.AutoCommit End If End Sub Protected Overrides Sub OnDeactivated() MyBase.OnDeactivated() End Sub Protected Overrides Sub OnViewControlsCreated() MyBase.OnViewControlsCreated() If View.Id = "GLMixed_ListView" Then Dim editor As ListEditor = (CType(View, ListView)).Editor Dim gridView As GridView = (CType(editor, GridListEditor)).GridView AddHandler gridView.SelectionChanged, AddressOf GridView_SelectionChanged End If If View.Id = "GLHeader_GLRows_ListView_Mixed" Then Dim _ListView As ListView = CType(View, ListView) Dim _PropertyCollectionSource As PropertyCollectionSource = CType(_ListView.CollectionSource, PropertyCollectionSource) _GridListEditor = TryCast(TryCast(View, ListView).Editor, GridListEditor) If _GridListEditor IsNot Nothing Then AddHandler _GridListEditor.GridView.CellValueChanged, AddressOf GLHeader_GLRows_ListView_Mixed_CellValueChanged '_GridListEditor.AllowEdit = True 'For i As Integer = 0 To _GridListEditor.Columns.Count - 1 ' If _GridListEditor.GridView.Columns(i).FieldName <> "NoteRows" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "AmountHUF" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "AmountDEV" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "DebitChartOfAccounts!" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "CreditChartOfAccounts!" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "Controlling!" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "CostHolder!" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "CostPlace!" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "JobNumberObjects!" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "UniqueObjects!" Then ' _GridListEditor.GridView.Columns(i).OptionsColumn.ReadOnly = True ' _GridListEditor.GridView.Columns(i).OptionsColumn.AllowEdit = False ' _GridListEditor.GridView.Columns(i).OptionsColumn.TabStop = False ' End If 'Next End If End If 'If View.Id = "GLRows_ListView_Mixed" Then ' Dim _ListView As ListView = CType(View, ListView) ' _GridListEditor = TryCast(_ListView.Editor, GridListEditor) ' If _GridListEditor IsNot Nothing Then ' _GridListEditor.AllowEdit = True ' For i As Integer = 0 To _GridListEditor.Columns.Count - 1 ' If _GridListEditor.GridView.Columns(i).FieldName <> "NoteRows" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "Controlling!" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "CostHolder!" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "CostPlace!" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "JobNumberObjects!" And _ ' _GridListEditor.GridView.Columns(i).FieldName <> "UniqueObjects!" Then ' _GridListEditor.GridView.Columns(i).OptionsColumn.ReadOnly = True ' _GridListEditor.GridView.Columns(i).OptionsColumn.AllowEdit = False ' _GridListEditor.GridView.Columns(i).OptionsColumn.TabStop = False ' End If ' Next ' End If 'End If End Sub Private Sub GridView_SelectionChanged(ByVal sender As Object, ByVal e As DevExpress.Data.SelectionChangedEventArgs) Dim gridView As GridView = TryCast(sender, GridView) If View.SelectedObjects.Count = 1 Then Dim _GLMixed As GLMixed = TryCast(View.SelectedObjects(0), GLMixed) If _GLMixed Is Nothing Then Else 'Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)?.Active.SetItemValue("", True) If _GLMixed.IsEditable = False Then 'Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)?.Active.SetItemValue("", False) End If End If ElseIf View.SelectedObjects.Count > 1 Then 'Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)?.Active.SetItemValue("", False) End If End Sub Private Sub GLHeader_GLRows_ListView_Mixed_CellValueChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs) Dim nestedFrame As NestedFrame = TryCast(Frame, NestedFrame) Select Case TryCast(e.Column, GridColumn).FieldName Case "NoteRows", "Controlling!", "CostHolder!", "JobNumberObjects!", "UniqueObjects!", "AmountHUF", "AmountDEV", "DebitChartOfAccounts!", "CreditChartOfAccounts!" If nestedFrame IsNot Nothing Then Frame.GetController(Of DevExpress.ExpressApp.Validation.PersistenceValidationController)()?.Active.SetItemValue("", False) Dim parentView As View = nestedFrame.View TryCast(parentView.ObjectSpace, Xpo.XPObjectSpace).CommitChanges() Frame.GetController(Of DevExpress.ExpressApp.Validation.PersistenceValidationController)()?.Active.SetItemValue("", True) parentView.ObjectSpace.Refresh() End If End Select End Sub End Class