06.06.2006, 17:05 | #1 |
MCTS
|
Два датасоурса и грид
Помогите разобраться.
Есть форма. На форме два источника данных(две таблицы). Есть грид, который отображает данные из этих двух таблиц. Необходимо разместить на гриде столбец, данные которого рассчитываюся на основании данных из этих двух таблиц. Иными словами, необходимо написать дисплей-метод. Но как одновременно передать в дисплей-метод текущие данные из первой и второй таблицы? Вот в этом, собственно, и вопрос.
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
06.06.2006, 17:13 | #2 |
Участник
|
Вот так:
PHP код:
|
|
06.06.2006, 17:17 | #3 |
MCTS
|
Совершенно верно
Это и есть то, чего не хотелось бы делать. Данные-то уже есть. Не хотелось бы их перерассчитывать. Интересует вопрос: неужели нет возможности находясь в одном датасоурсе, получить текущие данные второго?
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
06.06.2006, 17:34 | #4 |
Участник
|
Не могу сказать с уверенностью, потому что не нашел описания работы этих методов, но по-моему можно попробовать joinChild или joinParent методы, если датасорсы в форме связаны. В качестве примера можно привести метод settlePaymCur() DataSource-a VentTransOpen формы VendOpenTrans
Последний раз редактировалось Gad; 06.06.2006 в 17:37. |
|
|
За это сообщение автора поблагодарили: (1). |
06.06.2006, 17:40 | #5 |
MCTS
|
ок
таблицы действительно связаны сейчас начну рыть в этом направлении Может ещё идеи есть?
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
06.06.2006, 17:41 | #6 |
Участник
|
Посмотрите пример (см. мой предыдущий пост), насколько я понял там достаточно стандартный способ решения вашей проблемы
|
|
|
За это сообщение автора поблагодарили: Russland (1). |
07.06.2006, 11:13 | #7 |
MCTS
|
joinChild работает прекрасно.
Тот пример, что я описывал был упрощённым. На самом деле у меня связка из 3х таблиц: InventTable-InventSum-InventDim и мне из InventTable необходимо было достучаться до InventDim конструкция _inventDim.data(_inventTable.joinChild().joinChild()); работает. В качестве лирического отступления возникает вопрос: joinChild() не имеет параметров, и если у родительской таблицы более одной дочерней таблицы не совсем понятно как в таком случае доступаться до этих "детей". Респект Gad за посказку
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
07.06.2006, 11:34 | #8 |
Участник
|
Цитата:
Сообщение от Russland
В качестве лирического отступления возникает вопрос: joinChild() не имеет параметров, и если у родительской таблицы более одной дочерней таблицы не совсем понятно как в таком случае доступаться до этих "детей".
|
|
07.06.2006, 11:49 | #9 |
MCTS
|
Таки да...
пройтись от дочери к родителю с помощью уже joinParent()
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
03.08.2011, 13:14 | #10 |
Участник
|
Замечу также, что joinChild следует вызывать на стороне клиента.
После передачи родительского курсора на сторону сервера метод joinChild возвращает null. |
|
15.09.2011, 00:44 | #11 |
Участник
|
еще помогает такая функция:
X++: if (salesLine.isFormDataSource())
{
salesLineDs = salesLine.dataSource();
salesTableDs = Global::formGetParentDatasource(salesLineDs);
salesTable = salesTableDs.cursor();
}
__________________
http://www.axdevposts.blogspot.com Пришел, уведел.... отойди, дай другому увидеть! |
|
07.11.2011, 13:00 | #12 |
Участник
|
Цитата:
У меня тоже не работает. На AX2009 в display-методе на DataSource у входного параметра не получается определить joinParent. Интересно что JoinChild при тех же условиях работает. В остальных НЕ display методах joinParent прекрасно работает. Получается, что входной параметр, передающийся в display-метод, не содержит в себе некоторой нужной информации. Попробовал перенести display-метод на уровень таблицы, но this.joinParent() также ничего не вернул (т.е. поведение такое же как и в методе датасурса). Более того обнаружил также что this.isFormDataSource() внутри display-метода не признаётся что имеет отношение к источнику данных формы. Т.е. получется что display-метод вызывается в каком-то искуственном, урезанном контексте. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|