定义一个模板,会为报表开发节省很多空间,可以在模板中包含一些通用的页眉页脚,样式JavaScript脚本等。
在ReportStudio中可以将报表转换为报表模板,并保存在cognos connection中,但这样有可能会有人误操作把报表模板改动,而为其他人的引用带来不必要的麻烦。
其实我们可以通过修改Cognos的文件使其在新建报表时引用模板,而不必打开模版文件。效果如下图所示,在模板中多了一个“冯东测试”
我们先要获取报表模板的XML定义,我们可以将现有报表转换为模板,也可以直接创建一个报表模板。
假定我需要创建一个包含饼图、柱状图和一个交叉表的报表模板,为了保持联动,这三个对象共用一个查询。
新建一个报表模板,创建一个table进行布局,拖入2个图标一个交叉表,并设置共用一个查询,效果如下图所示
当然,可以在页眉或者页脚处增加一些JS脚本和CSS样式。
模板设计完成后,在ReportStudio菜单栏 点击 工具-->复制报表到剪切板
打开UE,新建一个空白页,将模板的xml定义粘贴进去。
删除xmlns和template的定义删除,大致的格式如下:
<report expressionLocale="zh-cn">
<modelPath/> <layouts>
……省略具体内容
</layouts>
<classStyles>
……省略具体内容
</classStyles>
</report>
上面标红的modelPath是需要注意的,新创建的模板定义中不含这行,是我单独加的,如果不加这行, 模板打开后,左侧的package为空,需要重新选择package。加了这行,你在哪个package调用的ReportStudio,默认就打开哪个package。
前面说了半天是模板的内容,内容有了,我们下面来说一下把这个内容放到哪。
我这里以CGI方式为例,如果是Servlet方式,请修改p2pd文件夹下相应路径的文件。
1、打开C8_locationwebcontentpatres templates.xml
在name="Blank"的template节点后增加一个新的template节点
<template name="FdTest">
….模板的XML定义
</ template>
保存为UTF-8格式(这非常重要,如果不是UTF8格式,模板里面的中文会解析报错)2、打开C8_locationwebcontentpatresResources.xml
找到id="New"的listView 节点,在listItems节点下增加一条记录
<listItem idsLabel="IDS_LBL_FD_TEST" icon="icon_blank.gif" templateName="FdTest"/>
其中templateName设置应和templates文件中新增的模板名称一致
idsLabel 是新建页面中模板的名称,需要在reportstudio_en.xml和reportstudio_zh-cn.xml中设置
3、打开C8_locationwebcontentpatresreportstudio_zh-cn.xml
找到<string id="IDS_LBL_NEW_BLANK_REPORT" type="Control Label">空白</string>(约1666行处),在它下面增加一行
<string id="IDS_LBL_FD_TEST" type="Control Label">测试模板</string>
如果不配置这一行,在新建报表时会报下面的错误
注意也需要修改reportstudio_en.xml
保存修改后的文件,重新进入ReportStudio。就会多了一个刚才创建的模板。
添加新评论27 条评论
2015-04-24 10:39
2014-01-07 20:01
2013-04-14 13:10
2012-12-05 09:39
2012-11-28 16:23
2012-10-18 11:40
2012-08-23 09:32
2012-04-26 15:53
2012-02-23 10:16
2012-02-09 17:06
2011-09-06 22:48
2011-08-24 20:13
2011-08-21 11:01
2011-08-21 11:01
2011-07-12 17:32
2011-05-23 16:46
2011-05-13 10:58
2011-05-13 09:58
2011-05-12 21:38
2011-05-12 21:35
好~~汇报问题 你的这三个文件我放在我的目录下 是这个错误 三台机子都试了 都是8.3版本的 呵呵 上次回复的时候我的版本是8.4 所以点了没反应
错误如下
Reason:
缺少所需的属性 'expressionLocale'。
URL:
Line:
3825
Character:
9
Source:
<report>
--------^
2011-05-12 08:55
我们先要获取报表模板的XML定义,我们可以将现有报表转换为模板,也可以直接创建一个报表模板。
假定我需要创建一个包含饼图、柱状图和一个交叉表的报表模板,为了保持联动,这三个对象共用一个查询。
新建一个报表模板,创建一个table进行布局,拖入2个图标一个交叉表,并设置共用一个查询,效果如下图所示”
报表模板的定义是用RS做的,上面提了有两种方式,然后把报表定义(XML)拷贝到ue里进行处理
2011-05-12 08:51
2011-05-12 01:16
2011-05-11 23:19
2011-05-11 11:16
2011-05-11 08:53
正好请教您个问题:很多人提高过想一劳永逸批量修改报表,不知道可否分享,thank you!
2011-05-10 22:28
正好请教您个问题:很多人提高过想一劳永逸批量修改报表,不知道可否分享,thank you!