|
![]() |
#1 |
Участник
|
Цитата:
Спасибо, что натолкнули !!! Поменял в гриде на SalesQuotationLine и перестало скакать!!! Последний раз редактировалось user_ax; 13.02.2013 в 10:33. |
|
![]() |
#2 |
Участник
|
|
|
![]() |
#3 |
Участник
|
Цитата:
Ну, стандартное мне не особо подходило) ![]() |
|
![]() |
#4 |
Участник
|
Ребят, есть один информационный вопрос.
Скажите, что это за табличка такая? http://msdn.microsoft.com/en-us/libr...(v=ax.10).aspx В базе axapt-ы её не нахожу, откуда она подтягивается? На одной из таблиц есть lookup-метод, в котором в кач-ве параметра таблицы выступает она ![]() |
|
![]() |
#5 |
Участник
|
Судя по комментарию из кода, это апи?
X++: static void lookupAOTTables(FormStringControl _ctrl) { // [url]http://msdn.microsoft.com/en-us/library/aa632599(v=ax.10).aspx[/url] // This table enables you to create, read, update, and delete X++ code and metadata. Ensure that the user has access to the Development Security Key (SysDevelopment) before calling this API. SysTableLookup sysTableLookup = SysTableLookup::newParameters(tablenum(UtilidElements), _ctrl); |
|
![]() |
#6 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: LeonDerCom (1). |
![]() |
#7 |
Участник
|
|
|
![]() |
#8 |
Участник
|
Ещё такой вопросик, выдаёт предупреждение:
Цитата:
Не все пути в validateWrite возвращают значение
Вот код: X++: public boolean validateWrite() { boolean ret; ret = super(); ret = FieldSetupTable::SetupFormDataSource2(salesQuotationLine_ds, this.formRun(), true); // Строка по всем датасетам if(!ret) return ret; } Последний раз редактировалось user_ax; 14.02.2013 в 13:18. |
|
![]() |
#9 |
Участник
|
Видимо, нет.
|
|
![]() |
#10 |
Участник
|
1) Вы теряете значение ret = super(), затирая его результатом функции FieldSetupTable::SetupFormDataSource2(). Что будет если стандартная проверка super() вернёт ошибку (false), например из-за уникального индекса, а FieldSetupTable::SetupFormDataSource2 вернёт истину?
2) Для чего в вашем коде присутствует if? |
|
![]() |
#11 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() 1) Вы теряете значение ret = super(), затирая его результатом функции FieldSetupTable::SetupFormDataSource2(). Что будет если стандартная проверка super() вернёт ошибку (false), например из-за уникального индекса, а FieldSetupTable::SetupFormDataSource2 вернёт истину?
2) Для чего в вашем коде присутствует if? Заккоментировал вызов super - предупреждение осталось. 2) Код не мой, разбираюсь в нём только. |
|
![]() |
#12 |
Участник
|
Хм...интересно... возвратил ещё раз ret - предупреждение исчезло...
|
|
![]() |
#13 |
Участник
|
Это вы зря. Как теперь система будет контролировать обязательность полей и уникальность индексов?
Так всё-таки для чего там if? |
|
![]() |
#14 |
Участник
|
super я раскоменнтировал , проверка будет проходить.
if ? Честно, не знаю, для дополнительной проверки, может. Предыдущий программист так сделал, нужно для особой настроечной таблицы скорее всего. |
|
![]() |
#15 |
Участник
|
|
|
![]() |
#16 |
Участник
|
|
|
![]() |
#17 |
Участник
|
user_ax
В супере он полезет на валидацию полей самой таблицы - не стоит комментить его, перекрывая ret и не комментируя супер - сводите его работу на нет, поскольку результат проверки он вам не вернет. Про if - получается он всегда будет возвращать (return) только отрицательное значение, иначе return (если true) не отработает и функция по умолчанию будет давать false (так как генерирует boolean по умолчанию false), то есть с этим условием всегда результат функции всегда false... И результат валидации - отрицательный. update: Цитата:
X++: public boolean validateWrite() { boolean ret; ; ret = FieldSetupTable::SetupFormDataSource2(salesQuotationLine_ds, this.formRun(), true); // Строка по всем датасетам (ret==true?ret=super():ret); return ret; } Последний раз редактировалось LeonDerCom; 14.02.2013 в 16:37. |
|
![]() |
#18 |
Участник
|
Цитата:
Сообщение от LeonDerCom
![]() user_ax
В супере он полезет на валидацию полей самой таблицы - не стоит комментить его, перекрывая ret и не комментируя супер - сводите его работу на нет, поскольку результат проверки он вам не вернет. Про if - получается он всегда будет возвращать (return) только отрицательное значение, иначе return (если true) не отработает и функция по умолчанию будет давать false (так как генерирует boolean по умолчанию false), то есть с этим условием всегда результат функции всегда false... И результат валидации - отрицательный. update: Судя по всему, у вас приоритет у последнего запроса - тогда код бы переделал вот так: X++: public boolean validateWrite() { boolean ret; ; ret = FieldSetupTable::SetupFormDataSource2(salesQuotationLine_ds, this.formRun(), true); // Строка по всем датасетам (ret==true?ret=super():ret); return ret; } Но ваш код выдаёт синтаксическую ошибку... |
|
![]() |
#19 |
Участник
|
user_ax
Прошу прощения, невнимательность. ret = (ret==true?ret=super():ret); |
|
![]() |
#20 |
Участник
|
|
|
Теги |
datafield, datasource, presence, свойства полей |
|
|