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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.11.2012, 10:08   #1  
alvares is offline
alvares
Участник
 
45 / 12 (1) ++
Регистрация: 27.10.2011
из Display метода на одном DS получить текущее значение другого приджойненного
Уважаемые, как в Display методе на одном DS формы получить текущее значение другого приджойненного DS?
Старый 15.11.2012, 10:26   #2  
online
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,689 / 405 (17) +++++++
Регистрация: 23.03.2006
как вы это себе представляете?
Старый 15.11.2012, 10:40   #3  
ice321i is offline
ice321i
Участник
 
60 / 47 (2) +++
Регистрация: 22.10.2007
Post
Приверно так:
X++:
display Amount test(Common _common)
{
    Common     commonChild = _common.joinChild();
   Common      commonParent = _common.joinParent();
    ;
 
 
}
Только дисплейный метод должен быть на datasourc формы

Последний раз редактировалось ice321i; 15.11.2012 в 10:43.
Старый 15.11.2012, 10:43   #4  
alvares is offline
alvares
Участник
 
45 / 12 (1) ++
Регистрация: 27.10.2011
ну как?
есть форма, на ней 2 связанных DS, мне нужно в display методе посчитать разницу сумм из этих DS..
Старый 15.11.2012, 10:44   #5  
online
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Почитайте про common.joinParent(), common.joinChild().
Старый 15.11.2012, 10:45   #6  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
643 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
А разве дисплейные методы допускают аргументы?
__________________
// no comments
Старый 15.11.2012, 10:48   #7  
alvares is offline
alvares
Участник
 
45 / 12 (1) ++
Регистрация: 27.10.2011
Цитата:
Сообщение от ice321i Посмотреть сообщение
Приверно так
X++:
display Amount test(Common _common)
{
 
}
в этом методе у нас текущий record одного DS.
а чтобы получить доступ к этой же записи прилинкованного DS достаточно обратиться к нему по имени DS, так?
Старый 15.11.2012, 10:48   #8  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
643 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от alvares Посмотреть сообщение
ну как?
есть форма, на ней 2 связанных DS, мне нужно в display методе посчитать разницу сумм из этих DS..
Используйте агрегатные функции в запросе формы, а в дисплейном методе посчитайте разницу двух полей.
__________________
// no comments

Последний раз редактировалось dech; 15.11.2012 в 10:52.
Старый 15.11.2012, 10:53   #9  
ice321i is offline
ice321i
Участник
 
60 / 47 (2) +++
Регистрация: 22.10.2007
Цитата:
Сообщение от alvares Посмотреть сообщение
в этом методе у нас текущий record одного DS.
а чтобы получить доступ к этой же записи прилинкованного DS достаточно обратиться к нему по имени DS, так?
Обращайтесь как написал - текущий _common, текущий приджойненный -_common.joinChid() или -_common.joinParent()
Старый 15.11.2012, 10:57   #10  
online
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от alvares Посмотреть сообщение
в этом методе у нас текущий record одного DS.
а чтобы получить доступ к этой же записи прилинкованного DS достаточно обратиться к нему по имени DS, так?
Нет. По имени DS вернётся запись приджойненная к активной строке а вам нужна запись приджойненная к обрабатываемой в данный момент (т.е. к той которая передалась в виде входного параметра)

Последний раз редактировалось S.Kuskov; 15.11.2012 в 11:06.
За это сообщение автора поблагодарили: alvares (1).
Старый 15.11.2012, 11:06   #11  
alvares is offline
alvares
Участник
 
45 / 12 (1) ++
Регистрация: 27.10.2011
Да, спасибо, на форме работает
А вот если сделать на view которая в DS server display метод и написать:
X++:
server display real method1(common _rec)
{
    ;
    if (_rec.SumOfLine > 0 && this.joinChild().RecId != 0)
        return _rec.SumOfLine - this.joinChild().(fieldnum(Table, SummOfLine2));
    else
        return 0;
}
работает, но не верно - joinChild() задваивает результат..
Старый 15.11.2012, 11:08   #12  
online
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от alvares Посмотреть сообщение
Да, спасибо, на форме работает
А вот если сделать на view которая в DS server display метод и написать:
X++:
server display real method1(common _rec)
{
    ;
    if (_rec.SumOfLine > 0 && this.joinChild().RecId != 0)
        return _rec.SumOfLine - this.joinChild().(fieldnum(Table, SummOfLine2));
    else
        return 0;
}
работает, но не верно - joinChild() задваивает результат..
потомучто нужно не this.joinChild(), а _rec.joinChild().
This вообще в этом случае не нужен - можно смело делать метод статическим.

Последний раз редактировалось S.Kuskov; 15.11.2012 в 11:11.
Старый 15.11.2012, 11:18   #13  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Имеет смысл добавить проверку по TableId, для пущей уверенности чтобы не произошла run time ошибка
X++:
if(rec.TableId==(tableNum(YourdataSourceTable)))
__________________
Axapta book for developer
Старый 15.11.2012, 13:48   #14  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
856 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
столько фэйлов в одном треде я еще не видел
особенно порадовал "server display"

Последний раз редактировалось lvan; 15.11.2012 в 13:51.
Старый 15.11.2012, 14:46   #15  
Xardas is offline
Xardas
Участник
 
28 / 13 (1) ++
Регистрация: 19.09.2012
alvares, а что вам мешает в display-методе написать select, в котором вы выберете запись из приджойненой таблицы? Или вас пугает лишнее обращение к БД?
Старый 15.11.2012, 14:52   #16  
lvan is offline
lvan
Участник
Аватар для lvan
Лучший по профессии 2014
 
856 / 82 (4) ++++
Регистрация: 15.04.2011
Записей в блоге: 1
Цитата:
Сообщение от Xardas Посмотреть сообщение
alvares, а что вам мешает в display-методе написать select, в котором вы выберете запись из приджойненой таблицы? Или вас пугает лишнее обращение к БД?
оно не пугает, а лишнее.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Значение display метода по его названию Андрей К. DAX: Программирование 41 25.11.2020 06:52
Получить значение qbr .. propeller DAX: Программирование 2 07.11.2009 00:19
получить label display - метода NetBus DAX: Программирование 2 05.06.2009 19:08
Можно ли в одном select`e получить maxof и minof по одному полю? ArturK DAX: Программирование 2 28.04.2004 12:28
Как получить значение поля Datasource на динамически созданной форме? storer DAX: Программирование 2 14.11.2003 16:41

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:09.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.