我有一个交互式报告,显示文章表中的所有记录.对于已登录的作者,我想显示所有记录,但是只应为该作者撰写的那些文章显示EDIT.在文章表中,我有CREATED_BY列,其中包含作者用户名.
我在链接列中添加了条件作为表达式1中的项目/列的值=表达式2,因为Expression1 =#CREATED_BY#& Expression2 =:APP_USER
但这不起作用.这是我第一次采用这种方法根据条件显示编辑链接.
当我添加条件表达式1中的项目/列的值不为空并设置Expression1 =#CREATED_BY#时,它仍然没有显示编辑链接.所以,我认为#CREATED_BY#返回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...
您还必须将列定义下的列的显示更改为
Standard Report Column
您可以选择删除下面的选项
Allow Users To:
so the user couldn’t hide/sort/… the column.
希望这可以帮到你.任何疑问或进一步解释只是问.