六、BIRT普通网格报表

6.1 属性,布局

我们以示例数据库为数据源,sql选择查询数据集为例,新建报表birt_table,空白模板数据集customer:

select CLASSICMODELS.CUSTOMERS.CUSTOMERNAME,CLASSICMODELS.CUSTOMERS.CUSTOMERNUMBER,CLASSICMODELS.CUSTOMERS.CONTACTLASTNAME,CLASSICMODELS.CUSTOMERS.CONTACTFIRSTNAME,CLASSICMODELS.CUSTOMERS.PHONE,CLASSICMODELS.CUSTOMERS.ADDRESSLINE1,CLASSICMODELS.CUSTOMERS.ADDRESSLINE2,CLASSICMODELS.CUSTOMERS.CITY,CLASSICMODELS.CUSTOMERS.STATE,CLASSICMODELS.CUSTOMERS.POSTALCODE,CLASSICMODELS.CUSTOMERS.COUNTRY,CLASSICMODELS.CUSTOMERS.SALESREPEMPLOYEENUMBER,CLASSICMODELS.CUSTOMERS.CREDITLIMIT

from CLASSICMODELS.CUSTOMERS

我们在报表编辑区插入一个12行的网格,在第2行插入一个14列的表,直接从画板中拖过来或者用右键菜单的方式都行:




customer表中的CUSTOMERNAME,COUNTRY,PHONE,ADDRESSLINE1属性列插入表中:

预览结果如下


前面通过预览看到,我们制作的报表已经正确展示了我们需要的数据,可是外观上却不太美观。接下来我们对报表的外观格式进行一定的调整,主要包含以下几个方面:

� 表头改为中文,并设置背景色,字体颜色

� 设置数据对齐

� 给表格加上边框线

� 添加报表标题

点击“布局”标签,返回报表设计窗口。

双击表格元素的页眉行表头标题所在的单元格,逐一将表头改为中文:客户名称,国家,电话,地址。


选中表格元素的第一行,即页眉行。(注:先选中表格元素,然后再选中表格的第一行)。


在下面的属性窗口中,选择常规标签,设置该行的背景色,居中对齐,字体颜色,以及字体加粗。


选中表格元素,在下面的属性窗口的常规标签中,点击居中对齐按钮。


选中表格中任意单元格,拖拽鼠标直至覆盖表格所有的单元格。(注:一定要首先选中表格的一个单元格,然后进行鼠标拖拽,您可以在下面的属性窗口中查看您当前选中的是什么元素)


在属性窗口中选择边框标签页,设置边框宽度为 1px,并给单元格四周都加上边框线。


接下来我们给报表添加一个标题,您可以使用标签、文本或者数据元素来显示报表的标题。这里我们使用标签来显示报表的标题。选择报表设计页面中网格的第一个单元格,往其中添加一个标签元素,输入文本“客户

信息表”作为报表的标题,并设置该标签文本的字体,颜色及大小。您可以根据需要还可以在报表标题中加入图片等元素,美化报表外观。


设计报表时,您可以通过设置报表内容的格式来使得其外观与格式更加美观并符合要求。比如,您可以突出显示报表中特定的数据,更改日期、数据与货币的显示格式,调整报表元素之间的间隔,设置数据的条件格式。

BIRT报表为您定制报表中各元素的外观提供了许多选项,通过设置元素的各种格式属性,您可以更改这些元素的对齐方式、颜色、字体、尺寸大小等,您还可以添加元素的背景色,边框等。

如果您对 CSS 比较熟悉,您还可以使用CSS 来设置报表的外观格式,许多报表元素的格式属性与CSS 中的格式属性是一致的。

    您可以通过以下视图来修改元素的格式属性——属性编辑器窗口。该视图将常用的属性按功能分类组织在一起,其中的属性选项根据报表元素的不同而不同:


在常规,边框,页边距,分页符,可视性,目录,书签,注释,用户属性,命名表达式,事件处理程序中设置的属性,都会反映到高级选项卡中:


修改高级选项卡里的属性值,效果和修改其他选项卡对应的值是一样的。

您可以修改以下设置来修改数据的显示格式。

� 数字,文本,日期与时间的格式

