无法在Infragistics Report中从数据源加载图像

时间:2014-07-24 18:51:56

标签: asp.net sql-server webforms visual-studio-2013 infragistics

我有一个带有Infragistics报告的ASP.NET WebForms项目(VS 2013中的v14.1,.NET Framework 4.0)。我在报告中有两个数据源(.igr文件)。第一个是报告数据,第二个是公司徽标,都存储在SQL Server中。

我的第二个数据源使用查询:SELECT LogoImage FROM dbo.CompanyLogo WHERE CompanyId = @CompanyIdCompanyId参数是基于第一个数据源中的成员/字段的动态值列表。

徽标显示在标题中,Image属性设置为=First(Fields.LogoImage, DataSources.CompanyLogoDataSource)。问题是加载的图像始终使用CompanyId参数的默认值。如果我没有设置默认值,则报告不会加载并显示错误"报告参数CompanyId的值无效。"在浏览器中。

但是,我知道CompanyId是有效的,因为它在报告的其余部分使用,我可以验证它的价值。另请注意,第一个数据源中只加载了一条记录(基于SQL视图),但此时在视图中包含图像(字节数组)是不可行的。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

显然你不能以我希望的方式级联参数。您仍然必须在创​​建报告查看器时设置其值。

$(function () {
        $("#viewer").igReportViewer({
            width: 1600,
            height: 1200,
            contentType: 'application/json; charset=utf-8',
            parameters: [{ Key: 'ReportId', Value: '<%= _reportId %>' }],
            renderSettings: {
                definitionUri: '<%= _definitionUri%>',
                serviceEndpointUri: serviceEndpoint
            }
        });
    });

我已经将参数ReportId用于返回CompanyId的第一个数据源。而不是将额外的CompanyId添加到上面的参数字典中(这将不得不以某种方式在代码中设置,然后发送回用于第二个数据源的函数),我决定创建一个公共IEnumerable函数返回基于ReportId的徽标。第二个数据源现在使用此函数以及最初提供的ReportId