仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2386|回复: 18
打印 上一主题 下一主题

[学习教程] ASP网页编程之web打印的另类办法

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:24:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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写得更有效率和更方便重用
山那边是海 该用户已被删除
沙发
发表于 2015-2-16 01:03:16 | 只看该作者
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
精灵巫婆 该用户已被删除
板凳
发表于 2015-2-26 10:33:48 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
若天明 该用户已被删除
地板
发表于 2015-3-15 23:12:50 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
柔情似水 该用户已被删除
5#
发表于 2015-3-22 17:56:48 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
谁可相欹 该用户已被删除
6#
发表于 2015-3-27 05:09:26 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
若相依 该用户已被删除
7#
发表于 2015-4-4 06:59:21 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
再见西城 该用户已被删除
8#
发表于 2015-4-14 07:06:46 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
兰色精灵 该用户已被删除
9#
发表于 2015-4-14 07:30:12 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
再现理想 该用户已被删除
10#
 楼主| 发表于 2015-4-26 09:10:06 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
透明 该用户已被删除
11#
发表于 2015-5-2 13:24:42 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
变相怪杰 该用户已被删除
12#
发表于 2015-5-6 16:56:26 | 只看该作者
那么,ASP.Net有哪些改进呢?
莫相离 该用户已被删除
13#
发表于 2015-6-14 00:55:53 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
admin 该用户已被删除
14#
发表于 2015-6-16 03:19:41 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
分手快乐 该用户已被删除
15#
发表于 2015-6-30 00:31:04 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
因胸联盟 该用户已被删除
16#
发表于 2015-7-1 22:00:39 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
17#
发表于 2015-7-9 23:23:04 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
不帅 该用户已被删除
18#
发表于 2015-7-11 02:59:47 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
飘灵儿 该用户已被删除
19#
发表于 2015-7-12 07:07:43 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-29 03:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表