如何开发表单部件
发布日期:2009-10-6 信息来源:http://www.chysoft.net

承元表单系统拥有良好扩展性,可以通过各种方式扩展表单的功能,如果你有一个非常通用的功能,可以通过编写表单部件将其集成到表单系统中。下面主要描述如何通过表单系统提供的表单部件编程接口,添加新的表单部件扩展表单的通用功能(在无需表单源码的情况下,开发表单部件是扩展表单通用功能的一个很好的途径)。
表单部件是表单的组成元素之一,表单部件是实现net.business.engine.common.I_Component接口的Java类,一般直接继承net.business.engine.common.BaseComponent类。在系统中添加新的表单部件通过以下步骤即可实现:
1. 修改部件配置文件,配置部件的相关属性
  <Component type="11"  name="部件名称" id="test" class="test.test1" icon=”bj.gif” >
 <width type="2" isMustInput="false" regExp="^\\d+$">宽度</width>
 <height type="1" isMustInput="false" regExp="^\\d+$">高度</height >
 <table type="1" length="50" isMustInput="true" enum="1,2,3">数据表</table>
  </Component>
name:部件的名称,定制的主界面中显示的名称
icon:部件的图标,显示部件样式的图标,如果未指定则显示缺省的图标
class:部件的实现类,实现部件功能的主体Java类
 部件的属性可以根据需要动态设置,这点和jsp的tag类似,如以上的width、height等,这些属性的名称我们在编写部件的代码是将使用到。

2. 开发实现指定接口的Java类,实现doView和doPost方法
(表单引擎产生部件的实例,根据设置初始化实例的相关值,传递表单环境变量)
其中doView将输出HTML,doPost执行数据的提交(在一个事务处理中),代码示例如下
A、继承net.business.engine.common.BaseComponent类时需要实现以下方法:
protected void doInitAttribute(String attrs) throws Exception
{//将设置的部件属性值读取出来,该属性值是在模板引用部件时设置的,每次有可能都不同
 String width = this.getAttribute("width ");
 String height = this.getAttribute("height ");
}

B、public String doView(ServletContext application, HttpServletRequest request, HttpServletResponse response) throws java.lang.Exception
{//可以使用模板传递的相关参数,引用表单的相关对象,包括表单字段
//this.templatePara.getTemplate().getComponent(this.name);

return [模板中输出的html片段];
}

新添加的部件将出现在表单定制主界面的左侧部件列表面板上,这样我们就可以在定制中使用了该部件了。
(承元表单和JBPM工作流结合就是通过开发的工作流部件实现的)

粤ICP备11095012号-1
Copyright 2005-2018 深圳市承元软件技术有限公司