反饋已提交

網絡繁忙

當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

JS给扩展单元格置数

1. 概述

1.1 问题描述

通常情况下,使用 setCellValue("单元格", null, 值)可以给固定单元格置数。若单元格扩展,仅仅使用此公式将达不到效果,如对纵向扩展的 A1 单元格赋值:setCellValue("A1", null, 值),发现只有 A1 位置的单元格能赋到值,而扩展出来的其他单元格没有值,所以扩展的单元格,该如何置数呢?

如下图所示,在每一行的编辑单元格中输入数字,受控单元格根据编辑单元格 的值是否大于 10 来显示 1 或 0。

image.png

1.2 解决方法

获取单元格的行号和列号,通过 setCellValue(col,row,value) 给单元格赋值。本文将以示例的形式讲解两种方法。

2. 示例 1

2.1 示例思路

在控件的编辑结束事件中,动态地将行号与列号作为参数传递给 JS 函数,使用 contentPane.setCellValue(col, row, value);来给单元格赋值。

2.2 准备模板

新建模板,设计报表样式,如下图所示:

A2 单元格输入公式:range(5),并设置单元格纵向扩展,B2、C2 单元格添加「文本控件」。

222

2.3 添加事件

选中 B2 单元格文本控件,在「控件设置>事件」处,为其添加一个「编辑结束」事件,如下图所示:

添加事件时,需要增加两个参数 col、row ,参数 col 的值为col(),参数 row 的值为row()-1

注:setCellValue(col,row,value) 中, row ,col 数值都是从 0 开始,事件中参数col、row 指定 C2 单元格。

image.png

JavaScript 代码如下:

if(this.getValue()>10){
  contentPane.setCellValue(col,row,1);
}else{
  contentPane.setCellValue(col,row,0);
}

这里当 B2 单元格文本控件值大于 10 时, C2 单元格文本控件置数为 1;反之,置数为 0。

2.4 预览效果

2.4.1 PC 端

保存模板,点击「填报预览」,效果如下图所示:

222

2.4.2 移动端

移动端及 HTML5 效果如下图所示:

2020-11-30_14-56-20.gif

3. 示例 2

3.1 示例思路

在填报 Web 属性中增加加载结束事件,使用 FineReport 的监听事件获取到当前编辑单元格的行号和列号,保存在全局变量中,然后在单元格的编辑结束事件中获取该行号列号给单元格赋值。FineReport 监听事件获取单元格行号列号可参考:JS获取当前编辑行单元格行号

3.2 准备模板

新建模板,设计报表样式,A1、A2单元格分别添加「文本控件」。如下图所示:

image.png

3.3 添加事件

1)点击「模板>模板 Web 属性>填报页面设置」,选择「为该模板单独设置」,新增一个「加载结束」事件,如下图所示:

1576717068879478.png

JavaScript 代码如下:

contentPane.on("cellselect", function(td) {  
  var row =contentPane.curLGP.getTDRow(td); 
  var col =contentPane.curLGP.getTDCol(td);
  window.row=row;
  window.col=col;
});

2)选中 A2 单元格文本控件,在「控件设置>事件」处添加一个「编辑结束」事件,如下图所示:

1576717137898550.png

JavaScript 代码如下:

var value=this.getValue();
contentPane.setCellValue(window.col,window.row-1,value);

注:全局变量必须在前面加一个 Window,监听事件中获取到的行号列号从 1 开始计算,赋值时从 0 开始计算。

3.4 预览效果

保存模板,点击「填报预览」,效果如下图所示:

20180810162330_1497.gif

注:不支持移动端

4. 模板下载

已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\48-JS给扩展单元格置数示例一.cpt

点击下载模板:48-JS给扩展单元格置数示例一.cpt

已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\填报预览JS实例\48-JS给扩展单元格置数示例二.cpt

点击下载模板:48-JS给扩展单元格置数示例二.cpt

附件列表


主題: 原简体文档
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