现在的位置: 首页 > 综合 > 正文

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

2012年06月05日 ⁄ 综合 ⁄ 共 1480字 ⁄ 字号 评论关闭

Reporting Services 报表开发

1. 设计报表

2. 部署报表

3. 测试报表

 

设计报表

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

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

clip_image002

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

clip_image004

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

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

clip_image006

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

执行SQL查询的效果如下

clip_image008

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

clip_image010

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

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

clip_image012

 

部署报表

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

clip_image014

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

clip_image016

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

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

在Report Manager中执行,效果如下

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

clip_image018

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

clip_image020

 

报表测试

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

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

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

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

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

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

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

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

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

clip_image022

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

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

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

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

4. 选择条件的测试

clip_image023

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

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

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

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

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

7. 报表导出测试

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

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

抱歉!评论已关闭.