日期:2014-05-17  浏览次数:20897 次

Repeater打印问题
假如页面中仅有一个Repeater控件用来显示数据,现有100条数据已经显示出来,再加一个按钮通过调用脚本window.print()来打印,请问怎样实现点击按钮后可以自动的每页只打印十行数据,共打出十页,在此先谢过各位高手了!

------解决方案--------------------
分页......
------解决方案--------------------
B/S程序中WEB打印的完美解决方案2007年03月19日 星期一 上午 01:02方案一:ScriptX打印组件
方案二:WsReport打印组件

我们首先来说一下方案一:
听说这个组件已经是2006年的事情了,那时候自己为了开发一个事业单位的办证系统用到了定制格式打印功能,为了解决此问题,因此在破解了wsreport组件,并且在CSDN中对外公布了出来,没想到这一公布颇具波澜,很多朋友纷纷向我索要此组件,其中有一位朋友提到了这个scriptx,说其功能如何强大,可惜是美国人开发的,读不懂英文,所以没有办法使用。因此让我来研究一下,但是一直以来我的时间一向比较紧迫,所以直到今天用到此组件的时候才不得已啃了这块硬骨头,当你进入scriptx的官方网站的时候,看了他的使用说明会让你一头雾水,莫不这头脑,并且如果按照他提供的实例程序来运行测试程序,也是根本就不能通过的,看了半天让我晕晕乎乎的摸不着北。
最后不得已,只有放弃官方的使用说明,然后结合自己的经验进行测试,当然结果是可想而知的,最终是成功了。我所采用的方法是仅仅使用官方提供的最新版本的.cab文件,cab文件是一个封包文件,该文件往往包含多个文件在其内,即通常所说的客户端activex,当用户第一次浏览网站的时候,该cab文件会自动下载并安装到客户端的电脑上,务须在服务器端注册,因此使用非常简单。闲话少叙,言归正传,让我们首先去官方下载cab文件,然后看如下代码就明白了。

<!--这里调用控件ScriptX.cab-->
<object id= "factory " style= "DISPLAY: none " viewastext classid= "clsid:1663ed61-23eb-11d2-b92f-008048fdd814 " codebase= "http://www.a.com/smsx.cab#Version=6,3,434,26 "> </object>
<SCRIPT defer>
//用于设置打印参数
function printBase() {
factory.printing.footer = "页眉 " //页眉
factory.printing.footer = "页脚 " //页脚
factory.printing.portrait = false //true为纵向打印,false为横向打印
factory.printing.leftMargin = 1.5 //左页边距
factory.printing.topMargin = 0.5 //上页边距
factory.printing.rightMargin = 0.5 //右页边距
factory.printing.bottomMargin = 1.0 //下页边距
}

//用于调用设置打印参数的方法和显示预览界面
function printReport(){
printBase();
//window.print();
factory.printing.Preview();
}

//使界面最大化
maxWin();
function maxWin()
{
var aw = screen.availWidth;
var ah = screen.availHeight;
window.moveTo(0, 0);
window.resizeTo(aw, ah);
}
</SCRIPT>
<table width= "100% " border= "0 " cellspacing= "0 " cellpadding= "0 " align= "center " bordercolor= "#FFFFFF ">
<tr bordercolor= "#FFFFFF ">
<td >
<table width= "70% " border= "0 " cellspacing= "0 " cellpadding= "2 " align= "center ">
<tr>
<td align= "center "> <font size= "5 " face= "宋体 "> <b> 查询打印 </b> </font> </td>
</tr>
<tr>
<td align= "center ">
<div id= "divReport " name= "divReport ">
<input type= "button " name= "cmdPRINT " id= "cmdPRINT " onclick= "printReport() " value= "打印 ">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type= "button " onclick= "window.close(); " value= "关闭 ">
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

在上边的代码中,大家需要注意以下 <object id= "factory " style= "DISPLAY: none " viewastext classid= "clsid:1663ed61-23eb-11d2-b92f-008048fdd814 " codebase= "http://www.a.com/smsx.cab#Version=6,3,434,26 "> </object>
这段代码用来加载cab文件,clsid和codebase必须要和你下载的cab中的信息对应,否则组件会加载错误,这两项其实不难找,只要你用winrar打开你下载的c