gpt4 book ai didi

sql-server - 如何让子组跨越三列?

转载 作者:行者123 更新时间:2023-12-01 12:24:48 25 4
gpt4 key购买 nike

我想做什么

在我的报告中,我试图在 tablix 中获取一些基本数据。在此 tablix 中,有一个主要的summary 行和其中的detail 行。我想要做的是将详细信息放在子行中,但分成三列。

例如我的 tablix 现在看起来像这样

Row11| Row12| Row13 |
1 | 5 | 4 |
| Column1 | Column2|
| 1 | 4 |
| 2 | 5 |
| 3 | 6 |
2 | 20 | 25 |
Column1 Column2 |
| 7 | 8 |
| 9 | 5 |
| 3 | 6 |

(这只是一个演示表,我的应用中的列数不一定是这个数,反正应该是无关紧要的)

我希望它看起来像什么:

Row11| Row12| Row13 |
1 | 5 | 4 |
| Column1 | Column2| Column1 | Column2| Column1 | Column2|
| 1 | 4 | 2 | 5 | 3 | 6 |
2 | 20 | 25 |
| Column1 | Column2| Column1 | Column2| Column1 | Column2|
| 7 | 8 | 9 | 5 | 3 | 6 |

我只想将明细表拆分为三列。我已经尝试了各种方法,但都是一脉相承。

我尝试过哪些方法?

  1. 附加一个子报告方法。我附加了一个子报告并将报告分成三个单独的表并按此顺序拆分列。 这行得通,只是在尝试获取大量数据时速度非常慢。真的不想这样做。
  2. 提到的方法here .没用。
  3. 我也一直在试验 SQL 本身,但 SQL 看起来不是这里的问题。
  4. 尝试使用 Matrix 而不是 tablix 来挑战我的极限,但没有成功。

旁注:

如果重要的话,我正在使用 SSRS SDK for PHP并从报表服务器获取 PDF 并使用 Visual Studio 设计报表。

这看起来很简单,但我坚持这样做。以前有人遇到过这种情况吗?

如果您需要更多说明,请告诉我。

最佳答案

创建三个明细表,调整每个表中显示的行,并将它们放在一个列表中。

此解决方案假设您的原始数据如下所示: Table of raw data

添加一个 table 报表项并向其中添加 Column1 和 Column2 数据,将分组保留为仅详细信息。右键单击详细信息行,然后转到“行可见性”。

Detail table and Row Visibility

将其切换为“根据表达式显示或隐藏”,并添加此表达式:

=IIF(RowNumber("tblFirstColumn") MOD 3 = 1, False, True)

这将使该表中仅显示第一条、第四条、第七条等记录。将此表的两个副本粘贴到第一个旁边,并调整每个副本的行可见性表达式:

=IIF(RowNumber("tblSecondColumn") MOD 3 = 2, False, True)
=IIF(RowNumber("tblThirdColumn") MOD 3 = 0, False, True)

接下来添加一个 List 项。将列表的行分组更改为按 Row11 分组,将每个行字段添加到此列表的顶部(作为文本框或未分组的表格),并将三个明细表移动到列表底部。

Completed design view Completed preview

这应该比使用子报表执行得更好。我知道在使用子报表时,将使用该子报表的每个实例查询数据集。对于一份报告中的所有设计,查询应该只运行一次。

关于sql-server - 如何让子组跨越三列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41068806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com