【问题标题】:Oracle Apex: step by step approach to creating radio buttons in interactive reportOracle Apex:在交互式报表中创建单选按钮的分步方法
【发布时间】:2020-12-07 20:01:11
【问题描述】:

是否有一个很好的可视化教程来介绍如何在 Apex 4.2 中创建单选按钮的各个步骤?本教程Creating a Form in APEX to set Variables in a Query for an Interactive Report 帮助我创建了表单,我正在寻找类似的。

Within my application, I would like to add a radio button to each row of my interactive report which when selected would take the user to another report combining different tables?

非常感谢任何建议。

谢谢

【问题讨论】:

  • 您是指单选按钮吗?听起来您更希望每一行都有一个链接以将您带到另一个报告页面?
  • @TonyAndrews 是的,我的意思是单选按钮。行链接可以吗?我想要单选按钮的原因是,当用户从交互式报告中选择客户的姓名和起哄订单号时,在从 from 收集他们的详细信息后,它应该将他们带到另一个报告,其中应该显示他们的地址详细信息和他们的预订订单详情。我是 Apex 的新手,因此非常感谢任何指导。
  • 是的,链接当然是可能的——只需编辑报告列并填写列链接属性。通过单选按钮,您的意思是使用单选按钮选择行,然后通过单击页面上其他位置的按钮或链接链接到另一个页面?这也是可能的,尽管不像创建列链接那么容易。
  • 我告诉你什么 - 因为我们似乎有时区差异,我会写一个显示两种方法的答案......

标签: oracle radio-button oracle-apex


【解决方案1】:

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

方法一:单选按钮

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

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

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

现在我们看到了:

单击任意行上的单选按钮将选中它并取消选择其他行上的按钮。

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

点击后,该按钮将提交请求值为“SELECT”(我选择的按钮名称)的页面。因此,我们可以编写一个提交页面进程以在请求为“SELECT”时触发,找出哪个单选按钮已被选中(如果有)并将选定的 DEPTNO 保存到名为 P34_DEPTNO 的隐藏项中。我们通过查看我们通过将1 作为第一个参数传递给apex_item.radiogroup 来选择的APEX 数组apex_application.g_f01 来找出哪个按钮:

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;

如果 (a) request = 'SELECT' 并且 (b) P34_DEPTNO 不为空,我们可以定义一个导航到新页面的分支。

就是这样。相当多的工作,但如果这是需要的话。

方法二:列链接

更简单的方法是省去单选按钮,只需将报告列之一变成链接:

这会将列(我选择 DNAME)变成一个链接,该链接导航到带有所选 DEPTNO 值的新页面:

就是这样!没有隐藏项,没有按钮,没有页面进程,没有分支……

【讨论】:

  • 天哪!太感谢了!这是迄今为止最好的教程。感谢您提供打印屏幕。非常非常有帮助。现在肯定试一试。再次感谢!这正是我希望我的报告也能做到的。谢谢。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    相关资源
    最近更新 更多