Crystal-динамическая группа по месяцам неделя год на основе отклика параметра

У меня есть отчет, который в настоящее время сгруппирован по «дню» для выбранного диапазона дат.
Но другие люди хотят запустить один и тот же отчет за другой период времени, т. е.
День, неделя, месяц, год etc.

Я хочу предложить этот выбор через день параметра, неделю, месяц и т.д., Но я не знаю формулу, чтобы написать в разделе группы….

if {@Group By Period Formula} = "DAY" 
then (formula for daily) else
if {@Group By Period Formula} = "WEEK" 
then (formula for weekly) else
if {@Group By Period Formula} = "MONTH" 
then (formula for monthly) else

Я не знаю формуалсфор ежедневное, еженедельное, ежемесячное

1 ответ

    1. Создайте параметр GroupBy с тремя значениями «Weekly»,»Monthly», «Daily».
    2. Создайте формулу Group1Formula со следующим кодом-измените имя таблицы и столбца на используемое поле даты

      if {?groupby} = "Monthly" then
      date(year({Command.date}),month({Command.date}),1)
      else if {?groupby} = "Weekly" then
      dateadd("ww",datepart("ww",{Command.date})-1, date(year({Command.date}),1,1)- dayofweek(date(year({Command.date}),1,1)+0))
      else if {?groupby} = "Daily"
      then {Command.date}

      — Эта формула оценивает параметр, и если параметр «monthly», формула выводит месяц и год из поля date. Если параметр недельный, он выводит начало недели, в которой находится день. т. е. 1 1 2016 является неделей 12 26 2015-примечание если ваш день недели отличается от этого, могут потребоваться дополнительные корректировки. Если параметр «daily», формула выводит поле даты без каких-либо изменений

    3. Щелкните отчет, Группа Эксперт, добавьте формулу «Group1Formula» в качестве группы. Нажмите кнопку Параметры и выберите для каждого дня формула будет обрабатывать группировку — мы не хотим, чтобы эксперт группы что-либо делать.

    `[Введите описание изображения здесь
    Введите описание изображения здесь
    Введите описание изображения здесь