Показать сообщение отдельно
Старый 27.03.2017, 12:38   #5  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
870 / 637 (23) +++++++
Регистрация: 14.10.2004
Вот такой код в AX2012 выводит в инфолог две строки. В самом конце первой строки виден пользовательский фильтр WHERE ((SalesTable(SalesTable).SalesId = N'SO00011745' OR SalesId = N'SO00011746')).
1) SELECT FIRSTFAST * FROM SalesTable(SalesTable) ORDER BY SalesTable.SalesId ASC WHERE ((NOT (ReturnStatus = 4) AND NOT (ReturnStatus = 1))) OUTER JOIN Person, Person FROM HcmWorker(Ref_HcmWorker_WorkerSalesTaker_FK) ON SalesTable.WorkerSalesTaker = HcmWorker.RecId OUTER JOIN Name, RecId FROM DirPerson(Ref_DirPerson_WorkerSalesTaker_FK_DirPerson_FK) ON HcmWorker.Person = DirPerson.RecId WHERE ((SalesTable(SalesTable).SalesId = N'SO00011745' OR SalesId = N'SO00011746'))

Во второй строке выводятся range, пользовательские фильтры в range не попадают.
2) !Отменено, !Создано

X++:
void new(FormRun _callerFormRun,)
{
    Query                   localQuery;  
    FormDatasource          formDatasource;
    int                     i;
    ;
    
    formDatasource = _callerFormRun.dataSource(1);
    localQuery  = formDatasource.queryRun().Query();
    info(localQuery.datasourceNo(1).toString()); 
    for (i = 1; i <= localQuery.dataSourceNo(1).rangeCount(); i++)
    {
        info(localQuery.dataSourceNo(1).range(i).value()); 
    }
}