社区
Web 开发
帖子详情
如何在jsp中实现连续打印和套打?
liangwd
2002-08-02 08:59:26
谢谢!
...全文
185
3
打赏
收藏
如何在jsp中实现连续打印和套打?
谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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应该解决的问题的。
ATGrid报表控件/插件V2.1.7.711
是专业的报表工具,提供了丰富的报表分析方法,具有可视化的报表设计器WinTable,更好的支持WEB报表
打印
,
连续
打印
、报表
套
打,对aspx.net、asp、Java报表、
jsp
、pphp提供了专门的类库,方便WEB报表开发人员进行...
java源码包---java 源码 大量 实例
在有状态SessionBean
中
,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存
中
清除…… Java Socket 聊天...
JSP
极简实操入门
循环语句(for循环-1)
JSP
概述-循环语句(for循环-2)
JSP
概述-循环语句(While循环)
jsp
中
include标签举例一
jsp
中
include标签举例二
jsp
中
param属性传值-1
jsp
中
param属性传值-2
jsp
中
useBean-1
jsp
中
useBean-2 ...
JAVA上百实例源码以及开源项目
在有状态SessionBean
中
,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存
中
清除…… Java Socket 聊天...
JAVA上百实例源码以及开源项目源代码
在有状态SessionBean
中
,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存
中
清除…… Java Socket 聊天...
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章