BIRT报表提供了许多常用的格式样式来显示数字,货币与日期。如果您不设置数据的格式,则BIRT报表将直接显示数据原来在数据源中的格式。如果您不使用BIRT报表自带的格式,那么您还可以定义自己的格式。

� 字体,大小与颜色

在设置字体之后,当报表用户运行浏览该报表时,他将以您设置的字体来浏览报表,所以必须确保用户的系统上已经安装了您设置的字体。文本样式:加粗,斜体,下划线,删除线文本对齐:左对齐,右对齐,居中,对齐

您仅可以对小数、浮点和整型数据设置数值格式。比如,您可以将整型数据显示为小数格式,使用科学记数法或加上货币符号。

注意:数值格式对字符串类型是无效的。

您可以使用文本元素或数据元素来显示数值数据。如果您直接从数据集中将某一字段直接拖入报表设计区域,那么BIRT报表设计器将会自动创建一个数据元素来显示该字段的值。

格式化数据与格式化文本的方法是有所区别的,这会在后面小节中介绍。

设置数据元素中的数值数据格式

您可以在属性编辑器窗口的“数值格式”中,设置数据元素中的数值格式。


格式类型 示例

常规数字 3000.00

货币     $3,000.00

固定     3000.00

百分比   300000.00%

科学计数 3.00E+03

您也可以使用自定义格式。比如您可以指定数值的小数位数,在数值前或后面添加字符。您需要使用特殊符号来构建格式范式,来自定义数值格式。BIRT报表支持符合JavaDecimalFormat 类定义的规范的数值格式。请查阅Java 文档获取该相关信息。下表给您显示了一些自定义格式的例子。

格式范式 原始数值 格式化后数值

0000.00  12.5     0012.50

124.5    0124.50

1240.553 1240.55

#.000    100      100.000

100.25   100.250

100.2567 100.257

$#,###   2000.00  $2,000

20000.00 $20,000

ID#      15       ID15

BIRT报表支持您在文本元素中通过<VALUE-OF>标签来显示数据。而文本元素的数值您是不能像前面设置数据元素中的数值格式一样,直接在属性编辑器里设置其格式。但是您可以通过<VALUE-OF>标签的format 属性来设置其数值格式,属性值为格式范式,且必须使用双引号。

<VALUE-OF format="$#,###.00">row["orderTotal"]</VALUE-OF>

<VALUE-OF format="#.000">row["unitTotal"]</VALUE-OF>

您使用的格式范式必须要符合前面提到的Java 所定义的规范。

您可以根据用户需求将日期时间以不同格式显示,如长格式、短格式、中等格式等。如果报表运行所在的系统支持多语言地区,那么日期数据则可以以不同区域的格式来显示。您可以使用文本元素或数据元素来显示日期时间数据。当您直接从数据集中将日期时间字段拖入报表设计中时,BIRT报表将自动创建一个数据元素来显示该日期时间数据。格式化文本元素中的时间日期数据与格式化数据元素中的日期时间数据是不一样的。

� 设置数据元素中的日期时间数据格式

您可以在报表设计中选中包含有日期时间数据的数据元素,然后在属性编辑器的日期时间格式页面中指定其格式。


您也可以自定义日期时间格式。比如您可以使用2 位数字显示月份,2 位数字显示年份,添加某州的第几天等。同样,您需要使用特殊符号来构建格式范式来自定义日期时间格式。BIRT报表支持Java SimpleDateFormat 类所定义的格式范式规范。请查询Java 文档获取相关信息。

下表以日期数据 4/15/2005 为例,给您展示了使用不同范式所得到的不同结果。

格式范式

结果

MM-dd-yy

04-15-05

E,M/d/yyyy

Fri,4/15/2005

EEEE,M/dd/yy

Friday,4/15/05

MMM d

Apr 15

MMMM

April

yyyy

2005

W

3 (一月中的第几周)

w

14 (一年中的第几周)

D

105 (一年中的第几天)

因为自定义日期时间格式将会使日期时间永远以指定的固定格式显示,所以当您的报表仅使用同一区域设置来查看时,您可以使用自定义格式。比如您使用自定义格式MM-dd-yy,那么日期January 10, 2006 将永远显示为01-10-06,不管查看该报表时使用的是何种区域设置。而在某些区域设置下,01-10-06 则很可能被理解为October 1, 2006。

