Использование макросов подсказок в 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 г.