跨多个页面的 SSRS 报告重复列

SSRS Report Repeating Columns across multiple pages

作为一个非常简化的示例,假设我有以下数据集,我正在尝试从以下数据创建 SSRS 报告(.rdl 文件):

TabOrdinal  TabName     EndDate     Value
1           First Tab   1/1/2018    141
1           First Tab   1/1/2018    297
1           First Tab   1/1/2018    309
1           First Tab   1/1/2018    705
1           First Tab   1/1/2018    398
1           First Tab   1/2/2018    309
1           First Tab   1/2/2018    753
1           First Tab   1/2/2018    641
1           First Tab   1/2/2018    806
1           First Tab   1/2/2018    177
1           First Tab   1/2/2018    503
1           First Tab   1/3/2018    653
1           First Tab   1/3/2018    717
1           First Tab   1/3/2018    969
1           First Tab   1/3/2018    631
1           First Tab   1/3/2018    614
1           First Tab   1/3/2018    160
1           First Tab   1/4/2018    463
1           First Tab   1/4/2018    997
1           First Tab   1/4/2018    87
1           First Tab   1/4/2018    378
1           First Tab   1/4/2018    972
1           First Tab   1/4/2018    212
2           Second tab  1/4/2018    873
2           Second tab  1/4/2018    525
2           Second tab  1/4/2018    693
2           Second tab  1/4/2018    48
2           Second tab  1/4/2018    20
2           Second tab  1/4/2018    685
2           Second tab  1/4/2018    688

并且我在我的报告中创建了以下分组:

顶级行组:

Name: Tab
Group On: [TabName]
Page Breaks: Between Each Group

代码中:

<TablixMember>
  <Group Name="Tab">
    <GroupExpressions>
      <GroupExpression>=Fields!TabName.Value</GroupExpression>
    </GroupExpressions>
    <PageBreak>
      <BreakLocation>Between</BreakLocation>
    </PageBreak>
    <PageName>=Fields!TabName.Value</PageName>
  </Group>
  <SortExpressions>
    <SortExpression>
      <Value>=Fields!TabOrdinal.Value</Value>
    </SortExpression>
  </SortExpressions>
  <TablixMembers>
  ...
  </TablixMembers>
</TablixMember>

还有一个列组

Name: EndDate
Group On: [EndDate]

代码中:

<TablixMember>
  <Group Name="EndDate">
    <GroupExpressions>
      <GroupExpression>=Fields!EndDate.Value</GroupExpression>
    </GroupExpressions>
  </Group>
  <SortExpressions>
    <SortExpression>
      <Value>=Fields!EndDate.Value</Value>
    </SortExpression>
  </SortExpressions>
  <TablixMembers>
    <TablixMember />
  </TablixMembers>
</TablixMember>

现在,根据我提供的示例数据,我希望发生的事情是我的报告看起来如下所示:

选项卡 1:

1/1/2018       1/2/2018      1/3/2018     1/4/2018
<data>         <data>        <data>       <data>

选项卡 2:

1/4/2018
<data>

但是,我不知道为什么,但是我的第二个选项卡包含第一个选项卡上存在的所有相同日期的空列,因此第二个选项卡如下所示:

选项卡 2:

<empty column>       <empty column>     <empty column>     1/4/2018
<empty column>       <empty column>     <empty column>     <data>

我怎样才能让报告知道为每个选项卡重置日期列?

我希望这是有道理的,但如果没有,请告诉我,我会尝试进一步解释。

它显示在右侧的原因是因为您在 EndDate 上分组,但结束日期在 1/4/2018 之前已经有三个值。

也许您可以修改 SQL 查询并添加 ROW_NUMBER(),如下所示:

 ... ROW_NUMBER() OVER(PARTITION BY TabName ORDER BY TabName, EndDate) AS rn

然后在您的列组中,按 rn 分组。您可能需要稍微修改 ROW_NUMBER 部分以确保您的值设置正确。我已修改为仅按 TabName 进行分区。我想这就是你想要的。

为了隐藏没有值的文本框,我相信有多种方法可以解决。我成功的一种方法是右键单击列并转到列可见性。从那里我添加了表达式 - =ReportItems!TextBoxName.Value = NOTHING... 当然,您必须为 "data".

使用正确的名称