设置脚本触发器

可以设置脚本触发器来指定事件发生时运行脚本。例如,可以使用脚本触发器运行一个脚本,根据另一个字段中输入的内容在字段中自动输入数据。

有些脚本触发器会在数据库引擎处理某个事件之前运行脚本。其他脚本触发器会在数据库引擎处理某个事件之后运行脚本。例如,可以使用 OnObjectEnter 脚本触发器在输入一个字段之后运行脚本。(此字段为对象;输入此字段为一个事件。)

脚本触发器可以通过用户操作或脚本来激活。例如,可以使用 OnObjectEnter 脚本触发器激活一个脚本,从而使该脚本在用户单击字段或执行“转至对象”脚本步骤来输入字段时运行。

可以设置脚本触发器在以下情况下激活:

要查看为哪些布局对象和布局指定了脚本触发器,请在布局模式下,选择“查看”菜单 >“显示”>“脚本触发器”。

有下列脚本触发器可用:

触发器区域 脚本触发器 处理之前 处理之后

对象

OnObjectEnter

 

X

OnObjectKeystroke

X

 

OnObjectModify

 

X

OnObjectValidate

X

 

OnObjectSave

 

X

OnObjectExit

X

 

OnPanelSwitch

X

 

OnObjectAVPlayerChange

 

X

布局

OnRecordLoad

 

X

OnRecordCommit

X

 

OnRecordRevert

X

 

OnLayoutKeystroke

X

 

OnLayoutEnter

 

X

OnLayoutExit

X

 

OnLayoutSizeChange

 

X

OnModeEnter

 

X

OnModeExit

X

 

OnViewChange

 

X

OnGestureTap

X

 

OnExternalCommandReceived

 

X

文件选项

OnFirstWindowOpen

 

X

OnLastWindowClose

X

 

OnWindowOpen

 

X

OnWindowClose

X

 

OnFileAVPlayerChange

 

X

OnWindowTransaction

 

X

脚本触发器的时间顺序

当同一个事件激活多个脚本触发器时,脚本触发器会按照以下相应顺序执行:

  1. OnFirstWindowOpen

  2. OnWindowOpen

  3. OnLayoutEnter

  4. OnModeEnter

  5. OnRecordLoad

  6. OnLayoutSizeChange

  7. OnViewChange

以下脚本触发器的顺序由触发事件控制:

  1. OnObjectEnter

  2. OnObjectKeystroke

  3. OnLayoutKeystroke

  4. OnGestureTap

  5. OnObjectAVPlayerChange

  6. OnFileAVPlayerChange

  7. OnExternalCommandReceived

  8. OnPanelSwitch

  9. OnObjectModify

  10. OnObjectValidate

  11. OnObjectSave

  12. OnObjectExit

  13. OnRecordCommit 或 OnRecordRevert

  14. OnWindowTransaction

  15. OnModeExit

  16. OnLayoutExit

  17. OnWindowClose

  18. OnLastWindowClose

注释 

  • 脚本触发器运行的脚本使用现有权限。除非将脚本定义为以完全权限运行,否则脚本将使用用户的权限运行。

  • 在“自定义 Web 发布”和 FileMaker Data API 下,脚本触发器只能由脚本激活,而不能由直接的用户交互激活。由于“自定义 Web 发布”和 FileMaker Data API 未通过 FileMaker 用户界面访问数据,因此用户无法直接激活脚本触发器。但如果脚本步骤导致焦点移动到该字段中,则将激活该脚本触发器。

  • 某些脚本触发器允许在脚本触发器运行的脚本返回值 False 的情况下,取消触发事件。如果以这种方式取消命令或事件,错误代码将设置为 20。有关更多信息,请参阅 Get (上一个错误)函数。如果 OnLastWindowClose 脚本触发器运行的脚本返回值 False,则文件将不关闭。

  • Windows:Alt 和 Ctrl 组合键不会激活脚本触发器。

  • macOS:Command 组合键不会激活脚本触发器。