Создание гиперссылки в отчете IR - PullRequest
0 голосов
/ 31 октября 2019

Как в oracle apex можно связать информацию в таблице с другой внешней страницей из столбца интерактивного отчета?

На странице, на которую указывает ссылка, будут отображаться разные данные, в зависимости от того, какой IP-адрес щелкнул пользователь.

Я знаю, что гиперссылка использует href, но oracle apex использует ссылки, но я не получаю какие-либо для работы

пример того, что я делаю:

У меня есть отчет IR и одиниз столбцов есть IP-адреса, когда пользователь щелкает IP-адрес

, он предполагает отправку их в другое место на нашем сервере.

 100.100.100.100- should send me to the Printers

 100.100.100.101 -should send me to Drivers

1 Ответ

0 голосов
/ 31 октября 2019

Вот как я понял вопрос.

  • TEST CTE представляет вашу таблицу
  • один из столбцов - это `ip_address '
  • в зависимости от этого значения, вы хотите перейти к некоторому URL

Один из вариантов сделать это - использовать CASE (или DECODE, но - CASE легче читать и поддерживать) и явно решить, гдеВы хотите перейти в зависимости от каждого значения ip_address - это то, что показывает мой пример.

Другой вариант - развернуть таблицу (alter table ...), добавить еще один столбец и указать там точный URL-адрес. Это масштабируется лучше, потому что - если вы когда-нибудь добавите новую строку в эту таблицу, вам придется отредактировать запрос интерактивного отчета и добавить еще одну опцию CASE, которая равна глупо . Я предлагаю вам изменить таблицу.

Во всяком случае, здесь вы идете: это интерактивный запрос отчета. Ничего особенного в этом нет, просто обратите внимание на то, что измените свойства столбца link и установите для "Escape special elements" значение "Нет".

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;              

[EDIT]

Если таблица содержит сам 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" более приемлемо, чем, например, видеть "100.100.100.101". Люди обычно предпочитают имена над числами . Посмотрите, поможет ли это.

...