Reporting Services 报表开发

1. 设计报表

2. 部署报表

3. 测试报表

 

设计报表

启动Visual Studio 2008, 新创建报表项目,添加一个新的报表。

从工具箱中拖个Table到报表设计器中

信息化基础建设 Reporting Services报表开发

自动弹出报表属性对话框,新创建一个连接,类型选.NET Assembly,字符串为net.tcp://localhost:2908/ServiceManager

信息化基础建设 Reporting Services报表开发

返回到报表属性,准备输入SQL查询语句

找到QueryBuilder组件,打开,并选择报表程序集,点击类型下面的方法名后,在右边的窗格中自动生成对应的SQL查询语句

信息化基础建设 Reporting Services报表开发

如果Always copy to the Clipboard已经打勾,查询语句已经被复制到剪贴板中,在BIDS中Paste查询语句,并点击查询

执行SQL查询的效果如下

信息化基础建设 Reporting Services报表开发

回到报表设计器,依此给Table组件的各个TextBox赋值,完成后,效果如下

信息化基础建设 Reporting Services报表开发

如图中所示,再到Report Header中添加Date Time,User Id,Page, Report Id四个属性,并设置Table Header的字体为Bold

至此,报表已经完成,点击Preview,查看效果

信息化基础建设 Reporting Services报表开发

 

部署报表

回到ERP应用程序中,打开Report Manager管理程序,选择Add Report

信息化基础建设 Reporting Services报表开发

选择刚才制作的报表,等待一下,这个报表就被部署到服务器中

信息化基础建设 Reporting Services报表开发

为了维护报表的统一用户接口,支持不同的报表类型,自动化传递参数,权限控制,还需要到报表对话框中配置

在维护报表对话框,重新建立一个报表ID=GLCUCAR,设定报表类型为Reporting Services, 不需要添加参数,并且到功能授权中给与执行权限。

在Report Manager中执行,效果如下

在报表配置程序中,配置如下的报表浏览网站

信息化基础建设 Reporting Services报表开发

点击连接,即可打开和预览报表

信息化基础建设 Reporting Services报表开发

 

报表测试

1. 精度。不同的舍入方式和计算方式,会对结果精度有影响。

举例:分组求和的结果可能和汇总求和的结果不同,而且数据量越多,误差可能会越大。

而且在每笔纪录计算时,都会发生数据精度损失。比如,100/1.22=81.9672131147541,一般是保留四位小数,再依次对这个值进行求和,结果就有些出入。

再距离,Math.Roud() 这个方法不是通常意义中的四舍五入,而是国际通用的算法。这会对值造成影响。

而SQL Server中Round的四舍五入也有些不同。

在数据库中做summary和把值取到报表中做summary,结果上也有区别。

2. 所有的报表,日期格式要求一致

3. 制造大量的数据来测试报表的Performance.

如下图,使用这个工具,来产生大量的数据.以ReportServer中的History表为例子

信息化基础建设 Reporting Services报表开发

工具的原理是,读取数据库表的字段类型,生成一系列的数据放入到相应的列中。

数值型的列,可以用seed,自增的方式,或是rand随机取值

字符型列,可以字符加数字的方式,不断的产生不同的字符串。

当数据量增大时,报表的performance会明显降低,这时,需要寻找一些优化的技巧。

4. 选择条件的测试

信息化基础建设 Reporting Services报表开发

如果是需要用户输入的值,最好能给出一个对话框,用以选择值,减少值出错或是无效的值的情况。

如果是时间,要控制取值范围,依据业务数据的开始和结束时间为准。

5. 数据的排序要求。在分组的组别排序和明细数据的排序,规则要统一。

6. 字体字号,是否加黑,是否倾斜,都依照规范。

一般的规则是,报表标题14pt, 报表表头12pt,明细数据10pt, 标题都加黑体。

7. 报表导出测试

导出的格式是否有不合理的地方,是否符合通用的纸张大小(A4),可以直接打印。

导出成PDF是否有乱码,页面的边距是否合理。

相关文章: