以编程方式更新/更改 s-s-rS 数据源(未共享)
Posted
技术标签:
【中文标题】以编程方式更新/更改 s-s-rS 数据源(未共享)【英文标题】:Update/Change s-s-rS DataSource(Not Shared) Programmatically 【发布时间】:2017-06-19 10:57:26 【问题描述】:我有 asp.net 应用程序,出于报告目的,我们使用 s-s-rS 报告。
s-s-rS 报告项目,我将 DataSource1 用于所有报告。 (考虑数据库名称:DB1)
如何以编程方式更改 DataSource1 的 ConnectionString 属性(这里我想将 DB1 更改为 DB2)?
【问题讨论】:
【参考方案1】:由于数据源不共享,它们嵌入在报告 rdl 文件中,这些文件本质上是 XML 文件。可能最简单的方法是直接修改这些 xml。 根据报告的复杂性,可以通过简单的字符串替换来更改数据源,但更强大的解决方案是上下文更改 例如在 powershell 中使用 xml 库:
$Rdl = [xml] (gc -path "c:....path to report xx.rdl ...")
$Rdl.Report.DataSources.DataSource |
% if ($_.GetAttribute("Name") -eq "DataSource1")
NewDS = $._ConnectionProperties.ConnectString.Replace("DB1","DB2")
$._ConnectionProperties.ConnectString=$NewDS
$Rdl.Save("c:....path to modified rdl ...")
此示例适用于 s-s-rs-2012,不确定数据源的 xpath 在其他版本中是否相同。
【讨论】:
以上是关于以编程方式更新/更改 s-s-rS 数据源(未共享)的主要内容,如果未能解决你的问题,请参考以下文章
RxSwift - 当 UITextField 以编程方式更新时,UILabel 字段未更新
如何以编程方式更改/更新 Python PyQt4 TableView 中的数据?