我正在尝试对SSRS报告进行分组,以便每个页面在11英寸标记附近自然断开。
看起来您无法动态设置Interactive Height
属性,因此我将其设置为0并将分页符应用于数据集。
我假设大约每3个用户占用大约一整页。我希望在每3个EmployeeID分组后中断。我只看到了考虑RowCount
的中断,这在我的数据集中每个用户都不一致。用户可以有1行或多行。
如何在SSRS子组出现3次后中断?
我需要在每个新页面上显示标题(标题,句号和空白行)。
在每个页面上,我想尽可能多地占用11英寸,但我愿意只是说明我们将在EmployeeID
组的每3次出现后中断。
EmployeeID2
组可能没有必要,它是在我尝试RowNumber
休息时实施的。
我发现我的问题有两种可能的解决方案:
n
次SSRS子群出现时设置参数化分页符最后,进一步澄清:
我需要一个切换
PageBreak
的参数。如果PageBreak Parameter
设置为False
,则标题只会出现一次,所有员工都会显示InterActive Height = 0
。如果PageBreak Parameter
设置为True
,则标题将显示在每个新页面的顶部,每个页面将包含3个员工。
我尝试在我的Stored Procedure
中实现一个分组字段,它使用下面的代码为每个3个员工分配一个递增的组ID,但是这个在3秒内运行的查询现在冻结SSRS,所以我希望实现使用SSRS功能进行分组。
TSQL分组逻辑:
,EmpRank AS (
SELECT DISTINCT
EmployeeID
,DENSE_RANK() OVER(ORDER BY FormattedName) AS 'EmpCounter'
FROM FilteredData
)
,EmpGrouping AS (
SELECT
EmployeeID
,((EmpCounter -1 ) / 3) AS 'EmpGroup'
FROM EmpRank
GROUP BY ((EmpCounter - 1) / 3)
,EmployeeID
)
SELECT
FilteredData.*
,EmpGrouping.EmpGroup
FROM FilteredData
LEFT OUTER JOIN EmpGrouping
ON EmpGrouping.EmployeeID = FilteredData.EmployeeID
ORDER BY EmpGroup, EmployeeID
提前谢谢
答案 0 :(得分:0)
TSQL分组逻辑最终起作用。当我昨天尝试分组时,Visual Studio一直在崩溃,但今天它不是......
无论如何,解决方案是创建一个新的字段,按照我的意愿对员工进行分组,然后我在SSRS中对其进行分组。我仍然不知道如何根据页面高度进行分组,但至少我能够根据子组的出现进行分组