Показать сообщение отдельно
Старый 04.01.2008, 12:05   #1  
Rimantas is offline
Rimantas
Участник
 
304 / 16 (1) ++
Регистрация: 30.04.2004
Адрес: Utena , Lithuania
QueryRun обьекты ...
Здраствуйте ...

Проблемы с QueryRun в Fetch'e . Дело в том , что я хочу подставить ranges дважды и в второй раз запрос не работает ... Вот исходник :

X++:
   qr = new QueryRun(q);

   qrg1 = qr.query().dataSourceTable(TableNum(ProdJournalProd)).addRange(fieldNum(ProdJournalProd,TransDate));
   qrg1.value(queryRange(startDate, endDate));

   while (qr.next())
   {
      prodJournalTable = qr.get(tablenum(prodJournalTable));
      prodJournalProd  = qr.get(tablenum(prodJournalProd));
      inventDim        = qr.get(tablenum(InventDim));
      prodTable        = qr.get(tablenum(ProdTable));

     // ... делаем свои дела ....
   }

   if ( lVkd )
   {

      qr2 = qr.newObject( q );
      qrg1 = NULL;
      qr   = NULL;

      qrg2 = qr2.query().dataSourceTable(TableNum(ProdTable)).addRange( fieldNum(ProdTable,DlvDate) );
      qrg2.value(queryRange(startDate, endDate));

      while ( qr2.next() )
      {
         inventDim        = qr2.get(tablenum(InventDim));
         prodTable        = qr2.get(tablenum(ProdTable));

     // ... делаем свои дела .... 

      }
   }
как видно , впервые собираю данные по ProdJournalProd , а потом ещё по ProdTable . В DataSources рапорта таблицы соеденные - порядок - ProdTable -> ProdJournalTable -> ProdJournalProd -> InventDim . Проблема в том , что qr2 неперебивает qr , qr2 дает только те записи , которые уже есть по первыми условиями - qr . Есть такое впечатление , что в fetch'e можно использовать только один queryRun ...

Спасибо заранее ! С уважением , Римантас

Последний раз редактировалось Rimantas; 04.01.2008 в 12:07.