03.02.2021, 07:01 | #1 |
Участник
|
в чем разница между вызовами метода allowEdit
Всем привет.
Не могу понять в чем разница между строками кода: salesTable_ds... salesTable_SalesType... X++: // Initialization specifically for Journals and Blanket orders // Do not allow order type change if form was called from Sales journal or Blanket order menu items if (element.args().parmEnumType() == enumnum(SalesTableFormId) && (element.args().parmEnum() == SalesTableFormId::Blanket || element.args().parmEnum() == SalesTableFormId::Journal)) { salesTable_ds.object(fieldnum(SalesTable, SalesType)).allowEdit(false); salesTable_SalesType.allowEdit(false); } По сути это одно и то же, и можно было обойтись одной строчкой кода. Или я не прав? В одном случае поля в форме запрещено для изменения, в другом случае это же поле только в виде псевдонима так же запрещается для изменения. |
|
03.02.2021, 08:53 | #2 |
Участник
|
Возможно, поле salesTable_SalesType не привязано к SalesTable.SalesType, а привязано к едит-методу?
|
|
03.02.2021, 11:22 | #3 |
Мрачный тип
|
salesTable_ds.object(fieldnum(SalesTable, SalesType)) - будет корректно блокировать все контролы формы, привязанные к данному полю источника данных, даже если вы их добавите после написания этого кода.
salesTable_SalesType.allowEdit() - блокировка только конкретного контрола формы. Если добавить еще один контрол, привязанный к тому же полю - он , в отличие от предыдущего варианта, блокироваться не будет
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
03.02.2021, 17:59 | #4 |
Участник
|
Разницу хорошо объяснил TasmanianDevil. salesTable_ds.object(fieldnum(SalesTable, SalesType)) более надежный способ и не дает пользователю получить доступ путем добавления полей в настройке формы.
Ну а сам исходный вопрос, как понимаю, возник при анализе формы SalesTable в DAX2009. Там salesTable_SalesType.allowEdit(false); явно лишнее. |
|