在Apex 4.2中删除IR中的行

时间:2015-10-21 12:01:42

标签: oracle-apex

回到新问题。我希望通过在报告本身中删除一个删除图标作为列来删除IR中的一行,当我点击该图标时,将触发DA将调用代码来删除该记录,并且还将调用API以删除行来自fnd_attached_documents。

我做了以下

  1. 使用以下查询创建了一个IR:

    SELECT nvl(to_char(task_id), '-') "Title",
    
       '-' "Type",
    
       nvl(description, '-') "Description",
    
       '-' "Category",
    
       --       nvl(last_updated_by,'') "Last Updated By",
    
       nvl((SELECT v('APP_USER') FROM sys.dual), '-') "Last Updated By",
    
       nvl(last_update_date, SYSDATE) "Last Updated",
    
       dbms_lob.getlength(file_content) download,
    
       attachment_id,
    
       document_id,
    
       media_id,
    
       '' "Delete"
    
    FROM my_attachments
    
    WHERE task_id = :p2_case_number;
    
  2. 删除不是表格中的列,而 P2_CASE_NUMBER 是一个项目。创建报告后,我转到了报告属性 - >列属性并单击删除的编辑图标,并在列链接中选择图标和目标作为URL给出以下URL -

    我的DA如下

    名称 - DELETE_ATTACHMENT

    活动 - 自定义

    选择类型 - DOM对象

    DOM对象标题

    真实行动:PL / SQL代码

    DECLARE
    
      lv_case_number NUMBER;
      lv_attachment_id NUMBER;
    
    BEGIN
    
       lv_case_number := :P2_CASE_NUMBER;
       APPS.DELETE_FILE_ATTACHMENT(lv_case_number,lv_attachment_id);
    
    END;
    

    现在我面临以下问题,不知道如何处理它们

    1. 我需要将来自报告的附件ID作为我正在调用的程序的第二个参数传递给我,我该怎么做?

    2. 我只需要刷新我的报告区域,以便在删除时我不必自己刷新页面吗?

    3. 我正在使用 ebs r12 apex 4.2

      由于

1 个答案:

答案 0 :(得分:0)

您必须将附件ID添加到链接属性以及css类,稍后您可以在DA中引用它: data-id =“#ATTACHMENT_ID#”class =“delete-row”

您需要一个隐藏项来保存所点击行的附件ID。在此示例中:PX_ATTACHMENT_ID

然后创建在单击链接时触发的DA: 事件:单击,选择类型:jquery选择器,jquery选择器:.delete-row

DA的事件范围应该是动态的,否则在第一次刷新区域后它将不起作用。

添加一个真实的动作: 操作:设置值,设置类型:Javascript表达式,Javascript表达式:this.triggeringElement.getAttribute('data-id'),受影响的项目:PX_ATTACHMENT_ID

添加另一个真实动作: PL / SQL代码删除附件并确保将PX_ATTACHMENT_ID添加到要提交的页面项目

添加另一个真实动作: 刷新报告

https://apex.oracle.com/pls/apex/f?p=111339:2