void DataControl_CurrentItemChanged(object sender, DevExpress.Xpf.Grid.CurrentItemChangedEventArgs e) { JournalLineGridClient oldselectedItem = e.OldItem as JournalLineGridClient; if (oldselectedItem != null) { oldselectedItem.PropertyChanged -= JournalLineGridClient_PropertyChanged; var Cache = GetCache(oldselectedItem._AccountType); if (Cache != null && Cache.Count > 1000) { oldselectedItem.accntSource = null; oldselectedItem.NotifyPropertyChanged("AccountSource"); } Cache = GetCache(oldselectedItem._OffsetAccountType); if (Cache != null && Cache.Count > 1000) { oldselectedItem.offsetAccntSource = null; oldselectedItem.NotifyPropertyChanged("OffsetAccountSource"); } } JournalLineGridClient selectedItem = e.NewItem as JournalLineGridClient; if (selectedItem != null) { selectedItem.PropertyChanged += JournalLineGridClient_PropertyChanged; } }
private void SetOffsetAccountSource(JournalLineGridClient rec) { var act = rec._OffsetAccountType; SQLCache cache = GetCache(act); if (cache != null) { int ver = cache.version + 10000 * (act + 1); if (ver != rec.OffsetAccountVersion || rec.offsetAccntSource == null) { if (act == (byte)GLJournalAccountType.Finans) { rec.offsetAccntSource = new UnicontaClient.Pages.GLDailyJournalLine.LedgerSQLCacheFilter(cache); } else { rec.offsetAccntSource = cache.GetNotNullArray; } if (rec.offsetAccntSource != null) { rec.OffsetAccountVersion = ver; rec.NotifyPropertyChanged("OffsetAccountSource"); } } } }
private void OffsetAccount_GotFocus(object sender, RoutedEventArgs e) { JournalLineGridClient selectedItem = dgGldailyJournalLinesGrid.SelectedItem as JournalLineGridClient; if (selectedItem != null) { SetOffsetAccountSource(selectedItem); if (prevOffsetAccount != null) { prevOffsetAccount.isValidate = false; } var editor = (CorasauGridLookupEditorClient)sender; prevOffsetAccount = editor; editor.isValidate = true; } }
void SetAccountByLookupText(object sender, bool offsetAcc) { JournalLineGridClient selectedItem = dgGldailyJournalLinesGrid.SelectedItem as JournalLineGridClient; if (selectedItem == null) { return; } var actType = !offsetAcc ? selectedItem._AccountTypeEnum : selectedItem._OffsetAccountTypeEnum; if (actType != GLJournalAccountType.Finans) { return; } var le = sender as CorasauGridLookupEditor; if (string.IsNullOrEmpty(le.EnteredText)) { return; } var accounts = LedgerCache?.GetNotNullArray as GLAccount[]; if (accounts != null) { var act = accounts.Where(ac => ac._Lookup == le.EnteredText).FirstOrDefault(); if (act != null) { dgGldailyJournalLinesGrid.SetLoadedRow(selectedItem); if (offsetAcc) { selectedItem.OffsetAccount = act.KeyStr; } else { selectedItem.Account = act.KeyStr; } le.EditValue = act.KeyStr; dgGldailyJournalLinesGrid.SetModifiedRow(selectedItem); } } le.EnteredText = null; }