3 模型设计的一些技术要点
1, 首先要了解数据库表的定义和业务需求,以便将报表设计所关联的物理表引入到物
理层中。
2, 在物理层建立关系要清楚了解表中KEY值的定义和维表与中间表之间的关系,关系
中的对应(1对多、多对多)要设置清楚,可以通过察看Determinants来决定,最好咨询数据库设计人员。如下图,CCB_COGNOS_FTCOMP_DV的唯一值的字段是COMP3_CODE:
3, 有时因为数据库数据或者报表需求的原因,维表和中间表的对应关系可能不是最底
层,报表产生的数据可能就会有重复累加值。例如一个维表company有2种和中间表对应关系,表company有3层,其中2层、3层都分别对应中间表(可能不同表),这时最好在数据源中引入2次company,一个只引入2层字段,一个引入3层字段,分别在物理层中和中间表建立关系,这时引入2层字段的维表就会产生重复值,这时就需要在维表company的Determinants中的对应字段进行Group by。也可以在SQL中加入distinct。如图:
5
Distinct 过滤:
4, 逻辑层表的逻辑字段的添加:有时,数据库表的现有字段不能满足报表设计的要求,
例如日期维表month有3个字段month、quarter、year,month为KEY,报表设计中需要计算上月、上季末月、上年同期月等等,针对这种情况,我们在month中增
6
加上月、上季末月、上年同期月等字段,在reportnet用交叉查询来计算上月、上季末月、上年同期月的数据,framework提供了丰富的函数帮我们增加逻辑字段。如图:
5,2种SQL setting
7
Cognos sql是模型默认的类型,当数据库表从源引入时默认。Cognos sql 支持多数据源,它不是当前数据库的标准SQL,但能与COGNOS良好结合,它对于不同的数据库是透明的。一般情况下,不用改变这个模式。 Native sql是当前数据库SQL,cognos直接将sql发送到当前数据库中运算,Native sql 不支持多数据源。Native sql 运行效率比较高,我们可以编辑SQL。可以将一些维表改成Native以提高效率。
8
4 层次模型的定义
1, 打开FrameWork Manager系统,然后右键点击已建立的数据源,选择create,再选
择regular dimention项,如下图:
2, 弹出对话框,如下图,然后从左边的Dimension项面板中将要建立的层次数据项依
次用鼠标拖到右边的Hierarchies面板中,假设以机构部门为例,先将总行机构拖进去,然后将各省分行拖进去,依此类推,从高层次到低层次。
3, 分别选中刚才拖进去的数据项,然后分别在下方中的Role项中点击,弹出对话框如
下图:
9