Cognos Report Studio - для цикла?
У меня есть пакет COGNOS для данных о процессах в моей компании. Все они имеют дату начала, а незавершенные процессы не имеют даты окончания. Процесс активен в дату x, если дата начала предшествует x, а дата окончания - после x или является пустой. Пакет не имеет временного ряда.
Компании нужен отчет с количеством активных процессов в конце каждого месяца за последние два года. Не имея временных рядов для повторения, я должен был быть креативным. Я создал 24 элемента данных, каждый из которых имеет следующую формулу:
IF (([Start Date] <= _last_of_month(_add_months(current_date;-1))) and
(([End Date] is missing) or
([End Date] > _last_of_month(_add_months(current_date;-1)))))
THEN (1) ELSE (0)
... вычитая от 1 до 24 месяцев. Затем я добавил каждый столбец в перекрестную таблицу отчета.
Ну, это решение действительно безобразно и немыслимо. Есть ли способ выполнить итерацию переменной в Report Studio, создавая строку или столбец для каждой итерации?
Спасибо!
1 ответ
Вы можете моделировать временные ряды в Report Studio. Есть несколько вариантов:
Если вам разрешено SQL в RS. Создайте тему запроса, например:
select _last_of_month(_add_months(current_date;-1)) as Month union all select _last_of_month(_add_months(current_date;-2)) as Month union all ....
Создайте тему запроса из существующей таблицы с датами. Элемент запроса [Месяц]
_last_of_month([date_field])
Фильтровать это по
[date_field] < _add_months(current_date;-24)
и проверьте, чтобы свойство запроса "Автогруппа и суммирование" было установлено "Да". Будьте осторожны, выбирайте маленький, но плотный столик в качестве источника.
Создайте тему запроса на основе любой существующей таблицы с более чем 24 строками. Добавить элемент запроса с выражением
1
Назовите это "1", а также. Добавьте еще один QI, назовите его [Back], выражение
running-total([1])
Фильтруйте это:
[Back] <= 24
Добавьте еще один QI с выражением
_last_of_month(_add_months(current_date;-[Back]))
Это ваше поле [Месяц]
Затем присоедините этот предмет запроса к вашему списку процессов по условию
[Time series].[Month] > [Process].[Start Date] and
([Time series].[Month] < [Process].[End Date] or [End Date] is missing)
Чем просто считать строки для каждого [Месяца]