如何在jsp中实现连续打印和套打?

liangwd 2002-08-02 08:59:26
谢谢!
...全文
185 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chongqing_ljg 2003-04-03
  • 打赏
  • 举报
回复
To:Andrawu(晓彬)

其中iPageSize的大小是如何确定才能使这么多条记录占满一页,
要自己试出来吗?
还是能有办法计算的出来,

如果iPageSize随便设置,那么打印的时候就不能设定打印某几页了,就算设置了,
打印出来肯定不是我想要的

还有什么办法让每一页的数据(就算它们占满不了一页)占满一页呢
Andrawu 2002-08-02
  • 打赏
  • 举报
回复
在网页上进行套打:
1.简单的方法:为客户定做HTML页面(固定打印位置和数据),我也是这样做的:)。
2.用xml!正在学习。

连续打印:
1.简单的方法:也是固定打印位置和数据(分页打印的记录数),我也是这样做的:)。
2.也可以用xml。

给一个jsp分页打印的例子:

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="com.*,java.util.*"%>
<jsp:useBean id="SDBean" class="com.SaleDetailBean" scope="request" />
<% SDBean.performTask(request,response);%>
<%
java.util.GregorianCalendar toDay = new java.util.GregorianCalendar();
String sToday = toDay.get(toDay.YEAR)+"年"+(toDay.get(toDay.MONTH)+1)+"月"+toDay.get(toDay.DATE)+"日";
%>
<html>
<head>
<title>业务员纯销明细表</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
table {border-top:solid 1px rgb(0,0,0);border-left:solid 1px rgb(0,0,0);border-right:solid 1px rgb(0,0,0);border-bottom:solid 1px rgb(0,0,0);}
td {border-right:solid 0.5px rgb(0,0,0);border-bottom:solid 0.5px rgb(0,0,0);}
body,input,select,td,table {font-family:宋体;font-size:9pt;}
</style>
</head>

