报表工具访问 Web Service

目前常用或常见的报表工具基本都是支持访问 Web Service 获取数据作为报表数据来源的。但几乎都是采用二次开发写代码实现,有的可能叫程序数据集,也有叫 JavaBean 数据集的等等,共同点是代码量都很多(包括访问、获取数据、格式转换等),需要具备编程能力,有一定的技术门槛,且不通用。

润乾报表本身也支持写程序(自定义数据集)访问 Web Service,如 润乾报表基于 Axis2 实现 WebService 实例 ](http://c.raqsoft.com.cn/article/1534314837029),但是和其他报表工具一样有上面提到的同样缺点。

有没有更好的方式方案?答案是有的。

润乾报表对访问 Web Service 方法还做了封装,通过脚本数据集,一两个函数即可完成数据获取,借助脚本强大的数据处理能力,一两行轻松格式化数据,提供报表使用。

以查看某地区天气情况为例,调用 Web Service 获取数据,最终希望返给报表内容为:

imagepng

八列及所查询地区的记录。

下面看下具体制作过程:

1、 打开润乾报表工具,引入 WebService 外部库

外部库的下载和使用指南,可到http://c.raqsoft.com.cn/tag/Download 查找。

勾选“WebserviceCli”选项

imagepng

2、 新建空白报表并新增脚本数据集

imagepng

3、 编写脚本

A B
1 =create(省份, 城市, 城市代码, 城市图片名称, 最后更新时间, 当天气温, 概况, 风向和风力) / 创建返给报表的数据结构
2 =ws_client(“http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl”) / 访问天气预报 Web Service 服务器
3 =ws_call(A2,“WeatherWebService”:“WeatherWebServiceSoap”:“getWeatherbyCityName”,cityName:“theCityName”) / 根据城市名访问天气情况,获取数据
4 >A1.record(A3.(#1).to(1,8)) / 处理数据,拿取 8 列数据
5 result A1 / 返回数据

增加报表参数“cityName”,预览脚本数据集(cityName 值为“beijing”)

imagepng

4、 绘制报表呈现数据

imagepng

预览报表结果

imagepng

通过例子不难发现,润乾报表脚本数据集使用封装好的 Web Service 外部库,在处理 Web Service 接口数据源时简单高效(代码量少、可直接对数据格式化等),解决了写程序带来的诸多问题。