0

场景如下:我有许多不同的报告文件 (*.rdl),用户可以从 Web 界面中选择一个。反过来,这会加载报表查看器控件(作为 ASPX 控件)。

我的 *.rdl 文件在定义中同时包含数据源和数据集(为了确定,我在记事本中检查了 XML)。数据源是 Oracle 存储过程。如果我在 Report Builder 3 中运行报告,它运行得很好。

我不明白的是如何在运行时将报表文件加载到报表查看器中,并让它自动使用报表定义中定义的数据源和数据集。

try
{
    Viewer.LocalReport.ReportPath = myLocalRDLPath; // Exists and is readable
    var reader = new StringReader(File.ReadAllText(myLocalRDLPath));
    Viewer.LocalReport.LoadReportDefinition(reader);
}
catch(Exception ex)
{
    throw new Exception("Unable to open report definition file from server.", ex);
}

if (Viewer.LocalReport.DataSources.Count > 0)
{
    // Never hits, DataSources is always empty, but
    // a Data Source and a Dataset exist in the .rdl file.
}
4

1 回答 1

0

如果您使用 .RDL 文件,则需要使用Viewer.ServerReport. 它将使用报表定义中的数据源,无需显式设置数据源。

Viewer.LocalReport用于 .RDLC 文件,其中设置数据源是在代码中手动设置的,如您的代码示例所示。

于 2013-07-12T18:07:58.070 回答