




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 1实现行属性的目录树展开功能实现行属性的目录树展开功能 1 11 1在在 LISTLIST 报表中的现实报表中的现实 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 设置产品名称的填充为左侧 40 12 增加列表页脚 注意 这里的 HTML 控件一定要放入表页脚里面 否则不能实现隐藏数 据的功能 并拷贝 HTML 代码 删除掉列表页脚几个字 代码如下 13 选择列表 并设置列表每页行数为 9999 这样就不用再翻页了 14 这样一个树状报表就做好了 剩下就是调整颜色 样式的工作了 1 21 2交叉表实现交叉表实现 在交叉表中现实目录树有两种方法 第一种主要技术是通过 UNION 等方法首先实现类 似分组的功能 然后再利用 HTML 代码实现 第二种的主要技术是建立在一定的前提下 前 提是 在制作报表前已对数据模型进行了特殊的设计 下面介绍第二种方法 1 在报表中插入的数据如下图所示 界面中分别插入了三个 HTML 控件 与在 LIST 表中位置一样 由于在交叉表中 不能对数据进行分组 所以不能采用在 LIST 表中的实现方法 但是原理是一样 的 主要不同之前要对数据模型进行设计 paddingLeft 属性设置元素的左内边距 padding 属性定义元素边框与元素内容之间的空间 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 j trCurrent2 cells length j if trCurrent2 cells j children 0 innerText indexOf 0 continue if trCurrent2 cells j children 0 innerText indexOf 0 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 style display none continue if trCurrent1 cells 0 children 1 innerText indexOf 0 trCurrent1 style display none continue if trCurrent1 cells 0 children 1 innerText indexOf 0 trCurrent1 style display none if trCurrent1 cells 0 children 1 innerText indexOf 0 trCurrent1 style display none trCurrent1 cells 0 getElementsByTagName IMG item 0 src pat images blank gif 2 表中 即中间 的 HTML 代码如下 2 最后的 HTML 代码如下 2 2报表开发技巧整理报表开发技巧整理 2 12 1树形列表树形列表 要点 要点 首先通过对数据项进行分组实现将各层次的数据项放在同一列中 子层被嵌套在父 层中 然后对各层都设置一个标记以区别于其它层的数据 这里通过在数据项前面的缩进 距离作为标记 然后利用在页面中嵌入脚本代码控件数据的展开显示和隐藏 其实当报表 刚打开时 报表的所有数据包括父级与子级的数据都显示出来 只不过是通过代码将其隐 藏而已 当用户单击展开目录按钮时代码通过一个循环语句显示出某一级别的数据 而其 中一个终止循环的条件就是判定某一行的前面缩进的距离 而缩进目录的原理也是类似 具体制作过程可参考上面 2 22 2树形交叉表树形交叉表 要点 要点 由于在交叉表中不能像 LIST 表中一样实现分组 所以要通过利用层次各级数据项建 立一种数据联接关系 目的是将父级与子级目录的内容通过嵌套显示出来 效果其实与分 组一样 所以可以在数据模型定义的时候对数据的格式进行特殊处理 例如不同层次的数 据前面可以插入不同长度的空格 以识别其它层次 那么这样在代码处理方面就可以类似 在列表中一样操作 其实当报表刚打开时 报表的所有数据包括父级与子级的数据显示出 来 只不过是通过代码将其隐藏而已 另外 在各子级目录的开始可通过设置不同空格的 长度而让代码识别内容所在的级别 当用户单击展开目录按钮时代码通过一个循环语句显 示出某一级别的数据 而其中一个终止循环的条件就是判定某一行的前面缩进的距离 而 缩进目录的原理也是类似 具体制作过程可参考上面 2 32 3科目层次选择科目层次选择 特点 科目层次选择特点 科目层次选择 功能 选择科目层次 然后下面自动出现该科目的所有成员列表框供选择 分摊表 科目按层次显示分摊表 科目按层次显示 1 下拉框选择显示的层次 保存在参数 p level 中 使用静态成员 如1 2 3 2 在 条件资源管理器 中定义条件变量 读取的是参数 p level 3 对于多个科目层次 使用多个列表框 每个列表框设置其生成变量 Render Variable 对应条件变量中的具体值 即选择该值则生成该列表框 4 层次选择下拉框要自动提交 列表框要cascade到 p level 5 Query中使用科目时 需要通过case来控制显示的层 如 CASE 科目层次 WHEN 1 THEN caption erpfdb CCB COGNOS FTACCT DV1 CCB COGNOS FTACCT DV ACCT1 DESC WHEN 2 THEN caption erpfdb CCB COGNOS FTACCT DV1 CCB COGNOS FTACCT DV ACCT2 DESC WHEN 3 THEN caption erpfdb CCB COGNOS FTACCT DV1 CCB COGNOS FTACCT DV ACCT3 DESC END 6 而Query中的条件 则需要给每个供选择的层次的科目都添加条件 条件使用 可选 optional 即可 2 42 4多列树状折叠多列树状折叠 特点 多列折叠特点 多列折叠 示例报表 分摊表 3 要点 要点 第一列只在所在行有效第一列只在所在行有效 所以从如图中所示 行政条线 跟 产品合计 在同一行上 所 以 行政条线 对象的表示方法为 rows i cells 0 即属于第 0 个 cell 而 产品 合计 则属于第 1 个 cell rows i cells 1 下来一行 行政条线 列就不起效了 所以 默认 2 就属于第 1 列了 表示为 rows i 1 cells 0 在 js 脚本上使用的技巧是将 行政条线 列退格 5px 然后进行判断 if trCurrent1 cells 0 style paddingLeft 5px 如果是 行政条线 列 trCurrent1 cells 1 getElementsByTagName IMG item 0 src pat images blank gif 取 cells 1 对象 else if trCurrent1 cells 0 children 1 innerText indexOf 0 否则取 cells 0 对象 其他跟上述折叠报表技巧类似 2 52 5全部展开 折叠功能全部展开 折叠功能 效果如下图 报表上添加了 全部展开 按钮 点击可以将所有折叠的项都展开 1 修改原来的 js 代码 纵向折叠 var tbl function allWrap el if el value 全部展开 for i 2 i tbl rows length i tbl rows i style display if tbl rows i cells 0 style paddingLeft 80px tbl rows i cells 0 getElementsByTagName IMG item 0 src pat images PropertyGroup minus gif el value 全部折叠 return if el value 全部折叠 for i 2 i 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 tr cells 0 style paddingLeft 20px for var i tr rowIndex 1 i 0 if trCurrent cells 0 style paddingLeft 40px 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 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 j trCurrent2 cells length j if trCurrent2 cells j children 0 innerText indexOf 0 continue if trCurrent2 cells j children 0 innerText indexOf 0 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 style display none continue if trCurrent1 cells 0 children 1 innerText indexOf 0 trCurrent1 style display none continue if trCurrent1 cells 0 children 1 innerText indexOf 0 trCurrent1 style display none if trCurrent1 cells 0 children 1 innerText indexOf 0 trCurrent1 style display none trCurrent1 cells 0 getElementsByTagName IMG item 0 src pat images blank gif 对比该 js 脚本 与之前脚本不同的地方是添加了allWrap el 函数 该函数即实现了 全部 折叠 全部展开 的功能 2 添加一个 HTML ITEM 代码如下 2 62 6在交叉表中实现类似列表中页眉的效果在交叉表中实现类似列表中页眉的效果 1 效果如下图 2 在报表中插入一个交叉表 如下图 3 在 可插入对象 面板中选择 交叉表空间 控件 如下图 4 将其拖到表的上方 效果如下图 5 给刚插入的空行插入一个标题 先解锁 将 文本 控件拖入空行中 如下图 6 当交叉表中的多列时 可以为每一列分别在其上或下面放若干个 交叉表空间 控件 然后可以根据实际格式修改 例如边框等 7 如果报表中包含 javascript 代码 要注意涉及到引用表元素的下标问题 因为 交叉 表空间 控件也作为一行或一列 2 72 7如何通过一列控制另一列数据的展开与缩进如何通过一列控制另一列数据的展开与缩进 下面以业务报表 1 为例 通过 部门名称 控制 产品名称 并且以部门对产品进行分 组 为每一个部门中的产品作一个小计 1 在 部门名称 字段前插入 html 代码 如下 2 对部门和产品进行分组 并设置部门的页脚和列表的整体页脚 并通过一系格式列调 整后 如上图所示 3 将 产品名称 单元格 小计 单元格和 小计 左边的单元格的 填充 属性设为 左缩进 5px 4 并在页眉和列表下面添加 HTML 代码 如下图所示 5 页眉处的 javascript 代码是关键 代码如下 var img pls PropertyGroup plus gif var img min PropertyGroup minus gif var img blk blank gif var img pth pat images var tab obj var cell num 24 设置交换列数 var begin line 2 开始行下标 var leftpad 5px 缩进距离 function StartHidden obj 初始化函数 tab obj obj previousSibling var row len tab obj rows length var row index tab obj rows row len 1 cells 1 getElementsByTagName IMG item 0 src img pth img blk 将 总计 前面的 号去去掉 for var i begin line i row len 1 i 调整名称 if tab obj rows i cells 1 innerText 非经营性部门 tab obj rows i cells 1 children 1 innerText 非经营 部门 tab obj rows i cells 24 children 0 innerText 非经营 部门 var str5 tab obj rows i cells 1 innerText if str5 substr 0 6 经营部门合计 tab obj rows i cells 1 getElementsByTagName IMG item 0 src img pth img blk if tab obj rows i cells 1 style paddingLeft leftpad 如果为产品 tab obj rows i style display none else 等于部门或经营部门合计 row index tab obj rows i rowIndex 记录当前部门的行下标 移动单元格 目的是将 小计 行的数据与部门的第一行进行调换 var str4 tab obj rows row index cells 1 innerText if tab obj rows i 1 cells 1 style paddingLeft leftpad for var j 2 j cell num j 交换 temp tab obj rows row index cells j innerText tab obj rows row index cells j innerText tab obj rows i cells j innerTe xt tab obj rows i cells j innerText temp end of for end of function 点击 function exp img obj var col obj img obj parentElement var row obj col obj parentElement tab obj row obj parentElement var img src img obj src split var img len img src length var img txt img src img len 1 if img txt img pls 展开 img obj src img pth img min 当前部门符号改为减号 表示已展开 for var i row obj rowIndex i tab obj rows length 1 i 从当前被 点击开始循环 var str2 tab obj rows i cells 2 innerText tab obj rows i style display 显示属于该部门的所有产 品 if tab obj rows i 1 cells 1 style paddingLeft leftpad 表示是该部门的末尾 其实是下一个部门的开始处 var temp for var j 2 j cell num j 交换 temp row obj cells j innerText ro
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合作式学习在高职专业英语课堂中的应用与革新
- 节气课程课件
- 应激相关障碍(一)
- 2025内蒙古呼伦贝尔农垦莫拐农牧场有限公司招聘16人笔试备考及1套参考答案详解
- 教师招聘之《小学教师招聘》考前冲刺测试卷含答案详解(突破训练)
- 教师招聘之《小学教师招聘》通关训练试卷详解附参考答案详解【研优卷】
- 教师招聘之《幼儿教师招聘》综合提升测试卷附参考答案详解(基础题)
- 教师招聘之《小学教师招聘》考前冲刺测试卷讲解及1套完整答案详解
- 教师招聘之《幼儿教师招聘》考试综合练习含答案详解【基础题】
- 基于2025年物联网的智能仓储风险管理体系研究报告
- GB/T 8948-1994聚氯乙烯人造革
- GB/T 6482-2007凿岩用螺纹连接钎杆
- 小学英语人教PEP六年级上册Unit3Myweekendplan击鼓传花小游戏
- PEP小学英语单词表(3-6年级)
- 2020小学一年级语文上册新教材教材分析解读课件
- DB4401-T 43-2020 反恐怖防范管理+防冲撞设施-(高清现行)
- 教学课件:《新能源材料技术》朱继平
- 专业技术职称与职业(工种)技能人才评价对应表(试行)
- DB37∕T 4328-2021 建筑消防设施维护保养技术规程
- 银行信贷实务与管理课件
- 实习任务书(标准模版)
评论
0/150
提交评论