XForm 表单对函数和事件处理功能的支持

Lotus Forms 通过构建动态的电子表单,收集用户信息并将其传递给其他应用系统,以实现业务流程的管理。与纸质表单相比,XForm 电子表单的最大优势之一就是能够动态地响应用户活动。如,根据用户输入动态改变背景颜色,响应鼠标点击事件发送邮件或提交表单,等等。本文将通过若干实例,向您详细讲述 Lotus Forms 中的事件处理机制 , 包括 XForm 表单支持的主要事件、活动和函数。通过本文的讲述,您将能够灵活自如地使用 Lotus Forms Designer 构建丰富智能的电子表单。

简介

在本系列文章的第一部分,我们向您详细介绍了 XFDL 表单对计算功能的支持。通过引入计算,使得 XFDL 表单能够对用户的活动作出复杂的响应,为表单中的事件处理提供了强大的功能保障。为了构造出复杂的计算,我们不可避免地需要使用 XFDL 语言为我们提供的一些预定义的函数,从而实现特定的功能。

整篇文章主要包含以下内容:第二部分对 Lotus Forms 表单所使用的描述语言(XFDL)进行简要的介绍,以便更好地理解本文所引用的示例表单代码;第二部分讨论 Lotus Forms 中为表单设计提供的主要函数支持;在第三部分中,我们将深入探究 Lotus Forms 表单中对事件和活动处理的支持。最后一部分是结束语。

构建动态的电子表单 - 函数

函数是 XFDL 语言中一些预定义的计算功能,能够帮助 XFDL 表单实现一些复杂的操作,而通常这些操作都需要构造十分复杂的计算表达式才能完成。在上一节中,我们已经涉及了一些简单函数的调用,这些函数都是 XFDL 自身提供的功能,称为标准函数。除此之外,您还可以自己动手编写函数或从外界引入函数,我们将这些函数称为定制函数或扩展。对于标准函数的使用,您可以参考 XFDL 规范,其中包括了非常详细的函数定义、使用举例和需要注意的问题,我们在这里就不进行介绍了。在本节中,我们将通过一个实例,向您详细介绍如何定制自己的函数,实现对表单功能的扩展。

定制函数可以使用 C 或 Java 语言编写。本节中,我们将通过一个 sayHello 函数的示例,向您介绍如何开发 Java 定制函数。在开始开发定制函数之前,您必须首先安装 IBM Lotus Forms Server – API, 安装步骤和具体配置请参考 Information Center 上的相关内容。在这套 API 中,包含了一个函数调用接口 (FCI) 库,该库提供了一组函数帮助用户开发定制的功能,从而实现对表单功能的扩展。本文中的扩展非常简单,只是接收一个字符串 (xx),返回另外一个字符串 (Hello xx)。具体的开发流程如下:

创建扩展类

当 XFDL 表单进行初始化的时候,API 会检查当前是否存在扩展功能,如果存在,则调用相应扩展类的初始化方法 , 完成对扩展功能的注册。因此,我们首先需要创建一个扩展类并实现其中的初始化方法。

1. 在包 com.ibm.sample 中,新建一个 Java 源文件 FormFunctionExtension.java,导入所需的类文件。从以下代码可以看到,该类继承了 ExtensionImplBase 类并实现了 Extension 接口。其中,初始化方法 extensionInit 拥有一个 IFX 类型的参数 IFXMgr,作为 IFX Manager。


清单 1. FormFunctionExtension.java 程序
 package com.ibm.sample;
import com.PureEdge.ifx.IFX;
import com.PureEdge.ifx.ExtensionImplBase;
import com.PureEdge.ifx.Extension;
import com.PureEdge.xfdl.FunctionCall;
import com.PureEdge.xfdl.FunctionCallManager;
import com.PureEdge.xfdl.FormNodeP;
import com.PureEdge.IFSUserDataHolder;
import com.PureEdge.error.UWIException;

public class FormFunctionExtension extends ExtensionImplBase
implements Extension{
public void extensionInit(IFX IFXMgr) throws UWIException {

}
}


2. 接下来,我们需要定义另外一个 Java 源文件 FormFunctionCall.java,用于定义定制功能的实现。该类继承 FunctionCallImplBase 类并实现了 FunctionCall 接口。定义了一个整型常量,作为定制函数的唯一标识符(之后会用到),并定义了一个以 IFX Manager 为参数的构造方法。


清单 2. FormFunctionCall.java 程序





本文转自IBM Developerworks中国

      请点击此处查看全文


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值