JS获取分页预览单元格

编辑
文档创建者:印然 (67260 )     浏览次数:4153次     编辑次数:9次     最近更新:Holly 于 2017-04-10     

目录:

1. 概述编辑

分页预览报表只能用于展现数据,有时我们也需要获取分页预览的报表中的某些单元格的值进行其他操作,比如在工具栏中显示报表总行数(总行数保存在某固定单元格中)。
下面效果图中,我们获取了某单元格的值,然后对其进行了修改,如下所示:
222

2. 实现原理编辑

2.1 方法一
BS访问某个cpt模板,报表servlet将会将cpt文件解析成对应的html,报表内容最终转换为一个table,位于id=content-container的div中。
由于分页预览只是展现,在这种查看方式下FR没有现成单元格获取方法,可以用jquery语法获取指定单元格。
$("tr[tridx=行号]","div.content-container").children().eq(列号)       
注:行列号是从0开始计算的
2.2 方法二
页面加载结束后的主报表体是一个table对象,每个单元格对应对应td对象,里面包含控制该单元格所在位置的id属性,格式如A1-0-102其中A1即表格单元格代码,只需要用jquery对象属性前匹配符号^=获取单元格td对象,即可获取指定的单元格,同时利用jquery提供的text()方法来获取和设置单元格的值,即可达到目的。
$("td[id^=单元格号-")
注:单元格号与模板设计时的单元格号类似,如A1,D5等,A1对应第1行第1列,第5行第4列对应D5
3. 示例
打开模板%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Columns.cpt
单击模板>模板web属性,点击分页预览设置,添加加载结束事件。
3.1 方法一
添加如下代码:
222
具体js如下:
var a = $("tr[tridx=2]","div.content-container").children().eq(1).html(); alert("第3行第2列值为:"+a); $("tr[tridx=2]","div.content-container").children().eq(1).html(1001); alert("第3行第2列值被修改为1001");

注:此处的行列皆为预览扩展出来后的行列值

3.2 方法二

添加如下代码:
222
JS代码如下

var a=$("td[id^=B3-]").text(); alert("B3单元格值为:"+a); $("td[id^=B3-]").text(1001); alert("第B3单元格的值被修改为1001");

注:此处B3是指预览后所扩展出来的单元格

附件列表


主题: 二次开发
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?