使用二次开发实现定制的业务逻辑

 

    在万思协同平台中,使用Rhino做脚本引擎,提供了强劲的二次开发功能。在表单中,系统提供了丰富的事件处理,下面列出了常用的几个

 

表单打开事件

// 每次工作表单打开时都会执行名为 flowOpen的函数,可以在这个函数里做一些初始化的操作

// 值得注意的是,这个函数是在每当表单打开时都会执行

function flowOpen()
{

}

 

按钮点击事件

// sheet 表明按钮在哪个worksheet中
// cell 表明按钮位于哪个单元格中
// buttonname 表明按钮的名称

function VirtualButtonClicked(sheet, cell, buttonname)
{

}


当单元格的值改变时触发的事件

//sheet 表明发生变化的单元格位于哪个工作表中
//cell 表明是哪个单元格发生变化
// oldValue 单元格值改变前的值
// newValue 单元格的当前值 
//  注意当单元格绑定到数据库中,oldValue , newValue 中的数据并不可靠,请重新取相关数据

function
CellValueChanged(sheet, cell, oldValue, newValue)
{

}

 

数据池中的数据发生改变时

// 当数据缓冲池中的数据改变时,此事件被调用
// 比如当单元格绑定到一个多行数据源时,当我们编辑其中某行的某个字段后,虽然
// CellValueChanged事件也会触发,但该事件的参数无法告知我们是哪行发生变化。所以
// 应该在DataStoreItemChanged事件中处理它。

// dsname 数据源名称
//  row  哪行数据发生变化
// col  哪个字段的值发生变化

function DataStoreItemChanged(dsname, row, col)
{

}

 

点击“脚本编辑”可以打开脚本进行编辑。输入如下脚本,然后新起草一个工作,看看运行效果

 

function CellValueChanged(sheet, cell, oldValue, newValue)
{
    alert( sheet.getName()+"工作表中的单元格: "+cell.getName()+"数据发生变化");

}

 

或者用合适的编辑器直接到服务器上打开相应的文件直接进行脚本编辑 。如何找到这个相应的脚本文件,请参看 工作流相关配置的目录结构