English 中文(简体)
How Get Reports To See Common 数据来源
原标题:How Get Reports To See Shared Data Sources

2008年1月1日

我有一整套报告,我必须装入塞族共和国。 这些是第三方开发的,并被送往我们的公司。 它们与共享数据来源连接。 我把报告上载到按职能分列的文件夹中。 问题在于,他们看不到数据来源,报告是用的。 我创建了一个共享的数据来源,并向它指出了报告。 链接经过成功测试,但当我阅读报告时,我继续收到以下错误:

"The report server cannot process the report or shared dataset. The shared data source dsMyObject for the report server or SharePoint is not valid. Browse to the server or site and select a shared data source. (rsInvalidDataReference)"

当我使用一个嵌入式数据来源的准确相同全权证书时,报告即行,在我接手之后,我可以将其改为我创建的共享数据来源,而且只是罚款。

我的问题是,这一过程太低,我不得不对许多报告,而且还要有更多的服务器来滚动,不得不人工转换数据来源,以便其发挥作用。

我注意到,在我通过数据来源清单时,我看一看我以数据来源名称创建的数据来源,其一行和下一行的位置(http://[Server]/reports/[Data Source Folder]),而由发送者创建的系统名称则按两行计算。 这使我相信,有办法将DS装入SSRS,其名称与供应商一样,使报告能够自动使用。 我找不到任何东西告诉我如何这样做,我在这里问这个问题。 我如何获得预写报告,以了解服务器上共享的数据来源,我把报告部署到这里?

提前感谢,

最佳回答

这是SSRS的一大缺陷。 在SSRS建立报告和数据来源时,它们被指定为报告Server数据库中的独特识别资料。 当报告上载时,他们不承认一个现有数据来源,而报告用同一名称编制。

与此相关的一种方法是利用SSRS的载体。 它可以用于大宗任务,包括确定关于报告的数据来源元数据。 更多技术资料见下文链接。

http://msdn.microsoft.com/en-us/library/ms162839.aspx” rel=“noreferer”>RS Utility

问题回答

我知道这是一个真正的老问题,但我来到这里,因为过去两天我面临同样的问题。 然而,在我的经验中,解决办法比较简单,因此,如果有人今后再寻找解决办法的话,我会补充说。

您需要在<>之前创建您的数据来源。 这里我要说的是:

(1) 我在增加数据来源之前先部署这些人员,他们干 t工作:从Im的应用程序来看,既不是来自RS,也不是来自RS。

2) 我随后创建了一个数据来源,但对于现有的报告来说,没有数据。 我能够把其中一些数据混为一谈,并将其引向新的数据来源,并发挥了作用。 如果你想要大量这样做,那么你可能像上文所建议的那样使用RS Utility,或者可能的话使用相似。 我没有这样做。

3) I tried redeploying the reports into RS, however apparently RS doesn t overwrite items that haven t changed as the redeployed reports still didn t pick up the datasource

4) 然后,我删除了现有的报告,并进行了重新调配,从而固定了报告,并直接取而代之。

我发现解决这一问题的最容易的方法,就是简单地编写一份新报告,供指定经营实体使用共享的数据来源。 在SSRS2012/VS2010中,主人的第一页询问是否使用“共享数据来源”或创建“新的数据来源”。 第一种选择(并继续编写婚礼报告并节省费用)的结果是,《婚姻和家庭关系法》在该款与该款之间有一节,例如:

  <DataSources>
    <DataSource Name="shared_datasource_name">
      <DataSourceReference>shared_datasource_name</DataSourceReference>
      <rd:SecurityType>None</rd:SecurityType>
      <rd:DataSourceID>f00b5045-1a8c-44be-952b-cca1ce9c57d6</rd:DataSourceID>
    </DataSource>
  </DataSources>

我只是将本节抄录在我打算在同一地点提交的报告中。 它习惯于在预审和再开发时使用这一数据来源。

更新一份报告,同时提供共享数据来源。 在<代码>[ReportServer]. [dbo]. [DataSource] table,注意到该报告的“链接”价值,然后简单地更新了在中拥有数据来源的重新编号。 姓名/代码

update [ReportServer].[dbo].[DataSource]
set Link =  01B758F2-B597-43BE-A90F-416DF3CDA396 
where Name =  PNLDS 
and Link is NULL

在我的案件中,我不得不在SSRS报告右边点点击下arrow,选择“管理”,然后选择“数据来源”,然后浏览共同数据来源的位置。 报告需要使用。

赞赏旧的透镜,但我正试图发现,如果SSRS能够报告它使用的数据来源,那么,如果在部署时仍然发现错误数据来源的话,它就会向SSRS报告发出警告。 解决办法一是,只有在你重新使用Dev/UAT/Prod的不同服务器时,才能找到工作,但可在你的茨克尔文中贴上@SERVERNAME

我已把这段话写成我可以总结一下我的报告。

select case @@SERVERNAME when  Prodserver  then    
else  WARNING: This report is not looking at production data!  end as ServerWarning

对我来说,工作做得很好!

Definitely a big shortcoming of SSRS. Many good answers posted here which suit different scenarios, skillsets and tools. I m adding another one using Class Sys.Net.WebServiceProxy on Powershell:

# Create WebServiceproxy object
[string] $WebServiceUri="http://localhost/ReportServer/ReportService2010.asmx?wsdl"
$proxy=New-WebServiceProxy -uri $WebServiceUri -UseDefaultCredentails

# Define required data types (DataSource and DataSourceReference) and instantiate
$typeds=($proxy.gettype().namespace) +  .DataSource 
$ds=new-object -TypeName $typeds

$typedsref=($proxy.gettype().namespace) +  .DataSourceReference 
$reference=new-object -TypeName $typedsref

# Set data source object with reference and name
$reference.Reference="/Data Sources/DStest" # path/name of the data source
$ds.Item=$reference
$ds.Name="DStest" # name of the data source on the report

# Repoint data source on report
$ReportPath="/Reports/TestReport" # path/name of the report
$proxy.SetItemDataSources($ReportPath, $ds)

解释:

The main idea is utilise the method SetItemDataSources(x, y) from class Sys.Net.WebServiceProxy to set the datasource y.name on report x to point to the datasource reference y.item. In our case the report is called TestReport, located on folder "/Reports" which references data source "/Data Sources/DSTest" by the name "DStest". In order to do the repoint we need to create a reference to the data souce ($ds) for which we first needed to define the data types DataSource and DataSourceReference by derived them from the namespace of the WebServiceProxy object ($proxy)





相关问题
Export tables from SQL Server to be imported to Oracle 10g

I m trying to export some tables from SQL Server 2005 and then create those tables and populate them in Oracle. I have about 10 tables, varying from 4 columns up to 25. I m not using any constraints/...

SQL server: Can NT accounts be mapped to SQL server accounts

In our database we have an SQL server account that has the correct roles to access some of the databases. We are now switching to windows authentication and I was wondering if we can create a NT user ...

SQL Server 2000, ADO 2.8, VB6

How to determine if a Transaction is active i.e. before issuing Begin Transaction I want to ensure that no previous transaction are open.. the platform is VB6, MS-SQL Server 2000 and ADO 2.8