信息化基础建设 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是否有乱码,页面的边距是否合理。