У меня есть отчет с параметрами DateFrom
и DateTo
. Оба являются календарями - вы можете выбрать дату с точностью до дня.
Один из наборов данных в отчете - многомерный. Я использую strtoset
, чтобы передать ему диапазон дат, и выражение для аргумента strtoset
выглядит следующим образом:
= "([Test Run].[Complete Date Hierarchy By Month].[Date].&[" & Format(Parameters!FromDate.Value, "yyyy-MM-dd") & "T00:00:00]:[Test Run].[Complete Date Hierarchy By Month].[Date].&[" & Format(Parameters!ToDate.Value, "yyyy-MM-dd") & "T00:00:00])"
Проблема в том, что если дата начала и дата окончания не являются членами в измерении, запрос возвращает все значения NULL.
Есть ли способ настроить дату, указанную пользователем, на ближайший существующий член в измерении, вперед (для From) или назад (для To)?
Обновлено: теперь я пытаюсь сгенерировать набор значений даты в диапазоне [From: To) с помощью фильтра. Это работает в том смысле, что не вызывает ошибок, но результат отличается от того, что было у меня с strtoset()
. Теперь в предложении Where есть следующее:
filter([Test Run].[Complete Date Hierarchy By Month].[Date],
[Test Run].[Complete Date Hierarchy By Month].currentmember.member_value >= CDate('2017-10-01') and
[Test Run].[Complete Date Hierarchy By Month].currentmember.member_value < CDate('2018-07-01'))
И я получаю немного другие цифры. Как такое вообще возможно?
FILTER([Test Run].[Complete Date Hierarchy By Month].[Date],
[Test Run].[Complete Date Hierarchy By Month].[Date].CurrentMember.Member_Value >= CDate('2018-01-01') and
[Test Run].[Complete Date Hierarchy By Month].[Date].CurrentMember.Member_Value < CDate('2018-04-01'))