同普通数据一样,您也可以在文本元素中使用<VALUE-OF>标签来显示日期时间数据。在<VALUE-OF>标签中,那您可以使用format 属性来设置日期时间格式,下面是两个例子。

<VALUE-OF format="MM-dd-yyyy">row["orderDate"]</VALUE-OF>

<VALUE-OF format="M/d/yy hh:mm:ss">new Date()</VALUE-OF>

Format 的属性值必须为格式范式,它必须要符合前面提到的Java 所定义的日期时间格式定义规范。

从数据源取回的字符串类型数据的格式经常会不一样,甚至是混乱,比如姓名或名称经常大小写不作区分,或者电话号码直接为1234567890 格式。这时我们就可以设置字符串数据的格式。

您可以使用文本元素或数据元素来显示字符串数据。当您直接从数据集中将字符串字段拖入报表设计中时,BIRT报表将自动创建一个数据元素来显示该字符串。格式化文本元素中的时间日期数据与格式化数据元素中的日期时间数据是不一样的

您可以在报表设计中选中包含有字符串的数据元素,然后在属性编辑器的字符串格式页面中设置其格式。


您可以选择将字符串全部用大写字母或者小写字符来表示,或者使用特殊字符来自定义字符串格式。下表给您列出了这些特殊符号的含义:

符号

描述

@

字符占位符。每一个@符号代表字符串中的一个字符。如果字符串的字符数比@符号的个数少,那么字符串将会以空格补齐。占位符的填充方向为从右到左,除非在格式范式以感叹号!开头。

&

与@一样,同为占位符。唯一不同的是如果字符串的字符数比&个数少,则不会自动以空格补齐。

指定占位符的装填方向从左到右

>

将字符串转为大写

<

将字符串转为小写

下表给您列出了一些格式范式,以及它们作用于原始数据的结果

格式范式

范例

结果

(@@@)@@@-@@@@

6175551007

(617)555-1007

5551007

( ) 555-1007

(&&&) &&&-&&&&

6175551007

(617)555-1007

5551007

() 555-1007

!(@@@)@@@-@@@@

6175551007

(617)555-1007

5551007

(555) 100-7

!(&&&) &&&-&&&&

6175551007

(617)555-1007

5551007

(555) 100-7

!(@@@)@@@-@@@@ + ext9

5551007

(555) 100-7+ ext 9

!(&&&) &&&-&&&& +ext 9

5551007

(555) 100-7 +ext 9

>&&&-&&&&&-&&

D1234567xy

D12-34567-XY

<&&&-&&&&&-&&

D1234567xy

d12-34567-xy

同普通数据一样,您也可以在文本元素中使用<VALUE-OF>标签来显示字符串数据。

在<VALUE-OF>标签中,那您可以使用format 属性来设置字符串格式,下面是两个例子

<VALUE-OF format="(@@@) @@@-@@@@">row["phone"]</VALUE-OF>

<VALUE-OF format=">">row["custName"]</VALUE-OF>

Format 的属性值必须为格式范式,它必须要符合前面提到的Java 所定义的字符串格式定义规范。

表,行,列,单元格,报表项各自的属性视图不相同。

表的属性如下:


行的属性如下:


列的属性如下:


单元格的属性如下:


报表项的属性如下:


所以,在设置属性的时候,一定要分清楚,是设置的行的属性,还是单元格的属性,或是报表项的属性。给单元格加上边框与给报表项加上边框的效果是不同的,如下所示为给报表项加上背景和边框:


另外,在页面上右击,选择布局为自动布局,表格会随页面大小自动展开。


一个常见的用法是在报表中使用外部javascript,这个时候就可以用页面的属性中的资源选项,导入javascript文件,如图导入了一个名为test.js的外部javascript文件:


反映到xml中就是增加了如下一段:

<list-property name="includeScripts">

        <property>test.js</property>

</list-property>

后文再详细介绍脚本的书写以及外部脚本的调用。

猜你喜欢

转载自blog.csdn.net/weixin_41961329/article/details/88737039