【发布时间】:2015-02-10 15:26:00
【问题描述】:
是否可以为交互式报表的每一行创建一个单选按钮字段或一个复选框字段?
如果上述情况可行,请提交将用户带到另一个包含不同表格的报告的选定行?
请解释一下这是怎么可能的?
非常感谢
【问题讨论】:
标签: forms report oracle-sqldeveloper oracle-apex interactive
是否可以为交互式报表的每一行创建一个单选按钮字段或一个复选框字段?
如果上述情况可行,请提交将用户带到另一个包含不同表格的报告的选定行?
请解释一下这是怎么可能的?
非常感谢
【问题讨论】:
标签: forms report oracle-sqldeveloper oracle-apex interactive
如果要创建需要使用的复选框,可以使用apex_item 创建项目:
APEX_ITEM.CHECKBOX2( p_idx IN NUMBER
, p_value IN VARCHAR2 DEFAULT NULL
, p_attributes IN VARCHAR2 DEFAULT NULL
, p_checked_values IN VARCHAR2 DEFAULT NULL
, p_checked_values_delimiter IN VARCHAR2 DEFAULT ':'
, p_item_id IN VARCHAR2 DEFAULT NULL
, p_item_label IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;
您可以在here 中看到多个示例,如果您想要一个带有自定义复选框的 IR,您可以这样做:
SELECT APEX_ITEM.CHECKBOX2(1,empno) "Select"
, ename
, job
FROM emp
ORDER by 1
如果我在用户选择任意数量的复选框后理解正确,他可以单击一个按钮以显示另一个报告,您将需要选中的复选框。实现这一目标的一种方法是:
创建一个进程以将选中的复选框添加到集合中
BEGIN
apex_collection.create_or_truncate_collection(p_collection_name => 'col_tmp');
FOR I in 1..APEX_APPLICATION.G_F01.COUNT
LOOP
apex_collection.add_member( p_collection_name => 'col_tmp'
, p_c001 => APEX_APPLICATION.G_F01(i));
END LOOP;
END;
创建一个分支到包含另一个报告的页面。在此页面中,您可以使用您选择的集合来显示正确的信息:
SELECT e.ename
, e.job
, d.dname
FROM EMP e,
DEPT d
WHERE e.deptno = d.deptno
AND empno IN (SELECT C001
FROM apex_collections
WHERE collection_name = 'COL_TMP')
注意:在选择中,您必须使用大写的集合名称。
【讨论】: