我正在SSRS 2008中开发RDL,并尝试将子报表直接移动到主报表中,以便我在与主报表相同的存储过程中运行此子报表。
但是,我无法解决这个问题。我得到了存储过程成功运行。但是现在当我尝试将此表复制到主报表中时,我收到以下错误:
Error 1 [rsInvalidDetailDataGrouping] The tablix ‘table2’ has a detail member with inner members. Detail members can only contain static inner members. \\operations\userfiles\R15D\Documents\Visual Studio 2008\Projects\Test\Test2\DischargePlan.rdl 0 0
Report item expressions can only refer to fields within the current dataset scope or, if inside an aggregate, the specified dataset scope
我该怎么做?我尝试过在互联网上找到的各种解决方法,但都没有。我已经尝试将表移动到组级别并删除详细信息分组。我已经删除了排序元素等。但我唯一能让这个错误消失的方法是删除该表的所有分组以及所有文本框值。
答案 0 :(得分:7)
如果从同一个SP返回这些,那么您应该只有一个详细信息组(和一个Tablix)。
对于数据集返回的每一行,详细信息组(在外部Tablix上)将重复一次。对于同一数据集,该行中包含的Tablix没有意义:它会重复什么?
听起来你需要将两个Tablix组合成一个,而不是将它们嵌套在另一个中。
最简单的方法可能是将一个组添加到父Tablix中,这将代替前一个详细信息组。它可能会按您加入旧子报表数据集的任何字段(或类似的东西)进行分组。
然后将旧的子报表字段放在详细信息行中。
答案 1 :(得分:0)
在VS2015 SSRS14中生成报告时遇到此错误。 重新启动Visual Studio可以清除错误。
答案 2 :(得分:0)
在我的情况下,一个简单的表格报告Tablix4出现错误。这是因为Tablix1的孩子为Rectangle,而Rectangle的孩子为Tablix4。用Tablix4替换Tablix1解决了该问题。
<Tablix Name="Tablix1">
<TablixBody>
<TablixColumns>
<TablixColumn>
<Width>16.51cm</Width>
</TablixColumn>
</TablixColumns>
<TablixRows>
<TablixRow>
<Height>2.38745cm</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Rectangle Name="Rectangle1">
<ReportItems>
<Tablix Name="Tablix4">