将同一列的多行合并为一行

时间:2017-03-10 08:21:44

标签: crystal-reports

我的数据库中有以下数据:

+------+-----------+-------------+---------------+
|  ID  | SomeValue |  SomeDate   | SomeOtherDate |
+------+-----------+-------------+---------------+
| 123  |     12345 |  01.01.2017 |    01.01.2018 |
| 123  |     54321 |  01.01.2017 |    01.01.2019 |
| 123  |     25314 |  01.01.2017 |    01.01.2020 |
+------+-----------+-------------+---------------+

我想在Crystal Reports中使用以下格式:

+------+---------------+---------------+---------------+
|  ID  | SomeValue2018 | SomeValue2019 | SomeValue2020 |
+------+---------------+---------------+---------------+
| 123  |         12345 |         54321 |         25314 |
+------+---------------+---------------+---------------+

如果可能,我怎么能这样做?我尝试了多个例子,但似乎无法使其发挥作用。我成功地制作了标题。

1 个答案:

答案 0 :(得分:0)

很难使Crystal Reports水平评估事物。整个系统旨在垂直评估。 (报告顶部的内容会在它们之下的内容之前进行评估。)

但是,您可以使用 CrossTab 来执行此操作。首先,您要为列创建一个新的Forumla字段。它的结构类似于:

"SomeValue" + Year({@SomeOtherDate})

设计交叉表时,您需要将ID设置为行,将上面的新公式设置为列,汇总字段将为SomeValue。您还希望在自定义样式中抑制Grand Totals。