如何仅在顶点交互式网格的某些行上显示 'Edit' link?

How to only display 'Edit' link on certain rows on apex interactive grid?

我有一个包含多个字段的交互式报告 apex5.0。 想要禁用 'edit' 铅笔选项 link,其中填充了 payment_date & 代码。 Link 仅在 payment_date & code 为空的情况下启用。 根据列中的特定值禁用特定行的编辑按钮。

例如。如果网格有 3 列 A、B、C,并且 B 包含 "Apple" 和“01-jan-17”,则必须禁用该行的编辑按钮。

在 apex5.0 中执行此类功能有哪些不同的选项,根据特定条件启用和禁用 "EDIT"?

一种方法是在页面加载时使用 JavaScript: 假设第一列带有 ID 并用于显示编辑 link。第二列是您的产品名称,例如 Apple。只需禁用点击此元素(带有 ID 的单元格)或更改 link、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 的回答:Loop Through Each HTML Table Column and Get the Data using jQuery
编辑: 根据您的查询用例隐藏值。例如:

SELECT
 CASE
  WHEN B = 'Apple' THEN
    '<img src="#IMAGE_PREFIX#edit.gif" alt="">'
  ELSE ''
END edit_link,
A,B,C
FROM TABLE_NAME
  • 单击 edit_link 列并将其设为 Link 类型
  • 选择要编辑页面的目标
  • 对于 link 文本 select #EDIT_LINK#
  • 转义特殊字符必须设置为NO
  • 在报告属性中将 **Link 列** 设置为 **排除 Link 列**(您有自定义 link 列,因此不显示原始 link)
    *检查您的在线工作空间,第 3 页*
  • 您还可以在报告的查询中添加案例陈述。

    例如

    (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语句才会显示一个link。 link 将指向第 47 页,我们会将查询的 Id 列传递给第 47 页的项目 P47_ID

    为了将此新列视为 link,您必须将 "display as text" 属性 更改为 "standard report column";您可以在编辑报告属性时实现此目的。