行式填报表分页
润乾的填报表,是不支持分页的。
行式填报表可以通过间接的方式,来实现分页
思路:从数据集中每次取出一页的数据,每次翻页,都重新从数据集中取数,并在翻页前,将当前页的数据提交入库。
方法:
1 制作报表:
参数:
nPage 当前页
start 开始行
end 结束行
pageCount 每页显示的记录条数
数据集:
ds1:
参数:
在数据集ds1的参数标签页的起始行和结束行中:start end
ds2
数据集ds2只是为了求出数据集ds1的数据库总记录数。
2 页面:testExcel.jsp,报表文件名为Excel.raq
<%@ page contentType=”text/html;charset=GBK” %>
<%@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report”%>
<HTML>
<HEAD>
</HEAD>
<body>
<%
String nPage=”"; //初始化
if(request.getParameter( “nPage” )==null){ //判断当前页是否为空
nPage=”1″; //若为空,则当面页面为1
}else{
nPage= request.getParameter( “nPage” ); //否则为当前页
}
//每页显示10条,这个可以根据每页所想显示的条数进行更改
String pageCount=request.getParameter( “pageCount” );
StringBuffer param=new StringBuffer();
param.append(“nPage=”+nPage+”;pageCount=”+pageCount);
%>
<table style=”width:100%;hoverflow:hidden;table-layout:fixed”>
<tr><td>
<report:html name=”report1″
reportFileName=”Excel.raq”
params=”<%=param.toString()%>”
funcBarLocation=”top”
backAndRefresh=”no”
/>
</td></tr>
</table>
<table>
<input id=”back” type=”button” onclick=”prevpage()” value=”上一页“>
<input id=”foward” type=”button” onclick=”nextpage()” value=”下一页“>
第<span id=”pageshow1″></span><span id=”msg1″></span>
共<span id=”pageshow2″></span><span id=”msg2″></span>
</table>
<script type=”text/javascript”>
var totalnum=document.getElementById(“report1_G1″).value;
var npage1=document.getElementById(“report1_H1″).value;
if(totalnum == 0){
totalnum=1;
}
var temp=totalnum/<%=pageCount%>;
var pageNum=(temp==parseInt(temp)?temp:parseInt(temp)+1);
document.getElementById(“msg2″).innerText=pageNum+”页“;
document.getElementById(“msg1″).innerText=npage1+”页“;
</script>
<script type=”text/javascript”>
function prevpage(){ //上一页 调用的方法
alert(“prevpage”);
_submitRowInput( report1 ); //先提交
var npage1=document.getElementById(“report1_H1″).value;
alert(“npage1==”+npage1);
var npage = 1;
if(npage1 > 1){
npage = npage1-1;
alert(“npage==”+npage);
window.location.href=”http://127.0.0.1:6001/demo/jsp/testExcel.jsp?pageCount=10&nPage=”+npage; //跳转到上一页
}
</script>
<script type=”text/javascript”>
function nextpage(){
alert(“nextpage”);
_submitRowInput( report1 );
var totalnum=document.getElementById(“report1_G1″).value;
var npage1=document.getElementById(“report1_H1″).value;
alert(“npage1==”+npage1);
if(totalnum == 0){
totalnum=1;
}
var maxpage=totalnum/<%=pageCount%>;
alert(“maxpage==”+maxpage);
var npage = parseInt(maxpage);
if(npage1 < npage){
npage = parseInt(npage1)+1;
alert(“npage==”+npage);
window.location.href=”http://127.0.0.1:6001/demo/jsp/testExcel.jsp?pageCount=10&nPage=”+npage;
}
</script>
</body>
</HTML>