当前位置: 首页 > news >正文

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

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

 

ActiveRepots自带的示例代码中包括了两个EndUser功能的例子:DiamondReportsEndUserDesigner,前者的功能齐备些,后者比较简单,但是对于学习使用EndUser功能,比较直观,下面说说在winformweb环境下如何使用。

 

运行EndUserDesigner示例程序,会看到一个在VS.net中的报表设计界面非常相似的界面。有工具栏,有字段列表,有报表布局,有属性,等。实际上最主要的两个控件是ardMain ardReportExplorerardMain就是用来显示报表布局的,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>

这里的VersionPublicKeyToken都必须正确,如果你不清楚,可以通过管理工具里的.net framework配置工具来查看这些属性。

ActiveReports的文档里说在VS2005中如果不是使用IIS就可以不用配置,在VS2003里是必须的。但是我在VS2005中,如果不加这段配置还是不行。

4.       在页面上使用,例如:<a href="YourReport.rpx?OutputFormat=pdf">Sample</a>

注意这里传入的参数OutputFormat=pdf,这样会使在浏览器里打开报表生成的pdf文件。

目前ActiveReports只支持pdfhtml两种格式,如果你使用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功能是很简单的,但是它一样也有局限,就是适合较简单的业务,虽然设计一个报表很简单,甚至可以把一部分工作交给客户自己完成,但是不要指望客户能作多么复杂的东西,客户宁可打个电话要求开发者帮忙义务劳动下,维护的工作量最终还是在程序员身上。

转载于:https://www.cnblogs.com/Godblessyou/archive/2007/12/10/989444.html

相关文章:

  • test silverlight
  • 2017软考信息系统项目管理师软考热点
  • 本周链接列表(2007.12.10-2007.12.16)
  • burpsuit辅助sqlmap***
  • Python打包上传
  • Silverlight3D模型能力之一
  • UI面试题
  • 用java连接access数据库
  • apache的工作模式
  • Android性能测试工具Emmagee介绍
  • 日记 [2008年01月09日]
  • Java 人员正确使用 IntelliJ IDEA 的方式 | 掘金技术征文
  • javascript面向对象编程
  • zabbix监控solr
  • 什么是堆、栈?
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 0x05 Python数据分析,Anaconda八斩刀
  • Bootstrap JS插件Alert源码分析
  • eclipse(luna)创建web工程
  • extract-text-webpack-plugin用法
  • github指令
  • Golang-长连接-状态推送
  • Javascript Math对象和Date对象常用方法详解
  • JavaScript 奇技淫巧
  • spring + angular 实现导出excel
  • Vue.js 移动端适配之 vw 解决方案
  • Vue全家桶实现一个Web App
  • 对象引论
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 看域名解析域名安全对SEO的影响
  • 老板让我十分钟上手nx-admin
  • 前端代码风格自动化系列(二)之Commitlint
  • 什么软件可以剪辑音乐?
  • 使用putty远程连接linux
  • 协程
  • 在weex里面使用chart图表
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • raise 与 raise ... from 的区别
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (三)elasticsearch 源码之启动流程分析
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)ABI是什么
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程