7

レポートとそのすべてのサブレポートのデータソースの場所を、それぞれを手動で開かなくても変更する方法はありますか?

4

5 に答える 5

6

実行時に接続を設定する方法は次のとおりです。構成場所から接続情報を取得します。

        #'SET REPORT CONNECTION INFO
        For i = 0 To rsource.ReportDocument.DataSourceConnections.Count - 1
            rsource.ReportDocument.DataSourceConnections(i).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword)
        Next

        For i = 0 To rsource.ReportDocument.Subreports.Count - 1
            For x = 0 To rsource.ReportDocument.Subreports(i).DataSourceConnections.Count - 1
                rsource.ReportDocument.OpenSubreport(rsource.ReportDocument.Subreports(i).Name).DataSourceConnections(x).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword)
            Next
        Next
于 2008-09-03T15:53:52.320 に答える
2

これを単発の取引として行っているだけの場合、私の提案は役に立たないかもしれません. ただし、データ ソースを頻繁に変更する場合は便利です。

免責事項: バージョン 9.0 以降、Crystal を使用していないため、Crystal がこれを改善したかどうかはわかりません。私は常にUDL ファイルを使用していました。基本的に、これはデータ ソースへのポインタです。レポートが UDL を指すように設定し、UDL がデータ ソースを指すようにします。ソースが変更された場合は、UDL を更新するだけです。

複数のレポートがある場合、これは非常に便利です。サーバーが変更されたときに、1 つのファイルを更新するだけで済みます。

于 2008-10-01T14:40:28.700 に答える
1

リンクされたサブレポート (少なくとも CR XI では) はメイン レポートのデータソースを共有します。

于 2008-09-02T21:28:15.160 に答える
1

@Unsliced 彼が直面している問題は、誰かが別のデータベースに対して開発した Crystal レポートを取得し、Crystal Reports XI でそれを表示するときに、サブレポートのフィールドを含む各フィールドに対してデータソースの変更を行う必要があることだと思います。レポートのトップ レベルのソースを変更しただけでは、エラーになることがよくあります。(Crystal Reports の既知の問題だと思います)。

于 2008-09-02T23:20:56.780 に答える
-1

Reporting Services の .rdl ファイルについて話しているのではないでしょうか。(そうでなければ、私の答えは間違っているかもしれません)

これらは基本的に単なる XML であるため、それぞれをロードして XPath クエリを実行し、データソースを含むノードを取得して更新することができます。

于 2008-09-02T21:20:41.293 に答える