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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.07.2006, 08:37   #21  
Ихъ бин программикеер is offline
Ихъ бин программикеер
Участник
 
23 / 10 (1) +
Регистрация: 12.07.2006
Цитата:
Сообщение от AndyD
...
query = new Query(VendContractItem_ds.query());
qbd1 = query.DataSourceTable(TableNum(VendContractItem));
...
qbd2.joinMode(JoinMode::InnerJoin);
qbd2.fetchMode(QueryFetchMode::One2One);
...
Один фиг не обновляется ... Попробую туториал слегка испортить чтобы протестировать это вопрос....

Вот еще один вопросец появился:

SELECT * FROM VendContractItem
WHERE RContractTable.RContractAccount=VendContractItem.RContractAccount
JOIN * FROM VendItemPrice
WHERE VendContractItem.PriceLineId = VendItemPrice.PriceLineId AND ((IsPrimary = Да))
JOIN ItemName FROM InventTable
USING INDEX ItemName_idx
WHERE VendContractItem.ItemId = InventTable.ItemId

Там еще несколько строк, не суть. вопрос вот в чем - вроде как строки в первую очередь выбираются из
VendContractItem, сджойненный с VendItemPrice? а следующий джойн, InventTable - он с VendItemPrice или с VendContractItem или с результатом предыдущего джойна?
Старый 17.07.2006, 13:19   #22  
Ихъ бин программикеер is offline
Ихъ бин программикеер
Участник
 
23 / 10 (1) +
Регистрация: 12.07.2006
Для чистоты эксперимента сделал пробную форму (туториал испоганивать не стал) с одним гридом и 2 сджойненными табличками.

