Oracle Apex:在交互式报告中逐步创建单选按钮的方法

tin*_*n28 4 oracle radio-button oracle-apex

是否有一个很好的可视化教程,完成了如何在Apex 4.2中创建单选按钮的各个步骤?本教程在APEX中创建表单以在交互式报表的查询中设置变量 帮助我创建表单,我正在寻找类似的表单.

在我的应用程序中,我想在我的交互式报告的每一行添加一个单选按钮,当选择它时会将用户带到另一个组合不同表的报告中?

任何建议都非常感谢.

谢谢

Ton*_*ews 10

您可以使用列链接选择记录并导航到另一个窗口,或者使用单选按钮和页面按钮/链接来执行此操作.我将使用DEPT表上的简单报告演示两者.

方法1:单选按钮

对于单选按钮,我们可以使用该apex_item.radiogroup函数为报告添加一个额外的列,以创建一个值为DEPTNO的单选按钮:

报告SQL语句

默认情况下,出于安全原因,Radigroup的HTML将被转义,这不是您想要的,但是很好地说明了它的作用:

报告

我们可以通过将列属性更改为"标准报告列"来解决此问题:

更改列类型

现在我们看到:

修复后报告

单击任何行上的单选按钮选择它并取消选择其他行上的按钮.

要导航到包含所选行的另一个页面,我们需要一个按钮来提交带有特殊请求的页面:

在此输入图像描述

在此输入图像描述

单击时,该按钮将提交请求值为"SELECT"(我选择的按钮名称)的页面.因此,当请求为"SELECT"时,我们可以编写一个on-submit页面进程,找出选择了哪个单选按钮(如果有的话),并将选定的DEPTNO保存到名为P34_DEPTNO的隐藏项目中.我们通过查看apex_application.g_f01我们选择的APEX数组1作为第一个参数来找出哪个按钮apex_item.radiogroup:

if apex_application.g_f01.count > 0 then
   -- Array has been populated i.e. user chose a value
   :p34_deptno := apex_application.g_f01(1);
else 
   -- Array has not been populated i.e. user did not choose a value
   :p34_deptno := null;
end if;
Run Code Online (Sandbox Code Playgroud)

然后我们可以定义一个分支导航到新页面,如果(a)request ='SELECT'和(b)P34_DEPTNO不为null.

在此输入图像描述

就是这样.相当多的工作,但如果这是要求将做到这一点.

方法2:列链接

更简单的方法是省去单选按钮,只需将其中一个报告列放入链接:

在此输入图像描述

这会将列(我选择DNAME)转换为导航到新页面的链接,并使用它选择DEPTNO值:

在此输入图像描述

而已!没有隐藏的项目,没有按钮,没有页面进程,没有分支......

  • 我的天啊!非常感谢!这是迄今为止最好的教程.感谢您提供打印屏幕.非常非常有帮助.现在绝对放手吧.再次感谢!这正是我希望我的报告也要做的事情.谢谢. (2认同)

Man*_*red 5

对于 Apex 5,您必须将“转义特殊字符”更改为“否”,而不是将列属性更改为“标准报告列”:

在此输入图像描述