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

转帖|其它|编辑:郝浩|2011-11-09 14:37:58.000|阅读 766 次

概述:我们在使用ActiveReports的时候,通常都是在工程里建一个.rpx文件,然后自动会有一个对应的代码文件,我们就把代码和处理逻辑写在代码文件里。但是,能不能脱离代码文件,只使用.rpx文件来生成报表呢?答案是可以的,ActiveReports提供的EndUser功能可以做到这一点。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  我们在使用ActiveReports的时候,通常都是在工程里建一个.rpx文件,然后自动会有一个对应的代码文件,我们就把代码和处理逻辑写在代码文件里。但是,能不能脱离代码文件,只使用.rpx文件来生成报表呢?答案是可以的,ActiveReports提供的EndUser功能可以做到这一点。

  ActiveReports自带的示例代码中包括了两个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%>'

  下面要作的就是传参数值了,在web下比较简单,使用QueryString,例如,我们把Url写成这样:YourReport.rpx?OutputFormat=pdf& Country=China,一切就OK了。

  在Winform下,不用自己传参数值,只要你在运行报表的时候,ActiveReports会自己解析Sql语句,分析出有哪些参数,然后会弹出一个对话框,列出参数,要求你输入值。

  可以看出,使用EndUser功能是很简单的,但是它一样也有局限,就是适合较简单的业务,虽然设计一个报表很简单,甚至可以把一部分工作交给客户自己完成,但是不要指望客户能作多么复杂的东西,客户宁可打个电话要求开发者帮忙义务劳动下,维护的工作量最终还是在程序员身上。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP