在这里讲解皕杰报表的数据模型,包括数据集、记录、字段及多源.
数据集(dataset)为一个由数据数组构成的二维数据表,其同列的元素数据类型都相同,为了方便,我们给数据集的列都起了一个可唯一标识的名字,列的名字和数据类型都保存在数据集中。
每个数据集都与唯一的数据源(datasource)进行对应。
为了和报表的行、列加以区分,我们把数据集的行称为记录(record),列称为字段(field)。
数据集中的每行记录都有对应的行号,依次为1,2,3,4,……,行号存储在数据结构的首列(即:#0),其它的数据字段依次存储在第1列(#1)、第2列(#2)、第3列(#3)...中。
所以获取数据集行号的书写规则为:
dsName.#0 //获得当前行的行号,需将当前单元格的主格设为需要获得行号的单元格(参见主格模型)
或
dsName.select(#0) //获得数据集所有记录的行号
其中dsName代表数据集的名字,#0代表第0列,即说明数据集的行号保存在第0列中。
由多个记录所组成的集合称之为记录集(recordset),从组成元素上看,记录集是数据集的子集,但排列次序未必与数据集的行序相同。 记录集可能由以下操作产生:
对数据集的筛选操作,例如ds.select()、ds.getone()、ds.top()操作等
对数据集的分组操作,例如ds.group()、ds.rgroup()、ds.split()操作等
如果一张报表中包含多个数据集,并且这些数据集来自不同的数据源,这类报表称之为多源报表。其模型图示如下:
皕杰报表的多个数据集之间不需要进行整合运算,而是直接用于报表的运算,在报表的运算过程中,通过一定的业务规则把多个数据集关联起来,这样做的优点是可以大幅降低运算的复杂性,提高报表的性能。