有没有方法使FineReport进行假分页,分页让数据库进行

 我来答
帆软
2016-12-13 · 上BI选帆软,专注BI十三年!
帆软
帆软软件是世界领先的商业智能和数据分析平台提供商,沉淀数据分析领域十余年,致力于为全球企业提供一站式数据分析解决方案;同时也是行业优质交流平台的组织者。
向TA提问
展开全部

1、新建模板

新建模板mutipage.cpt,为了加快展示速度,我们可以使用分页查询,获取每个产品的详细信息并计算产品对应的订单中的应付金额,因此添加数据集时查询SQL语句为select 产品.产品ID,产品名称, 供应商ID , 类别ID, 单位数量, 产品.单价, 产品.库存量, 产品.订购量,sum(应付金额) as 应付款项 from 产品,订单,订单明细 where 产品.产品ID=订单明细.产品ID and 订单明细.订单ID=订单.订单ID and 产品.产品ID between 10*(${page}-1)+1 and 10*${page} group by 产品.产品ID,产品名称, 供应商ID , 类别ID, 单位数量, 产品.单价, 产品.库存量, 产品.订购量 order by 产品.产品ID,设置参数page的默认值为1,首次看到的是第一页,只查询出第1~20条记录;若page参数为2时,查询出第21~40条记录,即第二页内容。

2、自定义上一页、下一页按钮

在单元格中求出上一页、下一页页码的值

自定义上、下一页按钮

点击模板>模板web属性>分页预览设置,选择为该模板单独设置,在工具栏中增加两个自定义按钮分别命名为上一页,下一页,是工具栏上只剩下如下图所示几个按钮。

3、第一页与最后一页处理

求出总页数

双击总数所在单元格弹出数据列设置对话框,选择高级>自定义显示,在自定义中填入公式:roundup($$$/10,0)求出总页数。

将第一行的行高设置为0,或者是隐藏:

上一页按钮设置:选中上一页自定义按钮,点击自定义JavaScript,在js中填入

var page= $("tr[tridx=0]","div.content-container").children().eq(0).html();  
if(page==0)//如果报表显示第一页,则上一页不可用
this.setEnable(false);
else
window.location.href="${servletURL}?reportlet=doc/Advanced/multipage.cpt&page="+page;

下一页按钮设置与上一页的js差不多,只需要获取B1的值就可以了,所以在js中填入

var page= $("tr[tridx=0]","div.content-container").children().eq(1).html();  
var total=$("tr[tridx=0]","div.content-container").children().eq(2).html();  
if(parseInt(page) > parseInt(total))//如果报表显示最后一页,则下一页不可用
{
this.setEnable(false);
}
else
window.location.href="${servletURL}?reportlet=doc/Advanced/multipage.cpt&page="+page;

分页预览即可查看效果

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式