2012-11-22 65 views
0

的IR我有我的一些应用程序中不同的交互式报表的(使用Oracle APEX 4.1)在不同的页面。计算行的总数从页0

关于这些报道,我有分页,但我一直在问也提供各的报告,记录的总体总数,每个报告的页面上的某个地方显示出来。

是否有在第0页做这个功能的一种手段或者我需要计算总记录每个单独报告?

谢谢。

=============================

**汤姆 - 必须把这个问题意见的下方,增加了在这里:

你好Tom,正如我以前对你的评论中提到,我添加了新的“p_use_filter”布尔参数,此设置为false,一切工作正常,所以感谢。

现在我有另一个查询给你,不确定这是否仍然是你可能正在处理的东西,但在一个IR报告中,在我的where条件下,我使用绑定变量,但是当我向下钻取时这传递给其他报告与绑定变量字符串,然后看看在后端SQL语句报告字段,我得到一个无效的关系运算符错误,因为SQL有一个WHERE条件,如:

WHERE (CUSTOMER_NAME = ABC AIRLINES LTD) 

即它试图解析SQL没有单引号左右ABC航空有限公司

任何想法,汤姆。

谢谢。

+0

在apex 4.2中有一个包APEX_IR,您可以使用它检索IR报告sql。我做了一个在4.1中工作的包并且可以返回IR sql。如果你对我感兴趣,我会尝试在github上获取它。 – Tom

+0

汤姆 - 这将是伟大的,但可以用它来确定记录总数,因为我基本上需要选择计数(*)与每个IR查询的from和where子句。汤姆,如果你的包裹可以容纳这个要求,那么肯定会喜欢看看。 Github链接会很好。谢谢。 – tonyf

+0

我只是简单地检索ir sql,并将其作为子查询包含在select count(*)中。今天晚些时候我会有一个链接,因为我无法更快地访问git。 – Tom

回答

1

我建议检索IR sql,然后执行包装在SELECT COUNT(*) from (...)中的SQL。
现在,在apex 4.2中,您将获得可以获取报表sql的apex_ir包,但在4.2之前,您没有这样的包。我为自己做了一个,我已经用它做了几件事情(例如i've blogged a bit about these)。 我对代码的当前状态表示歉意,因为它需要一些清理,但它是功能性的,并且有很多注释。它会解析所有的过滤器并将它们再次转换为sql。它不处理计算或分组。它可能会在某处留下一些扭结,但这可能取决于你想要做什么。在这种情况下,它不应该是一个问题。

Git link

基本上,安装包在您的架构,然后用这样的代码来运行它:

DECLARE 
    lNullTable DBMS_SQL.VARCHAR2_TABLE; 
    lDebug  VARCHAR2(4000); 
    lSql  VARCHAR2(4000); 
    lCount  NUMBER; 
BEGIN 
    lSql := apex_ir_pkg.get_ir_sql 
     (
     p_app_id    => :APP_ID, 
     p_session_id   => :APP_SESSION, 
     p_page_id   => :APP_PAGE_ID, 
     p_report_id   => NULL, 
     p_app_user   => :APP_USER, 
     p_use_session_state => TRUE, 
     p_binds    => lNullTable, 
     p_binds_val   => lNullTable, 
     p_incl_order_by  => FALSE, 
     p_debug    => lDebug, 
    ); 

    lSql := 'SELECT count(*) FROM ('||lSql||')'; 

    EXECUTE IMMEDIATE lSql INTO lCount; 
END; 

如果碰到一些麻烦,无法弄明白,你可以联系我,我会看看我能做些什么。我知道一些代码检修是必要的,但我还没有得到它。

+0

嗨,汤姆,一切正常,但我怎么能让你的例程总是返回记录的总量,并忽略在IR报告上执行的任何过滤?基本上总是希望总数和忽视任何过滤的记录。谢谢。 – tonyf

+0

哦,好吧。你基本上想要执行为报告定义的SQL?如果是这样,它是否绑定了变量(页面项)还是简单的sql? – Tom

+0

嗨,汤姆,一些IRs绑定了变量,有些没有。我基本上总是希望忽略用户单独执行的任何过滤,但总是返回记录的总数。谢谢。 – tonyf

0

您可以使用##TOTAL_ROWS在该地区的页眉或页脚,但它只会显示的初始值。我用它来传统的报道。我不认为它与红外javascript很好地发挥。这是部分页面刷新。 请参阅:https://forums.oracle.com/forums/thread.jspa?threadID=2239712http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21674/ui_region.htm#CHDBCGJH

+0

嗨,#TOTAL_ROWS#只是基于分页行向我返回行,在我的情况下是15行,而不是报告中所有行的总数,例如总共200行 - 任何想法?谢谢。 – tonyf