一般的電子表單工具都要求能自動顯示和儲存關係型資料庫中的資料,比如可以使用sql語句查詢資料填充文字框,或者查詢一批資料填充到列表框中的列表專案。而且還要求能更新資料庫,能把使用者輸入的資料儲存到資料庫中,可以新增,修改和刪除資料庫記錄。為實現這種功能,表單工具在定製表單模板的時候得設定讀取資料和更新資料庫用的sql語句,或者設定表單資料輸入元素和資料庫欄位的對映關係,執行時得直接連線資料庫,執行sql更新語句更新資料。但隨著時代的進步,這種做法在開發和執行中暴露出一些問題。
對於目前的比較龐大而複雜的資訊管理系統,很多系統都採用三層架構或多層結構,此處只討論有代表性的三層架構。在三層架構中,程式**根據功能分為三個大部分,資料庫處理層,業務邏輯層和資料顯示層(使用者介面層)。其中資料庫處理層專門處理底層資料庫,維護基礎的資料結構。業務邏輯層則呼叫資料庫層獲得資料並根據需要進行處理,而資料顯示層則從業務邏輯層獲得資料並顯示出來。
這種三層架構結構複雜,但程式靈活,適於團體開發,而且維護簡單,能比較方便的控制資料訪問的安全和限制,因此三層結構目前有很大的影響力。對於三層的資料庫資訊管理系統,只有資料處理層能直接訪問資料庫,其他的程式模組是不能的。
電子表單工具是用來顯示和輸入資料的,從功能上說應當是三層結構中的使用者介面層,它應當只能從業務邏輯層獲得資料,不應當從資料庫層獲直接連線資料庫獲得資料的,更不應當跳過業務邏輯層來直接更新資料庫。但目前一些表單工具卻如此這樣作,破壞了三層結構的原本的意義。一般來說,使用者介面層直接查詢資料庫獲得資料,只是影響了三層結構,資料庫結構發生改變,而使用者介面層沒有隨之更新,則最多只是不能正確的顯示資料,沒有其他的影響;但使用者介面層直接更新資料庫,新增修改或刪除資料庫記錄,這應當是破壞了三層結構,當資料庫結構發生改變而使用者介面層沒有隨之更新,則使用者介面層可能會破壞資料庫,導致資料錯誤和資料丟失。對於客戶而言,最重要的是資料而不是應用系統,應用系統可以更換,可以崩潰,但資料絕不能錯誤或丟失。因此從客戶的利益和軟體的安全性著想,使用電子表單工具直接更新資料庫應當慎重考慮。
一些電子表單工具具備能自動更新資料庫記錄的功能,但在現在的軟體開發過程中,這種功能要求日漸不重要。這是因為越多越多的開發人員使用各種成熟的物件-資料庫對映框架,或者使用各種**生成器來生成操作低層資料庫的**,而且各個公司對此有各自的規範和傳統,表單工具不應對此進行過多的干涉。
綜上所述,表單工具是處於使用者介面,用於顯示和輸入資料的,在三層架構中屬於使用者介面層,按照三層架構的基本規範,使用者介面層是不能直接讀取和更新底層資料庫的。因此電子表單不應當直接更新資料庫,而是向三層架構的業務邏輯層提供資料。
此處表單工具使用xml文件和應用系統交換表單資料,應用系統將需要顯示的資料組織成乙個xml文件,然後傳遞給表單工具使用者介面,在使用者介面中,使用者確認輸入表單資料後,表單工具將表單資料組織成乙個xml文件返回給應用系統,應用系統將進行後續處理。
在表單文件中,每乙個可以輸入資料的表單元素都有乙個「資料引用「的屬性,該屬性就說明了表單工具如何儲存在xml文件中。該屬性的格式類似xpath字串,可以包含多個xml節點名稱,名稱之間由」/」分隔開來。
比如對於乙個文字框,若資料引用為」employees/address」,則表單資料儲存在xml文件根節點的名為employess子節點的名為address的子節點下。生成的xml片斷可能為
<xformvalue >
<employees>
<address>文字值</address>
</employees>
</xformvalue>
若這個文字框的資料引用為」employees/@address」,則表單資料儲存在xml文件根節點的名為employess的子節點的名為address的屬性中。此時生成的xml片斷可能為
<xformvalue >
<employees address=」文字值」 />
</xformvalue>
注意,這裡的資料引用是模擬xpath的,不是真的xpath,只能設定各級xml元素的名稱,若出現xml屬性則放置在最後,而且沒有判斷條件。
在實際應用中,使用電子表單的最終目的一般是顯示和編輯資料庫記錄的,此時則可以設定表單元素的資料引用為「表名.欄位名」。則生成的表單xml文件可以如下
<xformvalue >
<employees>
<address>復興門 245 號</address>
<birthdate>1968-12-8 0:00:00</birthdate>
<city>北京</city>
<country>中國</country>
<employeeid>1</employeeid>
<extension>5467</extension>
<firstname>穎</firstname>
<goal>2000</goal>
<hiredate>1992-5-1</hiredate>
<homephone>(010) 65559857</homephone>
<lastname>張</lastname>
<***>2</***>
<title>4</title>
<titleofcourtesy>女士</titleofcourtesy>
</employees>
<customers>
<address>大崇明路 50 號</address>
<city>天津</city>
<companyname>三川實業****</companyname>
<contactname>劉小姐</contactname>
<contacttitle>銷售代表</contacttitle>
<country>中國</country>
<customerid>alfki</customerid>
<email>[email protected]</email>
</customers>
</xformvalue>
很明顯,對於這樣的xml文件,從根節點出發,第一層子節點的名稱就是資料表的名稱,第二層子節點的名稱就是資料表各個欄位的名稱。這樣很容易將xml文件中的節點對映到資料庫表和字段上,因此容易開發乙個將xml文件的資料更新到資料庫的通用例程。而且在應用系統中,可以將所有的根據電子表單資料更新資料庫的**集中起來。
電子表單系列談之純文字輔助設計表單
袁永福 2007 8 20 表單工具提供乙個功能,那就是純文字輔助設計表單。使用者可以使用一種帶格式的純文本來快速生成表單文件,這樣可以輔助設計表單,加快表單設計速度,而且能使得人們可以分工設計表單。在表單設計器中,使用者可以使用純文本來自動生成表單設計文件,下面就是這種純文字的範例 臨床症候群 複...
Fixcel電子表單 介紹
概述 fxicel電子表單主要提供了b s系統上的表單設計,表單填寫 提交,表單預覽 列印這幾部分的功能集,採用flex技術研發,提供非常友好的豐富的使用者體現。管理系統的資料錄入 上報是非常重要的部分,fixcel採用非常靈活的解決方案,能夠自定義設計各種格式的表單,能夠應對多變的資料單據需求,非...
Fixcel電子表單 表單設計器
概述 表單設計器用於設計業務所需的表單模板或報表模板。採用與office excel 的類似的介面顯示 編輯方式和 操作方式等,讓設計人員更容易地接收和掌握設計器的使用,降低培訓難度。主要功能說明 單元格的輸入方式 設計表單時,比較重要的乙個環節是定義表單的輸入項。通過單元格屬性來配置輸入項的資料型...