从交互式报告行设置表单值

时间:2013-11-21 18:23:01

标签: oracle-apex

我有两张桌子:T1和T2

表T1包含五列:CT11,CT12,CT13,CT14,CT15

表T2包含4列:CT21,CT22,CT23,CT24

我有一个包含两个区域的页面。区域1是使用表格T1的表格上的表格。区域2是表T2上的交互式报告(IR)。

区域2的SQL是:

从T2中选择apex_item.RADIOGROUP(p_idx => 1,p_value => CT21)“选择”,CT22,CT23,CT24;

当用户单击交互式报表中某行的单选按钮时,我希望填充单元格CT22,CT23,CT24中的值 表格中的CT13,CT14,CT15字段在区域1中形成。如果用户单击另一行单选按钮,则值应更新。

使用Google和Stackoverflow,我尝试了很多选项,但我似乎无法找到正确的方法。

1 个答案:

答案 0 :(得分:2)

希望您了解f ##数组如何工作以及它们在生成的html中的外观。要解决这个问题,你需要javascript,并了解你确实需要知道html的样子。没有什么比误解这更容易出错了!更改f ##数组或任何所需的列名称可能会阻止代码正常工作,虽然我认为它不太难,但理解它是非常重要的。如果实现它,您将需要能够支持它,而不是依赖于互联网上的陌生人的帮助。说完了。

创建动态动作。

  • 事件:刷新后
  • 选择类型:地区
  • 地区:您的IR区域
  • 条件: -
  • 真实行动:

    • 执行javascript代码
    • 在页面加载时触发:已选中
    • 代码:

      $("input[name=f01]", this.triggeringElement).change(function(){
      //mind the capitalization in the headers attribute selector
      var lRow = $(this).closest("tr"),
          lct22 = lRow.find("td[headers=CT22]").text(),
          lct23 = lRow.find("td[headers=CT23]").text(),
          lct24 = lRow.find("td[headers=CT24]").text();
      console.log("22: " + lct22 + " - 23: " + lct23 + " - 24: " + lct24);
      $s("P3_CT13", lct22);
      $s("P3_CT14", lct23);
      $s("P3_CT15", lct24);
      })
      

"input[name=f01]"将选择radiobuttons。你给了radiobuttons p_idx=>1,这将转换为数组f01的使用。

我也制作了一个小型演示应用:http://apex.oracle.com/pls/apex/f?p=11964。使用apex_demo / demo

登录