2016-08-03 8 views
0

私のアプリケーションは多言語アプリケーションです。私のアプリケーションでは、2つのデータソースを持つレポートを作成しました。どちらも同じプロシージャを呼び出し、同じデータをフェッチします。違いは文化のみに基づいており、データが満たされ、表が表示されます。Telerikレポートが必要でない場合、データソースの実行を避ける

正常に動作しています。しかし、私が直面している問題は、文化に基づいてテーブルを表示するための条件を適用しても、両方のデータソースを実行していることです。つまり、不必要なデータベース呼び出しが1つあります。

これを解決する方法はありますか? enter image description here

答えて

-1

データソースがSQLに由来する場合、これはストアドプロシージャでレポートパラメータを使用して実行できます。その後

CREATE PROCEDURE [dbo].[test] @table nvarchar(100) as 
BEGIN 
    declare @sql nvarchar(1000) 
    SET @sql = 'SELECT Name FROM ' + @table 
    exec SP_EXECUTESQL @sql 
END; 

:私は、AdventureWorksデータベースを使用します、そして私のSPが指定された表の「名前」列を選択する(私はあなたのテーブルが同じデータベース内にあると仮定していますが、それに応じて調整することができます)

ストアドプロシージャを実行するようにデータソースを設定し、@ tableのレポートパラメータを取得します。私の例では、reportParameter = "Person.AddressType"または "Person.ContactType"は異なる結果を返します。

あなたのケースでは、文化に応じてreportParameterを変更してください。今では2つではなく1つのテーブルが必要になります。

関連する問題