|
|
多数据源的集成与控制
工具对于多数据源的处理支持主要包含如下几个方面:
1、关联整合 - 虚拟数据源:
对多个数据源进行数据关联整合的话,手段之一是采用虚拟数据源。
所谓虚拟数据源,是指在工具服务器从数据库获得实际多个数据源的数据后,在工具中以SQL方式,对多个数据源进行关联整合。此过程的主要表现形式为:在数据源目录中,建立一个类型为虚拟数据源的数据源,然后对该数据源以标准SQL方式进行数据运算编辑。最终创建结果是,该数据源将多个数据源数据进行关联整合运算后,返回一个整合后的数据集合。
虚拟数据源是一种标准的多数据源整合方法,它的主要特征是在工具服务器获取数据库数据之后、进行报表实际输出之前进行的。在虚拟数据源执行过程中,不进行中间数据的逻辑判断。同样的虚拟数据源可以被多个不同的报表所使用。
如果需要根据报表运算中间结果进行逻辑判断,而后根据判断条件有选择地进行数据源整合,则需要用到"内置SQL引擎"功能。
2、关联整合 - 内置SQL引擎:
内置SQL引擎在数据微引擎与动态数据库指令中的"数据微引擎"段落中已经做过描述:数据微引擎技术(即内置SQL引擎技术),是指在报表获得实际数据之后,根据报表中某些变量或中间运算结果,动态地使用符合SQL
92标准的SQL语句,对当前已获得的数据进行关联、过滤等运算。
数据微引擎技术最为实用化的地方,在于其SQL语句是可以根据报表创建过程中产生的中间运算结果动态创建的。
可以如此理解:内置SQL引擎是虚拟数据源的一种局部变量化定义延伸,它的实现机制与虚拟数据源类似,不同之处在于加强了运算过程中,根据中间逻辑结果进行动态控制的能力。并且,它的执行是在报表创建过程中执行的,是一种当前报表局部的、私有的数据处理定义。
3、跨源四则与逻辑运算
跨源运算理解上更为简单,它是指:允许在报表设计中,直接同时引用多个数据源数据进行 。比如本篇开始部分的报表中,如果在第二列加上一个合计,则需要同时对多个数据源的当前行数据进行跨源运算。
这种应用场景非常多,有时候会遇到更为复杂一些的情况。比如,在计算报表历史同期比的时候,虽然同样是跨源运算,运算的数据记录行数可能不是同一行,这就需要额外使用数据源指针对特定
进行当前记录行跳转,而后再进行常规四则运算。
4、多源多片同步
如本篇开头部分案例所示,当多个数据源的返回数据,在排列顺序上不是完全一一对应的时候,就需要有一个整体的参照座标,所有数据源以座标为准,进行数据展现。
在开始的案例中,我们可以将银行字典数据源设定为座标参照,其他业务数据源以此为标准循环填入数据。如果在其他数据源中没有与参照数据源匹配的数据,可以置空或者置零。
实现方法同样简单,一句"被同步数据源.Filter(同步参照字段名称=当前行座标字段名称)"即可。
|
|