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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.09.2003, 16:34   #1  
chuf is offline
chuf
Участник
 
33 / 10 (1) +
Регистрация: 20.12.2002
Как работает NotExistJoin
Есть две таблицы MainTable и LineTable, связаны по полю id1;

Нужно вывести на форму все записи таблицы MainTable, для которых не существует записей в таблице LineTable;

Пробую следующим образом:

QueryBuildDataSource qbds1,qbds2;
;
Query q = new Query ();
qbds = q.addDataSource(tablenum(MainTable));
qbds1 = qbds.addDataSource(tablenum(LineTable));
qbds1.joinMode(JoinMode::NOEXISTSJOIN);
qbds1.addLink(fieldnum(MainTable ,id1),fieldnum(LineTable,id1));

QueryRun qr = new QueryRun (q);
MainTable_ds.query(q);
MainTable_ds.research();

что я неправильно делаю?
Старый 16.09.2003, 17:06   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Почти все
Во-первых, возникает вопрос, в каком методе формы/источника данных вы это делаете.

По науке код размещают в методе init() источника данных после super(). Тогда Query q = new Query (); qbds = q.addDataSource(tablenum(MainTable)); не годится: форма не привязана к новому источнику данных. Надо занести MainTable в источник данных формы, тогда пройдет такая конструкция: q = this.query(); qbds = q.dataSourceTable(tablenum(MainTable)).

Дальше верно, но QueryRun qr = new QueryRun (q); MainTable_ds.query(q); MainTable_ds.research(); лишено смысла. Достаточно MainTable_ds.query(q).
Старый 16.09.2003, 17:29   #3  
chuf is offline
chuf
Участник
 
33 / 10 (1) +
Регистрация: 20.12.2002
Делаю, учитывая поправки .... в методе датасоурса init()

QueryBuildDataSource qbds1,qbds2;
;

super();
Query q = this.query();
qbds = q.dataSourceTable(tablenum(MainTable));
qbds1 = qbds.addDataSource(tablenum(LineTable));
qbds1.joinMode(JoinMode::NOEXISTSJOIN);
qbds1.addLink(fieldnum(MainTable ,id1),fieldnum(LineTable,id1));

MainTable_ds.query(q);

Опять не работает ?
Старый 16.09.2003, 17:36   #4  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Заинтриговали... Но увы, все работает на примере известной нам всем формы:
PHP код:
public void init()
{
    
QueryBuildDataSource qbdsTrans;
    ;
    
super();

    
qbdsTrans this.query().dataSourceTable(tablenum(LedgerTable)).addDataSource(tablenum(LedgerTrans));
    
qbdsTrans.joinMode(JoinMode::NoExistsJoin);
    
qbdsTrans.addLink(fieldnum(LedgerTableAccountNum),fieldnum(LedgerTransAccountNum));

Пример лаконичного кода
Старый 16.09.2003, 17:43   #5  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
:)
А теперь еще короче:
PHP код:
void init()
{
    
QueryBuildDataSource x;
    
    
super();
    
    
this.query().dataSourceNo(1).addDataSource(225);
    
x.joinMode(3);
    
x.relations(1);

Старый 16.09.2003, 18:17   #6  
chuf is offline
chuf
Участник
 
33 / 10 (1) +
Регистрация: 20.12.2002
все, убедили... работает
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
почему на работает common.(fieldId)[idx] maze DAX: Программирование 3 31.08.2007 06:48
Не работает запрос на нескольких компаниях Bega DAX: Программирование 3 16.09.2005 10:21
JOIN программно на форме не работает rohlenko DAX: Программирование 2 31.03.2005 15:41
CRM ABC, SWOT анализ Как это работает и работает ли вообще. ShadowFromXZone DAX: Функционал 16 02.03.2004 18:09
Не работает selectForUpdate() Andronov DAX: Программирование 6 18.08.2003 17:24

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

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

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