|
|
#1 |
|
Участник
|
Всем добрый день!
Задача состоит в том, что бы выбрать все ном. единицы (InventTable), которых нет в строках спецификаций (BOM) и которые не заблокированны для продажи (InventTableModule) код: Код: static void QueryBuildDataSource(Args _args)
{
Query q = new Query();
QueryBuildDataSource qbdsInventTable;
QueryBuildDataSource qbdsBOM;
QueryBuildDataSource qbdsInventTableModule;
;
qbdsInventTable = q.addDataSource(tableNum(InventTable));
// Ограничение №1 -->
qbdsInventTableModule = qbdsInventTable.addDataSource(tableNum(InventTableModule));
qbdsInventTableModule.joinMode(JoinMode::INNERJOIN);
qbdsInventTableModule.relations(true);
qbdsInventTableModule.addRange(fieldnum(InventTableModule, ModuleType)).value(queryValue(ModuleInventPurchSales::Sales));
// Ограничение №1 <--
// Ограничение №2 -->
qbdsBOM = qbdsInventTable.addDataSource(tablenum(BOM));
qbdsBOM.joinMode(JoinMode::NOEXISTSJOIN);
qbdsBOM.relations(true);
// Ограничение №2 <--
info(qbdsInventTable.toString());
}подскажите пожалуйста в чем тут дело? (причем если закомертировать одно из ограничений - все в порядке) |
|
|
|
|
#2 |
|
NavAx
|
попробуйте датасорс с notexist цеплять первым.
еще для примера http://www.axforum.info/forums/showthread.php?t=8357 Последний раз редактировалось raz; 07.04.2006 в 13:03. |
|
|
|
|
#3 |
|
Участник
|
Спасибо за ответ, но результат тот же.
Up! |
|
|
|
|
#4 |
|
NavAx
|
Предлагаю присоединить BOM к InventTableModule
вот так: PHP код:
SELECT * FROM InventTable JOIN * FROM InventTableModule WHERE InventTable.ItemId = InventTableModule.ItemId AND ((ModuleType = Заказ)) NOTEXISTS JOIN * FROM BOM WHERE InventTableModule.ItemId = BOM.ItemId |
|
|
|
|
#5 |
|
Модератор
|
А зачем там много QueryBuildDataSource?
X++: Query q = new Query(); QueryBuildDataSource qbds; ; qbds = q.addDataSource(tableNum(InventTable)); qbds = qbds.addDataSource(tableNum(InventTableModule)); qbds.joinMode(JoinMode::INNERJOIN); qbds.relations(true); qbds.addRange(fieldnum(InventTableModule, ModuleType)).value(queryValue(ModuleInventPurchSales::Sales)); qbds.addDataSource(tablenum(BOM)); qbds.addLink(fieldnum(InventTable, itemId),fieldnum(BomTable, BomId)); qbds.joinMode(JoinMode::NOEXISTSJOIN); info(qbds.toString()); |
|
|
|
|
#6 |
|
Участник
|
Коллеги, большое спасибо за идеи.
теперь все работает
|
|
|
|
|
#7 |
|
NavAx
|
Цитата:
Сообщение от if_maks
Коллеги, большое спасибо за идеи.
теперь все работает ![]()
__________________
Isn't it nice when things just work? |
|
|
|
|
|