回到新问题。我希望通过在报告本身中删除一个删除图标作为列来删除IR中的一行,当我点击该图标时,将触发DA将调用代码来删除该记录,并且还将调用API以删除行来自fnd_attached_documents。
我做了以下
使用以下查询创建了一个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;
删除不是表格中的列,而 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;
现在我面临以下问题,不知道如何处理它们
我需要将来自报告的附件ID作为我正在调用的程序的第二个参数传递给我,我该怎么做?
我只需要刷新我的报告区域,以便在删除时我不必自己刷新页面吗?
我正在使用 ebs r12 和 apex 4.2
由于
答案 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添加到要提交的页面项目
添加另一个真实动作: 刷新报告