Eclipse In Birt-根据子字符串对表中的项进行分组
一个我找不到答案的新手问题 我有一个报告,其中包含一个表,其中包含几个具有“时间”列的项。 我想按时间对项目进行分组,以便将同一个月的所有项目分组在一起 为此,我必须从“时间”字符串中提取月/年(格式为“17:22 19/07/09”),并将其用于分组。 我知道如何在Java中实现所有这些,我认为BIRT提供了几种方法来实现这一点,但我无法找到一种简单的方法来实现这一点 如果有一个很好的教程,我很想看看Eclipse In Birt-根据子字符串对表中的项进行分组,eclipse,birt,Eclipse,Birt,一个我找不到答案的新手问题 我有一个报告,其中包含一个表,其中包含几个具有“时间”列的项。 我想按时间对项目进行分组,以便将同一个月的所有项目分组在一起 为此,我必须从“时间”字符串中提取月/年(格式为“17:22 19/07/09”),并将其用于分组。 我知道如何在Java中实现所有这些,我认为BIRT提供了几种方法来实现这一点,但我无法找到一种简单的方法来实现这一点 如果有一个很好的教程,我很想看看 谢谢 这里的报告参数位(包括日期时间解析)对您有帮助吗 我有一份关于BIRT Exchang
谢谢 这里的报告参数位(包括日期时间解析)对您有帮助吗
我有一份关于BIRT Exchange DevShare的示例报告,它做的正是这件事。您为它提供一个正则表达式(根据需要简单或复杂),它将使用正则表达式的匹配来创建组
祝你好运 我们的做法如下。在数据集的SQL查询中,我们同时选择(例如)
“char(my_date,iso)”
和“left(char(date,iso),7)”
(分别用于2009-01-05
和2009-01
),如下所示:
select
left(char(my_date,iso),7) as isoyyyymm,
char(my_date,iso) as isodate,
otherfield as value
from tbl
order by my_date
然后,在报告中创建表时,第1列应为基于ISOYYMM的分组列,并在表中为该列留空:
- 标题
- 组数据线;及
- 详细数据行
+--------------------------------+-----------+-----------------+
| <Header row> | Date | Value |
+--------------------------------+-----------+-----------------+
| <Group header row (isoyyyymm)> | | |
+--------------------------------+-----------+-----------------+
| <Detail row> | [isodate] | [value] |
+--------------------------------+-----------+-----------------+
| <Group footer row (isoyyyymm)> | | Total.sum( |
| | | row["value"], |
| | | null, |
| | | "Grp1") |
+--------------------------------+-----------+-----------------+
如果你想这样做的话,你可以在间隔上分组,但是对于那些可以使用简单字符串的情况,我们选择了最简单的方法。显然,如果您的间隔是一周(或者其他一些不适合简单字符串分析的内容),则需要使用BIRT中内置的间隔分组
在我看来,这方面最好的教程是第187页(第12章)。这对于任何认真的BIRT用户来说都是必须的
这第一点对于任何报表设计器都绝对重要。第二部分涉及更高级的主题,如嵌入式Java和Javascript、报表对象模型和BIRT的底层体系结构。如果您想让您的报告真正精彩,这是必需的。这可以通过表中的组设置来完成。如何创建组在(顺便说一句,在Google中搜索“birt表组”是第一次点击)。 在这种情况下,您可以这样做:
- 右键单击该行的行标题 状态组标题和上下文菜单 将显示
- 从关联菜单中选择“插入” 团体→在下面“组详细信息”对话框 出现了
- 选择组中的“时间”列 打开字段并在名称中键入时间 场
- 在间隔中选择“月” 组合框
- 单击“确定”
Date Value
---------- -----
2009-01-01 7
2009-01-08 2
2009-01-15 1
2009-01-22 4
-----
14
2009-02-05 2
2009-02-12 0
2009-02-19 0
2009-02-26 1
-----
5