使用 C1Report 控件 > 数据的分组与排序 > 建立交叉报表 |
交叉报表会在两个维度上对数据进行分组(横向或纵向)。交叉报表主要用于汇总报表中大量交叉引用的数据信息。
想要创建交叉报表,首先你需要调用GROUP BY查询语句将数据汇总到行中,然后使用转化(某个支点)服务创建分组的列。转化服务通常由数据库服务自身提供,它可以是一个自定义程序,或者你也可以使用C1Report内置的域合计功能。
无论何时,交叉报表中最重要的元素都是数据的原始汇总视图。例如,一个典型的汇总视图如下所示:
Year | Quarter | Amount |
---|---|---|
1990 | 1 | 1.1 |
1990 | 2 | 1.2 |
1990 | 3 | 1.3 |
1990 | 4 | 1.4 |
1991 | 1 | 2.1 |
1991 | 2 | 2.2 |
1991 | 3 | 2.3 |
1991 | 4 | 2.4 |
我们首先为每季度添加一个新列,并且将合并之后的值加入到新列中。通过这种方式改变数据后的效果如下图所示:
Year | Total | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|---|
1990 | 5 | 1.1 | 1.2 | 1.3 | 1.4 |
1991 | 9 | 2.1 | 2.2 | 2.3 | 2.4 |
您可以使用C1Report合计函数完成该操作。该报表将会依据年份进行分组。Detail区域将会隐藏,分组的页眉将会包含的合计表达式如下所示:
Year | Total | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|---|
[Year] | Sum(Amount) | Sum(Amount, Quarter=1) | Sum(Amount, Quarter=2) | Sum(Amount, Quarter=3) | Sum(Amount, Quarter=4) |
第一个合计表达式将计算当前年份中的销售总额,而指定季度的合计将会通过指定域的方式来限制合计表达式只能获取指定月份的数值。