时隔几年,再次回首,Cognos还是多多少少的有些味道的,虽说IBM的东西有很多地方不尽人意,比如安装、配置以及入手学习可能对于新手来说都是那么的模糊,但是纵观国内BI产品,又有哪些可以让我们更加青睐呢?期待中...
今天,就那开发一个简单的cognos Report来回味一下这个接触了将近4年却还一直在学习的Cognos。
1:整体效果如下,一个列表,两个条件。
图(1)
2:技术难点详细解释
下文讲根据图第一部分图(1)所示的A、B、C三处分别加以阐述。
A:利用‘工具箱中-字段设置’对象分割条件块
文字写在边框上面,把查询条件作为一个块然后加上文字描述是不是有着不一样的味道呢?如何实现?
其实这个地方就很简单了?刚开始我一直把文本往边框上拖,结果是失败的。其实就是工具箱中的一个控件而已。
把字段设置拉过去就好了,然后可以在里面拖拉列表、值提示、表格等对象,也可调整此对象的大小。
B:利用'值提示实现条件多选'方便用户使用报表
值提示本身具有多选显示的功能这里就不再多说,主要说一下值提示在过滤中是如何起到作用的。
如果多选那么就是 数据项 in ?参数?
下面说一下需要注意的地方:
(1):值提示属性设置需要注意
使用值和显示值分开:使用值一般用数字类型的键值,显示值用维度中文名
(2)过滤的时候用in
注意过滤的时候报表页面可以不显示类型键,但是可以把类型键拖入查询参与过滤,这样多选引用和过滤字段就
数据类型统一了,自然多选起了作用。
C:日期提示的使用技巧针对数据仓库为不用的数据库类型
新建一个数据项 拖入 ?begindate? 运行报表执行结果为 2014-4-11
由此可以看出‘日期提示’控件的格式为 yyyy-mm-dd 字符串
那么 我们在进行日期比较的时候就需要考虑了?比如我们数据仓库的日期字段?
或者是日期维度的日期字段格式一般为 yyyymmdd,20140411数字类型
那么我们就要针对这个数字去做一系列转换了
本人是数据仓库是oracle数据库:
to_date ([日键] ,'yyyy-mm-dd') between to_date(?begindate?,'yyyy-mm-dd') and to_date( ?enddate?,'yyyy-mm-dd')
如果你是mysql可以参考:
第一步:
cast([日期],varchar(8))
第二步:
cast(substring([日期1],1,4)||'-'||substring([日期1],5,2)||'-'||substring([日期1],7,2),date)
第三步:
[riqi] between cast(?begindate?,date) and cast(?enddate?,date)
在根据数据仓库类型对日期key进行转化的时候可能会报错:
解决办法:进入framework -打开模型-数据源-属性-修改查询处理为-仅限本地
OK,一个简单的报表,你学会了吗? ...... 文终于此,欢迎点评 ......