论文部分内容阅读
摘要:结合开发与应用实践,介绍了在ASP平台下调用Crystal Reports报表设计软件实现数据打印的原理和方法。
关键词:Internet信息服务器;水晶报表;应用范例;报表设计组件
中图分类号:TP309文献标识码:A文章编号:1009-3044(2008)05-10ppp-0c
1 前言
为进一步转变政府职能,推进政务公开,提高行政效能,更好地服务发展、服务基层、服务群众,江苏省新闻出版(版权)局通过建设行政服务中心,推进“一站式”服务的窗口,负责本局已进入政务大厅的61项行政许可、行政管理事项的“统一受理、统一办结、统一出证、统一告知”并提供相关政务咨询。在各事项中涉及大量回执、通知、单证、委托书、报表的打印、预览,特别是还有很多证件、报表牵扯到套打。如果在ASP中一行行写代码来实现,开发量将大大增加,开发周期也会大大加长。怎么办?通过调用Crystal Reports来实现吧。
2 简介
Crystal Reports(水晶报表)是加拿大Crystal Decisions公司出品的专业级报表分析与生成软件,它能够实现对数据的检索、分组、分析。与其他的报表创建和分析软件相比,Crystal Reports具有高稳定性、高可伸缩性以及应用平台广泛等杰出的优点。
Web报表解决方案的主要优势是免去了在终端用户计算机上安装软件的麻烦。使用此方式,Crystal Report Viewer通过Web服务器被自动发送到终端用户的Internet缓存中,并且可以显示用户想看的任何报表。
3 编程实例
下面我将用实例阐述水晶报表Web应用程序编程。
3.1 复制水晶报表安装目录下文件到虚拟目录
首先必须在Web服务器上成功安装了Crystal Reports,然后在IIS中创建一个应用程序,并且把它指向网络上的一个虚拟目录,假设为xzsp。然后,应当从crystal reports的安装路径中复制以下9个文件到该虚拟目录下的相应子目录下(比如xzsp\rpt目录下)。假设你的crystal reports安装在默认路径下,那么这些文件会在C:\Program Files\Crystal Decisions\Crystal Reports 9\Samples\chs\Code\Web\Report Designer Component中。
好了,我们已经坐享其成地挖了不少现成的代码,现在要自己编写一些代码了。在虚拟目录中创建一个名为rptcrl.asp的文件, 代码如下:
3.3 编写嵌入RDC(水晶报表设计组件)的配置文件
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<% response.expires=0 %>
<!--#include file="../inc/dbconn.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>报表显示</title>
</head>
<%
reportname=request.QueryString("rpt")
ccom=request.querystring("com")
csel=request.QueryString("sel")
server.scripttimeout=180
%>
<!--#include file="AlwaysRequiredSteps.asp"-->
<%
session("orpt").reportcomments=ccom
session("orpt").recordselectionformula=csel
%>
<!--#include file="morerequiredsteps.asp"-->
<!--#include file="smartvieweractivex.asp"-->
<body>
</body>
</html>
在程序中包含了3个asp文件:AlwaysRequiredSteps.asp、MoreRequiredSteps.asp和SmartViewerActivex.asp,它们的作用已在前面说明了,这里不再赘述,想深入理解可以打开这些文件,文件中会有相应地注释。
3.4 编写报表调用主文件
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>业务管理(出证管理)</title>
</head>
<body>
<!--#include file="menu.asp"-->
<%
pageno=request.querystring("page")
ID=request.querystring("ID")
’set rs=server.createobject("adodb.recordset")
’以下为从相应视图中抽取指定记录
sql="Select * From proc_bk_lxxzyz_view Where ID="
关键词:Internet信息服务器;水晶报表;应用范例;报表设计组件
中图分类号:TP309文献标识码:A文章编号:1009-3044(2008)05-10ppp-0c
1 前言
为进一步转变政府职能,推进政务公开,提高行政效能,更好地服务发展、服务基层、服务群众,江苏省新闻出版(版权)局通过建设行政服务中心,推进“一站式”服务的窗口,负责本局已进入政务大厅的61项行政许可、行政管理事项的“统一受理、统一办结、统一出证、统一告知”并提供相关政务咨询。在各事项中涉及大量回执、通知、单证、委托书、报表的打印、预览,特别是还有很多证件、报表牵扯到套打。如果在ASP中一行行写代码来实现,开发量将大大增加,开发周期也会大大加长。怎么办?通过调用Crystal Reports来实现吧。
2 简介
Crystal Reports(水晶报表)是加拿大Crystal Decisions公司出品的专业级报表分析与生成软件,它能够实现对数据的检索、分组、分析。与其他的报表创建和分析软件相比,Crystal Reports具有高稳定性、高可伸缩性以及应用平台广泛等杰出的优点。
Web报表解决方案的主要优势是免去了在终端用户计算机上安装软件的麻烦。使用此方式,Crystal Report Viewer通过Web服务器被自动发送到终端用户的Internet缓存中,并且可以显示用户想看的任何报表。
3 编程实例
下面我将用实例阐述水晶报表Web应用程序编程。
3.1 复制水晶报表安装目录下文件到虚拟目录
首先必须在Web服务器上成功安装了Crystal Reports,然后在IIS中创建一个应用程序,并且把它指向网络上的一个虚拟目录,假设为xzsp。然后,应当从crystal reports的安装路径中复制以下9个文件到该虚拟目录下的相应子目录下(比如xzsp\rpt目录下)。假设你的crystal reports安装在默认路径下,那么这些文件会在C:\Program Files\Crystal Decisions\Crystal Reports 9\Samples\chs\Code\Web\Report Designer Component中。
好了,我们已经坐享其成地挖了不少现成的代码,现在要自己编写一些代码了。在虚拟目录中创建一个名为rptcrl.asp的文件, 代码如下:
3.3 编写嵌入RDC(水晶报表设计组件)的配置文件
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<% response.expires=0 %>
<!--#include file="../inc/dbconn.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>报表显示</title>
</head>
<%
reportname=request.QueryString("rpt")
ccom=request.querystring("com")
csel=request.QueryString("sel")
server.scripttimeout=180
%>
<!--#include file="AlwaysRequiredSteps.asp"-->
<%
session("orpt").reportcomments=ccom
session("orpt").recordselectionformula=csel
%>
<!--#include file="morerequiredsteps.asp"-->
<!--#include file="smartvieweractivex.asp"-->
<body>
</body>
</html>
在程序中包含了3个asp文件:AlwaysRequiredSteps.asp、MoreRequiredSteps.asp和SmartViewerActivex.asp,它们的作用已在前面说明了,这里不再赘述,想深入理解可以打开这些文件,文件中会有相应地注释。
3.4 编写报表调用主文件
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>业务管理(出证管理)</title>
</head>
<body>
<!--#include file="menu.asp"-->
<%
pageno=request.querystring("page")
ID=request.querystring("ID")
’set rs=server.createobject("adodb.recordset")
’以下为从相应视图中抽取指定记录
sql="Select * From proc_bk_lxxzyz_view Where ID="