#acumatica
Вопрос:
В настоящее время я пытаюсь принудительно включить поле для события RowSelected, с которым я работал раньше, но теперь это не так.
Когда счет находится в состоянии, когда сетка отключена, у меня есть два добавленных поля пользователя, которые я хочу оставить включенными.
Код, который я использую, такой, который, как я думал, сработает:
protected virtual void APTran_RowSelected(PXCache cache, PXRowSelectedEventArgs e) { var aptran = e.Row as APTran; if (aptran != null) { PXUIFieldAttribute.SetEnabledlt;APTranExt.usrGrantIDgt;(cache, aptran, true); PXUIFieldAttribute.SetEnabledlt;APTranExt.usrReimbursementPeriodgt;(cache, aptran, true); } }
Но это не работает.
Есть какие-нибудь идеи?
Спасибо…
Ответ №1:
Скорее всего, происходит то, что в представлении в настоящее время установлено значение разрешить обновление false, которое переопределяет состояние включено, которое вы устанавливаете. Один из способов обойти это заключается в том, что для этого статуса вы устанавливаете значение разрешить обновление равным true. Затем принудительно отключите всю сетку, кроме двух полей, которые вы хотите. Пример Ниже:
protect virtual void APInvoice_RowSelected(PXCache cache, PXRowSelectedEventArgs e) { if (e.Row is APinvoice row) { if (status) { Transactions.Cache.AllowUpdate = true PXUIFieldAttribute.SetEnabled(Transactions.Cache, null, false); PXUIFieldAttribute.SetEnabledlt;APTranExt.usrGrantIDgt;(Transactions.Cache, null, true); PXUIFieldAttribute.SetEnabledlt;APTranExt.usrReimbursementPeriodgt;(Transactions.Cache, null, true); } } }
Комментарии:
1. Я видел это в другом примере — так что, я думаю, мне нужно установить allowupdate на основе статуса — своего рода дублирование существующей бизнес-логики. Большое спасибо, Жан-Клод! ;D