我正在使用报告生成器来生成信件。我想要做的是有一列值,但是当它到达页面末尾时,我希望它溢出到第一列右侧的新列,而不是创建一个新页面。或者,如果它在创建新行之前跨多个列填充数据,它会起作用。
这是可能的吗?
我正在使用报告生成器来生成信件。我想要做的是有一列值,但是当它到达页面末尾时,我希望它溢出到第一列右侧的新列,而不是创建一个新页面。或者,如果它在创建新行之前跨多个列填充数据,它会起作用。
这是可能的吗?
您必须从 sql 存储过程区域中找到解决方法,因为 SSRS 中的 tablix 基于检索到的数据集,这不是报表生成器中的功能或解决方法。
我建议您尝试创建一个存储过程,为您对一组或多列进行此操作,并针对设置的行数进行测试。这必须针对您的 sql 平台进行定制。
祝你好运,我喜欢你的要求和问题!
我会寻求解决方法:基本上解决方案是定义查询以在列中显示您的数据(例如列 A - 值 1-60,列 B - 值 61-120 ...)。
然后您可以将每一列定义为不同的数据集。
在 SSRS 中,您可以定义表的数量(每个表将仅包含一列)并将它们彼此相邻放置。(使用表格可见性隐藏null
表格)
让我们开始吧:
首先,您需要知道有多少行适合一页(对于此示例,假设为 60)。
接下来,您需要知道您可以拥有的最大值是多少(对于此示例,假设为 180)。
根据以下内容定义您的查询:
WITH NumberedMyTable AS
(
SELECT
Id,
Value,
ROW_NUMBER() OVER (ORDER BY Id) AS RowNumber
FROM
MyTable
)
SELECT
Id,
Value
FROM
NumberedMyTable
WHERE
RowNumber BETWEEN @From AND @To
对每一列重复此查询(对于此示例,您需要定义此查询 3 次)。
然后定义 3 个表 - 每个表一列,并相应地将每个数据集定义为它们的值。
定义 tablix 可见性表达式,如下所示:
=IIf(CountRows("MyDataset") = 0,false,true)
那它!