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)