请问ASP.NET中数据的打印策略?现在要做一个OA系统,需要打印报表。我不知道怎么作好,我想这样作:
当用户查看数据时,用DataGrid等控件罗列数据,这个网页可以做得花花绿绿很花哨。用户通过每一个Item的CheckBox,选择要打印的行,当用户按下“打印”按钮时,跳到另外一个白低黑字的网页去,只是显示所选数据,没有花哨的东西,用于打印。
这就有个问题:怎样把“查看网页”的数据传到“打印网页”?
请牛人帮我想想好的解决方法,谢谢
当用户查看数据时,用DataGrid等控件罗列数据,这个网页可以做得花花绿绿很花哨。用户通过每一个Item的CheckBox,选择要打印的行,当用户按下“打印”按钮时,跳到另外一个白低黑字的网页去,只是显示所选数据,没有花哨的东西,用于打印。
这就有个问题:怎样把“查看网页”的数据传到“打印网页”?
请牛人帮我想想好的解决方法,谢谢
解决方案 »
- IE8中iframe自适应高度和宽度
- new java.io.File時報錯The type initializer for "java.io.File" threw an exception
- 怎么解决System.Exception: 无法识别的元素“appSettings”?
- 烦啊,javascript
- 四点了,等一个问题的解决
- 请问采用framset所产生的问题
- datagrid里设置列的格式,要求设置为,数据为1500时,显示为1,500.00,数据为0时,显示为空.应该怎么设置格式?
- 如何访问嵌入Repeater控件中的RadioButton
- 请大家看看这代码,怎么不显示阿datagrid
- 请教DATAGRID编程思路。。。
- select top 10 aa,bb,cc form name 为什么只显示5条呢?符合条件的记录不止10条啊,怎么回事
- 打印按键隐藏和页码显示的问题
<!--语言无关 保存成 .HTML 看看-->
<html>
<head>
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
<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>
.tdp
{
border-bottom: 1 solid #000000;
border-left: 1 solid #000000;
border-right: 0 solid #ffffff;
border-top: 0 solid #ffffff;
}
.tabp
{
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="tabp">
<tr>
<td colspan="3" class="tdp">第1页</td>
</tr>
<tr>
<td width="29%" class="tdp"> </td>
<td width="28%" class="tdp"> </td>
<td width="43%" class="tdp"> </td>
</tr>
<tr>
<td colspan="3" class="tdp"> </td>
</tr>
<tr>
<td colspan="3" class="tdp"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" class="tdp"><p>这样的报表</p>
<p>对一般的要求就够了。</p></td>
<td> </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="tabp">
<tr>
<td class="tdp">第2页</td>
</tr>
<tr>
<td class="tdp">看到分页了吧</td>
</tr>
<tr>
<td class="tdp"> </td>
</tr>
<tr>
<td class="tdp"> </td>
</tr>
<tr>
<td class="tdp"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" class="tdp"><p>这样的报表</p>
<p>对一般的要求就够了。</p></td>
<td> </td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
简单懂得 HTML CSS 即可。
下面样式只在打印时有用 <style media=print>
<style media=print>
.Noprint{display:none;}
.PageNext{page-break-after: always;}
</style>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>控件的打印方式:http://www.uncj.net/bbs/viewFile.asp?Boardid=10&ID=832
这个例子我看过。但是太泛泛。
我的问题关键是“可选打印”,也就是说“打印网页”怎么知道用户在“查看网页中”点选了哪一些Item,然后又怎样罗列他们
2、把选中得项直接生成XML,然后再生成报表
3、建一个临时表,选中一条记录,就插入一条记录,报表数据直接从临时表里去就好了
……
但是还有问题选中的数据,in()中的数据,怎么从一个网页传到另一个网页,保留在ViewState中?Session中?
另一个网页取得数据以后,是不是要把他及时销毁掉呢?
遍历datagrid,判断Item的CheckBox的状态,
如果为选中的话,就把该行数据保存到datatable中
为了页面间传值的需要,把datatable保存到session中
按下“打印”按钮时,跳转到“打印网页”页面,
将session中的datatable值取出,用datagrid显示,然后打印