Birt报表分组格式调整

1、以如下SQL语句来说明,查找未完成打分的人员,有cname(测评人名字),uname(测评人单位),bname(被测评人名字),flag字段(未完成标志)

SELECT var.cname,var.uname,var.bname,var.flag FROM
(SELECT DISTINCT(ur.id),ur.c_person,ur.b_person,c_person.name AS cname,u.name AS uname,b_person.name AS bname,CASE WHEN grade.`userrelation` IS NULL THEN 'no' ELSE 'yes' END AS flag FROM trainspringmvc.userrelation AS ur
LEFT JOIN trainspringmvc.person AS c_person ON c_person.id=ur.c_person
LEFT JOIN trainspringmvc.person AS b_person ON b_person.id=ur.b_person
LEFT JOIN trainspringmvc.grade AS grade ON grade.`userrelation`=ur.id
LEFT JOIN trainspringmvc.unit AS u ON u.id=c_person.unit
LEFT JOIN trainspringmvc.depart AS d ON d.id=c_person.depart
ORDER BY ur.c_person ASC,flag ASC
) AS var WHERE var.flag='no' ORDER BY var.uname ASC, var.cname ASC

2、直接把数据拖到报表里的结果为如图下所示

此时可以看到李磊还未给孙立刚、李磊两人完成测评,此刻想要把第一列的两个李磊合并、第2列的两个物探事业部合并,那么就得按照cname,cunit两字段来分组

3、分组操作如下所示

(1)鼠标移到table上,点击table

(2)单击右键-》点击Insert Group,来到如下界面

选择红框标注的字段,我们选择cname字段作为分组,然后点击OK,然后又操作依次选择uname,uname分组在cname的下面,这样就可按照

cname uname字段分组

4、设置完分组之后后台的界面如下

可看到图中的cname、uname都已经分组了

前台显示的页面如下,显然必须经过一番调整

5、拖动相关属性,去掉相关行,然后得到的结果如下图所示

从结果可看出,李磊只显示一个,物探事业部也只显示一个,但是位置都岔开了,必须做出调整

6、调整显示的位置

(1)选中cname所在的单元格,可以这样来选中,点击Outline->点击Body->点击Table->点击Groups->点击Table Group - NewTableGroup1->点击Header->点击Row->点击Cell,这样就选中了cname所在的单元格,不然的话用鼠标在页面去点击,好像不太好选中

(2)选中之后,点击Property Editor - Cell-》点击Advanced->点击Cell->点击Drop->选择Drop属性为All

(3)对uname所在的单元格也按照6(1)->6(2)的步骤处理

步骤处理可如下图所示

调整完成以后再看页面的展示效果如下图所示,效果比前面没调整Drop属性之前好看多了吧

7、但是还是不太好看,应该把李磊、物探事业部都垂直居中,那样会更好

(1)、选中cname所在的单元格-》点击Property Editor -Cell-》点击Advanced->点击Cell->点击Text->点击Vertical alignment-》把属性设置为Middle

(2)、把uname也按照cname的设置方法设置垂直居中

过程如下图所示

这样设置之后显示的效果如下图所示,很明显李磊、物探事业部都已经居中了

8、接下来再加上边框是不是更好看一点

下面的步骤有问题,应该是先建Style,然后通过下面的步骤可以编辑Style,可以把Style 应用到Table中

(1)、点击table->点击右键-》鼠标移到Style->鼠标移到Edit Style-》鼠标移到New Style-》点击New Style

(2)、点击border->把Style的Top、Bottom、Left、Right都设置为Solid->把Width的Top、Bottom、Left、Right都设置为1

步骤如下图所示

处理之后看到的页面如下图所示,还是有点问题,比如孙立刚上面多了一条线,如何去掉这一根多余的线的

9、选中bname上面的单元格-》点击Property Editor - Cell ->点击Advanced-》Cell-》点击Box-》点击Border bottom width->把属性设置为0pt,同样对flag本身单元格做这样的操作便可(请注意我在实践的时候是flag单元格本身,而不是其上面的单元格,并且是把Border top width属性设置为0pt,觉得有点奇怪),操作步骤可如下图所示

按照如上操作之后出现的界面如下,显然可以看出更整齐,更美观了。

原文地址:https://www.cnblogs.com/oymx/p/birt.html