Взгляните на каскадные параметры .
Кажется, что приведенная выше ссылка больше ориентирована на получение значений каскадных параметров из запроса, но вы, вероятно, не хотите, чтобы это было для даты- Насколько мне известно, установка Доступных значений для параметра даты ограничивает вас выпадающим списком дат вместо календаря, который, как правило, проще в использовании.Это все еще хороший фон для того, как работают каскадные параметры.
Чтобы сделать это с выражениями для начальной / конечной даты по умолчанию, вы бы хотели, чтобы первым параметром был выбор между «Текущая неделя», «Предыдущая неделя »и« Пользовательский диапазон дат ».Вы могли бы отображать эти метки пользователю, но значения могут быть любыми - для моего теста я просто использовал 1, 2 и 3.

Затем вы должны установить еще 2 параметра, один для даты начала и один для даты окончания.Убедитесь, что тип данных - Дата.Вам нужно установить значения по умолчанию для них на основе значения первого параметра.Я бы сделал это с таким выражением, как выражение ниже для даты начала.Вам также может потребоваться изменить это немного в зависимости от того, как вы определяете неделю - это «Текущая неделя» только за предыдущие 7 дней, или это последний понедельник по сегодняшний день, или что-то еще, и т. Д.
=Switch(
Parameters!FirstParam.Value = 1, DateAdd("d", -7, Today()),
Parameters!FirstParam.Value = 2, DateAdd("d", -14, Today())
)
В этом случае вам даже не нужно учитывать третий вариант, потому что, если пользователь хочет настраивать диапазон дат, вы не хотите, чтобы начальная и конечная даты заполнялись какими-либо значениями по умолчанию.Вам также понадобится аналогичное выражение для даты окончания по умолчанию.
Поскольку вы хотите, чтобы пользователь мог также вводить пользовательский диапазон, если бы он выбрал третий вариант, заполнять его не нужнов Доступных значениях для параметров даты начала / окончания, так как тогда пользователь не сможет выбрать какую-либо дату (по крайней мере, насколько мне известно - если есть обходной путь, я хотел бы видеть ее, какэто было бы то, что я хотел бы использовать сам).
Возможным недостатком этого подхода является то, что если пользователь начинает с выбора «Текущая неделя», а затем меняет свое мнение на «Предыдущая неделя», даты начала / окончания не будутперейти на предыдущую неделюВы можете прочитать больше о том, почему это происходит здесь , но по существу: поскольку значения, которые уже заполнены после выбора текущей недели, все еще действительны (они являются датами, что является единственным критерием для этих параметров, поскольку недоступнозначения установлены), они не будут обновляться после изменения выбора.Исправление для этого состоит в том, чтобы определить Доступные значения, но как упомянуто выше, это тогда остановит пользователя от ввода пользовательского диапазона дат.