<!--//打印-->
<object id="factory" style="display:none" viewastext classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="http://www.meadroid.com/scriptx/ScriptX.cab#Version=5,60,0,360"></object>
<script defer>
function window.onload() {
factory.printing.header = ""
factory.printing.footer = ""
factory.printing.leftMargin = 0.75
factory.printing.topMargin = 1.5
factory.printing.rightMargin = 0.75
factory.printing.bottomMargin = 1.5
}
</script>
<BODY topmargin="0" leftmargin="0" bgcolor="white">
<%try {
String sCheckName="";
com.Check[] ack = null ;
String goods_name="";
String goods_unit="";
com.Goods[] aGoods = null ;
long lNum = 0 ;
float fMoney = 0 ;
long lNumTotal = 0 ;
float fMoneyTotal = 0 ;
int iPageSize = 58 ;
int iPageCount = 0 ;
int iLastPage = 0 ;
int iRecordCount = 0 ;
int iCount = 0 ;
ArrayList aSaleDetail = null ;
com.SaleDetail oSaleDetail = null ;
aSaleDetail = (ArrayList)request.getAttribute("aSaleDetail");
if(aSaleDetail!=null) {
iRecordCount = aSaleDetail.size() ;
iPageCount = iRecordCount/iPageSize ;
iLastPage = iRecordCount%iPageSize ;
for(int i=0;i<iRecordCount;i++){
oSaleDetail = (com.SaleDetail)aSaleDetail.get(i) ;
lNumTotal += oSaleDetail.getNum() ;
fMoneyTotal += oSaleDetail.getMoney() ;
}
%>
<br> <br><br>
<%for (int i=0;i<iPageCount;i++){%>
<%lNum = 0;
fMoney = 0 ;
%>
<div align=center>XXXXXXXXXX公司<br><font size=3>业务员纯销明细表</font></div>
<div align=left>    日期:<%=sToday%></div>

<table width=95% align=center border=1 cellspacing=0 cellpadding=0>
<tr>
<td> <p align="center"><b>送货单位</b> </td>
<td> <p align="center"><b>收货单位</b> </td>
<td> <p align="center"><b>合同号</b> </td>
<td> <p align="center"><b>送货单号</b> </td>
<td> <p align="center"><b>送货日期</b> </td>
<td> <p align="center"><b>品种</b> </td>
<td> <p align="center"><b>单价</b> </td>
<td> <p align="center"><b>数量</b> </td>
<td> <p align="center"><b>金额</b> </td>
<td> <p align="center"><b>业务员</b> </td>
<td> <p align="center"><b>备注</b> </td>
</tr>
<%for (int j=0;j<iPageSize;j++){
iCount = i*iPageSize+j ;
oSaleDetail = (com.SaleDetail)aSaleDetail.get(iCount) ;
%>
<tr>
<td><p align="left"><%=oSaleDetail.getSendId()%></td>
<td><p align="left"><%=oSaleDetail.getReId()%></td>
<td><p align="left"><%=oSaleDetail.getSoId()==null?" ":oSaleDetail.getSoId()%></td>
<td><p align="left"><%=oSaleDetail.getShipId()==null?" ":oSaleDetail.getShipId()%></td>
<td><p align="left"><%=oSaleDetail.getBillDate()==null?" ":oSaleDetail.getBillDate()%></td>
<td><%=oSaleDetail.getGoodsId()%></td>
<td><%=oSaleDetail.getPrice()%></td>
<td><%=oSaleDetail.getNum()%></td>
<td><%=oSaleDetail.getMoney()%></td>
<td><p align="left"><%=oSaleDetail.getHander()%> </td>
<td> </td>
</tr>
<%
lNum += oSaleDetail.getNum() ;
fMoney += oSaleDetail.getMoney() ;
%>

<% } //end for j%>
<tr>
<td colspan=7><p align="left"> 本页合计</td>
<td><p align="left"> <%=fMoney%></td>
<td colspan=2> </td>
</tr>

<tr>
<td colspan=7><p align="left"> 总合计</td>
<td><p align="left"> <%=fMoneyTotal%></td>
<td colspan=2> </td>
</tr>
</table>

<br>
<div align=center>第<%=(i+1)%>/<%=(iPageCount+1)%>页</div>
<div align=right>操作员:<%=request.getSession().getAttribute("gusername")%>    </div>

<div><br><br><br><br><br><br></div>
<%}// end for i%>

<div align=center>XXXXXXXXX有限公司<br><font size=3>业务员纯销明细表</font></div>
<div align=left>    日期:<%=sToday%></div>
<table width=95% align=center border=1 cellspacing=0 cellpadding=0>
<tr>
<td> <p align="center"><b>送货单位</b> </td>
<td> <p align="center"><b>收货单位</b> </td>
<td> <p align="center"><b>合同号</b> </td>
<td> <p align="center"><b>送货单号</b> </td>
<td> <p align="center"><b>送货日期</b> </td>
<td> <p align="center"><b>品种</b> </td>
<td> <p align="center"><b>单价</b> </td>
<td> <p align="center"><b>数量</b> </td>
<td> <p align="center"><b>金额</b> </td>
<td> <p align="center"><b>业务员</b> </td>
<td> <p align="center"><b>备注</b> </td>
</tr>
<%lNum = 0;
fMoney = 0 ;
%>
<%for (iCount=iRecordCount-iLastPage;iCount<iRecordCount;iCount++){
oSaleDetail = (com.SaleDetail)aSaleDetail.get(iCount) ;
%>
<tr>
<td><p align="left"><%=oSaleDetail.getSendId()%></td>
<td><p align="left"><%=oSaleDetail.getReId()%></td>
<td><p align="left"><%=oSaleDetail.getSoId()==null?" ":oSaleDetail.getSoId()%></td>
<td><p align="left"><%=oSaleDetail.getShipId()==null?" ":oSaleDetail.getShipId()%></td>
<td><p align="left"><%=oSaleDetail.getBillDate()==null?" ":oSaleDetail.getBillDate()%></td>
<td><%=oSaleDetail.getGoodsId()%></td>
<td><%=oSaleDetail.getPrice()%></td>
<td><%=oSaleDetail.getNum()%></td>
<td><%=oSaleDetail.getMoney()%></td>
<td><p align="left"><%=oSaleDetail.getHander()%> </td>
<td> </td>
</tr>
<%
lNum += oSaleDetail.getNum() ;
fMoney += oSaleDetail.getMoney() ;
%>

<% } //end for j%>
<tr>
<td colspan=7><p align="left"> 本页合计</td>
<td><p align="left"> <%=fMoney%></td>
<td colspan=2> </td>
</tr>

<tr>
<td colspan=7><p align="left"> 总合计</td>
<td><p align="left"> <%=fMoneyTotal%></td>
<td colspan=2> </td>
</tr>
</table>

<br>
<div align=center>第<%=(iPageCount+1)%>/<%=(iPageCount+1)%>页</div>
<div align=right>操作员:<%=request.getSession().getAttribute("gusername")%>    </div>

<% }
}catch(Exception ex) {
System.out.println("error"+ex.getMessage());
}
%>

</BODY>
</html>

leonzhao 2002-08-02
  • 打赏
  • 举报
回复
你选择了一个不合适的技术做这件事情,这不是JSP应该解决的问题的。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