手动修改Cognos柱状图的提示
改变cognos的柱子、x轴提示:
1.先让X轴显示达到要求,因为它是一个图片,是Server返回来给web的,我们无法在生成图片后去修改
2.当X轴和柱子的显示、title提示均不一致时,做法有点特殊
a.先拖入组合数据项A_B_C,把文本来源改为数据项值,数据项值来源改为单一数据项A
b.让自定义标签显示,来源为数据项值,数据项值为组合数据项A_B_C
c.最终修改的结果是:
图表文本项:A ->A
图表标签: A_B_C->A_B_C
运行后,柱子上的提示是:A_B_C = A, X轴提示是:A_B_C = A,X轴显示值是:A
3.接下来我们就要利用JS来遍历报表生成的<map><area ...><area ...></mpa>标示,手动修改area.title的值
来让柱子提示变为:
A文本 = A
B文本 = B
C文本 = C
X轴提示变为:
A文本 = A
<script type="text/javascript"> var areas = document.getElementsByTagName("area"); for (var i = 0; i < areas.length; i++) { var area = areas[i]; if (area.getAttribute("type") == 'chartElement') { var title = area.title; var s = title.split("\n"); var tempStr = s[0].split("=")[0].split("#"); if(tempStr[1] != "" ){ var starttimeStr = tempStr[0]; var objNameStr = tempStr[1]; var namecgiStr = tempStr[2]; var myTitleValue = "小区 = " + namecgiStr + "\n开始时间 = " + starttimeStr + "\n分析范围 = " + objNameStr; area.title = myTitleValue + "\n" + s[1]; } else{ var starttimeStr = tempStr[0]; var namecgiStr = tempStr[2]; var myTitleValue = "小区 = " + namecgiStr + "\n开始时间 = " + starttimeStr; area.title = myTitleValue + "\n" + s[1]; } } else{ var title = area.title; var s = title.split("="); var myXTitle = "小区 = " + s[1]; area.title = myXTitle; } } </script>