信息化基础建设 Reporting Services报表开发
Reporting Services 报表开发
1. 设计报表
2. 部署报表
3. 测试报表
设计报表
启动Visual Studio 2008, 新创建报表项目,添加一个新的报表。
从工具箱中拖个Table到报表设计器中
自动弹出报表属性对话框,新创建一个连接,类型选.NET Assembly,字符串为net.tcp://localhost:2908/ServiceManager
返回到报表属性,准备输入SQL查询语句
找到QueryBuilder组件,打开,并选择报表程序集,点击类型下面的方法名后,在右边的窗格中自动生成对应的SQL查询语句
如果Always copy to the Clipboard已经打勾,查询语句已经被复制到剪贴板中,在BIDS中Paste查询语句,并点击查询
执行SQL查询的效果如下
回到报表设计器,依此给Table组件的各个TextBox赋值,完成后,效果如下
如图中所示,再到Report Header中添加Date Time,User Id,Page, Report Id四个属性,并设置Table Header的字体为Bold
至此,报表已经完成,点击Preview,查看效果
部署报表
回到ERP应用程序中,打开Report Manager管理程序,选择Add Report
选择刚才制作的报表,等待一下,这个报表就被部署到服务器中
为了维护报表的统一用户接口,支持不同的报表类型,自动化传递参数,权限控制,还需要到报表对话框中配置
在维护报表对话框,重新建立一个报表ID=GLCUCAR,设定报表类型为Reporting Services, 不需要添加参数,并且到功能授权中给与执行权限。
在Report Manager中执行,效果如下
在报表配置程序中,配置如下的报表浏览网站
点击连接,即可打开和预览报表
报表测试
1. 精度。不同的舍入方式和计算方式,会对结果精度有影响。
举例:分组求和的结果可能和汇总求和的结果不同,而且数据量越多,误差可能会越大。
而且在每笔纪录计算时,都会发生数据精度损失。比如,100/1.22=81.9672131147541,一般是保留四位小数,再依次对这个值进行求和,结果就有些出入。
再距离,Math.Roud() 这个方法不是通常意义中的四舍五入,而是国际通用的算法。这会对值造成影响。
而SQL Server中Round的四舍五入也有些不同。
在数据库中做summary和把值取到报表中做summary,结果上也有区别。
2. 所有的报表,日期格式要求一致
3. 制造大量的数据来测试报表的Performance.
如下图,使用这个工具,来产生大量的数据.以ReportServer中的History表为例子
工具的原理是,读取数据库表的字段类型,生成一系列的数据放入到相应的列中。
数值型的列,可以用seed,自增的方式,或是rand随机取值
字符型列,可以字符加数字的方式,不断的产生不同的字符串。
当数据量增大时,报表的performance会明显降低,这时,需要寻找一些优化的技巧。
4. 选择条件的测试
如果是需要用户输入的值,最好能给出一个对话框,用以选择值,减少值出错或是无效的值的情况。
如果是时间,要控制取值范围,依据业务数据的开始和结束时间为准。
5. 数据的排序要求。在分组的组别排序和明细数据的排序,规则要统一。
6. 字体字号,是否加黑,是否倾斜,都依照规范。
一般的规则是,报表标题14pt, 报表表头12pt,明细数据10pt, 标题都加黑体。
7. 报表导出测试
导出的格式是否有不合理的地方,是否符合通用的纸张大小(A4),可以直接打印。
导出成PDF是否有乱码,页面的边距是否合理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库