officeba > 单独文章


创建事件处理程序

在为 Microsoft Office InfoPath 表单模板编写脚本时,通常需要在某个表单模板或数据验证事件处理程序中编写代码。事件处理程序是 InfoPath 表单模板中的函数代码,这些代码与表单中的用户操作或 XML 数据的更改相对应。事件处理程序的创建方式取决于要使用的事件类型。在设计模式下创建事件处理程序很重要,因为 InfoPath 会自动在脚本文件中创建事件处理程序的声明,并在表单定义文件 (.xsf) (表单定义文件:扩展名为 .xsf 的 XML 文件,该文件包含有关表单内使用的所有其他文件和组件的信息,包括用户界面自定义、XML 架构、视图、商业规则、事件和部署设置。) 中创建使表单模板可以使用这些事件处理程序的条目。

 注释   尽管可以在脚本文件中手动创建事件处理程序,然后通过向 .xsf 文件中手动添加适当的元素来启用这些事件处理程序,但是不建议这样做。如果对 .xsf 文件进行了无效更改,表单模板可能会不可用。

下表列出了每个 InfoPath 事件处理程序及其创建步骤。在为表单模板创建事件处理程序时,InfoPath 会启动 Microsoft 脚本编辑器 (MSE)  (Microsoft 脚本编辑器:用于在数据访问页中添加文本、编辑 HTML 标记以及编辑任何 Microsoft Visual Basic Scripting Edition (VBScript) 代码。也可象在 Web 浏览器中一样,在脚本编辑器中查看页。) 并将鼠标放在该事件处理程序的代码中。随后可以为该事件处理程序编写脚本。有关 InfoPath 事件和事件处理程序的详细信息,请参阅 MSE 帮助中的“InfoPath 开发人员参考”。

事件处理程序 说明 创建步骤
OnAfterChange 在用户更改绑定到某个字段的指定控件中的值后,此事件运行。例如,在用户选择列表框控件中的某个项后,您可以显示自定义 HTML 任务窗格。此事件在 OnValidate 事件后运行。 右键单击表单模板上的某个控件或“数据源”任务窗格中的某个字段,指向快捷菜单上的“编程”,然后单击“OnAfterChange 事件”
OnAfterImport 在用户将几个表单成功合并到一个表单后,此事件运行。 通过使用 MSE 手动将 OnAfterImport 事件处理程序声明直接添加到脚本文件中。不能在设计模式下创建此事件处理程序。
OnBeforeChange 在用户更改控件中的值之后和将值添加到绑定到该控件的指定字段之前,此事件运行。例如,您可以在填写重复表中的最后一行之前禁止用户添加其他行。 右键单击表单模板上的某个控件或“数据源”任务窗格中的某个字段,指向快捷菜单上的“编程”,然后单击“OnBeforeChange 事件”
OnClick 当用户单击与此事件关联的按钮时,此事件运行。在您向表单模板中添加按钮后,此事件可用。例如,当用户单击按钮时,您可以通过使用主要数据源的字段中的值来执行复杂计算。 双击按钮控件,然后在“按钮属性”对话框的“常规”选项卡上单击“编辑表单代码”
OnContextChange 当用户更改组中的字段时,此事件运行。例如,您可以在视图中显示包含有关控件的详细信息的自定义 HTML 任务窗格。当用户选择控件并按特定键(如 F1)时,代码运行。在 OnLoad 事件和 OnSwitchView 事件发生后,此事件运行。 “工具”菜单上,指向“编程”,然后单击“OnContextChange 事件”
OnLoad 只要用户创建新表单或打开基于表单模板的现有表单,此事件就运行。例如,当用户打开表单时,您可以将项目列表从辅助数据源复制到主要数据源。 “工具”菜单上,指向“编程”,然后单击“OnLoad 事件”
OnMergeRequest 当合并基于表单模板的表单时,此事件运行。例如,您可以在合并操作过程中显示合并的表单数以向用户提供状态。 “工具”菜单上,单击“表单选项”。在“类别”列表中,单击“高级”。在“合并表单”下,选中“使用自定义代码合并”复选框,然后单击“编辑”
OnSaveRequest 当用户保存基于表单模板的表单时,此事件运行。例如,当用户保存表单时,您可以将基于此表单模板的表单保存到多个位置。InfoPath 向此事件中添加另外两行代码:一行用于保存表单,另一行用于通知您 InfoPath 是否成功保存表单。 “工具”菜单上,单击“表单选项”。在“类别”列表中,单击“打开和保存”。在“保存行为”下,选中“使用自定义代码保存”复选框,然后单击“编辑”
OnSign 当用户将数字签名应用于表单时,此事件运行。例如,当用户签署支出报告表单时,您可以向该表单的数字签名中添加附加数据。 “工具”菜单上,指向“编程”,然后单击“OnSign 事件”
OnSubmitRequest 当用户提交他/她的表单数据时,此事件运行。例如,当用户单击“文件”菜单上的“提交”时,您可以将表单数据提交到安全 Web 服务。由于 InfoPath 不支持与安全 Web 服务的数据连接,因此您需要添加适用于安全 Web 服务的自定义数据连接。 “工具”菜单上,单击“提交选项”。选中“允许用户提交此表单”复选框,单击“使用代码执行自定义操作”,然后单击“编辑代码”
OnSwitchView 当用户打开基于表单模板的表单或切换到表单中的其他视图时,此事件运行。例如,当用户切换到特定视图时,您可以创建包含表单的主要数据源中字段中的数据的电子邮件。 “工具”菜单上,单击“编程”,然后单击“OnSwitchView 事件”
OnValidate 当用户更改绑定到某个字段的控件中的值时,此事件运行。例如,当用户更改特定控件中的值时,您可以通过使用用户输入的数字以及脚本中的数字计算其他控件的新值。在 OnBeforeChange 事件处理程序运行后,此事件发生。 右键单击表单模板上的某个控件或“数据源”任务窗格中的某个字段,指向快捷菜单上的“编程”,然后单击“OnAfterValidate 事件”
OnVersionUpgrade 当用户打开现有表单并且现有表单使用的表单模板的版本号低于发布位置中表单模板的版本号时,此事件运行。当用户打开现有表单时,InfoPath 检查与该现有表单相关的表单模板的版本号。如果表单模板有更新的版本号,则当用户打开现有表单时,InfoPath 运行 OnVersion 事件处理程序。例如,假设您向现有表单模板中添加新字段并重新发布该模板,并且如果用户打开现有表单,您希望该新字段添加到主要数据源中。当用户打开现有表单时,此事件会将该新字段添加到主要数据源中。 “工具”菜单上,单击“表单选项”。在“类别”列表中,单击“版本控制”。在“关于版本升级”列表中,单击“使用自定义事件”,然后单击“编辑”

声明:欢迎各大网站转载本站文章,还请保留一条能直接指向本站的超级链接,谢谢!

时间:2007-07-19 21:16:52,点击:65824


【OfficeBa论坛】:阅读本文时遇到了什么问题,可以到论坛进行交流!Excel专家邮件:342327115@qq.com(大家在Excel使用中遇到什么问题,可以咨询此邮箱)。

【声明】:以上文章或资料除注明为Office自创或编辑整理外,均为各方收集或网友推荐所得。其中摘录的内容以共享、研究为目的,不存在任何商业考虑。如有任何异议,请与本站联系,本站确认后将立即撤下。谢谢您的支持与理解!


相关评论

我要评论

评论内容