在我的应用程序中,我有一个报告,其中一个子报表包含在表格单元格中。在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++;
}
这是预期的行为吗?我现在如何为表中的同一子报表的多个实例提供不同的数据集?
提前致谢。
弗拉
答案 0 :(得分:2)
经过一些探索和修补我的代码后,我找到了一个解决方法。解决方案是在子报表中创建一个虚拟参数,然后需要将其绑定到tablix数据集中的字段。只要子报表参数和tablix数据集字段都是类型兼容的,任何字段都会执行。您不必对子报表中的参数执行任何操作,但现在SSRS显示同一子报表的多个实例,Tablix中的每一行都有一个单独的实例。
希望这对其他人也有帮助。
弗拉