|
![]() |
#1 |
Участник
|
Что за жесть? Только тернарного оператора user_ax для полного счастья не хватает?
![]() Всё гораздо проще: X++: public boolean validateWrite() { boolean ret; ; ret = super(); if (ret) { ret = FieldSetupTable::SetupFormDataSource2(salesQuotationLine_ds, this.formRun(), true); // Строка по всем датасетам } return ret; } X++: ret = ret && FieldSetupTable::SetupFormDataSource2(salesQuotationLine_ds, this.formRun(), true); // Строка по всем датасетам А по поводу предупреждения "Не все пути в validateWrite возвращают значение", user_ax, если всё ещё не поняли, то это так компилятор сообщает вам что вы забыли в конце написать return. В оригинальном вашем сообщении return распологался внутри оператора if (отсюда и все мои попытки обратить на него ваше внимание), а если значения переменных будут такими, что алгоритм не попадёт в этот if? Чем завершится работа функции validateWrite? Какое значение она вернёт? |
|
![]() |
#2 |
Участник
|
Цитата:
![]() Вообще, мне непонятна идея засовывания проверки на разрешение редактирования в валидацию поля... Если необходимо определить разрешение на редактирование всей записи, то в метод active() - <имядатасерса>.allowEdit(FieldSetupTable::SetupFormDataSource2(salesQuotationLine_ds, this.formRun(), true)); Либо в modifiedField - если определенные поля... А валидацию оставить на решение ее конкретной задачи. |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от LeonDerCom
![]() Вообще, мне непонятна идея засовывания проверки на разрешение редактирования в валидацию поля...
Если необходимо определить разрешение на редактирование всей записи, то в метод active() - <имядатасерса>.allowEdit(FieldSetupTable::SetupFormDataSource2(salesQuotationLine_ds, this.formRun(), true)); Либо в modifiedField - если определенные поля... А валидацию оставить на решение ее конкретной задачи. Но не всегда подходит жёсткая блокировка записи от всех изменений. Иногда нужно разрешить изменение но его ограничить - вот тогда как раз без методов validate не обойтись. Причём если ограничение значения поля не зависит от соседних полей, то тогда достаточно метода validateField(). А если для принятия решения необходима проверка комбинации полей, то тогда validateWrite(). modifiedField() используется для автоматизации заполнения связанных полей, когда на основании значения одного поля можно определить значение другого поля. |
|
Теги |
datafield, datasource, presence, свойства полей |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|