在 IR 报告中创建超链接

Creating Hyperlink in IR report

在 oracle apex 中,如何将 table 中的信息从交互式报告列table 发送到不同的外部页面?

被 link 访问的页面将显示不同的数据,具体取决于用户单击的 IP。

我知道 hyperlink 使用 href 但 oracle apex 使用 links 但我没有得到任何工作

我正在做的一个例子是

我有一份 IR 报告,其中一列有 IP 地址,当用户单击 IP 地址时

它假设将它们发送到我们服务器上的不同位置。

 100.100.100.100- should send me to the Printers

 100.100.100.101 -should send me to Drivers

我是这样理解这个问题的。

  • TEST CTE 代表您的 table
  • 其中一列是`ip_address'
  • 根据该值,您想导航到某些 URL

一个选择是使用 CASE(或 DECODE,但 - CASE 更易于阅读和维护)并明确决定你想去哪里,具体取决于每个 ip_address 值 - 这就是我的示例显示的内容。

另一种方法是扩展 table (alter table ...),添加另一列并将确切的 URL 放在那里。这样扩展性更好,因为 - 如果您向 table 添加新行,则必须编辑交互式报告的查询并添加另一个 CASE 选项,即 stupid。我建议你改变 table.

无论如何,开始吧:这是一个交互式报表查询。没什么特别的,只要注意编辑link列的属性,将"Escape special characters"设置为"No"。

with test (id, name, ip_address) as
  (select 1, 'Google', '100.100.100.100' from dual union all
   select 2, 'Bing'  , '100.100.100.101' from dual
  )
select 
  id, 
  name,
  '<a href="' || case 
                  when ip_address = '100.100.100.100' then 'https://www.google.com'
                  when ip_address = '100.100.100.101' then 'https://www.bing.com'
                end
              || '" target="_blank">' || ip_address || '</a>' as link
from test;              

[编辑]

如果 table 包含 URL 本身,那么我建议如下:

with test (id, name, ip_address, url) as
  (select 1, 'Google', '100.100.100.100', 'https://www.google.com' from dual union all
   select 2, 'Bing'  , '100.100.100.101', 'https://www.bing.com'   from dual
  )
select 
  id, 
  '<a href="' || url || '" target="_blank">' || name || '</a>' as link
from test;              

此查询将 name 显示为超链接。为什么?因为我认为看到例如"Google" 比看到更容易接受table “100.100.100.101”。人们通常更喜欢 names 而不是 numbers。看看有没有帮助。