Telerik Report如果不需要,可避免数据源执行

问题描述:

我的应用程序是多语言应用程序。在我的应用程序中,我创建了一个包含2个数据源的报告。两者都调用相同的过程并获取相同的数据。不同之处仅在于文化,数据将被填充,表格将被显示。Telerik Report如果不需要,可避免数据源执行

它工作正常。但是我面临的问题是,尽管我已经应用条件来显示基于文化的表格,但它正在执行两个数据源。那是我有一个不必要的数据库调用。

有没有其他办法可以解决这个问题? enter image description here

如果您的数据源来自SQL,我相信您可以在存储过程中使用报告参数执行此操作。 (我假设你的表是在同一个数据库,但是你可以相应地调整)

我将使用AdventureWorks数据库,和我的SP选择从给定的表“名称”列:

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

然后,将数据源配置为执行存储过程,并获取@table的报告参数。在我的例子中,reportParameter =“Person.AddressType”或“Person.ContactType”会给出不同的结果。

根据您的情况,根据文化更改reportParameter。现在你只需要一张桌子而不是两张桌子。