1

私はasp.netアプリケーションを持っており、報告目的にはSSRSレポートを使用しています。SSRS DataSource(共有されていない)をプログラムで更新/変更する

SSRSレポートプロジェクト、すべてのレポートにDataSource1を使用しています。

これで、DataSource1のConnectionStringプロパティを変更する必要がありました(ここでは、DB1をDB2に変更したい) をプログラマチックに変更しました。

開発者は考えていますか?コードで共有してください。データソースが共有されていないと、彼らはレポートに埋め込まれ

おかげ

答えて

1

は、基本的にXMLファイルであるファイルをRDL。おそらく最も簡単な方法は、これらの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 ...") 

この例ssrs-2012の場合、データソースへのxpathが他のバージョンと同じであるかどうかは不明です。

関連する問題