如何在javascript函数中获取Apex报告(IR)列值?

时间:2013-05-13 10:31:01

标签: oracle-apex

使用Apex 4.2.1

实际上我有一个Apex(IR)报告,想要创建一个javascript函数,如果两个报告列的日期不匹配,用户可以看到消息。例如,在报告中我有列date1和date2所以date1不能小于date2。所以我创建了一个链接,当点击链接然后popop窗口应该出现(javascript)消息框,其中函数比较这两个日期。所以我正在努力如何在javascript函数中获取报告列值。

THX。

1 个答案:

答案 0 :(得分:1)

您可以使用IR的突出显示和计算功能代替点击弹出解决方案:

  1. 将表示比较结果的计算列X添加到报表中。 Actions->Format->Compute,当date1小于date2时,使用DECODECASE表达式返回1。
  2. 突出显示X = 1的报告行。 Actions->Format->Highlight,选择条件和颜色。
  3. 可选择隐藏计算列。 Actions->Select Columns
  4. 将报告保存为默认值。 Actions->Save Report->Save As Default Report Settings
  5. 如果您想通过JS检查列值,请在After Refresh事件上对报告区域使用动态操作。例如,下一个代码会根据DEPT表格浏览IR行,并提醒DNAMELOC列:

    var $dnames = $( 'td[headers=DNAME]', this.triggeringElement );
    
    $( 'td[headers=LOC]', this.triggeringElement ).each( function( indx, El ) {
      alert( $( El ).html() + " - " + $dnames.eq( indx ).html( ) );
    } )
    

    如您所见,我使用报告列别名来过滤单元格。