AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.10.2012, 14:32   #1  
ortin is offline
ortin
Участник
 
39 / 11 (1) +
Регистрация: 10.09.2007
Адрес: СПб
isFormDatasource vs dataSource != null
AX2009
Перебираем строки датасорса
X++:
for (salesLine = formDataSource.getFirst(true) ? formDataSource.getFirst(true) : formDataSource.cursor();
         salesLine;
         salesLine = formDataSource.getNext())
{
}
тут salesLine.isFormDatasource() == true
а salesLine.datasource() == null
Выглядит это довольно странно.
Старый 12.10.2012, 15:09   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Может init() формы/датасурса ещё не выполнился и датасурс ещё не проинициализовался?
Старый 12.10.2012, 15:18   #3  
ortin is offline
ortin
Участник
 
39 / 11 (1) +
Регистрация: 10.09.2007
Адрес: СПб
Всё это дело выполняется в классе, который вызывается по нажатию меню айтема. Форма вполне себе проинициализировалась. formDataSource достаётся из args.record().dataSource().
Старый 13.10.2012, 02:03   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
имхо, getFirst() вытаскивает данные именно, если хотите и привязку к датасорсу, надо идти чегео first()/next(),cursor()
Старый 13.10.2012, 18:55   #5  
Xardas is offline
Xardas
Участник
 
28 / 13 (1) ++
Регистрация: 19.09.2012
Позвольте полюбопытствовать, зачем вам salesLine.datasource(), если у вас есть переменная formDataSource, в которой и находится требуемое значение?
Старый 15.10.2012, 10:32   #6  
ortin is offline
ortin
Участник
 
39 / 11 (1) +
Регистрация: 10.09.2007
Адрес: СПб
Xardas, естественно, salesLine.datasource() нужен не в приведённом месте, а на уровне класса, вызванного из класса, куда salesLine был передан в качестве параметра
И тащить туда лишнюю переменную не хочется.

Меня скорее смущает сочетание
salesLine.isFormDatasource() == true
salesLine.datasource() == null
Хочется понять смысл. Если датасорса нет, то почему "the data source is a form"
Старый 15.10.2012, 12:39   #7  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
А у menuItem с которого класс вызывается, тот ли источник указан, который в классе обрабатываете?
__________________
Axapta book for developer
Старый 15.10.2012, 14:40   #8  
ortin is offline
ortin
Участник
 
39 / 11 (1) +
Регистрация: 10.09.2007
Адрес: СПб
Вопрос оказался в стороне, на которой выполняется класс. При выполнении на стороне клиента - всё ОК. А вот на стороне сервера - описанная картина. Но почему всё-таки .isFormDatasource == true?
За это сообщение автора поблагодарили: S.Kuskov (1).
Старый 15.10.2012, 16:57   #9  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
А проверьте для меня кое-что:
А если вызвать клиентский метод, передав в него этот распакованный salesLine с сервера, и вызвать эти два метода у него, что вернет?
Старый 15.10.2012, 18:01   #10  
ortin is offline
ortin
Участник
 
39 / 11 (1) +
Регистрация: 10.09.2007
Адрес: СПб
После распаковки в серверном методе передал в класс, исполняемый на клиенте

salesLine.isFormDatasource() == false
salesLine.datasource() == null
Старый 15.10.2012, 18:14   #11  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
ОК, спасибо. Просто хотел убедиться, что ссылка на источник таки теряется, а не просто недоступна на сервере.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
C# and AX Development: Updating the caller Form/DataSource Blog bot DAX Blogs 0 18.07.2009 02:28
Real Data Type - No of decimals Yprit DAX: Программирование 10 30.03.2009 12:17
C# and AX Development: Using the COM Business Connector in C#, the easy way (AX/Axapta) Blog bot DAX Blogs 0 15.12.2007 20:35
Ошибка SQL в модуле "Расчеты с персоналом" Карбофос DAX: Функционал 5 02.08.2002 12:44
Ошибка SQL в модуле "Расчеты с персоналом" Карбофос DAX: Программирование 0 31.07.2002 17:20

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:35.