历史版本20 :控件事件 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

根据控件响应时间的不同,我们把控件的事件分为九种:初始化后、编辑前、编辑后、编辑结束、点击、状态改变、值改变、上传后及节点生成。

2. 控件事件类型明细编辑

控件\事件 
初始化后 
  编辑前
 编辑后
编辑结束 
点击 
  状态改变
值改变 
 上传后
节点生成
 事件名称 afterinit beforeedit afteredit stopedit click statechange valuechange callback nodeadd
  文本控件
  √
  √  √  √         
  标签控件(非填报)
  √
        √    √   
  按钮控件
  √        √       
  下拉框控件
  √  √  √  √  √       
  下拉复选框控件
  √  √  √  √  √       
  日期控件
  √    √  √         
  数字控件
  √  √  √  √         
  下拉树控件
  √  √  √  √  √       √
  单选按钮组控件
  √          √     
  复选框组控件
  √          √     
  文本域控件
  √ √ √ √     
  密码控件
  √ √ √ √     
  复选框控件
 √     √   
  视图树控件
 √    √    √
 列表控件
 √    √    
  文件控件
 √       √ 

注:填报页面下没有标签控件。

3. 触发机制编辑

FineReport 控件只允许在填报和决策报表(包括参数界面)中使用,所以控件分为填报控件和决策报表控件,由于填报和决策报表的区别,控件事件的触发时间有所区别,下面一一介绍:

  • 初始化后:决策报表的初始化事件是在控件加载结束后触发,填报页面中除了复选框控件、单选按钮组控件、复选框组控件和视图树控件是在控件加载结束时触发初始化事件之外,其他控件均是在填报时,点击控件的编辑按钮时(单击单元格时)触发;初始化事件示例请查看 批量删除

  • 编辑前:控件进入编辑状态时触发。

  • 编辑后:控件编辑后触发,如果编辑后事件中使用了 alert 提示,请改用 toast 提示,否则会影响中文的输入;编辑后事件示例请查看 动态显示参数控件

  • 编辑结束:鼠标焦点离开控件时触发;编辑结束事件示例请查看 给扩展单元格置数

点击:下拉框、下拉复选框、下拉树这三个控件的点击事件是在点击下拉项的时候触发,其他控件是在点击控件的时候触发;点击事件示例请查看批量删除

状态改变:状态改变是指控件的值发生改变时触发,该事件只能适用于复选框、单选按钮组和复选框组中。状态改变事件示例请查看 点击单选按钮弹出对话框输入值

注:填报中,单元格控件设置了编辑结束事件,鼠标焦点点进控件,不做任何改动,再点出控件,这时不会触发编辑结束事件,但是在参数面板中的决策报表控件却会触发编辑结束事件,如果想要在填报单元格控件的编辑结束事件实现与决策报表控件一样的效果,不作任何改动,点出控件时,也触发编辑结束事件,只需要为该控件添加一个初始化事件:

 注:内置的提交无法在编辑结束后事件中使用,因为内置提交事件会触发编辑结束后事件,编辑结束后事件会触发提交事件,造成死循环;

contentPane.setFireStopEditOnChange(false);

4. 兼容性编辑

4.1 视图树

7.0.5 版本中删除了视图树的编辑前、编辑后、编辑结束事件,原来用户如果设置了编辑后事件,会自动转为点击事件。

4.2 文件控件

7.0.5 版本中删除了文件控件的编辑前、编辑后、编辑结束事件,如果用户设置了编辑后和编辑结束事件,会自动转为上传后事件。

5. 控件事件中 JS 脚本的使用方法编辑

为某个控件事件添加 JS 脚本,那么怎么通过 JS 脚本引用控件,如何使用控件呢?控件都有什么方法可用呢?详细请参照 引用控件及控件方法列表