Использование макросов подсказок в Cognos
Рори Корнелиус
Вы когда-нибудь получали запрос на приглашение, которое дает возможность выбрать дату, но по умолчанию также указывает на текущий день? Типичный синтаксис вопросительного знака (например, ?date_prompt?) просто не очень хорошо справляется с этим. Что должен делать разработчик Cognos? В этой статье я покажу вам, как использовать макросы подсказок в Cognos для достижения этой цели и многих других более сложных требований к отчетности.
Макросы подсказок определены
Давайте начнем со структуры макроса подсказки и определим каждый из различных параметров:
#prompt/promptmany(‘parameterName’, ‘dataType’, ‘defaultValue’, ‘leadingText’, ‘source’, ‘tailingText’)#
имя_параметра — это просто название используемого вами параметра. Это будет то же имя, которое вы ставите между вопросительными знаками в обычном приглашении (например, ?parameterName?).
dataType — должен быть одним из стандартных типов данных Cognos. По умолчанию используется String.
defaultValue — необязательно. Если это предусмотрено в макросе, приглашение становится необязательным. Он должен соответствовать предоставленному типу данных.
leadingText — также необязателен и используется в качестве префикса, если для подсказки указано значение. Например, это может быть #prompt('orderYear', 'integer', 'year(getDate())',
'Order_Year = '), что позволит вам динамически добавлять предикат в предложение where в ваш SQL. Если было предоставлено подсказка «2016», макрос преобразуется в «Order_Year = 2016».
источник — можно использовать для создания подсказки в виде дерева или списка. Это может быть имя поля или даже функция. Например,
#prompt('product', 'memberuniquename', ", ", 'filter([cube].[ProductDimension].[ProductHierarchy].[Product],
[Measures].[ Sales]›1000′))# создаст список продуктов на выбор, все из которых имеют Sales больше 1000.
trailingText — аналогичен ведущему тексту, за исключением того, что он идет после значения подсказки. Это может
быть особенно полезным в дополнительном фильтре promptmany.
Использование макросов подсказок в Cognos
Давайте рассмотрим несколько различных примеров того, как можно использовать макрос приглашения.
Пример № 1: Необязательно, по умолчанию текущий год
Типичная нотация вопросительного знака не имеет возможности указать ваши собственные значения. Однако
использование макроса дает нам больше возможностей.
#prompt('year','integer','extract(year, CURRENT_DATE)')#
Теперь указание года является необязательным, и если ничего не выбрано, используется год с текущей
даты.
Пример № 2: Необязательная подсказка множественного выбора
В этом примере мы хотим создать необязательную подсказку с множественным выбором. Сложность заключается в том, что
его нужно добавить в конец существующего фильтра, поэтому часть «и dept_id in» предиката
должна добавляться динамически, если выбран отдел. Вот как будет выглядеть приглашение
:
#promptmany('отделы', 'целое число', 'и 1=1', 'и dept_id в (', ", ')')
Если выбраны «отделы», это добавит полный необходимый оператор: «и dept_id in
(1,2,3)». Если отдел не выбран, добавляется «и 1=1». Этот фиктивный предикат
необходим для того, чтобы приглашение было необязательным. Если в параметре defaultText нет значения,
это сделает подсказку обязательной.
Запрашивать макросы в Cognos с использованием типа данных токена
Другим мощным инструментом, который можно использовать с макросами подсказок, является тип данных токена.
Вместо того, чтобы выполнять какую-либо проверку входных данных, так как «целочисленный» тип данных обеспечивает
уверенность в том, что число введено или аналогично, Тип данных «дата» потребует соответствующего формата
, токен принимает все, что введено. Затем это значение помещается непосредственно в элемент данных
или в фильтр. Вы можете изменять функции или даже элементы данных "на лету" по запросу
.
Давайте рассмотрим пример динамического изменения агрегатной функции. Мы создадим
простой отчет, показывающий доход и валовую прибыль по годам, а затем добавим еще один элемент данных
для нашей совокупности.
Это позволит нам ввести любую функцию, которую мы хотим. Если я наберу «промежуточный итог», вот
результаты:
Или я мог бы ввести «средний»:
Теперь давайте перевернем его и выполним промежуточный итог элемента динамических данных.
Обратите внимание на функцию «sb» в макросе. Это макрофункция, которая добавляет квадратные скобки вокруг всего, что находится внутри. Здесь необходимо получить соответствующий синтаксис для элемента данных. Я мог бы также использовать начальный и конечный текстовые параметры в подсказке для другого варианта.
Теперь, когда я запускаю это для «Дохода», вот результаты:
Бег на «Валовую прибыль»:
Вывод
Это дает потребителю отчета большую гибкость в отношении конечного результата. Мы могли бы легко создать раскрывающийся список со всеми соответствующими агрегатными функциями и еще один для элементов данных, чтобы потребитель мог выбрать его, чтобы сделать его более удобным для пользователя. Я надеюсь, что это поможет вам эффективно использовать макросы подсказок в Cognos для улучшения разработки отчетов.
Подпишитесь на нашу электронную рассылку, чтобы получать больше технических статей и обновлений, доставляемых прямо на ваш почтовый ящик.
"ПОДПИСЫВАТЬСЯ"
Если вы хотите узнать больше о том, как PMsquare может помочь вашей организации, свяжитесь с нами по адресу:
Сообщение в блоге предоставлено PMsquare LLC
Связанный
Теги: Cognos BIIBM Cognos AnalyticsМакросы подсказокРазработка отчетовReport Studio
Первоначально опубликовано на www.pmsquare.com 14 февраля 2017 г.