12.10.2012, 14:32 | #1 |
Участник
|
isFormDatasource vs dataSource != null
AX2009
Перебираем строки датасорса X++: for (salesLine = formDataSource.getFirst(true) ? formDataSource.getFirst(true) : formDataSource.cursor(); salesLine; salesLine = formDataSource.getNext()) { } а salesLine.datasource() == null Выглядит это довольно странно. |
|
12.10.2012, 15:09 | #2 |
Участник
|
Может init() формы/датасурса ещё не выполнился и датасурс ещё не проинициализовался?
|
|
12.10.2012, 15:18 | #3 |
Участник
|
Всё это дело выполняется в классе, который вызывается по нажатию меню айтема. Форма вполне себе проинициализировалась. formDataSource достаётся из args.record().dataSource().
|
|
13.10.2012, 02:03 | #4 |
Участник
|
имхо, getFirst() вытаскивает данные именно, если хотите и привязку к датасорсу, надо идти чегео first()/next(),cursor()
|
|
13.10.2012, 18:55 | #5 |
Участник
|
Позвольте полюбопытствовать, зачем вам salesLine.datasource(), если у вас есть переменная formDataSource, в которой и находится требуемое значение?
|
|
15.10.2012, 10:32 | #6 |
Участник
|
Xardas, естественно, salesLine.datasource() нужен не в приведённом месте, а на уровне класса, вызванного из класса, куда salesLine был передан в качестве параметра
И тащить туда лишнюю переменную не хочется. Меня скорее смущает сочетание salesLine.isFormDatasource() == true salesLine.datasource() == null Хочется понять смысл. Если датасорса нет, то почему "the data source is a form" |
|
15.10.2012, 12:39 | #7 |
MCT
|
А у menuItem с которого класс вызывается, тот ли источник указан, который в классе обрабатываете?
__________________
Axapta book for developer |
|
15.10.2012, 14:40 | #8 |
Участник
|
Вопрос оказался в стороне, на которой выполняется класс. При выполнении на стороне клиента - всё ОК. А вот на стороне сервера - описанная картина. Но почему всё-таки .isFormDatasource == true?
|
|
|
За это сообщение автора поблагодарили: S.Kuskov (1). |
15.10.2012, 16:57 | #9 |
Участник
|
А проверьте для меня кое-что:
А если вызвать клиентский метод, передав в него этот распакованный salesLine с сервера, и вызвать эти два метода у него, что вернет? |
|
15.10.2012, 18:01 | #10 |
Участник
|
После распаковки в серверном методе передал в класс, исполняемый на клиенте
salesLine.isFormDatasource() == false salesLine.datasource() == null |
|
15.10.2012, 18:14 | #11 |
Участник
|
ОК, спасибо. Просто хотел убедиться, что ссылка на источник таки теряется, а не просто недоступна на сервере.
|
|
|
|