1. 引用查询
引用查询是指将界面模型所要展现的查询结果集对应的查询定义引用到模型中来。由于同一查询定义根据不同参数设置也可以得到不同结果集,所以为了区分这种绑定基于同一查询定义的不同结果集时,我们对每一个查询结果集起一个单一的别名来标志。
图 4-2 查询引用界面
对于数据集之间存在的某种一对多的关系,我们还可以根据需要建立主从关系(即主子表)。查询引擎支持两个数据集之间按照多列关联建立主从关系。
图 4-3 主子连接设置界面
2. 格式设计
界面模型的格式设计包括了控件拖放,编辑控件属性及数据绑定属性,定义列格式,列表头,行表头等行列格式以及数据预处理等几部分。分别介绍如下。
第 28 页
图 4-4 界面模型设计界面
2.1 控件管理
界面模型设计工具提供了几种最常用的控件,如图4-4中控件栏中所示,分别是按钮、复选框、组合框、标签、列表、单选框、多页签、表、文本域、文本框、树、面板、分割栏、图表和参照控件,其中最重量级的控件是表和图表,绝大部分的数据集展现工作是这两个控件完成的。
初始时,界面上只有一个面板,处于选中状态,布局是默认的BorderLayout。我们接下来的工作就是要在这个面板上定制我们的界面,这个过程和一般的Java可视化设计大同小异。 〃 查询引擎的布局基本上沿用Java布局的FlowLayout,BorderLayout和GridLayout(BorderLayout和Java稍有区别),前两种是比较常用的。
FlowLayout布局顾名思义,是流程式的,象字处理程序安排段落里的文本一样布局GUI元素。
图4-5 FlowLayout示例
查询引擎里的BorderLayout将容器分成了北、中、南三个区域,每个区域放臵一个子控件(和Java的五个区域稍有不同),北区域和南区域按控件首选高度来布臵,宽度都是充满这个容器,剩下的空间全部划分给中区域。如图4-6,主面板的布局就是BorderLayout,其北区域放臵了一个子面板,布局为FlowLayout,中区域放臵了一个分隔栏控件,左右各放了一个表格,南区域放臵了一个多页签。
第 29 页
图4-6 BorderLayout示例
GridLayout按照指定的行数和列数来平均分隔容器空间,形成很多子区域,每一个区域内放臵一个子控件。
图4-7 GridLayout示例
图 4-8 界面模型
双击界面上的控件就可以打开属性编辑器,可以编辑控件的相关属性。属性编辑器上边是当前界面的控件列表,下面列出了当前选中控件的属性列表。我们可以从控件列表中选中控件,也可以在界面上双击控件来选中控件进行属性编辑。
图 4-9 属性编辑器
所有控件都有背景色,前景色,字体和首选大小等普通属性。其次,控件具有一些自己特有的属性,如面板具有布局属性,分割栏有分栏方向,分栏位置等特有属性。下面我们来介绍一下几个主要的控件。
展现数据集的最重要的控件——表的几个属性:
(1) 绑定数据集:可以将表绑定到引用查询中的某一个查询定义,那么在运行态下
表展现的就是该查询定义对应得到的查询结果集。当设置了表的数据集绑定属
性后,该查询定义中定义的列就相应的出现在表里(此时没有数据只有表头);
(2) 列格式绑定:有时候会对表中的数据展现有各种格式上的要求,如预警显示,
精度设置,前缀后缀等等。这时可以设置表的列格式属性,在列格式属性里不但可以设置列绑定的列格式,也可以设置列的显示顺序,显示与否等属性(列格式的定义在后面的小节里专门讲述)。
第 30 页
图 4-7 列格式设置
(3) 列表头绑定:当表绑定了数据集之后,可以根据展现需要绑定列表头格式,在
表头ID属性里绑定表头的ID之后,从界面上就可以看到表的列表头已经绑定到了表头ID对应的表头格式(列表头格式的设计在后面的小节里会专门讲述);
(4) 行表头绑定:如果表绑定的查询定义里定义了第一类交叉(即投影交叉,参见第三章第3节),则表还可以设置行表头格式。关于行表头的定义和设置在后面
小节中讲述。
图表:
图表控件在设置了数据集绑定属性之后,可以设定其数据绑定属性。在图表控件上弹出右键菜单点击数据绑定菜单项,可弹出数据绑定设置界面如图 4-8所示。在这里我们可以设置图表的类型,以及绑定的系列等属性。
图 4-8 图表数据绑定设置界面
图表支持的类型有三种:分类图、饼图和仪表图。
分类图有2D和3D两种,还可以选择是水平方向还是垂直方向展开,如果选择了各系列单独设置图例,还可以对不同的系列设置不同的展现类型。如图4-9,显示了两个系列的数据,一个系列是直方图,一个系列是折线图。
第 31 页
图4-9 分类图
饼图也有2D和3D两种。图4-10显示了图4-9中的数据用饼图类型的展现。
图4-10 饼图
仪表图将每个系列的数据在一个仪表盘中显示。图4-11为同样的数据在仪表图的展现。仪表图一次展现数据中的一条记录,可以通过仪表图中的导航工具栏浏览数据。
第 32 页