1

我有 ui:checkbox 组
参数的值提示:p_IsLastMonth
名称:Prompt_IsLastMonth
ItemCount:1; UseValue:是,DisplayValue:LastMonth?

和两个日期提示。

Whenever the checkbox is checked, the UseValue 'Yes' is passed to the parameter 'p_IsLastMonth'. 但是,只要复选框保持原样,就会导致错误。

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

我也尝试给出一个默认值。但默认值必须在集合中。但我只想显示一个复选框。

我尝试使用 html 复选框。但是我无法通过javascript将值“是或否”发送给参数,因为完成按钮会覆盖该值。

有什么帮助吗?

4

3 回答 3

1

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

  1. 评估参数值
  2. 根据参数值评估表达式。

无论哪种方式,您的 Parameter 都有一些价值,没有价值是一种价值。你需要以某种方式迎合空值。例如:

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

或者

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

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

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

于 2014-07-25T14:43:22.427 回答
0

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

  1. 创建一个真正的 cognos 参数,该参数具有您需要的两种选择 Yes/No 并且 no 是默认值。可能将它们放在报表/参数画布主要不动产的某个地方的 html 表格中。配置好参数后,您可以根据需要将大小设置为尽可能小,然后通过将 visible 属性设置为 no 来使表格/复选框不可见。基本上用户不会看到这些参数。不要做 box-type = non 否则参数甚至不会生成。您也可以等待隐藏它们,直到我们完成第 3 步(使其更容易排除故障)。

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

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

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

* 如果我没记错的话,另一种不太令人印象深刻的方法.. 1. 单独保留您原来的 cognos 样式复选框,并创建另一个始终默认为“-NO-”并隐藏在画布上的 cognos 提示。2. 在用于评估参数的表达式中,将评估两个参数的串联值,您可以根据这些值采取逻辑行动。因此,如果连接的结果是“-No-”,那么您知道原始参数没有被选择并使用“No”。等等......我相信在表达式编辑器中正确评估它可能会有细微差别,但我之前也有过这种情况。*所以我的情况是,如果连接结果的前3个字符=“是”,则“是”,否则为否。

于 2013-01-12T14:28:42.920 回答
0

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

于 2010-04-20T11:31:02.380 回答