Web报表打印·简单实现·(一)

类别:.NET开发 点击:0 评论:0 推荐:

 

近日看到论坛中有好多人提到,Web 方式打印报表 的问题 都感觉很辣手。
本人有点小技巧愿意拿处来和大家分享。
本方法不分语言(ASP,ASP.NET,JSP,PHP..)可以生成HTML的语言都可以使用。
其实很简单只要你略懂 HTML,CSS 即可,打印的出来的效果(那就要看你自己了)个人认为一般的打印完全可以应付。

先给一个简单实用的方式(可以打印多页,控制分页,隐藏非打印项目)
<!--语言无关 保存成 .HTML 看看-->
<html>
<head>
<title>报表</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<!--media=print 这个属性可以在打印时有效-->
<style media=print>
.Noprint{display:none;}<!--用本样式在打印时隐藏非打印项目-->
.PageNext{page-break-after: always;}<!--控制分页-->
</style>

<style>
.style_td
{
    border-bottom: 1 solid #000000;
    border-left:  1 solid #000000;
    border-right:  0 solid #ffffff;
    border-top: 0 solid #ffffff;
}
.style_tab
{
    border-color: #000000 #000000 #000000 #000000;
    border-style: solid;
    border-top-width: 2px;
    border-right-width: 2px;
    border-bottom-width: 1px;
    border-left-width: 1px;
}
.NOPRINT {
 font-family: "宋体";
 font-size: 9pt;
}

</style>

</head>

<body >
<center class="Noprint" >
  <p>
  <OBJECT  id=WebBrowser  classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2  height=0  width=0>
  </OBJECT>
  <input  type=button  value=打印          onclick=document.all.WebBrowser.ExecWB(6,1)>
  <input  type=button  value=直接打印  onclick=document.all.WebBrowser.ExecWB(6,6)>
  <input  type=button  value=页面设置  onclick=document.all.WebBrowser.ExecWB(8,1)>
</p>
  <p>    <input  type=button  value=打印预览  onclick=document.all.WebBrowser.ExecWB(7,1)>
    <br/>
    </p>
  <hr align="center" width="90%" size="1" noshade>
</center>

<table width="90%" border="0" align="center" cellpadding="2" cellspacing="0"  class="style_tab">
 <tr>
  <td colspan="3" class="style_td">第1页</td>
    </tr>
 <tr>
   <td width="29%" class="style_td">&nbsp;</td>
   <td width="28%" class="style_td">&nbsp;</td>
      <td width="43%" class="style_td">&nbsp;</td>
  </tr>
 <tr>
   <td colspan="3" class="style_td">&nbsp;</td>
  </tr>
 <tr>
   <td colspan="3" class="style_td"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="50%" class="style_td"><p>这样的报表</p>
          <p>对一般的要求就够了。</p></td>
          <td>&nbsp;</td>
        </tr>
      </table></td>
  </tr>
</table>
<hr align="center" width="90%" size="1" noshade class="NOPRINT" >
<!--分页-->
<div class="PageNext"></div>
<table width="90%" border="0" align="center" cellpadding="2" cellspacing="0"  class="style_tab">
  <tr>
    <td class="style_td">第2页</td>
  </tr>
  <tr>
    <td class="style_td">看到分页了吧</td>
  </tr>
  <tr>
    <td class="style_td">&nbsp;</td>
  </tr>
  <tr>
    <td class="style_td">&nbsp;</td>
  </tr>
  <tr>
    <td class="style_td"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="50%" class="style_td"><p>这样的报表</p>
              <p>对一般的要求就够了。</p></td>
          <td>&nbsp;</td>
        </tr>
    </table></td>
  </tr>
</table>
</body>
</html>
<!--

WebBrowser 控件对象。只要是 win98 以上版本都有。
其实配合“分页样式表”,和 HTML表格 一般的打印都可以实现的。

如果想对 非Windows平台用户使用。
请去掉下面这些:
<center class="Noprint" >
  <p>
<!--最主要是这个-->
  <OBJECT  id=WebBrowser  classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2  height=0  width=0>
  </OBJECT>
  <input  type=button  value=打印          onclick=document.all.WebBrowser.ExecWB(6,1)>
  <input  type=button  value=直接打印  onclick=document.all.WebBrowser.ExecWB(6,6)>
  <input  type=button  value=页面设置  onclick=document.all.WebBrowser.ExecWB(8,1)>
</p>
  <p>    <input  type=button  value=打印预览  onclick=document.all.WebBrowser.ExecWB(7,1)>
    <br/>
    </p>
  <hr align="center" width="90%" size="1" noshade>
</center>
-->

第一次发稿(也许这方法很多人已经会了^_^)。
还有不知道本搞应该发到哪个栏目 所以就发到这里了。^_^

EMAIL: [email protected]

本文地址:http://com.8s8s.com/it/it44880.htm