Неполадка при получении значения из «подсказки значения группы флажков» - PullRequest
1 голос
/ 19 марта 2010

У меня значение подсказки с пользовательским интерфейсом: группа флажков
параметр: p_IsLastMonth
Имя: Prompt_IsLastMonth
ItemCount: 1; UseValue: Да, DisplayValue: LastMonth?

и две подсказки даты.

Когда флажок установлен, UseValue 'Yes' передается параметру 'p_IsLastMonth'. Но если флажок оставлен как есть, это приводит к ошибке.

Element 'selectOptions' is not valid for content model: 'All(style,defaultSelections,conditionalStyles,conditionalRender,XMLAttributes)' 

Я также попытался указать значение по умолчанию. Но значение по умолчанию должно быть в коллекции. Но я хочу, чтобы отображался только один флажок.

Я пробовал с html флажком. Но я не могу отправить значение «да» или «нет» параметру через javascript, потому что, тем не менее, кнопка завершения переопределяет значение.

Любая помощь?

Ответы [ 3 ]

1 голос
/ 25 июля 2014

Существует 2 способа использования параметров:

  1. Оценить значение параметра
  2. Оценить выражение по значению параметра.

В любом случае ваш параметр имеет какое-то значение, и никакое значение не является своего рода значением. И вам нужно каким-то образом обслуживать пустое значение. Например:

 If (?Parameter? <>'') then ([Selection Criteria] = 'True') Else (1=1) 

OR

 ([Selection Criteria] = ?Parameter?) OR ?Parameter? = ''

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

Вы можете использовать дополнительные флажки или текстовые элементы. В Cognos 10 я получаю опцию «Отменить выбор» в группе флажков.

0 голосов
/ 12 января 2013

Ну вот что-то, что будет работать. Я много лет занимался продвинутой системой показателей и дашбординга с Cognos, и Javascript будет работать:

  1. Создайте реальный параметр Cognos, который имеет оба варианта, которые вам нужны Да / Нет, но не по умолчанию. Поместите их, возможно, в HTML-таблицу где-нибудь за пределами основного пространства отчета / параметров холста. После того, как вы настроили параметр, вы можете сделать размер настолько малым, насколько захотите, а затем сделать таблицу / флажок невидимым, установив для свойства visible значение no. В основном пользователи не увидят эти параметры. Не делайте box-type = non, иначе параметр даже не будет сгенерирован. Вы также можете подождать, пока они будут скрыты, пока мы не выполним шаг 3 (упростите поиск и устранение неисправностей).

  2. Затем создайте параметр HTML, с которым пользователь будет взаимодействовать, в стиле, который вы хотите видеть пользователям, и используйте события onchange javascript для манипулирования реальным скрытым параметром, находя его через модель DOM. Вы можете упростить поиск, возможно, окружив скрытые параметры тегом HTML с уникальным именем / идентификатором и указав в нем ссылки на дочерние элементы.

  3. Поскольку ваш параметр Cognos невидим, вам даже не нужно использовать флажок ... вы можете просто использовать скрытое текстовое поле, в котором хранится Да / Нет. Это упростит кодирование на JavaScript, пока вы не привыкнете к нему.

  4. Кроме того, при программировании с использованием javascript на Cognos я нахожу использование оповещения для вывода на экран innerhtml объекта во время устранения неполадок, что очень удобно.

* Еще один менее впечатляющий подход, если я правильно помню ... 1. Оставьте исходный флажок стиля Cognos в покое и создайте еще одно приглашение Cognos, которое по умолчанию всегда имеет значение «-NO-» и скрыто на холсте. 2. В выражениях, используемых для оценки параметров, будут оцениваться значения конкатенации обоих параметров, и вы можете предпринять логические действия на основе этих значений. Таким образом, если объединенные результаты были "-No-", то вы знаете, что исходный параметр не был выбран и использовать "Нет". и т. д. Я считаю, что может быть нюанс для правильной оценки этого значения в редакторах выражений, но у меня и раньше был такой недостаток. * Так что в вашем случае, если в конкатетных результатах первые 3 символа = "Да", то "Да" в противном случае нет.

0 голосов
/ 20 апреля 2010

К сожалению, я не думаю, что вы можете выполнить то, что вы хотите сделать, только с одним флажком. Единственный способ оставить приглашение значения невыбранным и при этом отправить страницу приглашения, это сделать ее «необязательной», что означает, что значение не будет передано. Можно использовать два флажка и сделать их «обязательными», чтобы можно было выбрать «да» или «нет» (но это может привести к тому, что оба будут выбраны, что не очень хорошо), или предпочтительно использовать список радио с двумя значениями и "да" по умолчанию. На этот вопрос может быть ответ javascript, но я стараюсь, насколько это возможно, избегать этого, поскольку это иногда оставляет вас открытыми для проблем с обновлением версии. Использование списка радио-это ваш самый простой вариант.

...