如何制作网格式报表

1 体会纵向扩展

第一步:点击桌面图标运行皕杰报表设计器,新建一个练习用的报表项目。

项目

第二步:启动内置示例数据库,连接内置demo数据源

第三步:新建报表,在菜单栏中选择【文件】--【新建】—【新建报表】,在弹出的窗口中选择报表存放路径,指定报表名称,然后点击【完成】。

项目

第四步:新建数据集,在摘要视图中,单击【新建数据集】按钮,输入数据集名称,选择数据源和数据集类型,单击【下一步】

首选项

在查询语句框中输入:

SELECT EMPID,EMPNAME,BIRTHDAY,SEX,DEGREE,BONUS FROM EMPLOYEE;

然后点击【完成】

第五步:将摘要视图中的数据集字段托放到单元格中,如下图所示:

其中:

A2单元格中表达式为:=ds1.Select(toint(EMPID),false);“扩展方向”设置为“纵向扩展”。

B2单元格中表达式为:=ds1.EMPNAME

C2单元格中表达式为:=ds1.BIRTHDAY;设置“显示格式”为“yyyy年MM月dd日”

D2单元格中表达式为:=ds1.SEX

E2单元格中表达式为:=ds1.DEGREE

F2单元格中表达式为:=ds1.BONUS

第六步:保存、按“ctrl+F2”预览

2 报表装饰

第I条 显示格式、显示值

在第1节中设计的报表性别、学历都是用数值显示的,而且奖金等格式也并不美观,那么我们可以在第1节的基础上增加显示格式、显示值等设置,使报表可读性更强。

第一步:增加一个数据集

ds2: SELECT DEGREE.ID,DEGREE.NAME FROM DEGREE 

第二步:定义表达式:

将A2单元格表达式修改为:=ds1.Select(toint(EMPID),false) ,该表达式是将字符串型的EMPID转换成整数,再做排序操作。

设置C2单元格的显示格式为:yyyy年MM月dd日

设置D2的显示值为:map(list("1","2"),list("男","女"))

设置E2的显示值为:ds2.getone(name,id==@value)

设置F2单元格的显示格式为:¥#0.00

第三步:保存预览

第II条 设置预警条件

目标:在该报表上继续修改,使奖金高于15000元的员工信息用红色显示

第一步:定义表达式

选中第二行中的所有单元格,将字体颜色的表达式设置为:if(F2>15000,'255,0,0','0,0,0'),该表达式的意思是:当员工奖金高于15000时用红色字体显示,否则用黑色字体显示。

第二步:保存预览报表

第III条 增加动态背景色

目标:在该报表上做修改,使单双行显示不同的背景色。

第一步:定义表达式

选中第二行所有单元格,将背景颜色表达式设置为:if(mod(row(),2)==0,'255,204,153','255,255,255'),该表达式的意思是:当行数为偶数行时显示桔黄色,否则用白色显示。

第二步:保存预览报表

第IV条 取数排序

报表中,取数展现的时候往往要求记录按照一定的顺序进行排列,我们称为排序,排序有2种方式:sql中排序,select函数中排序,下面分别介绍。

第一种:SQL中排序

SQL中排序是指在定义数据集的时候就把数据按着升序或降序排好,在报表设计阶段直接取数即可。

第二种:select函数中排序

该方法是通过设置select函数的参数来实现排序,还以上述示例为例做修改。如果想以“EMPID”字段升序排列,可以将A2单元格表达式改写为:=ds1.Select(toint(EMPID),false),此时报表就是以EMPID字段做升序排序了,若将表达式中的false改成true,则是以EMPID做降序排列。如果想用“姓名”字段排序,可以将A2单元格的表达式改写成:=ds1.Select(EMPID,false,,EMPNAME)

注意

SQL中排序是在数据库中进行,而通过select函数排序是在报表端进行,数据库中有索引,且数据库是c语言开发的,数据运算速度快,因此如果报表中的排序规则是确定的,那么建议排序操作选择在数据库端进行。

第3节:报表区域

报表按照行从上到下,依次可以分成标题区、表头区、数据区、表尾区,按照列从左到右依次可以划分成表头区、数据区、表尾区。

本节学习目标:修改报表,为报表添加标题区、表尾区

第一步:定义表达式

选中第一行,在行首格点右键,在弹出的菜单中选“插入行”,如图

选中第一行的行表头,设置属性列表的“行类型”为“标题区”;设置第二行的属性列表的“行类型”为“表头区”。如图所示:

选中第三行,在行首格点右键,在弹出的菜单中选“追加行”,如图:

选中第四行,设置属性列表的“行类型”为“表尾区”。如图所示:

在标题、表尾等区域分别输入相应内容,并调整报表格式。如图所示:

在报表页尾区的F5单元格中输入表达式:=now(),并设置显示格式为:yyyy-MM-dd。

第二步:保存预览