快程业务构建平台开发教程>基础篇>第七章 报表配置

1.1     报表的分类和定义

报表就是为了统计数据,制作成各种格式,并且能导出报表中的数据。一般报表分两种类型:内嵌报表和统计报表。

1.2     报表设计器初览

  

  (1) 报表模板节点,选中该节点后可在属性页中设置该报表模板的相关数据。

   (2) 数据源根节点。在一个报表模板中可以拥有若干个数据源,数据源用于提供报表中文本框、表格、图表等元素的数据。

   (3) 其他数据源。这是一种对象数据源,可根据需要添加字段,但字段值必须通过计算表达式或脚本进行赋值。

   (4) 实体数据源。实体数据源仅在实体报表中有效,代表当前报表所对应的实体对象。实体数据源也是一种对象数据源。

   (5) 查询数据源。查询数据源是指通过执行一个数据查询所得结果组成的数据集。

   (6) 报表事件根节点。

   (7) 可拖放到查询条件输入面板中的控件。

   (8) 属性页。

   (9) 工具栏。

   (10) 查询条件输入面板。

   (11) 报表设计区。

1.3     报表的查询条件配置

查询条件的配置界面如下图:

 

(1) 在当前查询模式中允许查询的实体。
(2)
查询模式名称。
(3)
当前查询模式的输出字段。
(4)
查询模式的显示名称。
(5)
查询模式的条件。
(6)
查询模式的模式类型,默认为格式化的,即对查询条件和其他查询语句均是通过一定的格式进行设置;也可以是自定义的,此时需要手动编写where及其他语句。
(7) Group By
子句。
(8) Order By
子句。
(9)
显示生成后的SQL主语句。
(10)
生成最终执行的SQL语句。

 

在查询条件配置中注意如下几个概念:

l  查询实体

查询实体是指当前查询模式中允许查询的实体类型及其字段。对于在报表数据源中打开的查询生成器,默认的可查询实体为当前查询所对应的实体,但也可以将其他实体拖拽到查询编辑器中的返回数据节点;对于在报表编辑器中打开的查询生成器,可以直接在工作栏按钮中点击添加选择可查询的实体类型。

l  查询输出字段

查询输出字段是指实际查询结果中包含的字段。可以从查询实体中直接拖拽整个实体或实体中的一个字段到查询输出列中。对于某些查询可能还需要输出与数据库相关的其他字段,如当前系统时间等,此时可以在查询输出列中选中其他节点,并点击工具栏中的添加按钮,弹出添加字段对话框:

 

添加字段对话框中可以对不同数据库类型设置字段的名称,如预取当前系统时间,可将SQL Server数据库的字段名称设为“GETDATE()”MySQL数据库的字段名称设为“CURRENT_TIMESTAMP()”Oracle数据库的字段名称设为“SYSDATE”等,目前系统支持MySQLSQL ServerOracle三种数据库,如果新增的字段适用于所有数据库,则可将知用数据库改为所有数据库,这也是默认设置。别名是指在查询输出时该字段的别名名称,字段显示名称是指用于在查询输出列中显示的名称。

l  查询条件设置

