#report #expression #cognos #cognos-10
#Сообщить #выражение #когнос #cognos-10
Вопрос:
Я создаю фильтр для отчета в cognos report Studio, который использует параметры со страницы приглашения. Идея состоит в том, чтобы предоставить пользователю, который будет запускать отчет, возможность указать дату начала и дату окончания (и выбрать только деловые поездки в течение этого периода времени), а также иметь возможность выбора относительных временных рамок на случай, если отчет будет запланирован.
У меня было несколько синтаксических ошибок, которые я … исправил, или, по крайней мере, я так думал. При проверке фильтра он даже открывает страницу запроса, но после выбора значения он выдает ошибки, такие как:
Ошибка UDA-QOS-0006 UDA-SQL-0219 Функция «getdate» используется для локальной обработки, но недоступна как встроенная функция, или по крайней мере один из ее параметров не поддерживается
QE-DEF-0459 Исключение CCLException RQP-DEF-0177 При выполнении операции ‘sqlPrepareWithOptions’ произошла ошибка status=’-126′. UDA-SQL-0219 Функция «getdate» используется для локальной обработки, но недоступна как встроенная функция, или по крайней мере один из ее параметров не поддерживается
RSV-VAL-0004 Не удалось найти информацию запроса для элемента Общее количество часов за границей для отчета.
Последнее, по-видимому, повторяется для каждого элемента данных в отчете. Выражение фильтра, которое я использую, приведено ниже:
CASE ?RelativeTimePrompt?
WHEN 'SelectTimeframe' THEN
([Arrival Date/Time] between ?TravelDateIntervallStart? and ?TravelDateIntervallEnd?
AND
[Departure Date/Time] between ?TravelDateIntervallStart? and ?TravelDateIntervallEnd?)
WHEN 'Last12m' THEN ( [Arrival Date/Time] between _add_days(getdate (),-365) and (getdate ()) AND [Departure Date/Time] between _add_days(getdate (),-365) and (getdate ()))
WHEN 'Last6m' THEN ( [Arrival Date/Time] between _add_days(getdate (),-183) and (getdate ()) AND [Departure Date/Time] between _add_days(getdate (),-183) and (getdate ()))
WHEN 'YTD' THEN ( [Arrival Date/Time] between _add_days(getdate (),((_day_of_year(getdate ())-
1)*-1)) and (getdate ()) AND [Departure Date/Time] between _add_days(getdate (),((_day_of_year(getdate ())-
1)*-1)) and (getdate ()))
END
Ответ №1:
«При проверке фильтра» — вы фактически запускаете функцию «проверить» для всего отчета. Хотя кнопка находится в диалоговом окне Выражение фильтра, она не связана с выражением фильтра, которое вы просматриваете в данный момент.
Найдите ошибки в том порядке, в котором они перечислены. Исправление первой ошибки часто приводит к исчезновению всех других ошибок.
- Найдите причину, по которой отчет считает, что он ограничен локальной обработкой.
- Найдите причину, по которой он не может найти
Total Hours Abroad for Report
.
Кроме того, вы рассматривали возможность упрощения вашего заявления о случае?
WHEN 'Last12m' THEN [Arrival Date/Time] >= _add_years (current_date, -1)
WHEN 'Last6m' THEN [Arrival Date/Time] >= _add_months (current_date, -6)
WHEN 'YTD' THEN _year([Arrival Date/Time]) = _year (current_date)
Комментарии:
1. Похоже, что каким-то образом виновником была функция getdate(), во всяком случае, с вашим предложенным упрощенным описанием случая она работала без проблем до сих пор! Огромное спасибо!