结束编辑事件

    当单元格编辑时按下回车,Tab , ESC 键后导致编辑结束时,本事件被触发

   当一个单元格被编辑,并按下回车后,将有如下一系列事件按先后顺序被执行:

  1. beginEdit 本单元格开始编辑
  2. keyPressed 有键盘按下
  3. beginEdit  另一个单元格开始编辑
  4. keyRelease 有键盘释放
  5. endEdit  本单元格编辑结束

 从上述事件触发的顺序可以看出,如果需要的话,可以在endEdit事件里把编辑焦点转移到需要的单元格中。请参看后面的示例

// sheet 工作表对象
//  row  被编辑单元格的行号
// col  被编辑单元格的列号
// dbRow  当该单元格绑定到一个多行数据源时,本参数表明是其中第几行正在被编辑
//         注意 dbRow 从0开始,dbRow=0 表示数据源中的第一行正在被编辑
//            所以 dbRow 取值范围是从0 到 行数减一 
//  enterKeyPressed 是不是因为按回车导致编辑焦点失去
//  isShiftDown  shift 有没有按下
//  isControlDown  ctrl 有没有按下

 

 

function endEdit(sheet,row,col,dbRow,enterKeyPressed,isShiftDown,isControlDown)
{

}

 

 

示例

  其中J4绑定到一个多行数据源的一个数字型字段上,如果输入的数据大于0,那么改跳到相同字段的下一个数据行中继续编辑( 缺省是跳到同一个数据源的同一个数据行上的下一个字段上)。

 
function endEdit( sheet,row,col,dbRow)
{
    //打印一些调试信息
    println(  sheet.cells(row,col).getName()+': ' + row+' , '+col+'   ,  dbrow='+dbRow);
    //如果是J4单元格(它绑定到一个多行数据源上)结束了编辑,
    if ( sheet.cells(row,col).getName()=='J4')
    {
        var  je= sheet.cells(row,col).getValue (dbRow);
        println(je);
		//如果输入的数据>0 那么跳到本字段的下一个数据行
        if ( je>0 && dbRow<24)
        {
        
            book.getDataSource('fpjxmx').setCurrentBindRow(dbRow+1);
            sheet.getWorkSheetView().beginEdit( row,col);
        }
    }
}