如何仅在顶点交互式网格上的某些行上显示"编辑"链接?



我有一个交互式报告 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
  • 单击列edit_link并将其设置为链接类型
  • 选择要编辑的目标页面
  • 对于链接文本,请选择 #EDIT_LINK#
  • 转义特殊字符必须设置为 NO
  • 在"报告属性"中,将"链接列**"设置为"排除链接列"(您有自定义链接列,因此不显示原始链接(
    *检查您的在线工作区,第 3 页*
  • 最新更新