Reporting Service 读取 web service数据

用户希望通过Reporting Builder来访问系统的部分数据,想通过一个有读写某个视图的帐号来进行读取数据,考虑了一下,数据库名字是我们设计的,对于用户来说可能并不是友好的,于是寻找另一种方法可以将某些数据共享给用户,第一个想法就是Reporting builder是否可以访问web service.

看了一下连接方式,里面有XML,觉得有戏,于是查找资料

image

首先定义一个web serivce

[WebService(Namespace = http://ABB.ContractManagement.org/)]

[WebMethod]
public XmlDataDocument GetContractDataByContractType(string unit, string password, string contractType)

{

}

在方法中只要将DataSet转换为XmlDataDocument就可以了

然后在Reporting Builder里新建DataSoucre,连接类型选为XML,并在连接字符串中填写web service地址,

image

点击OK。新建DataSets,选择先前创建的Data Source,关键在于Query如何去写,特别是带参数的查询,这个我折腾了半天才弄明白,quey语句如下:

<Query>
<SoapAction>http://ABB.ContractManagement.org/GetContractDataByContractType</SoapAction>
<Method Namespace="http://ABB.ContractManagement.org/" Name="GetContractDataByContractType">
  <Parameters>
        <Parameter Name="unit" Type="String">
       <DefaultValue>CNABB</DefaultValue>
     </Parameter>
    <Parameter Name="password" Type="String">
       <DefaultValue>654321</DefaultValue>
     </Parameter>
<Parameter Name="contractType" Type="String">
       <DefaultValue>Fixed Asset Contract</DefaultValue>
     </Parameter>
   </Parameters>
</Method>
</Query>

然后测试查询,有正确的返回值,查询等都没有问题了。

image

 

留着做个备份,省得忘记了。

posted on 2013-05-29 11:43  Work Log  阅读(258)  评论(0编辑  收藏  举报