Фильтр для отчета с опциями для относительных дат выдает ошибки - PullRequest
0 голосов
/ 18 апреля 2019

Я создаю фильтр для отчета в студии отчетов Cognos, в которой используются параметры со страницы приглашения.Идея состоит в том, чтобы предоставить пользователю, который будет работать с отчетом, возможность указать дату начала и дату окончания (и выбрать только командировки в течение этого периода), а также иметь возможность выбора относительных сроков в случае, если отчетбудет запланировано.

У меня было несколько синтаксических ошибок, о которых я ... обратил внимание, или, по крайней мере, я так думал.При проверке фильтра он даже открывает страницу с подсказкой, но после выбора значения он выдает ошибки типа:

UDA-QOS-0006 Ошибка UDA-SQL-0219 Функция "getdate" используется длялокальная обработка, но недоступная как встроенная функция, или хотя бы один из ее параметров не поддерживается

QE-DEF-0459 CCLException RQP-DEF-0177 Произошла ошибка при выполнении операции 'sqlPrepareWithOptions'статус = '- 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 Ответ

0 голосов
/ 18 апреля 2019

«При проверке фильтра» - вы фактически запускаете функцию «проверки» для всего отчета. Хотя кнопка находится в диалоговом окне «Выражение фильтра», она не связана с выражением фильтра, которое вы просматриваете в настоящее время.

Принимайте ошибки в порядке их перечисления. Исправление первой ошибки часто приводит к исчезновению всех остальных ошибок.

  1. Найдите причину, по которой отчет считает, что она ограничена локальной обработкой.
  2. Ищите причину, по которой он не может найти 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)
...