Oracle Apex - 动态检查不在报告中的复选框项目

Posted

技术标签:

【中文标题】Oracle Apex - 动态检查不在报告中的复选框项目【英文标题】:Oracle Apex - Dynamically check checkbox item that is not within a report 【发布时间】:2012-10-16 13:27:00 【问题描述】:

我的页面上有一个复选框项目(注意:这不在报告中),我想在页面加载时动态检查复选框。我有一个表,其中包含所有复选框类型和一个表,该表标识用户可以访问或更好的术语应该检查哪些复选框。

我的问题是,在 Apex 复选框项目中,您如何告诉它动态检查复选框。我让它在报告中工作,我的查询如下所示:

SELECT at.name AS TITLE,
     CASE
         WHEN at.name IN (SELECT atp.name FROM preferences p) THEN apex_item.checkbox(1,at.value,'CHECKED')
         ELSE apex_item.checkbox(1,at.value, 'UNCHECKED')
      END AS CHECKBOX
FROM access_types at

我可以在 oracle apex 复选框项目中执行类似的操作吗?

【问题讨论】:

你可以使用一点javascript来检查一个复选框。 @Annjawn,javascript 将是一个选项,但我需要参考我的首选项表来查看应该选中哪个复选框。我怎样才能使用 javascript 做到这一点? 一个简单的解决方案可能是隐藏字段并使用首选项表值填充字段。一旦隐藏字段具有值,javascript 就可以轻松读取该字段并根据该字段的值选中复选框。 @Annjawn,谢谢。这会奏效。您无法预先选中复选框项目列表上的复选框,这似乎很奇怪。这似乎对 oracle apex 中的 Web 开发人员很重要 【参考方案1】:

不确定这是否是您想要的,但如果您只需要在页面加载时初始化一个复选框项目,您可以:

1 - 使用复选框项目的 Source 属性并设置以下属性:

来源使用Always, replacing any existing value in session state 来源类型SQL Query (return single value)SQL Query (return colon separated value) 取决于您的复选框项目是否包含多个复选框。 源值或表达式:返回正确值的查询。

2 - 使用 Before 标头计算 来计算您的项目:

计算项:您的复选框项 计算点Before header 计算类型SQL Query (return single value)SQL Query (return colon separated value) 取决于您的复选框项目是否包含多个复选框。 计算:返回正确值的查询。

注意:我也在报告中使用复选框,但我注意到当你有很多行时,它比使用简单的 html 复选框要慢得多,所以如果您认为您的报告很慢,我建议您从查询中生成简单的 HTML 复选框:

SELECT
  at.name AS TITLE,
  CASE WHEN at.name IN (SELECT atp.name FROM preferences p) THEN
    '<input type="checkbox" value="'||at.value||'" checked="checked" />'
  ELSE
    '<input type="checkbox" value="'||at.value||'" />'
  END AS CHECKBOX
FROM
  [...]

【讨论】:

以上是关于Oracle Apex - 动态检查不在报告中的复选框项目的主要内容,如果未能解决你的问题,请参考以下文章

在交互式报告中动态隐藏/显示区域(Oracle APEX 5.1)

Oracle APEX 中的卡片报告

Oracle Apex 日期选择器行为异常

Oracle APEX 4.2 经典报告中的自定义搜索

Oracle APEX 交互式报告中的错误 - ORA-01427:单行子查询返回多于一行

如何获取要显示在 Oracle APEX 交互式报告中的图像或链接?