Показать сообщение отдельно
Старый 24.07.2009, 10:55   #1  
LMA is offline
LMA
Участник
 
22 / 16 (1) ++
Регистрация: 16.09.2004
Адрес: Воронеж
Отчет по данным из нескольких компаний
Добрый день.
Ax 3.0 SP3, MS SQL 2005.
Имеется отчет с запросом из двух сгруппированных таблиц, соединенных по NotExistsJoin. Чтобы обойти компании, перекрываю fetch отчета:
X++:
public boolean fetch()
{
    boolean     ret;
;

    while select departmentDataArea
        where departmentDataArea.Department == department
    {
        changeCompany(departmentDataArea.Id)
        {
            if(this.queryRun())
            {
                  this.queryRun.query().dataSourceTable(TableNum(SalesPricingCD)).
                                   company(departmentDataArea.Id);
                  this.queryRun.query().dataSourceTable(TableNum(HistoryUpdateRetailPrice)).
                                   company(departmentDataArea.Id);
            }

            ret = super();

            if(!ret) return ret;
        }
    }
    return ret;
}
Чтобы не повторялись prompt-ы, внесены соответствующие изменения в другие методы.
Есть следующая проблема: при переходе к очередной компании (например к AMP после AL), меняется company только у первой таблицы, а у второй всегда остается одинаковой (привожу запрос из журнала трассировки операторов SQL):

SELECT COUNT(A.RECID),A.APPROVEUSERID FROM SALESPRICINGCD A WHERE ((A.DATAAREAID='amp') AND (A.STATUS=1)) AND NOT EXISTS (SELECT 'x' FROM HISTORYUPDATERETAILPRICE B WHERE ((B.DATAAREAID='al') AND (A.INVENTSERIALID=B.INVENTSERIALID))) GROUP BY A.DATAAREAID,A.APPROVEUSERID ORDER BY A.DATAAREAID,A.APPROVEUSERID OPTION(FAST 11)

В чем моя ошибка?