使用ActiveReports for .net 进行报表开发(九)--End User

我们在使用 ActiveRepots 的时候,通常都是在工程里建一个 .rpx 文件,然后自动会有一个对应的代码文件,我们就把代码和处理逻辑写在代码文件里。但是,能不能脱离代码文件,只使用 .rpx 文件来生成报表呢?答案是可以的, ActiveReports 提供的 EndUser 功能可以做到这一点。
 
ActiveRepots 自带的示例代码中包括了两个 EndUser 功能的例子: DiamondReports EndUserDesigner ,前者的功能齐备些,后者比较简单,但是对于学习使用 EndUser 功能,比较直观,下面说说在 winform web 环境下如何使用。
 
运行 EndUserDesigner 示例程序,会看到一个在 VS.net 中的报表设计界面非常相似的界面。有工具栏,有字段列表,有报表布局,有属性,等。实际上最主要的两个控件是 ardMain ardReportExplorer ardMain 就是用来显示报表布局的, ardReportExplorer 用来显示当前 ardMain 的数据源的字段列表和布局的各个部分。
 
使用 EndUser 主要有两个步骤:设定数据源,设计报表布局。设定数据源可以通过点击布局部分 Detail 字样前的图标,会弹出一个对话框,在这里可以设置数据源类型,连接串, sql 语句。完成后会在字段列表部分显示出通过 sql 语句得到的字段,然后就可以设计报表布局了。你可以把字段列表中的某一项拖放到布局上,会自动生成控件并绑定 DataField
 
Winform 下,设计完成后就可以通过 EndUserDesigner 菜单上的“预览”看到你的报表了。然后可以用 Save Layout 菜单将报表保存为一个 .rpx 文件。要在 web 环境下使用刚才设计的报表,步骤要复杂些:
1.       按照上面的步骤设计 .rpx 文件。
2.       web 项目中包括 .rpx 文件。
3.       配置 web.config 文件,为了能在浏览器中直接显示报表,需要对 Web.config 文件作一些设置,在 system.web 标记里添加以下内容:
<httpHandlers>
           <!--
           ********** ActiveReports HttpHandler Configuration **********
           -->
           <add verb="*" path="*.rpx" 
           type="DataDynamics.ActiveReports.Web.Handlers.RpxHandler, ActiveReports.Web,
           Version=4.0.0.1052, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" />
           <add verb="*" path="*.ActiveReport" 
           type="DataDynamics.ActiveReports.Web.Handlers.CompiledReportHandler,
           ActiveReports.Web, Version=4.0.0.1052, Culture=neutral, 
           PublicKeyToken=cc4967777c49a3ff" />
           <add verb="*" path="*.ArCacheItem" 
 type="DataDynamics.ActiveReports.Web.Handlers.WebCacheAccessHandler,
           ActiveReports.Web, Version=4.0.0.1052, Culture=neutral, 
           PublicKeyToken=cc4967777c49a3ff" />
</httpHandlers>
这里的 Version PublicKeyToken 都必须正确,如果你不清楚,可以通过管理工具里的 .net framework 配置工具来查看这些属性。
ActiveReports 的文档里说在 VS2005 中如果不是使用 IIS 就可以不用配置,在 VS2003 里是必须的。但是我在 VS2005 中,如果不加这段配置还是不行。
4.       在页面上使用,例如: <a href=" YourReport .rpx?OutputFormat=pdf"> Sample </a>
注意这里传入的参数 OutputFormat=pdf ,这样会使在浏览器里打开报表生成的 pdf 文件。
目前 ActiveReports 只支持 pdf html 两种格式,如果你使用 excel 或者 rtf ,是没有效果的,都会按照 html 格式显示。
 
上面说了基本的操作,但是如果在 sql 语句里有参数怎么作呢?怎样向 sql 语句传递值来取得指定的数据呢?
首先要在 sql 语句里嵌入参数的表达形式,例如:
Select * from Customers WHERE Country = '<%Country%>'
是不是有些像 CodeSmith 的代码生成脚本?
下面要作的就是传参数值了,在 web 下比较简单,使用 QueryString ,例如,我们把 Url 写成这样: YourReport .rpx?OutputFormat=pdf & Country =China ,一切就 OK 了。
Winform 下,不用自己传参数值,只要你在运行报表的时候, ActiveReports 会自己解析 Sql 语句,分析出有哪些参数,然后会弹出一个对话框,列出参数,要求你输入值。
 
可以看出,使用 EndUser 功能是很简单的,但是它一样也有局限,就是适合较简单的业务,虽然设计一个报表很简单,甚至可以把一部分工作交给客户自己完成,但是不要指望客户能作多么复杂的东西,客户宁可打个电话要求开发者帮忙义务劳动下,维护的工作量最终还是在程序员身上。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值