我有一个交互式报告 apex5.0,其中包含多个字段。想要禁用填充payment_date和代码的"编辑"铅笔选项链接。只有在payment_date
和代码为空时才能启用链接。根据特定行列中的特定值禁用其编辑按钮。
例如。如果网格有 3 列 A、B、C,并且 B 包含"Apple"和"01-jan-17",则必须禁用该行的编辑按钮。
在apex5.0中执行此类功能,根据某些条件启用和禁用"编辑"有哪些不同的选项?
您还可以向报表的查询添加案例语句。
例如
(Case when [some logic] then
--display link
'<a href="f?p=' || :APP_ID || ':47:' || :APP_SESSION || '::NO:47:P47_ID:'|| a.id || '" title="Edit"><img src="#IMAGE_PREFIX#menu/pencil16x16.gif" alt="" /></a>'
End) as col_link
仅当满足 case 语句时,上面的示例才会显示链接。该链接将指向第 47 页,我们将查询的 Id 列传递到第 47 页的项目P47_ID
为了将此新列视为链接,必须将"显示为文本"属性更改为"标准报表列";您可以在编辑报表属性时实现此目的。
一种方法是在页面加载时使用JavaScript:让我们确定第一列带有 ID 并用于显示编辑链接。第二列是你的产品名称,如苹果。只需禁用单击此元素(带ID的单元格(或更改链接,img等。
var table = $(".a-IRR-table tbody");
table.find('tr').each(function (i, el) {
var $tds = $(this).find('td'),
productId = $tds.eq(0).text(), //first column with ID and edit link
product = $tds.eq(1).text(), //second column
Quantity = $tds.eq(2).text(); //third column
if (product == 'Apple'){
$tds.eq(0).click(false);
$tds.eq(0).replaceWith('');
}
});
感谢JavaScript的这个答案:遍历每个HTML表列并使用jQuery获取数据
编辑:根据查询用例隐藏值。例如:
SELECT
CASE
WHEN B = 'Apple' THEN
'<img src="#IMAGE_PREFIX#edit.gif" alt="">'
ELSE ''
END edit_link,
A,B,C
FROM TABLE_NAME
*检查您的在线工作区,第 3 页*