所以我是BIRT的初学者,我只是想从我的一个postgres数据库表中获得一个真实的简单报告。
所以我将一个平面表定义为数据源,如下所示:
+----------------+--------+----------+-------+--------+
| date | store | product | value | color |
+----------------+--------+----------+-------+--------+
| 20160101000000 | store1 | productA | 5231 | red |
| 20160101000000 | store1 | productB | 3213 | green |
| 20160101000000 | store2 | productX | 4231 | red |
| 20160101000000 | store3 | productY | 3213 | green |
| 20160101000000 | store4 | productZ | 1223 | green |
| 20160101000000 | store4 | productK | 3113 | yellow |
| 20160101000000 | store4 | productE | 213 | green |
| .... | | | | |
| 20160109000000 | store1 | productA | 512 | green |
+----------------+--------+----------+-------+--------+
所以我想在我的birt报告中添加一个表/交叉表,为每个商店创建一个表格(之后是分页符),如下所示:
**Store 1**
+----------------+----------+----------+----------+-----+
| | productA | productB | productC | ... |
+----------------+----------+----------+----------+-----+
| 20160101000000 | 3120 | 1231 | 6433 | ... |
| 20160102000000 | 6120 | 1341 | 2121 | ... |
| 20160103000000 | 1120 | 5331 | 1231 | ... |
+----------------+----------+----------+----------+-----+
--- PAGE BREAK ---
....
所以我首先尝试的是:开始使用BIRT的标准CrossTab教程模板。
我定义了DataSource,并创建了一个维度组为' store'的数据立方体。和'产品' ,以及SUM / detail -data的'值'在这个例子中,我只选择了一天。
但结果如下:
+--------+----------+----------+----------+----------+-----+----------+
| | productA | productC | productD | productE | ... | productZ |
+--------+----------+----------+----------+----------+-----+----------+
| Store1 | 213 | | 3234 | 897 | ... | 6767 |
| Store2 | 513 | 2213 | 1233 | | ... | 845 |
| Store3 | 21 | | | 32 | ... | |
| Store4 | 123 | 222 | 142 | | ... | |
+--------+----------+----------+----------+----------+-----+----------+
这是因为并非每个商店都会销售所有产品,但交叉表会通过选择所有可用产品来创建列。
所以,我根本不知道如何生成具有不同(但也是动态)列数的动态不同的表。
然后第二步是让日期(天)起作用。
但是,提前感谢每个提示链接到第一个问题; - )
答案 0 :(得分:0)
您只需添加包含完整数据源的表即可。选择表格和组。按StoreID分组。您可以为每个分组设置分页选项。将after的属性设置为"始终排除last"。
BIRT将添加一个组头。您可以添加多个groupheader行,获得您之后的布局。
对于交叉表,它以类似的方式工作。将交叉表添加到页面并在行和列上设置组的信息并添加摘要后。您可以查看数据。选择交叉表并查看“行区域”属性,选择页组设置并添加新的分页。您可以选择要中断的组,选择您的storeID组并在之后选择:"始终排除最后一个"