cognos目录树实现.docx_第1页
cognos目录树实现.docx_第2页
cognos目录树实现.docx_第3页
cognos目录树实现.docx_第4页
cognos目录树实现.docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 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 -1)trCurrent.style.display = none;9拖入两个HTML项目插入到产品系列与产品类型单元格前面,修改成查询项目,并修改表达式产品系列中HTML控件代码如下:+ gosales_goretailers.产品.产品系列 + 产品类型中HTML控件代码如下:+ gosales_goretailers.产品.产品类型 + 10删除掉产品系列和产品类型11设置产品类型的填充为左侧20,设置产品名称的填充为左侧4012增加列表页脚(注意,这里的HTML控件一定要放入表页脚里面,否则不能实现隐藏数据的功能),并拷贝HTML代码,删除掉列表页脚几个字代码如下:13选择列表,并设置列表每页行数为9999(这样就不用再翻页了)14这样一个树状报表就做好了,剩下就是调整颜色,样式的工作了1.2 交叉表实现在交叉表中现实目录树有两种方法,第一种主要技术是通过UNION等方法首先实现类似分组的功能,然后再利用HTML代码实现,第二种的主要技术是建立在一定的前提下,前提是:在制作报表前已对数据模型进行了特殊的设计。下面介绍第二种方法。1,在报表中插入的数据如下图所示:界面中分别插入了三个HTML控件,与在LIST表中位置一样。由于在交叉表中不能对数据进行分组,所以不能采用在LIST表中的实现方法,但是原理是一样的。主要不同之前要对数据模型进行设计。1、 页头中的HTML代码如下:/*纵向折叠*/function ExpandCollapse1( el )if ( el.src.indexOf( blank ) 0 ) return;var tr = el.parentElement.parentElement;var tbl = tr.parentElement;/*判断加减号*/el.src = ./pat/images/PropertyGroup_ + ( el.src.indexOf( minus ) = -1 ? minus : plus ) + .gif;/*判断层次*/*每一个最外层的if实现一级目录的展开与缩进*/if(tr.cells(0).style.paddingLeft =20px)/*”20px“表示是第一级目录。*/*循环读取并判断表中每一条记录。*/for ( var i = tr.rowIndex + 1; i 0 ) /*判断是否图标为“-”号,如果是则有可能是其已经展开了的子目录,但现还不能确定是否是其子目录,有可能是同一级的已展开了的目录*/ if(trCurrent.cells(0).style.paddingLeft =40px )/*判断是否为当前目录的子目录。若是则展开,因为”minus“标记表明已经由”plus“转变过来。即点击了”+“号。*/*表示可以显示*/trCurrent.style.display = ; /*并将”-“号图标变为”+“号以表明目录已展开,方便下次判断*/trCurrent.cells(0).getElementsByTagName(IMG).item(0).src = ./pat/images/PropertyGroup_plus.gif;/*以下if语句实现展开后缩进*/if ( el.src.indexOf( plus ) 0 ) if(trCurrent.cells(0).style.paddingLeft =40px ) |(trCurrent.cells(0).style.paddingLeft =60px ) |(trCurrent.cells(0).style.paddingLeft =80px ) /*隐藏当前目录下的行记录。*/ trCurrent.style.display = none; /*以下模块功能和上面差不多。*/if(tr.cells(0).style.paddingLeft =40px)for ( var i = tr.rowIndex + 1; i 0 ) if(trCurrent.cells(0).style.paddingLeft =60px )trCurrent.style.display = ;trCurrent.cells(0).getElementsByTagName(IMG).item(0).src = ./pat/images/PropertyGroup_plus.gif;if ( el.src.indexOf( plus ) 0 ) if(trCurrent.cells(0).style.paddingLeft =60px ) |(trCurrent.cells(0).style.paddingLeft =80px ) trCurrent.style.display = none;if(tr.cells(0).style.paddingLeft =60px)for ( var i = tr.rowIndex + 1; i 0 ) if(trCurrent.cells(0).style.paddingLeft =80px )trCurrent.style.display = ;if ( el.src.indexOf( plus ) 0 ) if(trCurrent.cells(0).style.paddingLeft =80px ) trCurrent.style.display = none;/*该函数实现初始化页面时隐藏一些记录。*/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;jtrCurrent2.cells.length;j+)if(trCurrent2.cells(j).children(0).innerText.indexOf( )=0) &(trCurrent2.cells(j).children(0).innerText.indexOf( )!=0)trCurrent2.cells(j).style.paddingTop=10px;continue;if(trCurrent2.cells(j).children(0).innerText.indexOf( )=0) &(trCurrent2.cells(j).children(0).innerText.indexOf( )!=0)trCurrent2.cells(j).style.paddingTop=20px;continue;/*纵向折叠*/*若要显示总数,则消除下面这条语句的注释。*/var trCurrent1;/*tbl.rows(1).cells(0).children(1).innerText=合计;*/tbl.rows(1).cells(0).getElementsByTagName(IMG).item(0).src = ./pat/images/blank.gif;/*从表中第二条记录开始判断子目录是否展开了,若展开了则隐藏。第一条为合计汇总。*/for ( i = 2; i tbl.rows.length; i+ )trCurrent1=tbl.rows(i);if(trCurrent1.cells(0).children(1).innerText.indexOf( )=0) &(trCurrent1.cells(0).children(1).innerText.indexOf( )!=0)trCurrent1.cells(0).style.paddingLeft =20px;/*trCurrent1.style.display = none;*/continue;if(trCurrent1.cells(0).children(1).innerText.indexOf( )=0) &(trCurrent1.cells(0).children(1).innerText.indexOf( )!=0)trCurrent1.cells(0).style.paddingLeft =40px;trCurrent1.style.display = none;continue;if(trCurrent1.cells(0).children(1).innerText.indexOf( )=0) &(trCurrent1.cells(0).children(1).innerText.indexOf( )!=0)trCurrent1.cells(0).style.paddingLeft =60px;trCurrent1.style.display = none;if(trCurrent1.cells(0).children(1).innerText.indexOf( )=0) &(trCur

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论