/*如果是当前目录则退出循环不作处理*/
{break;}
if ( el.src.indexOf( \
/*判断是否图标为“-”号,如果是则有可能是其已经展开了的子目录,但现还不能确定是否是其子目录,有可能是同一级的已展开了的目录*/
if(trCurrent.cells(0).style.paddingLeft ==\
/*判断是否为当前目录的子目录。若是则展开,因为”minus“标记表明已经由”plus“转变过来。即点击了”+“号。*/
{ }
trCurrent.style.display = \
trCurrent.cells(0).getElementsByTagName(\
=
/*表示可以显示*/
/*并将”-“号图标变为”+“号以表明目录已展开,方便下次判断*/ \/*以下if语句实现展开后缩进*/
if ( el.src.indexOf( \
if((trCurrent.cells(0).style.paddingLeft ==\ ||(trCurrent.cells(0).style.paddingLeft ==\ ||(trCurrent.cells(0).style.paddingLeft ==\ {
/*隐藏当前目录下的行记录。*/
trCurrent.style.display = \ }
/*以下模块功能和上面差不多。*/
if(tr.cells(0).style.paddingLeft ==\{
for ( var i = tr.rowIndex + 1; i < tbl.rows.length; i++ ) {
var trCurrent=tbl.rows(i);
if(trCurrent.cells(0).style.paddingLeft ==\
{break;}
if(trCurrent.cells(0).style.paddingLeft ==\{ }
if((trCurrent.cells(0).style.paddingLeft ==\
trCurrent.style.display = \
=
trCurrent.cells(0).getElementsByTagName(\
if ( el.src.indexOf( \
}
}
\
if ( el.src.indexOf( \
30
||(trCurrent.cells(0).style.paddingLeft ==\
{trCurrent.style.display = \
}
}
if(tr.cells(0).style.paddingLeft ==\ {
for ( var i = tr.rowIndex + 1; i < tbl.rows.length; i++ ) { var trCurrent=tbl.rows(i);
if(trCurrent.cells(0).style.paddingLeft ==\ {break;}
if ( el.src.indexOf( \ if(trCurrent.cells(0).style.paddingLeft ==\ { trCurrent.style.display = \
}
if ( el.src.indexOf( \
if(trCurrent.cells(0).style.paddingLeft ==\
{trCurrent.style.display = \
}
}
} /*该函数实现初始化页面时隐藏一些记录。*/ function StartHidden(el) { var tbl=el.previousSibling; var trCurrent2=tbl.rows(0); var subnum; var i,j,jj;
/*判断层次,*/
/*若要显示总数,则消除下面这条语句的注释。*/
/*trCurrent2.cells(trCurrent2.cells.length-1).children(0).innerText=\合计\ for(var j=1;j
}
if((trCurrent2.cells(j).children(0).innerText.indexOf(\
31
}
&&(trCurrent2.cells(j).children(0).innerText.indexOf(\ }
trCurrent2.cells(j).style.paddingTop=\continue;
/*纵向折叠*/
/*若要显示总数,则消除下面这条语句的注释。*/
var trCurrent1;
/*tbl.rows(1).cells(0).children(1).innerText=\合计\tbl.rows(1).cells(0).getElementsByTagName(\
=
\
/*从表中第二条记录开始判断子目录是否展开了,若展开了则隐藏。第一条为合计汇总。*/ }
for ( i = 2; i < tbl.rows.length; i++ ){ }
trCurrent1=tbl.rows(i);
if((trCurrent1.cells(0).children(1).innerText.indexOf(\ &&(trCurrent1.cells(0).children(1).innerText.indexOf(\ }
if((trCurrent1.cells(0).children(1).innerText.indexOf(\ &&(trCurrent1.cells(0).children(1).innerText.indexOf(\ }
if((trCurrent1.cells(0).children(1).innerText.indexOf(\ &&(trCurrent1.cells(0).children(1).innerText.indexOf(\ }
if((trCurrent1.cells(0).children(1).innerText.indexOf(\ &&(trCurrent1.cells(0).children(1).innerText.indexOf(\ }
trCurrent1.cells(0).style.paddingLeft =\trCurrent1.style.display = \
trCurrent1.cells(0).getElementsByTagName(\
=
trCurrent1.cells(0).style.paddingLeft =\trCurrent1.style.display = \
trCurrent1.cells(0).style.paddingLeft =\trCurrent1.style.display = \continue;
trCurrent1.cells(0).style.paddingLeft =\/*trCurrent1.style.display = \continue;
\
2,表中(即中间)的HTML代码如下:
32
''
7、 最后的HTML代码如下:
5.5 如何在交叉表中的对某一行或某一列进行汇总
1, 如下图格式所示:
图中的“合计”字段是在每一行中对所有列进行总计,经验证,对交叉表的度量值进行汇总,只要对该度量值利用函数进行计算就行了,不用涉及到非度量值属性。 具体方法如下:
在控件面板中将query calculation控件拖到要汇总的某行或列中,然后会弹出相应对话框,可根据要汇总的需要而编写相应的汇总函数即可。
5.6 创建模板的方法
1,在COGNOS中新建一个报表文件,其实就是普通的报表文件,然后对需要用到的模板格式进行编辑,例如下图:
33
3,编辑完后,选中文件菜单中的convert to template项将普通文件转换为模板文件,最后保存该模板即可。
4,当应用这个模板时,在COGNOS中新建一个报表文件,在弹出的新建对话框中如下图:
选择”existing..”项,然后选择刚才创建的模板。
34