上下文
我实际上是在做一个项目,在那里我需要撰写一个报告,它将从我们的自定义工具中设计。用户将使用他将按特定顺序排列的现有报告编写此报告。因此,基本上,为了记录组合报表设计,我们将其保存在一个对象模型中,该对象模型包含底层报表的列表及其顺序。
挑战
目标是简单地显示一个从SubReport检索ReportName的列表。
我试过什么
我执行了一个DataSet,它将返回包含报表显示顺序、服务器上的报表路径和可用的报表参数的行。因此,我添加了一个带有单个单元格的Tablix,其中包含一个SubReport。由于Tablix将遍历所有DataSet行,所以我尝试设置SubReport的ReportName。但不幸的是,SubReport.ReportName似乎不接受从DataSet中计算出来的值。
我试过了,但没有用:
...
<Tablix Name="ReportModuleTablix">
<DataSetName>ReportModules</DataSetName>
...
<TablixBody>
...
<TablixRows>
<TablixRow>
...
<TablixCells>
<TablixCell>
<CellContents>
<Rectangle Name="SubReportRectangle">
<ReportItems>
...
<Subreport Name="ModuleReport">
<ReportName>=Fields!Path.Value</ReportName>
</Subreport>
</ReportItems>
</Rectangle>
</CellContents>
</TablixCell>
</TablixCells>
</TablixRow>
</TablixRows>
</TablixBody>
...
</Tablix>
...
=Path.Value表示当前DataSet行的报表路径。
我确实需要能够显示来自DataSet的参数化报表列表,因此我想知道如何实现我的目标。我看了一下定制的ReportItem,但是文档非常笨拙,而且并不是最新的。
谢谢。
发布于 2011-09-30 09:14:27
我们最终选择了从代码中生成RDL,这意味着SubReport项将通过使用RDL对象模型手动添加,但它需要对内部类(RdlSerializer
)进行一些黑客攻击。
我在这篇文章中写过:https://github.com/Ucodia/Blog-CustomReportingServices
https://stackoverflow.com/questions/7595395
复制相似问题