2016-12-06 55 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具有之前添加的年份过滤器。 –