Показать сообщение отдельно
Старый 07.04.2006, 12:59   #1  
if_maks is offline
if_maks
Участник
 
226 / 15 (1) ++
Регистрация: 26.08.2003
? QueryBuildDataSource - динамически
Всем добрый день!
Задача состоит в том, что бы выбрать все ном. единицы (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());
}
в результате получается следующий запрос: "SELECT * FROM InventTable"
подскажите пожалуйста в чем тут дело?
(причем если закомертировать одно из ограничений - все в порядке)