历史版本11 :JS获取当前编辑行单元格行号 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

在实际的业务中,可能会希望点击某行则在某个单元格中显示对应该行的行号点解。

如下图所示,点击第三行上面显示 3,要如何实现呢?

222


1.2 实现思路

FineReport 报表的 contentPane 中有一个 cellselect 监听,当某单元格被选中时就会触发所定义的监听事件。以下我们详细介绍。


2. 示例编辑

2.1 打开模板

示例模板设计如下:

222


2.2 增加加载结束事件

点击模板>模板 Web 属性>填报页面设置,然后增加加载结束事件,如下图:

image.png

JS 代码如下:

contentPane.on("cellselect", function(td) { //获取单元格被选中监听事件 var num =contentPane.curLGP.getTDRow(td)-2; //获取当前行号,由于数据是从第三行开始,因此要减2 contentPane.curLGP.setCellValue("D1",null,num); //给D1单元格赋值 });

注:如果获取当前编辑列的列序号,则可用 contentPane.curLGP.getTDCol(td),但是Col(td)获取的是形如A列,B 列等这种字符串列号,故不能直接在后面减去前面空余列。

点击填报预览,点击某行即可看到对应的行号显示在 D1 单元格中,效果图如上。


2.3 预览效果

保存模板,选择填报预览,PC 端实现效果下图所示:

222

注:移动端不支持此 JS


3. 模板下载编辑

模板效果在线查看请点击:JS 获取当前编辑行单元格行号.cpt

已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\44-JS获取当前编辑行单元格行号.cpt

点击下载模板:44-JS获取当前编辑行单元格行号.cpt