![]() |
#6 |
Участник
|
Пустое значение для фин. аналитике в двенашке - это отсутствие записи с кодом аналитики в таблице DimensionAttributeValueSetItem для соответствующего набора кодов (DefaulDimension)
И, если посмотреть в код метода \Classes\DimensionProvider\addAttributeFilterToQuery (который и вызывается в конечном итоге из SysQuery::addDimensionAttributeRange()), то видно, что для пустого значения аналитики (а это SysQuery::valueEmptyString(), а не пустая строка) добавляется фильтр по JoinMode::NoExistsJoin - т.е. как раз таки будут найдены все комбинации аналитик, для которых нет записей с этой аналитикой Ну и если посмотреть, как добавляется фильтр, если значение отличается от SysQuery::valueEmptyString(), то видно, что датасорс со значениями аналитик подключается через JoinMode::OuterJoin, а сами значения в запрос передаются как фильтр к Query (т.е. попадают в предложение where). Если бы Аксапта поддерживала сиквельный null, то комбинацию "пустой" аналитики ИЛИ с какими-либо значениями можно было бы указать прямо в фильтре. Но, увы, с нашей данностью для этого придется делать юнион
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: Михаил Андреев (5), mazzy (63), Владимир Максимов (10), Logger (3), A_BAS (2), arhat (1). |