在交互式报表中创建列链接 -Oracle Apex
Posted
技术标签:
【中文标题】在交互式报表中创建列链接 -Oracle Apex【英文标题】:Creating a Column Link in an Interactive Report -Oracle Apex 【发布时间】:2020-06-01 05:50:33 【问题描述】:我正在使用 Apex 20.1.0.00.13,试图在经典报告的列上创建链接。
我已按照以下步骤为列创建链接并将其重定向到与以下步骤相同的应用程序中的页面:
要创建指向另一个页面的链接,请在链接构建器 - 目标对话框中: 类型 - 在此应用程序中选择页面。 页 - 指定目标页码。 设置项目 - 选择名称和值以指定项目的会话状态。 清除会话状态、清除缓存 - 指定要清除缓存的页码。要指定多页,请输入以逗号分隔的页码列表。 休息分页 - 选择是重置此页面的分页。v 高级,请求 - 指定要使用的请求。 点击确定。
但是当我设置项目和值以指定项目的会话状态时,设置项目:名称不会填充列,它显示为空白,有人可以让我知道我哪里出错了。
我正在尝试从第 1 页实现一个链接,例如使用 dept no - 2 的行,以将其定向到第 2 页的 dept 2 详细信息。有没有其他方法可以做到这一点。由于它是一列而不是项目,因此我无法将其作为参数传递到下一页。
提前致谢!
【问题讨论】:
【参考方案1】:对;这里没有“项目”,您必须在报告中创建超链接。
假设这是经典报表的查询:
with test (id, name) as
(select 1, 'Google' from dual union all
select 2, 'Yahoo' from dual union all
select 3, 'Bing' from dual
)
select
id,
'<a href="' || case
when name = 'Google' then 'https://www.google.com'
when name = 'Yahoo' then 'https://www.yahoo.com'
when name = 'Bing' then 'https://www.bing.com'
end
|| '" target="_blank">' || name || '</a>' as link
from test
order by name;
转到LINK
列的属性并将“转义特殊字符”设置为“否”。运行报告;一切都应该正常。
如果 - 正如你所说 - 使用它导航到应用程序中的另一个页面并将一些项目设置为一些值(来自 IR),那么你会做这样的事情:
SELECT
'f?p=&APP_ID.:217' ||
':&APP_SESSION.::NO::P217_ID' ||
':' || r.id
as link, ...
FROM my_table r ...
换句话说:它导航到第 217 页并将 r.id
列值传递给位于第 217 页的 P217_ID
项目。
在创建链接列时可以引用来自此类查询的link
列。这将是一个
#link#
(字面意思是输入#link#
)
【讨论】:
嗨@Littlefoot,你的sn-p 对URL 工作得很好,但我想将页面的一列中的项目映射到另一页的另一列。如何为列指定 href。 由于我的第二页是交互式报告,所以找不到项目。是否可以将一列链接到另一个页面中的另一列? 我添加了更多信息;请看一下。 由于我的第 217 页是一个 IR,一个区域,而不是一个项目,所以我无法在第一页中查找项目 P217_ID。我将一份报告的列数据链接到另一份报告,因此不涉及任何项目 - 两者都是列@Littlefoot 第 217 页是一个 IR,但是 - 您不能创建一个包含由该 URL 传输的数据的页面项,然后在 IR 的 WHERE 子句中使用该 P217_ID 吗?【参考方案2】:也许您可以将这两个页面更改并合并为一个主从页面。这样您就可以使用内置的查找功能。
【讨论】:
以上是关于在交互式报表中创建列链接 -Oracle Apex的主要内容,如果未能解决你的问题,请参考以下文章
如何使用python在streamlit和plotly中创建列?
如何使用 SQL Server Management Studio (2008) 在 SQL Server Compact Edition 中创建列