cognos地图使用专题一

  由于公司开始一个商业智能项目,我负责报表这一块的地图开发。

首先介绍下背景:软件:ibm cognos 8.4.1 操作系统:win7。

使用地图有一个好处就是展示空间(地域)上的一些指标,日常使用中有下面几种情形:

  首先从控件栏里拖放一个地图,选择你要的地图类型,这里以亚太地区的中国地图为例。

1、地图可用,而且地图里的区域信息和数据源中的数据能匹配。ok,你可以直接完成地图了,然后在其上进行一些修饰工作。

2、地图可用,但是有些数据和数据源不一致。这个时候可以选择编辑字典来完成。字典有三个属性(Feture,Alias,Language)就是为地图文件定义别名,比如china.cmf文件里北京市是用Beijing来表示的,但是你的数据源里可能叫BJ(大小写),这个时候就可以编辑下字典:为Beijing定义一个别名:BJ,注意选择语言种类英文。ok,这个时候应该能在地图上显示BJ相关的数据信息了。缺点是字典无法导入导出,而且只对本地图有效,如果你再拖放一张地图,你又得重新编辑字典。如果你需要修改大量的信息,而且需要使用多张地图,这个时候就要下面的一个步骤了。

3、修改地图文件。首先明确的信息是:cognos的地图文件放在C8/maps文件夹下,使用的地图编辑工具Map Manager(cognos安装包里有)以下简称MM。主要步骤是在MM里打开地图文件China.cmf选择对应的层(Major cities,Cities,Province。。。),选择对应的Feture,在右下角填入Alias名:BJ。点击Add entry。在MM右上方的dictionary里应该可以看见你为Beijing新建的一个别名BJ(注意语言)。ok,保存好地图(建议保存前先备份下原来的china.cmf-->china.cmf.bak),重启cognos,完工。

4、大多数情况下,我们数据源里是另外一种情况,全是中文的省份名和城市名。ok,你还是有两个选择:为每一张地图编辑字典(可怕的条目数,而且必须选择对应的语言:中文(中国)),你也可以修改地图,为其增加Multiple-language,也叫多语言。默认的,china.cmf只包含了一个语言类型:English。如果你在MM里为Beijing增加一个Alias:English,Beijing,北京。那么该条目会无效,因为语言不对。我之前就犯了这个错误,气煞老夫。这个时候你需要为地图文件增加中文了。分两个步骤:一、在MM里打开china.cmf,tools->Export Translation File。

cognos8.4.1地图专题系列一

导出的格式,我建议选择以.csv文件导出,.txt格式也行就是空格不怎么好把握,还是.csv吧。你就会得到一个文件

×××.csv,打开以后是下面这种格式:

cognos8.4.1地图专题系列一

这个时候你就可以使用记事本什么的编辑该文件,建议不要在上面直接改,先备份,不然文件搞坏了又得重新导一遍。按照csv文件的格式改,在zh-cn列下增加相应的中文名,但是层标记(Layer)Major cities、Cities、Province+……不要改,照抄。记住你只需要为对应的城市和省份增加对应的中文名改好以后以utf-8编码方式保存为import.csv文件,如果你使用的是默认的Ansi编码格式保存则导入到MM里会是乱码(Damn it, I failed again.)。 文件名可以随意,import只是方便标识。应该是下面这种样子了:

cognos8.4.1地图专题系列一

这里还有个问题就是原来的地图里面可能有些英文城市名你不知道是哪个,比如下面的Tsingtau,Nanchino,Cantão,La-sa,Foochow,有些你可以从读音上辨别,La-sa明显是拉萨,但是我已经有一个条目命名为拉萨了。我就把它命名为拉萨1,如果你又把它命名为拉萨,在做报表的时候会报一个错误,重复的条目(我也犯了这个错误)。不能辨别的比如Tsingtau,Nanchino,Cantão我就把它命名为“未知城市一”、“未知城市二”,依次类推,记住名字不能一样。

ok,文件做好,再从MM的tools-->Import translation file导入做好的import.csv文件。

cognos8.4.1地图专题系列一

选好语言,导入。ok,保存地图,重启cognos。如果你不希望覆盖原来的地图文件,则可以使用另外一个文件名zhcnchina.cmf存到maps文件下。重启cognos以后,在report studio里拖一个地图,你可以在地图选择框的最下方看到另外一个china地图,这就是你另存的那个地图,如果你想让它显示在亚太地区的文件夹下,那么你可以编辑文件C8/webcontent/pat/res/MapGroups.xml。在对应节点<folder idsLabel="IDS_MAP_GROUP_LABEL_ASIA_PACIFIC">下加入一个节点<map id="zhcnchina.cmf"/>。保存,restart cognos。

5、上面都没涉及到修改地图图片了,这是最难的部分了,地图上原有的数据不符合你的需求,比如数据源里的城市在地图里没有,或者你要的是广东省的地图。这下就没辙了,你可以向cognos support申请要一张地图,当然不会是免费的啦。要么是自己做了。做一个gst文件,用MM导入,新建一张地图。用MapInfo pro软件来做那个gst文件。如果不会做就找专业的人士或机构帮你做,当然也不可能是免费的啦。用mapinfo pro做地图我没尝试过,因为默认地图里的省份的数据还是很全的,就是城市数据不是很全。当前项目只做到省份一级就差不多了,城市属于锦上添花。

  总结:以上经验全来自自己所看所练。主要参考文件(ibm官方参考文件报表制作ug_cr_rptstd.pdf,地图管理器ug_mpmgr.pdf,Learn more about Cognos 8 maps.pdf,还有个网络上找的mapinfo教程,专门介绍mapinfo pro软件的使用。)。

抛砖引玉