在SSRS表/ tablix单元格中使用子报表

时间:2010-12-01 19:31:57

标签: c# visual-studio-2010 reporting-services

在我的应用程序中,我有一个报告,其中一个子报表包含在表格单元格中。在SubreportProcessing事件处理程序中,我提供了一个不同的数据集foreach实例的子报表。在VS 2008中,这个工作没问题。但是,当我切换到VS2010并升级报告文件格式时,行为发生了变化。主表中的所有子报表实例现在都包含我为第一个表行提供的数据。我的代码看起来像这样

void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e)
{
    // _index is a global variable that is reset to zero in the DataBind procedure.
    Trip currentTrip = _trips[_index];

    e.DataSources.Add(new ReportDataSource("DataSourceName", currentTrip.Items));

    _index++;
}

这是预期的行为吗?我现在如何为表中的同一子报表的多个实例提供不同的数据集?

提前致谢。

弗拉

1 个答案:

答案 0 :(得分:2)

经过一些探索和修补我的代码后,我找到了一个解决方法。解决方案是在子报表中创建一个虚拟参数,然后需要将其绑定到tablix数据集中的字段。只要子报表参数和tablix数据集字段都是类型兼容的,任何字段都会执行。您不必对子报表中的参数执行任何操作,但现在SSRS显示同一子报表的多个实例,Tablix中的每一行都有一个单独的实例。

希望这对其他人也有帮助。

弗拉