互联网服务商业智能

【分享】如何通过底层配置一劳永逸的新增报表模板

缘起:前两天FIR1987问我关于自定义模板的问题,帖子的地址如下http://www.cognoschina.net/club/thread-14078-1-1.html我整理了一下,分享给大家正文:定义一个模板,会为报表开发节省很多空间,可以在模板中包含一些通用的页眉页脚,样式JavaScript脚本等。在ReportStudio中可以将报...显示全部
缘起:
前两天FIR1987问我关于自定义模板的问题,帖子的地址如下
http://www.cognoschina.net/club/thread-14078-1-1.html
我整理了一下,分享给大家
正文:
定义一个模板,会为报表开发节省很多空间,可以在模板中包含一些通用的页眉页脚,样式JavaScript脚本等。
在ReportStudio中可以将报表转换为报表模板,并保存在cognos connection中,但这样有可能会有人误操作把报表模板改动,而为其他人的引用带来不必要的麻烦。
其实我们可以通过修改Cognos的文件使其在新建报表时引用模板,而不必打开模版文件。效果如下图所示,在模板中多了一个“冯东测试”

image001.png


我们先要获取报表模板的XML定义,我们可以将现有报表转换为模板,也可以直接创建一个报表模板。
假定我需要创建一个包含饼图、柱状图和一个交叉表的报表模板,为了保持联动,这三个对象共用一个查询。
新建一个报表模板,创建一个table进行布局,拖入2个图标一个交叉表,并设置共用一个查询,效果如下图所示


当然,可以在页眉或者页脚处增加一些JS脚本和CSS样式。
模板设计完成后,在ReportStudio菜单栏 点击  工具-->复制报表到剪切板
打开UE,新建一个空白页,将模板的xml定义粘贴进去。
删除xmlns和template的定义删除,大致的格式如下:

        
        
        ……省略具体内容
        

        
        ……省略具体内容
        


上面标红的modelPath是需要注意的,新创建的模板定义中不含这行,是我单独加的,如果不加这行, 模板打开后,左侧的package为空,需要重新选择package。加了这行,你在哪个package调用的ReportStudio,默认就打开哪个package。
前面说了半天是模板的内容,内容有了,我们下面来说一下把这个内容放到哪。
我这里以CGI方式为例,如果是Servlet方式,请修改p2pd文件夹下相应路径的文件。
1、打开C8_locationwebcontentpatres templates.xml
在name="Blank"的template节点后增加一个新的template节点