查询条件可分为两类,一类是组合条件,一类的一般条件。组合条件包括逻辑与(And)、逻辑或(Or)和逻辑非(Not)三种,在组合条件下可以添加其他组合条件或一般条件;一般条件是指等于(=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、不等于(!=)、间于(between)、字符匹配(like)inisNull等判断。添加条件时必须先选中上一级组合条件,再点击工具栏中的添加按钮,弹出条件编辑对话框:

 

首先需要选择条件类型,根据条件类型的不同条件的控制面板也不同。如对于组合条件,不需要其他控制选项,而像=、>>=等一般条件需要设置该条件的左值和右值内容;between需要设置两个右值;isNull不需要设置右值。

可选选项用于控制该条件是否必须生成,对于某此条件其右值来自于用户在查询输入面板的输入值,如果用户未输入并且该条件是可选条件,则不生成相关的SQL语句。

左值是指参与条件运算的输出字段,在字段列表中对于类型为关联实体或注册用户的实体字段会对应两个选项,分别为ID和名称,分别用于对该关联实体或注册用户的ID和显示名称进行条件设置。值类型用于设置当前参与运算的字段的数据类型,如果字段来自于实体,则该类型会自动设置,否则如果该字段是手动添加的,则需要明确指定该类型,如对于当前日期字段需要将值类型设置为“date”

右值与左值及条件类型组成一个完整的判断语句,如=条件,左值位于等号的左边,右值位于等号的右边。对于右值的来源可分为四种:属性、参数、表达式、服务计算值。属性是指另一个实体字段; 参数是指条用户条件输入面板中输入控件的输入值,这些值作为参数用于SQL语句的生成;表达式是指一个运算公式,该公式在客户端运行并将运行结果作为右值生成相应的SQL语句;服务计算值是另一种公式,与表达式不同该公司由服务器执行。

在查询条件中的表达式引用如下表:

引用

说明

$condition

查询条件的用户输入面板,如要引用条件面板中名为name的控件输入值,则表达式为$condition.name

 

 

l  其他设置

其他设置包括Group ByOrder By设置,可将查询输出字段拖拽到Group ByOrder By节点中。

 

1.4     数据源配置

报表数据源有四种类型:实体数据源(系统自带)、其他数据源(系统自带)、查询数据源和自定义数据源。

l  实体数据源

实体数据源仅在实体报表中有效,代表当前报表所对应的实体对象,所以只有内嵌型的报表才能看到实体数据源。实体数据源也是一种对象数据源。如下图:

 

l  其他数据源

其他数据源:这是一种对象数据源,可根据需要添加字段,但字段值必须通过计算表达式或脚本进行赋值。报表都会其他数据源,如下图:

 

l  查询数据源

查询数据源是指通过执行一个数据查询所得结果组成的数据集。而查询条件设置方式和实体查询方式一样,包括设置查询条件也可以从查询条件控件去拉出来设置。如下图:

 

l  自定义数据源

自定义数据源:也是一种数组数据源,设置数据源名称,根据需要添加字段,值也一样要通过脚本进行赋值。如下图:

 

1.5     文本框

要插入文本框可直接拖动对象数据源的字段到模板设计区;或点击工具条中的文本框图标 ,在模板设计区中点击文本框插入的位置,输入文件内容,如下图:

   

将鼠标移动到文本框边缘鼠标指针变为十字方向箭头时可拖动文本框,点击并拖动文件框四周的黑色方块可改变文本框的大小。在文本框中可输入最终显示的内容和内容替换表达式,格式为“${表达式}”。当设置文本格式时如果包含内容替换表达式,则必须选中完整的内容替换表达式文本再进行设置,否则会造成指令无效。

“插入文本框”内容可以根据用户要求输写,如图:

 

其中表达式:other是指数据源的其他数据源。

1.6     表格

1、创建表格

    在工具栏中点击插入表格图标,再点击模板设计区中插入表格的位置,弹出插入表格对话框,在对话框中输入表格的行数和列数,点击确定按钮创建表格。

    

    另外一种表格插入方式是将对象数据源或数组数据源拖放到模板设计区,系统会根据数据的内容自动创建表格以及表格数据的填充模式。拖动表格的右边框和下边框可修改表格的宽度和高度;将鼠标移动到表格左上角当光标变为十字方向箭头时拖动表格。

2、插入及删除行与列

    移动鼠标指针到表格左边框,当出现水平向右箭头时点击鼠标选中一行,点击工具条中的插入或删除行图标在当前选中行前插入一行或删除当前选中行。

    移动鼠标指针到表格顶部边框,当出现垂直向下箭头时点击鼠标选中一列,点击工具条中的插入或删除列图标在当前选中列之前插入一列或删除当前选中列。

3、合并与拆分单元格

    选中表格中相邻两个或多个单元格(选中的单元格必须能够形成一个矩形),点击表格工具条中的合并单元格图标,选中的多个单元格将合并成一个与选中区域同等大小的单元格。

    选中曾经被合并过的单元格,点击表格工作条中的拆分单元格图标,该单元格将会被拆分成合并之前的多个单元格。

4、填充单元格数据

    单元格的数据填充方式分为直接填充、垂直填充和水平填充三种。直接填充是指在指定的单元格中根据填充指令直接将数据填充到该单元格,这种方式不改变表格的行列;垂直填充用于将多个数据填充到表格的一列中,系统会根据数据的数量重新计算表格的行数使数据能够填充到表格中;水平填充的方式与垂直填充类似,只是方向变为由左向右地填充表格的一行,数据表格在设计时所指定的列不足,则系统会自己插入列以填充数据。

1  直接填充

在使用拖放方式将对象数据源拖放到模板设计区所创建的表格中已经包含了对单元格的直接填充表达式,该表达式与设计文本框时所用的内容替换表达式格式是一样的,如${person.name}等。

 

2  垂直填充

垂直填充只能通过填充属性进行设置。选择一个单元格,在填充属性中选择数据源,和显示字段(显示字段为一个引用方式),填充方式选为“垂直填充”,此时所选单元格的左上角出现一个绿色向下的三角箭头,表示该单元格被设置为垂直填充方式。可以将相邻几列的填充方式都设置为垂直填充,并且采用同一数据源和不同的显示字段,这样可以将一个数据集填充到一个表格中,如下图:

 

当将一个数组数据源拖放到模板设计区时将自动创建垂直填充方式的表格。在垂直填充方式中如果填充单元格下面的单元格内容不是空的,则系统会自动插入空行并填充数据。

3  水平填充

水平填充的方式与垂直填充一致,只是数据的填充方向是从左向右。

5、表格的分页

    当表格的内容无法在同一页中显示时表格会自动拆分,如果在表格属性中设置了表头行数或表尾行数,则拆分的表格自动保留原表格的表头或表尾。

1.7     图片

插入一张图片。

 

点击属性窗口,会跳出图片属性:

 

 

清除图片:可以把已经上传好的图片清除掉;

上传图片:可以选择本地上传路径;

查看图片:可以预览图片及下载图片;

1.8     超链接

可以插入一个超链接。

1.9     图表

可以插入柱状图、条形图、线图、饼图。

l  柱状图:

 

点击“属性窗口”参数,可以打开图片属性设置,如下图:

 

数据源:是指获取数据的数据源;

轴:选择分类轴即可;

显示名称:是指X轴显示的内容;

分类字段:是指X轴获取的内容;

显示格式:有无和月份两种选项;

系列:是指Y轴显示数据列。

 

l  条形图:

属性设置跟柱形类似。

l  线图:

属性设置跟柱形类似。

l  饼图:

属性设置跟柱形类似。

 

1.10 报表页面

 

 

配置“客户类型统计”统计报表

“客户类型统计”报表是统计指定时间内新建了各种客户类型的客户数量。在“客户关系管理”业务应用下的统计报表中先新建个报表分组,再创建“客户类型统计”报表。

在“查询条件控件”中拖入标签和时间控件,分别命名时间控件为beginDtendDt,查询条件可选。

 

右击界面“数据源”选项,选择“添加查询数据源”会生成一个查询生成器。

 

在查询数据源中输入查询名称和显示名称:customer和客户统计。然后点击“可选实体”窗口添加客户实体(CRM_Customer),根据要输入的内容把客户类型拖放到输出窗口中,然后把客户类型字段拖入到“group by”。再统计个数(count(a0.id)),最后设置查询条件。

 

       把设置好的数据源拖放到报表界面中,排放好位子。放好报表标签。