仓酷云

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

[学习教程] ASP网页设计在WEB情况下打印报表的crystal的办理方...

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

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

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

x
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。web|打印|打印报表|办理<%@LANGUAGE="VBSCRIPT"%>
<%
==================================
从ADORecordset间接天生报表
==================================

观点:

这个使用被计划成演示如何从ADORecordset天生报表。我们起首创建ADOConnection和
Recordset工具,然后用SQL语句从数据库中天生一个纪录集。然后我们创建一个Crystal
Reports工具,并把这个这个工具指向ADOrecordset。最初我们将CrystalReports
SmartViewer送到客户端显现这个报表。

第一步:创建ADOConnectionandRecordset

一个ADO的数据库毗连就是经由过程你已存在的ODBC数据源(DSN)从象ASP如许的使用中来会见
数据的毗连。为了到达这个例子的目标,我们将利用到用一个叫做"XtremeSampleData"的
连到Access数据库Xtreme.mdb体系DSN

创建ADO数据库毗连:

SetoConn=Server.CreateObject("ADODB.Connection")

这里创建叫做"oConn"的ADOconnection,我们将用这个ADOconnection工具毗连到上述的DSN

用ADOconnection必需先要翻开它:

oConn.Open("XtremeSampleDatabase")

这里翻开我们的ODBC的数据源,这个数据源指向Access数据库Xtreme.mdb

如今我们必需创建一个RecordSet工具:

setsession("oRs")=Server.CreateObject("ADODB.Recordset")

在下面我们创建了一个session("oRs").这个session中寄存一个RecordSet工具
将要包括用SQL语句前往的数据

界说和天生recordset:

session("oRs").ActiveConnection=oConn
界说这个recordset将要利用的Connection工具

session("oRs").Open"SELECT[ProductID],[ProductName]FROMProduct"

用SQL语句从Xtreme.mdb库的"Product"表中掏出两个字段

===================================================================================
创建CrystalReports工具
===================================================================================
你大概注重到,CrystalReports工具被设为session,这是由于已需求就会被一个叫做
"rptserver.asp"的ASP处置,为了让rptserver.asp能十分简单地会见CrystalReport工具,
我们把这些工具都设为session。如许任何ASP页都运转在这个session中,都可以间接会见这些工具

reportname="ADORecordset.rpt"

这里创建一个字符串变量,指向CrystalReport文件(.rptfile),再用这段代码的时分
换成你的CrystalReport文件名。

创建APPLICATION工具
IfNotIsObject(session("oApp"))Then
Setsession("oApp")=Server.CreateObject("CrystalRuntime.Application")
EndIf

这个"if/endif"布局用来每一个session只创建一次CrystalReportsApplication工具o
创建application工具-session("oApp"),将CrystalReportDesignComponent
automationserver(craxdrt.dll)载进内存。

我们创建session变量是为了再aspsession过程当中都利用它们.如许能够削减将craxdrt.dll
载进和卸载的体系开支。在一个session中一旦创建了一个application工具我们就能够不用
重修工具运转更多的报表。

创建REPORT工具

这个REPORT工具被Application的OpenReport办法创建

Path=Request.ServerVariables("PATH_TRANSLATED")
While(Right(Path,1)""AndLen(Path)0)
iLen=Len(Path)-1
Path=Left(Path,iLen)
Wend
response.Writepath
这个"While/Wend"轮回被用来将以后文件从假造路径(eg:http://Domain/Dir)转换成Crystal
Reportfile的物理路径(eg:C:)

翻开REPORT(先扫除之前的任何工具)

IfIsObject(session("oRpt"))then
Setsession("oRpt")=nothing
Endif

Onerrorresumenext

Setsession("oRpt")=session("oApp").OpenReport(path&reportname,1)
这里用"PATH"和"reportname"变量盘算出CrystalReportfile的物理路径,并翻开它。

IfErr.Number0Then
Response.Write"ErrorOccurredcreatingReportObject:"&Err.Description
SetSession("oRpt")=nothing
SetSession("oApp")=nothing
Session.Abandon
Response.End
EndIf

这个Onerroresumenext块反省在创建report工具时呈现的任何毛病,我们正明白的捕捉任何
毛病假如视图凌驾允许协定划定的最年夜并发用户数。

注重,我们其实不只创建一次report工具。这是由于有了ASPsession你能够处置更多的凌驾一个报表
rptserver.asp将仅仅处置一个叫session("oRpt")的report工具。因而,你假如但愿处置多个报表
的话,就要创建一个新的session("oRpt")工具。

session("oRpt").MorePrintEngineErrorMessages=False
session("oRpt").EnableParameterPrompting=False

这里不同意毛病呈报机制,包含CrystalReportDesignComponentautomationserver(craxdrt.dll)
内建的毛病呈报,这是由于两个缘故原由:
1.打印引擎是在WebServer上实行的,以是任何毛病信息都将被显现在服务端,假如在服务端呈报堕落了,
打印引擎将中断运作,你的使用将被“挂起”
2.rptserver.asp已有一些毛病处置逻辑在内里了,能够捕捉任何非致命毛病,并显现在客户端。

**主要**即便我们克制了服务端引擎的毛病处置,可是致命毛病仍是会在WebServer服务端被捕捉,并
显现堕落误提醒对话框。以是我们倡议,你在"WorldWideWebPublishing"service(IISservice)设置
"AllowServicetoInteractwithDesktop"选项。如许假如你的ASP使用逝世了,你将能看到毛病提醒。

========================================================================</p>楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。
变相怪杰 该用户已被删除
沙发
发表于 2015-1-20 06:15:57 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
兰色精灵 该用户已被删除
板凳
发表于 2015-1-24 12:39:16 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
分手快乐 该用户已被删除
地板
发表于 2015-2-1 11:22:16 | 只看该作者
掌握asp的特性而且一定要知道为什么。
谁可相欹 该用户已被删除
5#
发表于 2015-2-7 04:31:43 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
爱飞 该用户已被删除
6#
发表于 2015-2-20 13:19:51 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
小女巫 该用户已被删除
7#
发表于 2015-3-6 17:11:25 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
深爱那片海 该用户已被删除
8#
发表于 2015-3-20 12:55:39 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-7 14:39

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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