2016-12-06 52 views
1

我有保存的報告其中過濾器已被添加到列的IR年= 2015年,我需要寫一個PLSQL過程來更新年度濾波器年= 2016 動態變化我怎樣才能達到這樣的情景。我看着API,它沒有給我任何東西。我能想到的唯一選擇是在數據庫中手動更改數據。下面的 是我用來獲取保存的私人報告的查詢。的Oracle APEX過濾器已保存報表

SELECT a.flow_id,a.page_id,a.status,a.application_user,a.name, b.interactive_report_id, c.condition_type,c.column_name,c.operator,c.expr 
FROM apex_040000.wwv_flow_worksheet_rpts a, apex_application_page_ir b, apex_040000.WWV_FLOW_WORKSHEET_CONDITIONS c 
WHERE a.flow_id = :APP_ID 
AND a.page_id = b.page_id 
AND b.application_id = a.flow_id 
AND a.worksheet_id = b.interactive_report_id 
AND a.status = 'PRIVATE' 
AND c.report_id = a.id 
AND c.column_name='YEAR' 
and a.page_id= :APP_PAGE_ID 

我能用這種方法成功嗎?有沒有其他的解決方案。 ?

回答

1

您可以嘗試apex_util.ir_clear(p_page_id => 200001)以清除所有過濾器和其他設置(僅保留排序和列可見性)或apex_util.ir_reset(p_page_id => 200001)將當前報告重置爲主報告。然後apex_util.ir_filter設置新的過濾器。此操作不會從字面上修改您保存的報告,但會更改其當前設置。在下次保存的報告將與清除或重置之前相同。

+0

如果我們有除年以外的多個過濾器會怎麼樣。 ?我們只想更改年份過濾器。有許多IR具有不同的過濾器,我只需要更改EM的年份 –

+0

我建議編輯所有保存的報告並刪除年份過濾器。然後,您可以通過調用apex_util.ir_filter或IR_column_name URL參數來設置年份。 – hinotf

+0

過濾器是由用戶在特定年份添加的。除非得到同意,否則我們不能刪除它們。我想有一個程序,它將所需年份作爲輸入並將所有IR年份過濾器更改爲該年份,並且IR具有之前添加的年份過濾器。 –