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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.11.2005, 13:11   #1  
rkrivov is offline
rkrivov
Участник
Аватар для rkrivov
 
31 / 10 (1) +
Регистрация: 18.02.2005
Адрес: Москва
Post Очередной вопрос про Query
Доброго времени суток!

У меня очередной вопрос про Query. Как можно программно создать запрос, который реализовал бы следующий код на X++ :
PHP код:
// . . .
LedgerBalancesDimTrans lb,lbBuf;
// . . .
while select lb
    group by dimension
        where 
(
                    (
lb.AccountNum == LedgerDistribByAlg.OffsetAccountNum) ||
                    (
lb.AccountNum == LedgerDistribByAlg.BaseAccountNum)
                 ) 
                 &&
                 ( 
lb.TransDate <= dateEndMth(ledgerJournalDistribTable.Period)) 
    
notexists join lbbuf                                                                 
        where 
(
                     (
lbbuf.AccountNum == LedgerDistribByAlg.OffsetAccountNum) ||
                     (
lbbuf.AccountNum == LedgerDistribByAlg.BaseAccountNum)
                 )
                 &&
                 ( 
lbbuf.TransDate <= dateEndMth(ledgerJournalDistribTable.Period))    &&
                 (                                                                         
                     (
lbbuf.Dimension[_dimensionNumber] !=lb.Dimension[_dimensionNumber] )
                 )                                                                 
                 &&
                 (
lbbuf.Dimension[_dimensionNumber] ==lb.Dimension[_dimensionNumber
                 || 
lB.Dimension[_dimensionNumber]=='')
{
// . . .
}
// . . . 
Я дулаю следующее:

PHP код:
// . . .
= new Query();
 
fieldName =strfmt("dimension[%1]"_dimensionNumber)
fieldId fieldName2Id(tableNum(LedgerBalancesDimTrans), fieldName);
qbds_lb q.addDataSource(tableNum(LedgerBalancesDimTrans), 'A');
qbds_lb.orderMode(OrderMode::GroupBy);
qbds_lb.addSortField(fieldId);
qbr qbds_lb.addRange(fieldNum(LedgerBalancesDimTransTransDate));
qbr.value(SysQuery::range(DateNull(), dateEndMth(ledgerJournalDistribTable.Period)));
if (
LedgerDistribByAlg.OffsetAccountNum)
{
    
qbr qbds_lb.addRange(fieldNum(LedgerBalancesDimTransAccountNum));
    
qbr.value(SysQuery::value(LedgerDistribByAlg.OffsetAccountNum));
}
 
if (
LedgerDistribByAlg.BaseAccountNum)
{
    
qbr qbds_lb.addRange(fieldNum(LedgerBalancesDimTransAccountNum));
    
qbr.value(SysQuery::value(LedgerDistribByAlg.BaseAccountNum));
}
 
qbds_lbbuf qbds_lb.addDataSource(tableNum(LedgerBalancesDimTrans), 'B');
qbds_lbbuf.relationsfalse );
qbr qbds_lbbuf.addRange(fieldNum(LedgerBalancesDimTransTransDate));
qbr.value(SysQuery::range(DateNull(), dateEndMth(ledgerJournalDistribTable.Period)));
if (
LedgerDistribByAlg.OffsetAccountNum)
{
    
qbr qbds_lbbuf.addRange(fieldNum(LedgerBalancesDimTransAccountNum));
    
qbr.value(SysQuery::value(LedgerDistribByAlg.OffsetAccountNum));
}
 
if (
LedgerDistribByAlg.BaseAccountNum)
{
    
qbr qbds_lbbuf.addRange(fieldNum(LedgerBalancesDimTransAccountNum));
    
qbr.value(SysQuery::value(LedgerDistribByAlg.BaseAccountNum));
}
 
qbds_lbbuf.joinMode(JoinMode::NoExistsJoin);
ds1 strfmt("%1.%2"qbds_lb.name(), fieldName);
ds2 strfmt("%1.%2"qbds_lbbuf.name(), fieldName);
queryExression strfmt("(%2 != %1) && ((%2 == %1) || (!%1))"ds1ds2 );
qbr qbds_lbbuf.addRange(fieldId);
qbr.value(queryExression);
qR = new QueryRun(q);
 
// qR.reset();
 
while (qR.next())
{
    
// . . .
}
// . . . 
Но оно не работает. Выдает сообщение "Ошибка расширенного диапазона запроса: Ожидается правая круглая скобка рядом с 15"

Последний раз редактировалось rkrivov; 14.11.2005 в 13:14.
Теги
query, программно, фильтр, запрос (query)

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вопрос по Query с агрегатной функцией Jarad DAX: Программирование 11 31.10.2006 21:10
Вопрос про Query 6apcyk DAX: Программирование 5 16.11.2005 19:08
Вопрос по query и join tischenko DAX: Программирование 2 20.07.2005 13:05
Вопрос по запросу (query) Александр_1975 DAX: Программирование 2 23.01.2004 17:35
Вопрос знатокам QBE и Query в AXAPTA Maxim Gorbunov DAX: Программирование 6 27.12.2002 13:19

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

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

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