1

我正在使用报告生成器来生成信件。我想要做的是有一列值,但是当它到达页面末尾时,我希望它溢出到第一列右侧的新列,而不是创建一个新页面。或者,如果它在创建新行之前跨多个列填充数据,它会起作用。

这是可能的吗?

4

2 回答 2

1

您必须从 sql 存储过程区域中找到解决方法,因为 SSRS 中的 tablix 基于检索到的数据集,这不是报表生成器中的功能或解决方法。

我建议您尝试创建一个存储过程,为您对一组或多列进行此操作,并针对设置的行数进行测试。这必须针对您的 sql 平台进行定制。

祝你好运,我喜欢你的要求和问题!

于 2013-02-04T11:34:23.153 回答
1

我会寻求解决方法:基本上解决方案是定义查询以在列中显示您的数据(例如列 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)

那它!

于 2013-02-05T19:52:52.780 回答