![]() |
#7 |
Участник
|
Не стал создавать новую тему, запостю здесь.
Стоит почти такая же задача, как и у топикастера: необходимо при изменении одного из полей, в данном случае Статус оплаты ( Расчёты с поставщиками\клиентами -> Журнал платежей - Строки) закрывать для редактирования определённые поля. Сделал метод, в котором выполняется проверка на статус оплаты, если он равен нужному - поля закрываются для редактирования. Этот метод вызываю в ините формы, active датасоурса и modified поля Статус оплаты датасоурса. При изменении всё замечаетельно отрабатывает, поля закрываются, НО, стоит перейти на другую строку или сохранить текущую строку - значения снова доступны для редактирования, хотя не должны. Искал корни в методе leaveRecord датасоурса, но там нет ничего связанного с этим, так же искал в методе write, тоже ничего не нашёл. Метод проверки: X++: //Если стоит статус Утверждено - закрывать для редактирования поля void AllowEditCollums() { LedgerJournalTrans LJT; ; //выбираю те строки, где статус журнала стоит Утверждено select firstonly * from LJT where LJT.PaymentStatus == CustVendPaymStatus::Confirmed; if (LJT.PaymentStatus == CustVendPaymStatus::Confirmed) { LedgerJournalTrans_ds.object(fieldnum(LedgerJournalTrans,TransDate)).allowEdit(false); // LedgerJournalTrans_ds.object(fieldnum(LedgerJournalTrans,TransDate)).visible(false); LedgerJournalTrans_ds.object(fieldnum(LedgerJournalTrans, Txt)).allowEdit(false); LedgerJournalTrans_ds.object(fieldnum(LedgerJournalTrans,TransDate)).allowEdit(false); allowEdit(false); // Global::allowEditFieldsOnFormDS_W(LedgerJournalTrans_ds, false); } else { LedgerJournalTrans_ds.object(fieldnum(LedgerJournalTrans,TransDate)).allowEdit(true); } } X++: void AllowEditFields()
{
element.lock();
LedgerJournalTrans_ds.AllowEditCollums();
element.unLock();
} X++: element.AllowEditFields() Подскажите, пожалуйста, в какую сторону копать? |
|
|
|