在报表增加图片信息时,该图片既可以来自数据库,也可以来自本地文件,还可以来自报表工具里自带的图释。下面展示的是图片来自数据库,以显示员工照片信息。
第一步:打开设计器
第二步:启动内置示例数据库,连接内置demo数据源
第三步:新建报表,命名为‘图片来自数据库.brt’
第四步:新建数据集ds,如下:
select 雇员ID,姓氏,名字,职务,出生日期,地区,家庭电话,地址,照片 from 雇员
第五步:将摘要视图中的数据集字段托放到单元格中,如下图所示:
其中:
将单元格A1,B1,C1,D1,E1合并,A2,B2,C2,D2,E2合并,E3,E4,E5合并,B6,C6,D6,E6合并。A2单元格左主格设置为“B3”,其目的是为了每个员工信息表之间有一定的距离,可以按自己需要选择显示的美观性。鼠标右键点击单元格E3,将设置类型设置为图片类型,这样就可以在E3里直接添入表达式从数据库中提取信息。
B3单元格表达式为:=ds.select(雇员ID);扩展方向设置为纵向扩展,左主格设置为”A0”。
B4单元格表达式为:=ds.姓氏+ds.名字;左主格设置为”B3”。
B5单元格表达式为:=ds.职务;左主格设置为”B3”。
B6单元格表达式为:= ds.地址;左主格设置为”B3”。
D3单元格表达式为:=ds.出生日期;显示值表达式为:=todate(@value),显示格式设置为yyyy年MM月dd日;左主格设置为”B3”。
D4单元格表达式为:=ds.地区;左主格设置为”B3”。
D5单元格表达式为:=ds.家庭电话;左主格设置为”B3”。
E3单元格表达式为:=ds.照片;左主格设置为”B3”。
必须先将单元格E3设置为‘图片类型’,再填写表达式。包括后面的小节里在单元格里添加图释和背景图片也是一样的。
第六步:保存预览:
◆ 下面对预览显示和打印做下简单介绍:
对预览和打印报表进行设置时,在报表区以外的空白处用鼠标单击,就可以在属性栏设置预览和打印样式的属性。
分页设置:分页方式分为按纸张,按数据行,按数据列,不分页,自定义分页,行复合分页等,下面2个属性是按照具体选择的分页方式而生效。比如分页方式为按数据行,每页行数为20,那么每页最多显示20数据;如果为不分页,那么所有数据就在一页显示。
纸张尺寸:包括A1—A5,B1—B5等常用的尺寸,还可以自定义纸张的高度和宽度。
打印边距:用来设置距纸张的上,下,左,右的距离。
打印布局:设置布局的行数和列数。
上节中的图片是从数据库中获取的,然而也可以从文件中获取。但是这种方法是固定的,和数据库没有关系。一般用于公司标志,产品商标等。我们对上节的例子改动一下。
第一步:将第一列划分为A1和B1单元格,B1—E1合并,B1为‘员工信息表’。
第二步:设置A1单元格为图片类型,选中A1单元格,在属性列表的杂项里,在“图片文件”属性中设置所要显示图片的路径。有两个问题需要注意:
1. 本版本的报表目前仅支持JPG,GIF,BMP等图片格式,如果想加载别的类型的图片,先用图片工具转换成以上一种格式再进行设置。
2. 在设计器中,将图片放在该报表所在项目的根目录或者子目录下。而在服务器中,将图片放置在“webapps\report\WEB-INF\reports”目录下。
第三步:改动后如下图所示:
第四步,保存预览:
报表工具自带一些图释用来描述等级,排序等内容,丰富地展现特定的数据信息,给人一种直观,愉悦的感觉。那么该如何来运用图释来展示呢,下面的例子将根据员工的销售业绩给予相应的等级评判。
第一步:打开设计器
第二步:启动内置示例数据库,连接内置demo数据源
第三步:新建报表,命名为图释.brt
第四步:新建数据集.
ds1: SELECT 客户.地区,客户.城市,订单明细.数量,订单明细.折扣,订单明细.单价,订单.雇员ID,订单.订购日期,订单明细.产品ID FROM 订单明细,订单,客户 WHERE 客户.客户ID = 订单.客户ID AND 订单.订单ID = 订单明细.订单ID and 订单.订购日期 is not null and 客户.地区 in ('华南','西南') and year(订单.订购日期)>=1998 ds3: SELECT 雇员.雇员ID,订单明细.产品ID,雇员.职务,雇员.姓氏||雇员.名字 as 姓名 FROM 雇员,订单,订单明细 WHERE 雇员.雇员ID = 订单.雇员ID AND 订单.订单ID = 订单明细.订单ID ORDER BY 订单.订购日期 ASC
第五步:将摘要视图中的数据集字段托放到单元格中,如下图所示:
其中:
将单元格A2,B2,C2,D2,E2,F2合并,单元格A3,A4,B3,B4,C3,C4合并,E3,E4合并,F3,F4合并;将A1单元格设置为图片格式并设置背景图片;单元格A3设置为斜线单元格,选中A3并在属性栏的 ‘斜线方式’中选择‘左上三分线’,A3单元格表达式为:“统计维度,销售额,产品信息”,必须用英文逗号隔开。
B5单元格中表达式为:=ds2.group(职务,false);扩展方向设置为纵向扩展。
C5单元格中表达式为:=ds2.group(雇员ID,false);显示值表达式为:=ds2.姓名,扩展方向设置为纵向扩展。
D3单元格中表达式为:=ds1.group(地区,false);扩展方向设置为横向扩展。
D4单元格中表达式为:=ds1.group(城市,false);扩展方向设置为横向扩展。
D5单元格中表达式为:=ds1.sum(数量*单价,雇员ID==c5)
E5单元格中表达式为:=sum(D5{})
F5单元格设为图片格式,其表达式为:= case(E5>=50000,icon(BIOS_F10),E5>=40000 AND E5<50000,icon(BIOS_F11),E5>=30000 AND E5<40000,icon(BIOS_F12),E5>=20000 AND E5<30000,icon(BIOS_F13), E5>=10000AND E5<20000,icon(BIOS_F14),icon(BIOS_F15))
◆ 选择图释的方法:
选择F5单元格,打开公式编辑器,在‘图释’选项中直接用鼠标选中添加图释。
第六步:保存预览如下:
在图文展示中,除了能用图片来展示丰富美观的效果,还可以用符号填充的方法充分的表达用户想要的信息和效果。报表中的Fill函数能够实现这个功能。
Fill函数说明如下:
函数说明:获得N个X所拼成的字符串。
语法:fill(s,n)
参数说明: s 用于拼成新串的源串
n 新串中包含源串的个数
下面的例子是针对销售额来作符号的展示。
第一步:打开设计器
第二步:启动内置示例数据库,连接内置demo数据源
第三步:新建报表,命名为符号展示.brt
第四步:新建数据集,名称为ds,内容如下:
ds:select 类别ID, 类别名称, 产品名称, 产品销售额 from 各类销售额
第五步:将摘要视图中的数据集字段托放到单元格中,如下图所示:
其中:
A2单元格表达式为:=ds.group(类别ID);扩展方向设置为纵向扩展。
B2单元格表达式为:=ds.类别名称
C2单元格表达式为:=round(ds.sum(产品销售额),0);取销售额为整数。
D2单元格表达式为:=fill('|',round(c2/2000,0))+" "+c2;字体为Times New Roman,字体大小要适中,字体颜色设为蓝色,水平对齐为左对齐。
E2单元格表达式为:=fill('★',round(c2/10000,0))+" "+c2;字体为宋体,字体颜色设为红色,水平对齐为左对齐。
用Fill函数时,根据显示的内容,要适当的调整属性栏中字体的类型以及大小,否则不会显示所需要的效果或者有偏差。
第六步:保存预览:
◆ 为了报表显示的美观性和合理性,在单元格的属性栏中有个‘单元格格式‘选项,它对单元格里数据的显示方式和背景颜色进行了定义。可以同时选中多个单元格一起设置。
水平对齐:分为左对齐,居中对齐,右对齐三种方式。
垂直对齐:分为左对齐,居中对齐,右对齐三种方式。
缩进:在原有的对齐方式基础上,距离对齐线的距离,单位为像素。
背景颜色:设置单元格的背景。
文字方向:设置单元格里数据显示为横向或者纵向。
条形码是将线条与空白按照一定的编码规则组合起来的符号,由于它可靠性高、输入快速、准确性高、成本低,已经被广泛应用于商业、图书、交通、仓储等领域,因此在报表中的应用也很多。
第一步:打开设计器
第二步:启动内置示例数据库,连接内置demo数据源
第三步:新建报表,命名为“条形码.brt”
第四步:新建数据集,名称为ds,内容如下:
select 产品ID,产品名称,单价 from 产品
第五步:将摘要视图中的数据集字段托放到单元格中,如下图所示:
要先把单元格A2设置为“条形码类型”,再填写表达式。
其中:
A2单元格的表达式为: =ds.select(产品ID,false);扩展方向为纵向扩展,是否显示文字处设成“是”。
B2单元格的表达式为: =ds.产品名称。
C3单元格的表达式为: =ds.单价;设置显示格式为:¥1234.01
第六步:保存预览: