AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 10.02.2006, 11:49   #1  
микас is offline
микас
Участник
 
1 / 10 (1) +
Join Date: 05.10.2005
Location: Вильнюс, Литва
Соединние трех таблиц в 'трехуголник'
Мне нужно соединить три таблицы InventJournalTrans, InventDim, InventBatch.
К InventJournalTrans присоединяю InventDim, к InventDim присоединяю InventBatch.
Но как присоединить к InventJournalTrans InventBatch через ItemId ?

q = this.query();
qBD_InventJournalTrans = q.dataSourceTable(tablenum(InventJournalTrans));

qBD_InventDim = qBD_InventJournalTrans.addDataSource(tablenum(InventDim));
qBD_InventDim.joinMode(JoinMode::InnerJoin);
qBD_InventDim.fetchMode (0);
qBD_InventDim.addLink(fieldnum(InventJournalTrans,InventDimId),fieldnum(InventDim,InventDimId));

qBD_InventBatch = qBD_InventDim.addDataSource(tablenum(InventBatch));
qBD_InventBatch.joinMode(JoinMode::InnerJoin);
qBD_InventBatch.fetchMode (0);
qBD_InventBatch.addLink(fieldnum(InventDim,InventBatchId),fieldnum(InventBatch,InventBatchId));
Old 10.02.2006, 12:04   #2  
braathe is offline
braathe
Участник
 
90 / 13 (1) ++
Join Date: 16.02.2005
это тебе надо через InventTable
Attached Thumbnails
Click image for larger version

Name:	inventmodell.jpg
Views:	430
Size:	22.8 KB
ID:	1718  
Old 10.02.2006, 12:09   #3  
Roman777 is offline
Roman777
NavAx
Roman777's Avatar
NavAx Club
 
320 / 64 (3) ++++
Join Date: 10.02.2005
Location: г. Москва
Можно так:
QueryBuildRange qbr_InventBatch;
;
q = this.query();
qBD_InventJournalTrans = q.DataSourceTable(tablenum(InventJournalTrans)

qBD_InventDim = qBD_InventJournalTrans.addDataSource(tablenum(InventDim));
qBD_InventDim.joinMode(JoinMode::InnerJoin);
qBD_InventDim.fetchMode (0);
qBD_InventDim.addLink(fieldnum(InventJournalTrans,InventDimId),fieldnum(InventDim,InventDimId));

qBD_InventBatch = qBD_InventDim.addDataSource(tablenum(InventBatch));
qBD_InventBatch.joinMode(JoinMode::InnerJoin);
qBD_InventBatch.fetchMode (0);
qBD_InventBatch.addLink(fieldnum(InventDim,InventBatchId),fieldnum(InventBatch,InventBatchId));

qbr_InventBatch = qBD_InventBatch.addRange(fieldNum(InventBatch, itemId));

qbr_InventBatch.value(strfmt("(%1) = %2.%3", fieldstr(InventBatch, itemId), qBD_InventJournalTrans.name(), fieldstr(InventJournalTrans, itemId)) );
Old 10.02.2006, 12:24   #4  
Roman777 is offline
Roman777
NavAx
Roman777's Avatar
NavAx Club
 
320 / 64 (3) ++++
Join Date: 10.02.2005
Location: г. Москва
Да, кстати, скорее всего вместо qBD_InventBatch.fetchMode (0); (один - ко многим)
нужно будет поставить qBD_InventBatch.fetchMode (1); (один - к одному).
Old 10.02.2006, 12:51   #5  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Join Date: 11.10.2002
Location: Москва
Quote:
Originally Posted by Roman777
qbr_InventBatch.value(strfmt("(%1) = %2.%3", fieldstr(InventBatch, itemId), qBD_InventJournalTrans.name(), fieldstr(InventJournalTrans, itemId)) );
Как вариант:

qbr_InventBatch.value(strfmt('%1.%2 = %3.%4', qbr_InventBatch.name(), fieldstr(InventBatch, itemId), qBD_InventJournalTrans.name(), fieldstr(InventJournalTrans, itemId)))
Old 10.02.2006, 13:31   #6  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Join Date: 27.03.2002
Location: Москва
Quote:
Originally Posted by Roman777
Да, кстати, скорее всего вместо qBD_InventBatch.fetchMode (0); (один - ко многим)
нужно будет поставить qBD_InventBatch.fetchMode (1); (один - к одному).
Ошибочка, 0 это как раз "Один к одному" (см. enum QueryFetchMode), его и нужно оставить.
__________________
Андрей.
Old 10.02.2006, 13:48   #7  
Roman777 is offline
Roman777
NavAx
Roman777's Avatar
NavAx Club
 
320 / 64 (3) ++++
Join Date: 10.02.2005
Location: г. Москва
Quote:
Originally Posted by Dron AKA andy
Ошибочка, 0 это как раз "Один к одному" (см. enum QueryFetchMode), его и нужно оставить.
дА, согласен
 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Пустые названия системных таблиц в report data range (DAX 4.0) Qaz Qwerty DAX: Функционал 3 06.08.2008 00:05
Владельцы таблиц в БД аксапты AxaptaUser DAX: Администрирование 11 23.05.2007 18:33
Query из 7 таблиц Cornflower DAX: Программирование 29 15.03.2007 11:27
Join трех таблиц (две к одной) ATimTim DAX: Программирование 25 03.02.2005 11:31
outer join для трех таблиц r25 DAX: Программирование 4 29.04.2004 15:42

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 01:49.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.