从“Checkbox组值提示”获取值时出现问题

时间:2010-03-19 10:30:33

标签: cognos

我用ui评价提示:复选框组
参数: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 个答案:

答案 0 :(得分:1)

有两种方法可以使用参数:

  1. 评估参数值
  2. 根据参数值评估表达式。
  3. 无论哪种方式,您的参数都有一些值,没有值是一种值。而且你需要以某种方式迎合空值。例如:

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

    OR

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

    还有其他使用参数的方法。您应该选择一个更适合您所遵循的情境和编码实践的方法。

    您可以使用可选的复选框或文本项。在Cognos 10中,我在复选框组下获得“取消选择”选项。

答案 1 :(得分:0)

不幸的是,我认为只用一个复选框就可以完成你想做的事。您可以保留未选中的值提示并仍然提交提示页面的唯一方法是使其“可选”,这意味着不会传递任何值。一个选项是使用两个复选框并使它们“必需”,以便必须选择“是”或“否”(但这可能导致两者都被选中,这是不好的),或者最好使用一个无线电列表有两个值,默认为“是”。可能有一个javascript答案,但我尽量避免这种情况,因为它有时会让你对版本升级问题持开放态度。使用电台列表是最简单的选择。

答案 2 :(得分:0)

这里有一些可行的方法。我已经使用Cognos完成了高级记分卡和仪表板多年,Javascript可以正常工作:

  1. 创建一个真正的cognos参数,其中包含您需要的两个选项是/否,不是默认值。把它们放在一个html表中,放在报告/ param画布的主要区域之外。一旦你有了paramged的参数,你可以根据需要调整大小,然后通过将visible属性设置为no来使表/复选框不可见。基本上用户不会看到这些参数。不要使用box-type = non或者甚至不会生成参数。您也可以等待他们隐藏它们,直到我们开始执行第3步(更容易进行故障排除)。

  2. 然后创建一个HTML参数,用户将使用该参数以您希望用户看到的样式进行交互,并使用javascript onchange事件通过DOM模型查找真实的隐藏参数。您可以通过使用具有唯一名称/ ID的HTML标记围绕隐藏的参数并从中引用子项来使查找更容易。

  3. 由于您的cognos参数不可见,您甚至可能不需要使用复选框...您可以简单地使用具有存储是/否的隐藏文本框。这将使您的编码在javascript上得到简化,直到您习惯它为止。

  4. 此外,当在Cognos上使用javascript进行编程时,我发现使用alert可以将对象的innerhtml回显到屏幕,同时进行故障排除非常方便。

  5. *另一个不那么令人印象深刻的方法,如果我也记得正确.. 1.单独保留原始的cognos样式复选框,并创建另一个始终默认为&#34; -NO - &#34;并隐藏在画布上。 2.在用于评估参数的表达式中,将评估两个参数的连接值,您可以根据这些值采取逻辑操作。因此,如果结果是&#34; -No - &#34;然后你知道原来的参数没有被选中并使用&#34; No&#34;。等等...我相信在表达式编辑器中正确评估可能会有一些细微差别,但我之前也有这个问题。 * 所以我的情况如果连续结果前3个字符=&#34;是&#34; &#34;是&#34;否则没有。