1. 概述
1.1 问题描述
在平时的报表开发中,我们通常会遇到点击按钮可以实现直接复制文本框里面的这个功能,如何在 FineReport 中实现该功能呢?如下图所示:
1.2 实现思路
可通过 JS 实现该功能。
2. 示例
2.1 准备模板
1新建模板,点击 A1 单元格,选择单元格元素,插入普通文本,输入 HTML 代码如下,如下图所示:
HTML 代码如下:
<textarea rows="20" cols="20" id="biao1">用户复制区域</textarea> <!--定义一个文本域,可以通过rows和cols这2个属性来控制文本域的大小-->
<input type="button" onclick="copytext()" value="复制"> <!--定义一个按钮,被点击时触发copytext()函数,value属性可以定义按钮的显示值,即按钮上显示的文字是copy-->
2)点击单元格属性>其他,选择用HTML显示内容,如下图所示:
2.2 引入 JS 文件
1)将 copy.js 文件放置在 %FR_HOME%\webroot\scripts\js 路径下。
点击可下载:copy.js
代码如下:
function copytext(){
var copytext2=document.getElementById("biao1");//获取文本框
copytext2.select();//选择文本框内容
document.execCommand("copy");//执行浏览器复制命令
alert("已经复制好了");//输出已经复制好了文本
}
2)引用 JavaScript。点击模板>模板 Web 属性>引用 JavaScript,选择上一步新建的磁盘文件,点击增加,如下图所示:
2.3 效果预览
保存模板,点击「分页预览」,效果如下图所示:注:不支持移动端
3. 模板下载
已完成模板请参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\JS\分页预览JS实例\JS实现点击按钮复制文本.cpt
点击下载模板:JS实现点击按钮复制文本.cpt
点击下载 JS 文件:copy.js