Показать сообщение отдельно
Старый 18.04.2007, 17:32   #8  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
X++:
public void executeQuery()
{
    QueryBuildDataSource qbds;
    QueryBuildRange      qbdsrange3;
    QueryBuildDataSource qbds1;
    str                  _rangeClose;

    QueryBuildDataSource qbdsStd;
    QueryBuildRange      qbrStatus;

    ;
    //запрос по таблице РБП

    qbds1 = this.query().dataSourceTable(tableNum(RDeferralsTable));
    qbds1.clearRanges();
    qbds1.clearLinks();
    if (!this.query().dataSourceTable(tableNum(RDeferralsBook)))
    {
        if (Cat_OpenDef.value() == NoYes::No)
        {
            qbdsStd =  qbds1.addDataSource(tablenum(RDeferralsBook));
            qbdsStd.joinMode(JoinMode::ExistsJoin);
            qbdsStd.relations(true);
            qbrStatus =qbdsStd.addRange(fieldnum(RDeferralsBook,Status));
            qbrStatus.value(enum2str(RDeferralsStatus::Open));
        }
    }
    else
    {
        qbdsStd =  qbds1.addDataSource(tablenum(RDeferralsBook));
        qbdsStd.joinMode(JoinMode::ExistsJoin);
        qbdsStd.relations(true);
        qbrStatus =qbdsStd.addRange(fieldnum(RDeferralsBook,Status));
        qbrStatus.value('');

    }
    super();

}
Идет куда надо, но qbds1.addDataSource(tablenum(RDeferralsBook)); все равно игнорирует, он вообще
qbdsStd = qbds1.addDataSource(tablenum(RDeferralsBook)); расценивает как один запрос и не соединяет его с первичным запросом
qbds1 = this.query().dataSourceTable(tableNum(RDeferralsTable));

Т.е. на выходе у него появляется 2 отдельных запроса qbds1 и qbdsStd , а они должны были соединиться.

А может причина в том, что RDeferralsTable является DS формы, а RDeferralsBook - нет?

Последний раз редактировалось Arahnid; 18.04.2007 в 17:40.