Oracle APEX交互式报告条件列链接显示
我有一个交互式报告,显示articles表中的所有记录。对于登录的作者,我希望显示所有记录,但编辑应该只显示该作者撰写的文章。在articles表中,我有一个列Oracle APEX交互式报告条件列链接显示,oracle,oracle-apex,Oracle,Oracle Apex,我有一个交互式报告,显示articles表中的所有记录。对于登录的作者,我希望显示所有记录,但编辑应该只显示该作者撰写的文章。在articles表中,我有一个列CREATED\u BY,其中包含作者用户名 我添加了一个条件,将列作为表达式1=表达式2中的项/列的值链接为表达式1=。创建人&Expression2=:APP\u USER 但这是行不通的。这是我第一次采用这种方法根据条件显示编辑链接 当我在表达式1中添加条件项/列的值不为空时,并设置Expression1=#由#创建时,它仍然没有显
CREATED\u BY
,其中包含作者用户名
我添加了一个条件,将列作为表达式1=表达式2中的项/列的值链接为表达式1=。创建人&Expression2=:APP\u USER
但这是行不通的。这是我第一次采用这种方法根据条件显示编辑链接
当我在表达式1中添加条件项/列的值不为空时,并设置Expression1=#由#
创建时,它仍然没有显示编辑链接。因此,我认为由#
创建的#正在返回null。但表中的记录有一个值&我也在报告列中看到它
有人能帮忙吗?我不知道我错在哪里 您使用的条件是针对列,而不是针对每一行,因此您将无法这样做
我认为实现这一点的最佳方法是在查询中创建一个虚拟列,将其用作编辑链接:
SELECT
CASE
WHEN CREATED_BY = :APP_USER THEN
'<a href="' || APEX_UTIL.PREPARE_URL( p_url => 'f?p=' || &APP_ID. || ':<YOUR EDIT PAGE>:'||&SESSION.||'::NO::<PAGE ITEM>:'||COLUMN ID, p_checksum_type => 'SESSION') || '"><img src="/i/menu/pencil2_16x16.gif"></a>'
ELSE ''
END edit_link,
...THE REST OF YOUR QUERY...
选择
案例
创建用户时=:APP\u USER然后
''
否则“
结束编辑链接,
…剩下的问题。。。
您还必须将列定义下的列的显示更改为
标准报告栏
您还可以选择删除下面的选项
允许用户:
因此用户无法隐藏/排序/。。。专栏
希望这能帮助你。任何疑问或进一步解释,请提问。这是一个类似于hmarques的解决方案,但不需要手动构建整个链接
我将在报告查询中包含一个伪列,该列包含null,或者如果当前用户名与创建者匹配,则包含指向“编辑”按钮图像的指针:
select decode(CREATED_BY
,:APP_USER
,'<img src="#IMAGE_PREFIX#edit.gif" alt="">'
-- or your preferred image/hyperlink text
) EDITLINK
--, your columns
from ARTICLES
--etc
选择解码(由
,:应用程序用户
,''
--或您喜欢的图像/超链接文本
)编辑链接
--,你的专栏
从文章
--等
使用标准列链接功能将参数传递到编辑页面,但使用#EDITLINK#
作为列的链接文本。不要忘记将列的显示类型设置为“标准报告列”。就我个人而言,我也会去掉列标题——这是一个必填字段,但您可以将其设置为单个空格 我能够在APEX 5中找到解决方案,但同样的方法也适用于APEX 4.2。您可以很容易地使用内置的APEX列链接和一个案例语句来实现这一点,正如hmarques所建议的那样
按如下方式构造查询:
SELECT CASE
WHEN CREATED_BY = :APP_USER THEN
'Edit'
ELSE
NULL
END EDIT,
...rest of query
然后,转到:报告属性>您的编辑列>,并滚动到页面的列链接部分。选择链接文本文本框旁边的箭头,然后选择#编辑#作为列链接文本
另外,使用以下html代码设置链接属性:
class="t-Button t-Button--simple t-Button--hot t-Button--stretch"
这将使列看起来像一个按钮,并且不会显示传统的铅笔图标(,这是此方法的唯一缺点)
别忘了将编辑列设为标准报告列,祝你好运
约翰