【发布时间】:2014-05-01 15:20:12
【问题描述】:
所以我正在制作一份关于 enclipse 的 birt 报告我的目标是在每个页面上输出特定人的销售额,而不是该人的总销售额。
考虑这张桌子(假设我们只有 1 个人):
personID sales date
------- ----- -----
111 10 2010-02-02
111 15 2010-02-03
111 5 2010-03-03
111 7 2010-04-03
111 8 2011-01-01
111 9 2013-01-01
111 20 2014-01-01
111 25 2014-03-02
每一页的场景:
- 它显示 3 个结果(我想要的)
- 但在每个页面下方显示 99 次销售(我不想要)
我想要的是:
在第 1 页显示 30 笔销售(3 行)
在第 2 页显示 24 笔销售(3 行)
最后一页显示 45(剩余 2 行)
我所做的是(我不知道它是否正确):
DENSE_RANK() OVER (ORDER BY sales) AS Row,
convert(integer,ROW_NUMBER() over(order by sales)/4) as page
把我的桌子变成了
personID sales date Row page
------- ----- ----- ---- ----
111 10 2010-02-02 1 0
111 15 2010-02-03 2 0
111 5 2010-03-03 3 0
111 7 2010-04-03 4 1
111 8 2011-01-01 5 1
111 9 2013-01-01 6 1
111 20 2014-01-01 7 1
111 25 2014-03-02 8 2
如您所见,还有一个问题是:
前 3 行获得 page(0)
但是第 4-5-6-7 行得到了第 1 页,这是错误的,它应该是第 4-5-6 行第 1 页
和第 2 页第 7-8 行
我也在使用 JavaScript 开发 eclipse
<method name="onPageEnd"><![CDATA[var sales = this.getInstancesByElementName("sales");
var tmp=0;
if( sales != null )
{
for(var i=0; i< sales.length; i++ )
{
for(var j=0;j<3;j++)
{
//Instance of DataItemInstance
var sales = sales[i];
tmp+=parseInt(sales.getValue());
}
}
}
【问题讨论】:
-
您能否详细说明为什么不使用本机“分页间隔”属性来处理每页的项目数?
标签: javascript sql xml eclipse birt