【发布时间】:2021-10-22 04:01:31
【问题描述】:
我正在为 Avery 5392 徽章库存(每页 6 个)设计 SSRS 徽章报告,该报告还将在徽章背面打印每位佩戴者的记录 ID。
我在我的 SELECT 语句中设置了 RowNumber 和 RowMod 列,以便我可以将每列仅 3 行数据过滤到我的设计元素中,并分别控制左侧或右侧报表元素中的行。我还将 PageNumber 设置为可能的分页符分组选项。
请将此虚拟表视为我实际使用的数据的代理:
CREATE TABLE #Badges (ID INT PRIMARY KEY, Name VARCHAR(50))
INSERT INTO #Badges VALUES
(100001, 'Anna')
, (100002, 'Bart')
, (100003, 'Cathy')
, (100004, 'Daniel')
, (100005, 'Ericka')
, (100006, 'Fred')
, (100007, 'Gwen')
, (100008, 'Harry')
, (100009, 'Idita')
, (100010, 'Joshi')
, (100011, 'Katie')
, (100012, 'Leo')
, (100013, 'Manuela')
, (100014, 'Nando')
, (100015, 'Olga')
, (100016, 'Park')
, (100017, 'Quang')
, (100018, 'Rhys')
, (100019, 'Sarina')
, (100020, 'Theo')
, (100021, 'Udeyume')
, (100022, 'Victor')
, (100023, 'Wynona')
, (100024, 'Xavier');
SELECT ((ROW_NUMBER() OVER (ORDER BY a.RowNumber) + 5) / 6) AS PageNumber
, a.*
FROM (SELECT ROW_NUMBER() OVER (ORDER BY b.Name) AS RowNumber
, ROW_NUMBER() OVER (ORDER BY b.Name) % 6 AS RowMod
, b.*
FROM #Badges AS b) AS a
DROP TABLE #Badges
我有一个 4 平方的独立报表元素(目前使用“列表”),看起来有点像这样......
|清单 1 |清单 2 |
|清单 4 |清单 3 |
我需要我的报表元素在左列(List 1)中显示前 3 行 Name,然后是接下来的 3 行 Name 在右栏中(列表 2)。然后,在下一页上,我需要使用相同的数据翻转 Mod 方向以在 right 列中显示 ID 的前 3 行(List 3 ),然后是 left 列中接下来的 3 行 ID(List 4)。
第 1 页看起来像这样...
| Col 1 (List 1) | Col 2 (List 2) |
|---|---|
| Anna | Daniel |
| Bart | Ericka |
| Cathy | Fred |
...第2页看起来像这样...
| Col 1 (List 4) | Col 2 (List 3) |
|---|---|
| 100004 | 100001 |
| 100005 | 100002 |
| 100006 | 100003 |
然后我想在第 3 页重复该过程,依此类推。
【问题讨论】:
-
添加一个按前/后分组的外部组,并在组属性中设置分页符“之间”。
-
每个佩戴者没有两行数据可以识别为“前数据”和“后数据”。每人只有一排。我对所有 4 个数据区域使用相同的数据集。您是否建议我使用单独的数据集?
-
如果您共享数据集输出和当前报告设计的样本,可能会更容易。这可能意味着稍微重构数据,如果不看更多就很难说清楚。我可能会选择使用单个矩阵而不是两个表,但是获得,您这样做可能有一个很好的理由,在我看到数据和设计之前是不可见的。
-
我愿意重构数据,但遗憾的是我无法分享这些信息的样本。使用单独的矩阵是因为这是我从研究中发现的唯一方法,它应该允许第二页信息显示与前一页相同的人,并翻转列。使用这种技术使用单个矩阵会抱怨内部成员。可能只是这必须以与我正在尝试的方法完全不同的方式完成,或者这是不可能的。
-
您不需要分享您的真实信息样本,只要它具有相同的结构即可。只需将名称、头衔或其他任何内容更改为随机的东西。如果您提供 4 页的数据并根据您的样本勾勒出报告中的显示方式,则“可能”有一种更简单的方法来处理整个事情。现在是晚上 10 点之后,所以我暂时不会再接这个了,但如果你没有进一步了解,请发布示例虚拟数据等,我会看看我能做什么
标签: tsql reporting-services report ssrs-2012 badge