Работает! Но попытка сменить linkType для подчиненной таблички провалилась с нулевым эффектом
PHP код:
void clicked()
{
VendContractSelectedItem_ds.linkType(JoinMode::NoExistsJoin);
VendContractItem_ds.executeQuery();
VendContractItem_ds.queryRun();
VendContractItem_ds.research();
VendContractItem_ds.refresh();
VendContractItem_ds.reread();
super();

Мне лично непонятно, что это за куча хитрых методов research, refresh и reread, поэтому на всякий пожарный решил испробовать все . Не работает. Так и должно быть?
Старый 17.07.2006, 13:55   #23  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
VendContractItem_ds.queryRun(); в этом контексте абсолютно не в тему. Метод возвращает указатель на инстанс класса и больше ничего не делает.
__________________
Viacheslav Nefedov, http://www.nefedov.net, http://restock.guru/
Старый 17.07.2006, 14:34   #24  
Ихъ бин программикеер is offline
Ихъ бин программикеер
Участник
 
23 / 10 (1) +
Регистрация: 12.07.2006
Цитата:
Сообщение от Ned
VendContractItem_ds.queryRun(); в этом контексте абсолютно не в тему. Метод возвращает указатель на инстанс класса и больше ничего не делает.
Ок, а что по поводу смены типа джойна?
Старый 17.07.2006, 16:18   #25  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Код:
    Query                   q;   
    QueryBuildDataSource    qB;
    QueryBuildDataSource    qB2; 
    QueryBuildDataSource    qB3;
    ;
    qB  = q.addDataSource(tablenum(AssetBookTable));
    qB.addRange(Fieldnum(AssetBookTable,CurrentOperationsTax)).value(enum2value(currentOperationsTax));
    qB2 = qB.addDataSource(tablenum(AssetBook));
    qB2.addLink(FieldNum(AssetBookTable,BookId),fieldNum(AssetBook,BookId));
    qB2.addRange(Fieldnum(AssetBook,AssetId)).value(assetId);
    qB2.joinMode(JoinMode::OuterJoin); 
//(а так же NoExistsJoin, InnerJoin, EXISTSJOIN);
    qB3 = qB2.addDataSource(tablenum(AssetBookTable));
    qB3.addLink(FieldNum(AssetBook,BookId),fieldNum(AssetBookTable,BookId));
Старый 17.07.2006, 16:44   #26  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Изменять это, меняя свойство датасорса формы не получится.
Нужно менять это же свойство, только на запросе этого датасорса.

Посмотрите код Linkа выше для понимания, как работают классы QueryBuild*.
Достучаться к ним с датасорса - через DataSourceName.query() или DataSourceName.queryRun().query()
Старый 17.07.2006, 20:45   #27  
wb is offline
wb
Участник
 
86 / 16 (1) ++
Регистрация: 26.01.2004
Адрес: Краснодар
Цитата:
Сообщение от Ихъ бин программикеер
Факт, были, см. форму VendContractItem. Задачка у меня на самом деле простая - позволить пользователю ставить галочки на элементах номенклатуры (форма вызывается через Работа с поставщиками/Договоры/Ассортимент) и показать отдельно (сортировка, отдельная вкладка и пр.) те элементы номенклатуры, которые не были выбраны. Способ показывания на отдельной вкладке тех, которые выделены, типа не подходит (такая уж постановка), поэтому надо извращаться.
номеклатуру показывать с учетом аналитики хранения?
может в качестве примера посмотрите на форму SalesQuickQuote (вызывается из заказов по функции создание строк)
За это сообщение автора поблагодарили: Ихъ бин программикеер (1).
Старый 18.07.2006, 10:24   #28  
Ихъ бин программикеер is offline
Ихъ бин программикеер
Участник
 
23 / 10 (1) +
Регистрация: 12.07.2006
В общем, исследование вопроса дало следующий результат:

1. Разнообразные баги и глюки были, как оказалось, прежде всего связаны с тем, что связка датасорсов в понимании аксапты - это, видимо, связка датасорсов. Она, видимо, принципиально не должна выполнять 2 функции одновременно. Т.е., я так понимаю, какие-то внутренние связи (а в той форме их довольно-таки много) не давали мне вытавить "NotExistJoin" на нужном датасорсе или просто добавить его . Однако заведение дополнительного комплекса датасорсов (посмотрел согласно указаниям wb SalesQuickQuote) дало как раз нужный мне эффект. Там еще, правда, есть небольшие глючки, но думаю, что это решаемый вопрос.

2. Link и kashperuk, спасибо, попробую обязательно, хоть это уже и неактуально в смысле решения текущей задачи, хотя, если честно, есть некоторые сомнения в стопроцентности получения результата .

3. kashperuk, если честно, вот нифига пока не понимаю как они, классы эти, работают... Чем отличаются принципиально указанные запросы? Т.е. зачем к ним такой разный доступ?
Старый 18.07.2006, 10:57   #29  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от Ихъ бин программикеер
Т.е., я так понимаю, какие-то внутренние связи (а в той форме их довольно-таки много) не давали мне вытавить "NotExistJoin" на нужном датасорсе или просто добавить его .
Функции для работы со связями
Код:
        queryBuildDataSource.clearDynalinks();
        queryBuildDataSource.clearLinks();
        queryBuildDataSource.addDynalink();
        queryBuildDataSource.addLink();
И еще: связи можно менять в Init() датасорса, после super(),
и в linkActive() датасорса перед super()
Вот еще ссылка:
Как узнать Alignment у элемента в Grid'е
Старый 19.07.2006, 14:01   #30  
Ихъ бин программикеер is offline
Ихъ бин программикеер
Участник
 
23 / 10 (1) +
Регистрация: 12.07.2006
Ха, ну тогда это не мой случай :-) а что, по желанию пользователя никак?
Старый 19.07.2006, 18:45   #31  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Вот, кстати, инфы немного про эти самые "загадочные" классы
http://axgeek.spaces.msn.com/PersonalSpace.aspx
Теги
datasource, query, датасорс (datasource), запрос (query), форма, crm2011

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DeniZone: Invoking a method on a field in a form's datasource Blog bot DAX Blogs 0 13.02.2009 14:05
jinx: Zugriff auf die Query, QueryRun und DataSource in einer Form Blog bot DAX auf Deutsch 0 14.04.2008 18:05
axaptafreak: Getting new table fields into your form datasource Blog bot DAX Blogs 2 24.01.2008 22:51
Axapta Lessons: Trapping keystrokes in a Form Blog bot DAX Blogs 13 01.11.2006 18:16
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43

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

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

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