Telerik Report如果不需要,可避免数据源执行
问题描述:
我的应用程序是多语言应用程序。在我的应用程序中,我创建了一个包含2个数据源的报告。两者都调用相同的过程并获取相同的数据。不同之处仅在于文化,数据将被填充,表格将被显示。Telerik Report如果不需要,可避免数据源执行
它工作正常。但是我面临的问题是,尽管我已经应用条件来显示基于文化的表格,但它正在执行两个数据源。那是我有一个不必要的数据库调用。
答
如果您的数据源来自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。现在你只需要一张桌子而不是两张桌子。