除了上面的操作实例,还可以通过下面的实例来理解它们的原理和区别,读者可以参考本节内容,在系统中建模并加载数据验证。
1)下面有两个DSO,分别表示销售和发货情况,如表9-3所示。
表9-3 销售和发货的原始数据
2)用MultiProvider连接两个DSO,Union的结果如表9-4所示。
表9-4 MultiProvider Union的结果
3)用InfoSet连接两个DSO,通过月份连接,Inner Join的结果如表9-5所示。
表9-5 InfoSet Inner Join的结果
(www.xing528.com)
4)用InfoSet连接两个DSO,通过月份连接,Left Outer Join的结果如表9-6所示。
表9-6 InfoSet Left Outer Join的结果
MultiProvider和InfoSet是比较常用的两种逻辑视图类InfoProvider,初学者往往混淆或者误用,所以除了会操作,还要掌握好它们的原理和区别,这样在项目中就可以得心应手。
●两者关键的区别是数据的连接方式,MultiProvider是Union,而InfoSet是Join。
●MultiProvider连接的下层对象中,具有同一个特性的记录分别有M条和N条,那么MultiProvider就最少有Max(M,N)条记录,即M和N中的最大值,最多有M+N条记录。
●InfoSet设定连接的特性后,如果在连接的下层对象中,具有同一个特性的记录分别有M条和N条,那么InfoSet就有M×N条记录
●MultiProvider是InfoCube的结构,所有的Characteristics都是主键,它是用这个结构去下层对象里提取数据,再在报表中展现数据。当下层对象记录缺少相应的特性时,就显示“#”,即初始值。
在实际项目应用中,我们首先要根据业务需求来考虑使用MultiProvider或InfoSet,一定要确保获得有实际业务意义的结果集,其次还要考虑性能问题。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。