动态指定每页显示记录条数
# 需求描述:
在页面上输入每页要显示的记录条数,数据报表可以根据输入数字动态显示每页显示的记录条数。
本文介绍两种实现方式:
一. 参数报表控件指定记录条数。
二. 工具条下拉控件指定记录条数。
参数报表控件指定记录条数的具体实现
1. 数据报表中参数定义
arg1 是用于控制每页显示记录条数的参数,bid、eid 是用在数据集中做数据过滤的。
2. 数据报表数据集设置
3. 报表设计
4. 报表属性设置
在报表属性中设置按行分页,每页显示记录条数设置。
每页行数 10 这个常数会在报表初次展现的时候起作用。
经过以上 4 个步骤数据报表设计完成,保存报表,文件名为订单.rpx。
5. 设计参数报表
参数报表设计如下:
B2、E2,、H2 三个单元格的变量名分别设置为 bid、eid、arg1。
参数报表文件名为订单 _arg.rpx
6. 发布报表
查看页面效果:
设计器窗口中切换当前的报表为订单.rpx,然后点击设计器右上角的 web 预览按钮。
可以看到页面中初次每页展现的记录条数是我们在报表属性中指定的固定值,当输入数字点击查询后,数据报表可以按指定的数字显示每页的记录数。
工具条下拉列表动态控制
1.JSP 中增加控件
在 toolbar.jsp 中增加下拉控件,并给控件加上 onchange 事件。
<Li>
<select type="text" id="pageSize" name="pageSize" onchange="picPage()" style="width: 160px;height:25px">
<option selected="selected">--请选择每页显示行数--</option>
<option value=20>20</option>
<option value=50>50</option>
<option value=100>100</option>
<option value=0>全部</option>
</select>
</li>
2.JSP 中增加 JS 方法
在 toolbar.jsp 中增加 JS 方法,当控件值发生变化时调用该方法重载报表展现页面,如果报表带参数过滤,需要注意在重载报表展现的 url 中拼接上报表参数。
function picPage(){
//获得定义ID为pageSize下拉框的值
var tpagenum = document.getElementById("pageSize").value;
//获得参数报表输入控件的值
var b=document.getElementById("bid").value;
var e=document.getElementById("eid").value;
//在当前窗口打开报表展现页面并传递分页和数据过滤参数
window.location.href ="http://localhost:6868/demo/reportJsp/showReport.jsp?rpx=%2F10%E5%9F%BA%E6%9C%AC%E6%8A%A5%E8%A1%A8%2F%E8%AE%A2%E5%8D%95.rpx&arg1="+tpagenum+"&bid="+b+"&eid="+e;
return false;
}
3. 报表设计参考上面章节中介绍
4. 发布报表
使用 showReport.jsp 展现订单.rpx, 报表访问的 url 为:http://localhost:6868/demo/reportJsp/showReport.jsp?rpx= 订单.rpx, 效果如下图所示。
需求扩展
在一页显示所有数据
经过以上步骤可以实现下拉选择数据条数后,数据报表对应显示每页记录条数,如果下拉选择“全部”,也就是在一页显示全部数据,还需要报表中稍作改动。
数据报表中增加一个动态参数 arg2,arg2 是根据下拉选择的 arg1 的值,做了条件判断,当选择为全部时,arg1 的值是 0,那么需要计算下总共的记录条数,表达式为 if(arg1!=0,arg1,query(“SELECT count(*) FROM 订单 where 订单. 订单 ID >=? and 订单. 订单 ID <=?”,bid,eid))
报表属性中设置的每页行数所使用的参数要修改为 arg2。
对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅
嗯,还不太了解好多乾?