一个并不是很好解决web打印方案的例子

该博客主要围绕Web页面的库存汇总表展开。通过CSS设置表格样式,利用ScriptX控件实现客户端打印设置,包括页眉、页脚、打印方向和页边距等。同时使用SQL语句从数据库中查询数据,将查询结果分页显示在表格中,并计算每页合计与总计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<style>
td{font-size:14px;line-height:180%}
.ybk{border-right:1px #000000 solid;}
.sbk{border-top:1px #000000 solid;}
</style>
<!--这里调用控件ScriptX.cab-->
<object id="factory" style="display:none" viewastext classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="ScriptX.cab#Version=5,60,0,360"></object>
<script defer>
//因为要在客户端打印,所以将codebase 的路径改为服务的URL例如:http://IP/存放ScriptX.cab的路径
function window.onload() {
  factory.printing.header = ""         //页眉
  factory.printing.footer = ""        //页脚
  factory.printing.portrait = false    //true为纵向打印,flase为横向打印
  factory.printing.leftMargin = 15.0   //左页边距
  factory.printing.topMargin = 5.0     //上页边距
  factory.printing.rightMargin = 0.75  //右页边距
  factory.printing.bottomMargin = 1.5  //下页边距
  }
</script>
 <!--#include file="conn.asp"-->
<%
           sql="select  * from tablename"
           Set rs=Server.CreateObject("Adodb.Recordset")
           rs.open sql,conn,3,2
           If Not rs.eof then
              rs.pagesize=21 '每页记录条数即每页打印的条数
              xs=rs.pagesize
              rc=rs.pagecount
     %>


<!--自动分页开始-->

<% for n = 1 to rc
   xs_s=(xs*n-xs)+1' 每页起始序数
   xs_e=xs*n '每页结束序数
   %>
<p>&nbsp;
<body>
<table width="1000" height="700" cellpadding="0" cellspacing="0" border="0">
<tr><td valign="top">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr><td height="50" align="center" valign="top"><font size="5">库存汇总表</font></td></tr>
</table>

<table width="1000" cellpadding="0" cellspacing="0" style="border:1px #000000 solid" align="center">
 <tr height="20" align="center">
  <td width="5%" class="ybk">序号</td>
  <td width="10%" class="ybk">人工编号</td>
  <td width="15%" class="ybk">材料名称</td>
  <td width="25%" class="ybk">型号规格</td>
  <td width="10%" class="ybk">单价</td>
  <td width="8%" class="ybk">数量</td>
  <td width="12%" class="ybk">金额</td>
  <td width="5%" class="ybk">单位</td>
  <td width="10%">更新日期</td>
 </tr>
<%
   dim i
   i=1
   Do While Not rs.eof and i<=xs %>
 <tr><td colspan="10" height="1"><img src="../images/dot.gif" width="100%" height="1"></td></tr>
 <tr height="20">
  <td width="5%" class="ybk">&nbsp;&nbsp;<%=xs_s+(i-1)%></td>
  <td width="10%" class="ybk">&nbsp;&nbsp;<%=rs("name_cn")%></td>
  <td width="15%" class="ybk">&nbsp;<%=rs("name_en")%></td>
  <td width="25%" class="ybk">&nbsp;<%=rs("name_en")%></td>
  <td width="10%" class="ybk" align="right"><%'=FormatNumber(rs("nation_id"),3,true)%>&nbsp;</td>
  <td width="8%" class="ybk" align="right"><%'=FormatNumber(rs("nation_id"),2,true)%>&nbsp;</td>
  <td width="12%" class="ybk" align="right"><%'xj=FormatNumber(rs("nation_id"),3)*FormatNumber(rs("nation_id"),2)%><%'=FormatNumber(xj,2,true)%>&nbsp;</td>
  <td width="5%" class="ybk">&nbsp;<%=rs("name_cn")%></td>
  <td width="10%">&nbsp;<%'=datevalue(rs("gxsj"))%></td>
 </tr>

<%
   rs.MoveNext
   i=i+1
   hj=hj+xj
   zj=zj+xj
   Loop %>

 <% If rc>1 then %>
 <tr><td colspan="10" height="1"><img src="../images/dot.gif" width="100%" height="1"></td></tr>
 <tr height="20">
  <td width="5%" class="ybk">&nbsp;</td>
  <td width="10%" class="ybk">&nbsp;</td>
  <td width="15%" class="ybk">&nbsp;</td>
  <td width="25%" class="ybk">&nbsp;本 页 合 计</td>
  <td width="8%" class="ybk">&nbsp;</td>
  <td width="8%" class="ybk">&nbsp;</td>
  <td width="12%" class="ybk" align="right"><%'=FormatNumber(hj,2,true)%><% hj=0%>&nbsp;</td>
  <td width="5%" class="ybk">&nbsp;</td>
  <td width="10%">&nbsp;</td>
 </tr>
 <% end if %>


 <% If n=rc then %>
 <tr><td colspan="10" height="1"><img src="../images/dot.gif" width="100%" height="1"></td></tr>
 <tr height="20">
  <td width="5%" class="ybk">&nbsp;</td>
  <td width="10%" class="ybk">&nbsp;</td>
  <td width="15%" class="ybk">&nbsp;</td>
  <td width="25%" class="ybk">&nbsp;总 计</td>
  <td width="8%" class="ybk">&nbsp;</td>
  <td width="8%" class="ybk">&nbsp;</td>
  <td width="12%" class="ybk" align="right"><%=FormatNumber(zj,2,true)%>&nbsp;</td>
  <td width="5%" class="ybk">&nbsp;</td>
  <td width="10%">&nbsp;<%=now%></td>
 </tr>
 <% end if %>

</table>

<table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr><td height="15">&nbsp;</td></tr>
  <tr><td height="30" align="center"><font size="3">第<%=n%>页,共<%=rc%>页</font></td></tr>
</table>
</td></tr>
</table>
<% next %>

<!--分页结束-->

<%        
           end if
           rs.close
           Set rs=Nothing
           conn.close
           Set conn=Nothing
%>
</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值