Cognos报表开发技巧整理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1实现行属性的目录树展开功能。
1.1在LIST报表中的现实
1.拖入6个字段,并且对产品系列、产品类型分组,如下图:
2.添加产品系列、产品类型的页眉
3.拆分产品系列、产品类型的单元格
4.将产品系列、和产品类型的汇总拖到产品名称处
5.删除产品系列,产品类型
6.打开列表的锁
7.按住CTRL,拖动数量、单位成本、单价到产品类型,产品系列的页眉处
8.在report page中插入HTML控件,然后拷贝如下代码进去,下面代码主要是定义了两个函数,一个用于目录树的展开与缩进,另一个用于页面初始化时隐藏一些数据,下面代码只支持到2层目录,更详细的含义可参考的在交叉表中实现目录树功能的注释。
代码如下:
function ExpandCollapse( el )
{
var tr = el.parentElement.parentElement;
var tbl = tr.parentElement.parentElement;
var sDisplay = ( el.src.indexOf( "minus" ) == -1 ) ? "" : "none";
var sDisplayReverse = ( el.src.indexOf( "minus" ) == -1 ) ? "none" : "";
el.src = "../pat/images/PropertyGroup_" + ( el.src.indexOf( "minus" ) == -1 ? "minus" : "plus" ) + ".gif";
for ( var i = tr.rowIndex + 1; i < tbl.rows.length; i++ )
{
var trCurrent = tbl.rows( i );
if ( trCurrent.cells( 0 ).firstChild && trCurrent.cells( 0 ).getElementsByT agName( "IMG" ).length )
{
if ( tr.cells(0).style.paddingLeft =="" && trCurrent.cells(0).style.paddingLeft =="20px" )
{
if (el.src.indexOf( "minus" ) == -1 )
{
trCurrent.cells(0).getElementsByT agName("IMG").item(0).src = "../pat/images/PropertyGroup_plus.gif";
}
}
else {
break;
}
}
if ( tr.cells(0).style.paddingLeft =="" && trCurrent.cells(0).style.paddingLeft =="40px" && el.src.indexOf( "minus" ) >0 )
{
trCurrent.style.display = sDisplayReverse;
}
else {
trCurrent.style.display = sDisplay;
}
}
}
function StartHidden(el)
{
var tbl=el.parentElement.parentElement.parentElement.parentElement;
for (var i = 0; i < tbl.rows.length; i++)
{
var trCurrent = tbl.rows(i);
if (trCurrent.cells(0).style.paddingLeft.indexOf("px") > -1)
{
trCurrent.style.display = "none";
}
}
}
9.拖入两个HTML项目插入到产品系列与产品类型单元格前面,修改成查询项目,并修改表达式
产品系列中HTML控件代码如下:
''+ [gosales_goretailers].[产品].[产品系列] + ''
产品类型中HTML控件代码如下:
'
style=''cursor:hand; vertical-align:middle; margin-right:2px''/>'+ [gosales_goretailers].[产品].[产品类型] + ''
10.删除掉产品系列和产品类型
11.设置产品类型的填充为左侧20,设置产品名称的填充为左侧40