Lotus Forms 通過構建動態電子錶單,收集使用者資訊並將其傳遞給其他應用系統,以實現商務程序的管理。與紙質表單相比,電子錶單的最大優勢之一就是能夠動態地響應使用者活動。如,根據使用者輸入動態改變背景顏色,響應滑鼠點擊事件發送郵件或提交表單,等等。本文將通過若干執行個體,向您詳細講述 Lotus Forms 中對計算功能的支援。作為複雜事件處理的基礎,計算功能允許設計者通過編程實現表單對使用者活動的響應。
Lotus Forms 概述
Lotus Forms 提供了一種以電子錶單的形式收集使用者資訊並將其傳遞給其他應用系統的方式。它可以作為商務程序的前端,例如申請保險索賠。當使用者完成表單進行提交後,這些使用者資訊就會作為輸入傳輸給商務程序、資料庫,或者其他類型的應用系統。Lotus Forms 是一個產品家族,它包括三種產品:
Lotus Forms Designer :該產品是一個基於 Eclipse 的圖形化設計工具,用於建立和編輯 XFDL 表單。
Lotus Forms Viewer :該產品協助使用者查看、填寫和提交表單。Viewer 不但可以作為外掛程式內嵌於瀏覽器中,也可以獨立於瀏覽器作為單獨的應用運行。
Lotus Forms Server :該產品包含四個組件,分別為
API –提供用於應用和擴充 Lotus Forms 功能的函數集合。
Deployment Server –通過 Applet 技術,協助使用者自動安裝所需軟體,如 Viewer。
Forms Services Platform –提供用於實現 Lotus Forms 與其他系統整合的函數庫。
Webform Server –用於將 XFDL 表單檔案翻譯成 HTML/JavaScript 文檔,使得使用者可以在瀏覽器中填寫和提交表單,而不需要其他軟體支援。
本文主要涉及的產品是 Lotus Forms Designer 3,重點討論在表單設計階段如何為表單注入豐富的事件處理功能。整篇文章主要包含以下內容:第二部分對 Lotus Forms 表單所使用的描述語言(XFDL)進行簡要的介紹,以便更好地理解本文所引用的樣本表單代碼;第三部分討論 Lotus Forms 表單中對計算功能的支援,包括 Designer 工具的使用以及實現代碼;最後一部分是結束語。在本系列的第二篇文章中 , 我們將討論 Lotus Forms 中為表單設計提供的主要函數支援以及 Lotus Forms 表單中對事件和活動處理的支援。
表單定義語言–XFDL
在 Lotus Forms 中設計和處理的表單是使用擴充表單描述語言(XFDL)進行定義的。XFDL 使用可延伸標記語言 (XML)(XML)提供一種為便於數字化儲存和顯示而定義資料欄位和企業或政府複雜表單設計的標準方法 , 它將先前開發的全球表格定義語言(UFDL)和 XML 結合了起來。
在本小節中,我們將首先以一個實際的 XFDL 表單代碼為例(如清單 1 所示),向您介紹 XFDL 表單的基本結構,讓您對 XFDL 表單有個感性的認識。接下來,我們將把 XFDL 表單的組織圖抽象成資料模型,更加詳細地向您介紹表單中的基本組成元素。
從一個簡單的 XFDL 表單開始
清單 1. 一個簡單的 XFDL 表單
0 < ?xml version="1.0" encoding="UTF-8"?>
1 <XFDL xmlns="http://www.ibm.com/xmlns/prod/XFDL/7.5"
2 xmlns:xfdl="http://www.ibm.com/xmlns/prod/XFDL/7.5"
3 xmlns:xforms="http://www.w3.org/2002/xforms">
4 <globalpage sid="global">
5 <global sid="global">
6 <xformsmodels>
7 <model xmlns="http://www.w3.org/2002/xforms">
8 <instance>
9 <data xmlns="">
10 <a>3</a>
11 <b></b>
12 </data>
13 </instance>
14 <bind nodeset=”b” calculate=”../a * ../a”/>
15 </model>
16 </xformsmodels>
17 <bgcolor>lightgrey</bgcolor>
18 </global>
19 </globalpage>
20 <page sid="PAGE1">
21 <global sid="global">
22 <label>Square Area Form</label>
23 <bgcolor>cornsilk</bgcolor>
24 <fontinfo>
25 <fontname>Times</fontname>
26 <size>24</size>
27 <effect>plain</effect>
28 </fontinfo>
29 </global>
30 <field sid="side">
31 <xforms:input ref="a">
32 <xforms:label>Length of square side :</xforms:label>
33 </xforms:input>
34 <labelfontinfo>
35 <fontname>Times</fontname>
36 <size>24</size>
37 <effect>bold</effect>
38 </labelfontinfo>
39 </field>
40 <field sid="area">
41 <xforms:input ref="b">
42 <xforms:label>Area of square:</xforms:label>
43 </xforms:input>
44 <labelfontinfo>
45 <fontname>Times</fontname>
46 <size>24</size>
47 <effect>bold</effect>
48 </labelfontinfo>
49 </field>
50 </page>
51 </XFDL>