Я не знаю вашей конкретной ситуации, но способ, которым мы справляемся с этим (особенно для заданных периодов по сравнению с заданным пользователем диапазоном дат), заключается в возможности установить значения по умолчанию.
Наша основная средаБОЕ XI.
Нашими параметрами могут быть ReportPeriod (String Variable) и CustomDates (DateTime Range, но они будут работать как две отдельные даты)
Примером параметров для ReportPeriod могут быть 1 день 7 дней в прошлом месяце Пользовательские даты
Формулы используются для расчета пределов дат, которые будут использоваться при выборе записи.Я начну с КОНЕЧНОЙ ДАТЫ, так как это удобно для наших периодических отчетов.
@EndDate
Select ?ReportPeriod
Case
"1 Day", "7 Days" : CurrentDate
// Conveniently defaults to MIDNIGHT
"Last Month" : Maximum(LastFullMonth)
"CustomDates" : Maximum(?CustomDates)
// Or discrete parameter for end date
default : CurrentDate
@BeginDate
Select ?ReportPeriod
Case
"1 Day" : DateAdd("d", -1, @EndDate)
"7 Days" : DateAdd("d", -7, @EndDate)
"Last Month" : Minimum(LastFullMonth)
"CustomDates" : Minimum(?CustomDates)
// Or discrete parameter for end date
default : DateAdd("d", -1, @EndDate)
И позвольте мне предостеречь от использования CurentDateTime, если это не нужно.Каждый раз, когда вы пытаетесь просмотреть отчет, выбор будет меняться: 5:01:10 ... 5:01:16 ... 5:01:24 ... ... 1012 *
Когдапубликуя отчет, мы устанавливаем дату по умолчанию (неважно, что, он используется только для CUSTOM, а затем клиент сбрасывает его), а также ReportPeriod по умолчанию.
Отчет может планироваться периодически (на основе ReportPeriod) и так будет всегда.Если пользователь хочет сделать пользовательские даты (исторические отчеты и т. Д.), Он может выбрать это для отчетного периода, а затем установить любые необходимые даты начала и окончания.
Полезно?