Показать сообщение отдельно
Старый 01.07.2004, 14:02   #5  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Дело в том что я использую стандартный класс унаследованный от RunBaseReport.
И в методе InitQuery я ставлю Range'и выглядит это так :

X++:
public Query initQuery()
{
    Query   query;
    QueryBuildDataSource  qbds,qbds1;
    ;
    query = super();
   
      query.dataSourceTable(TableNum(LedgerJournalTrans)).findRange(fieldNum(LedgerJournalTrans,AccountType)).value(QueryValue(2));

      qbds  = query.adddataSource (tablenum(LedgerJournalTrans));
      qbds.addrange (fieldId2Ext(fieldNum(LedgerJournalTrans,Dimension),3)).value("ОТВ*");

      qbds1 = qbds.addDataSource(tablenum(LedgerJournalTrans));
      qbds1.relations(true);
      qbds1.joinMode(JoinMode::NoExistsJoin);
      qbds1.addrange (fieldId2Ext(fieldNum(LedgerJournalTrans,Dimension),3)).value("ОТВ-00");
я стал пробовать и он мне выдал кучу строк на 100 листов (кстати фильтр не сработал) т.е.
}qbds.addDataSource -- добавляет мне лишние Датасоурсы. У меня ДатаСоурс определен в отчете.

Сработал такой вариант :
X++:
public Query initQuery()
{
    Query   query;
    QueryBuildDataSource  qbds,qbds1;
    ;
    query = super();
   
      query.dataSourceTable(TableNum(LedgerJournalTrans)).findRange(fieldNum(LedgerJournalTrans,AccountType)).value(QueryValue(2));

      qbds  = query.dataSourceTable(tablenum(LedgerJournalTrans));
      qbds.addrange (fieldId2Ext(fieldNum(LedgerJournalTrans,Dimension),3)).value("ОТВ*");
      qbds1 = qbds;
      qbds1.relations(true);
      qbds1.joinMode(JoinMode::NoExistsJoin);
      qbds1.addrange (fieldId2Ext(fieldNum(LedgerJournalTrans,Dimension),3)).value("ОТВ-00");
}
В этом случае он формирует правильное количество трок с фрагментом "ОТВ" но и с "ОТВ-00"