如何从Oracle APEX 4 Classic Report中选择行元素值(表标记中的行元素)

这是挑战..

我在Oracle APEX 4中有一个基于SQL 1区域的经典报告

报告(Report1)的结构如下

DATE_COL(this column will be hidden) or even the whole region can be hidden) Row1 12-01-2001 Row2 11-01-2001 Row3 10-01-2001 

我想选择Row1的DATE_COL值为Date1,并将其分配给ITEM的标签,该标签可以位于同一页面或另一页面上。

例如,ITEM说的是P_ITEM,其名称将在屏幕上显示为12-01-2001

所以,基本上我想选择DATE_COL列的报告的Row1元素,并将其用作标签名称

然后我想选择DATE_COL的Row2元素,它是DATE2并分配给同一页面上的另一个报告的col1标签,即Report2,看起来像这样

   11-01-2001  (this name is coming from report 1 of DATE_COL of Row2 element) also it has link Row1 100 Row2 200 

请指导我如何完成这一个。

示例html看起来像这样

    
DATE1 DATE2 DATE3 DATE4 DATE5
12-01-2001 11-01-2001 10-01-2001 09-01-2001 08-01-2001
10-01-2001 09-01-2001 08-01-2001 12-01-2001 11-01-2001

我猜JQuery可以用来完成,但不确定选择器需要如何使用。

谢谢, – CP

编辑1

我基于Tom的Jquery选择器创建了以下脚本,它确实选择了行元素。 但是我在W3Schools html编辑器中运行的以下脚本没有选择我放入Test函数的row元素。 我在“A tag”中调用的测试函数没有产生任何结果。 然而,WelcomeMessage的另一个函数确实产生了结果。 任何人都可以帮我识别错误吗?

      function test(i) { var ab = $("#report_DT tr:eq(i) td.data[headers='DATE1']").text(); document.write(ab); } function welcomeMessage() { document.write("Welcome to Henley's Department Store!"); }    
DATE1 DATE2 DATE3 DATE4 DATE5
12-01-2001 11-01-2001 10-01-2001 09-01-2001 08-01-2001
10-01-2001 09-01-2001 08-01-2001 12-01-2001 11-01-2001
test(i);
welcomeMessage();

任何人都可以发现错误为什么测试function没有检索到所需的结果?

理想情况下,您希望为您的区域分配一个静态ID(编辑区域>属性>静态ID)

然后用

 $("#yourregionid tr:eq("+ rownumber_you_need +") td.data[headers='"+ header_id +"']").text() 

请注意:eq使用基于零索引的系统,因此第0行将是带有标题的行,第1行是第1行的实际数据。 将header_id替换为您需要数据的列的标题。 在你的例子中:

 $("#yourregionid tr:eq(1) td.data[headers='DATE1']").text() $("#yourregionid tr:eq(2) td.data[headers='DATE2']").text() 

编辑:

 click for a test  

编辑2:因此,如果您要主动操作第二个报表的表格标题: – 为报表区域2分配静态区域ID – 为区域(您的第二个区域)创建“After refresh”事件的动态操作。 这是必要的,以允许您的区域分页,同时仍保持更改的标题。 – 要进行真实操作,请选择执行javascript代码:

 $("#report2staticid th").each(function(index){ var linktext, newlink; if(index==0){ linktext = $("report1staticid tr:eq(1) td.data[headers='DATE1']").text(); newlink = $("").attr("href", "www.google.com").text(linktext); } else if(index==1){ //something for header 2 } else if(index==2){ //andsoforth }; $(this).html(newlink); }); 

这会在第二个报告中循环每个TH元素,并更改每个元素的html内容:我们在每个元素中添加一个新的A标记。

编辑3:您在实施中犯了一些错误:

 function test(i) { var ab = $("#report_DT tr:eq(i) td.data[headers='DATE1']").text(); document.write(ab); } 

应该

 function test(i) { var ab = $("#report_DT table.report-standard tr:eq("+i+") td.data[headers='DATE1']").text(); document.write(ab); } 

我是一个输入参数,你需要将它连接到选择器字符串。

您的HTML脚本标记也是错误的。 你打电话给测试并提供“我”。 什么是“我”? 它没有定义。 提供价值。 (记住,这是rownumber。)

  

完整代码:

         
DATE1 DATE2 DATE3 DATE4 DATE5
12-01-2001 11-01-2001 10-01-2001 09-01-2001 08-01-2001
10-01-2001 09-01-2001 08-01-2001 12-01-2001 11-01-2001