|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp是基于web的一种编程技术,可以说是cgi的一种。它可以完成以往cgi程序的所有功能,如计数器、留言簿、公告板、聊天室等等。web|web打印 信任用B/S体例做过使用的人都能够会碰到如许一个成绩,若何便利、雅观地完成报表打印。假如利用阅读器的打印菜单打印的话,将把网页上的一些无用的器材打到报表上,好比使用菜单等。由于选择打印菜单打印网页将会把网页中的一切内容全体打印出来,假如你的使用有分帧则打印内容将包含各帧中的内容,而你实践要的内容只是个中一局部。所以有良多使用就只能把打印功效放到后台完成了。 针对这类情形,咱们该怎样办?其实可以有多种办法完成网页打印功效。
一种办法就是利用专业的打印东西,如Crystal Reports(水晶报表)。用过Visual Studio 5.0的伴侣一定记得这个东西,不外那时的版本只要4.几。如今的最新版本已达9了,近几个版本的水晶报表都撑持WEB打印。最复杂的办法是先用水晶报表制造好模板,然后利用ASP带参数挪用制造好的模板便可。水晶报表在网页上生成报表后,可以直接打印,也能够转存为其它的对照经由过程的文件如Excel文件。利用水晶报表可以制造出十分大度的款式,关头在你对水晶报表的开辟才能上,但因为水晶报表价钱较高,只要当项目很赚钱时才买得起。
第二种办法是购置第三方的网上打印控件,费用同水晶报表比拟廉价,但后果功能究竟若何则仁者见仁了。
第三种办法是使用款式表及JavaScript自界说函数完成。经由过程款式表及JavaScript,完成网页打印,后果也还可以。在此有一个实例请人人看看。上面是打印函数完成详解:
<script language="JavaScript" type="text/JavaScript">
<!--
function DP() {
if (window.print)
{
var Div1 = document.all.Div1.innerHTML;
var Div2 = document.all.Div2.innerHTML;
// *****************************************************
// Div1、Div2即为你在打印的区域
// 这里依据你要打印的哪些内容,从原显示页面顶用
// <div id=Div1>Div1....</div><div id=Div2>Div2...</div>
// 等标示出来,要打印几何项目就标示几何
// ***************************************************** var CSS = '<style type="text/css" media=all>' +
'p { line-height: 120%}' +
'.ftitle { line-height: 120%; font-size: 18px; color: #000000}' +
'td { font-size: 10px; color: #000000}' +
'</style>' ;
// *****************************************************
// 界说打印用的CSS,详细你想打印出甚么样的格局全看你本人
// 了,但要注重:假如此处有甚么同网页中纷歧致的,能够打印
// 出来的页面同网页格局、字体能够会有所分歧
// *****************************************************
var body ='<table width="640" border="0" cellspacing="0" cellpadding="5">' +
' <tr> ' +
' <td class="fbody"> ' +
' <div align="center" class=ftitle>' + Div1 + '</div>' + Div2 +
' </td>' +
' </tr>' +
'</table>';
// ******************************************************
// 在此处从头设置的打印格局,依据你的打印请求,将原显示的
// 网页的DIV内容从头组合,可以依据你本来的表格内容,去失落
// 不要打印的,你也能够能上面界说的noprint疏忽失落你不想打
// 印的器材,只挪用你要打印的内容,但如许被疏忽失落的中央将
// 打印出空,不是很雅观。表格宽度要同打印的纸张宽度婚配。
// ******************************************************
document.body.innerHTML = '<center>' + css + body + '</center>';
// ******************************************************
// 重设document.body,打印文档筹办停当
// ******************************************************
window.print();
window.history.go(0);
// ******************************************************
// 挪用打印号令,打印以后窗口内容。当你打印时实际上是一张新
// 的网页了,但网页文件仍是本来的。紧接着挪用
// window.history.go(0),再回到打印前的页面,后果相当不差
// ******************************************************
}
}
-->
</script>
<style>
@media print {
.noprint {display:none}
}
</style>
<!--//.noprint 界说了noprint,在以下不需求打印的中央到场 class="noprint"后,用window.print()打印就会疏忽-->
好了,一切停当了,如今要做的就是挪用DP函数,假如你将完成挪用的按钮设计在统一张网页上,则直接挪用便可;假如你用了分帧办法,完成挪用的按钮是在另外一张网页上,则在DP函数的第一行到场window.focus()号令,不然打印的只是有按钮的网页。
第四种办法,完成是一种取巧的办法。一样仍是经由过程挪用window.print()完成,只是将你要打印的内容专学生成一张网页,而打印按钮在另外一帧上。假定报表网页在mainFrame上,按钮在topFrame上,按钮挪用PrintReports()函数,PrintReports()函数以下便可完成打印任务。
function PrintReports() //topFrame网页中的函数
{
try
// *******************************************************
// 毛病处置,假如在mainFrame中的网页没有DP函数则不打印
// *******************************************************
{
window.parent.frames("mainFrame").DP();
}
catch(e)
{
alert("no object to print!");
}
}
function DP() // mainFrame网页中函数
{
window.focus();
if (window.print)
{
window.print();
}
}
我团体以为这是最便利的办法了。
最初,假如你将IE阅读器的“文件--页面设置”中的“页眉、页角”的设置去失落,则后果更佳了。(转载)
</p> ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了. 关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用 |
|