报表知识库
我要提问

可树形展开的折叠报表的制作

润乾报表最终在页面上是以纯html方式进行展现的,也就是说,是一个静态页面。那么,当最终用户需要web报表中提供一些交互能力时,就需要结合javascript脚本来实现。比如下图中这样的折叠报表(单击加号可以展开分组),就可以用润乾报表来设计报表模板,再结合简单的javascript脚本即可实现。

1.png

实现思路:报表在网页上展示时,整体是一个HTML的table对象。因此可以在单元格中加入一些标识,然后通过javascript动态设置css的display属性来实现。

具体实现:

报表设计如下图所示:

2.png

重点是前三列:

第一列用来显示折叠或展开的图标,在A3单元格的HTML事件属性中写入表达式(多级展开的情况以此类推):”OnClick=\”changeNodeState(”+B3+”)\””

第二列用来保存每一行的标识(这个标识应该是全表唯一的),B4单元格中写有表达式D4,为了美观,这里将其设置为了白色;

第三列用于存自己所属的父级标识,处于根级的行保留空值即可,该列整体设置为隐藏。

javascript处理部分如下,在发布报表的jsp中加入代码即可:

<script language=”javascript”>
var tree;
function init(){

/** 构建一个树实例, 参数分别为:
* 报表名–对应report标签中的name
* 唯一标识所在列–第一列为0,以此类推,下同
* 父级所在列
* 用于显示图标的列
* 表头所占行
*/
tree = new TableTree(”report1″,1,2,0,2);
tree.init();
// 初始化数据
tree.collapseAll(); // 折叠所有 }

function changeNodeState(node){ // 更改节点状态,展开/折叠
var node = tree.getNode(node);
if(node.isOpened())
node.collapseAll();
else
node.expand();
}
</script>

<body onload=”init()”>

引自:润乾技术知识库
相关文章:在润乾参数表单中如何不点击查询按钮自动传参关于润乾报表自定义函数报错的问题决策分析解决方案润乾报表填报处理类问题
其他相关内容:润乾报表 ; RAQSOFT ; 报表工具知识库 ; 商业智能专业知识库