2014-02-11 4 views
1

У меня есть 2-месячные подсказки. Если я не выберет год-месяц в первом приглашении, отчет должен по умолчанию запускаться с января того же года, выбранного во втором приглашении. Мои подсказки представляют собой подсказки значений и имеют строковые значения. Пожалуйста, помогите мне материализовать это требование. Я уже пробовал # prompt macro,? Prompt ?, case, когда и т. Д. Я не уверен, если javascript поможет.переход Янв выбранного года по умолчанию в подсказке

ответ

0

Я собираюсь предположить, что ваши базовые поля даты не сохраняются как типы значений DATE, так как вы используете строки. Это может быть проще разделено на 4 подсказки: от месяца, от года до месяца и до года.

Фильтр будет затем подразумеваемой, если:

(
(?FROM_YEAR? = '' or ?FROM_MONTH? = '') and 
[database_from_month] = '01' and 
[database_from_year] = ?TO_YEAR? and 
[database_to_month] = ?TO_MONTH? and 
[database_to_year] = ?TO_YEAR? 
) 
OR 
(
(?FROM_YEAR? <> '' or ?FROM_MONTH? <> '') and 
[database_from_month] = ?FROM_MONTH? and 
[database_from_year] = ?FROM_YEAR? and 
[database_to_month] = ?TO_MONTH? and 
[database_to_year] = ?TO_YEAR? 
) 

выше фильтр стиль превосходит по многим причинам:

  • Более вероятно sargeable
  • Легко понять
  • Использует простые встроенные функции Cognos; скорее всего, не будет кросс-версии, совместимые
  • Нет с поддержкой кросс-браузерной вопросы вы получите с Javascript
  • Фрагмент кода будет работать в других студиях Cognos (Business Insight и т.д.)

Вы вероятно замеченные операторы CASE в фильтрах вызывают ошибку. Оператор CASE передается SQL, а не компилируется в оператор SQL через Cognos. Следовательно, это не рассматривается как правильный синтаксис.

+0

, ваше решение выглядит очень хорошо. Но поскольку мы должны поддерживать согласованность между отчетами, мы должны предоставлять подсказки даты в формате YYYY-MM (в формате строки, который находится во временном измерении). Я бы по-прежнему пытался разместить свою ситуацию, используя ваш код. Спасибо. – Rashmi

+0

Можно использовать одно приглашение для FROM и TO, это было просто проще объяснить именно так. Просто проанализируйте его. Если это поможет, пожалуйста, примите ответ и подтвердите. – toddsonofodin

+0

Рассмотрите возможность создания таблицы календаря с полем FIRST_DAY_OF_YEAR на уровне YEAR, поле «YYYY-MM» на уровне месяца. – Damienknight

 Смежные вопросы

  • Нет связанных вопросов^_^