前言:工作中常遇到客戶和同事朋友詢問InfoPath的相關問題,博客讀者也常有來信,表示與InfoPath相關的教程過少。說實話,我本人其實也沒有看過InfoPath的學習資料,全靠自己的理解和經驗積累。最近我總結了一些心得,與大家共享,希冀拋磚引玉,共同進步。
InfoPath是Microsoft Office系列產品中的一員,相較於Word、Excel,對於InfoPath很多用戶還是比較陌生的。InfoPath是Office家族中專門用於收集數據的表單工具,使用InfoPath可以快速地創建出表單模板,規範數據,達到更快地獲取、彙總有效信息的目的。
從InfoPath 2003 開始,InfoPath也已經歷經三個版本,目前最新的正式版本是InfoPath 2010。本系列文章中將以InfoPath 2010爲例,InfoPath2007在功能上和2010相差不多,概念相通。
InfoPath分爲兩個模式:設計和填寫。在2010中乾脆變成了兩個客戶端:InfoPath Designer和InfoPath Filler。設計模式是給表單設計人員使用的,用來設計表單模板;填寫模式是給普通用戶用的,基於表單模板進行數據填寫。
應用InfoPath客戶端的簡單場景是,企業的表單設計人員用設計模式設計好表單模板,保存爲.xsn文件,並以電子郵件或者其它形式共享給普通用戶,普通用戶基於設計好的表單模板進行填寫,填寫好後保存爲.xml再提交給統計彙總人員。但是實踐過程中我們會發現,這樣的使用方式會讓普通用戶感到困惑,要學習使用一個新的客戶端是用戶非常不願意接受的。所幸,我們有SharePoint,我們可以把設計好的表單模板發佈到SharePoint上,並藉助Forms Services將InfoPath表單直接在瀏覽器中渲染出來,用戶不再需要安裝客戶端,在瀏覽器中即可直接填寫表單,大大提升用戶體驗。
將InfoPath和SharePoint結合,可以滿足絕大多數與表單相關的需求,後面我會選擇幾個典型的場景來講解。今天先從最基礎的開始 -- 如何設計一個簡單的InfoPath表單模板,簡單來說,可以概括爲以下四步:
【選擇表單模板】
打開InfoPath Designer 2010客戶端,第一個界面是選擇表單模板,InfoPath內置了幾種表單模板,使InfoPath可以基於我們提供的數據庫表、Web服務、XML文件、SharePoint數據源自動創建出數據源結構。在沒有這些需求的情況下,我們可以選擇“空白表單”:
在選擇好表單模板後,需要檢查一下表單的兼容性,點擊文件-->信息-->窗體選項(2007版點擊工具-->表單選項):
在“兼容性”中查看當前的表單是否爲Web兼容模式(Web瀏覽器表單):
對於需要發佈到SharePoint上的表單,我們需要確認表單爲Web兼容模式,否則發佈後將無法在瀏覽器中進行填寫。
【創建數據源】
默認情況下,我們會在右側窗格中看到主數據源,主界面爲一張空白的表單:
我們創建的表單模板,其中的數據都要存在主數據源中,所以我們首先需要在主數據源中創建出我們需要收集的數據的數據結構。
myFields是主數據源中默認的組,我們創建的其它域組都要在myFields下,我們可以修改它的名稱,但不能刪除它。
在添加域組時,我們看到其中有這樣幾種類型:
- 域(元素):可以理解爲字段,就是我們將要在表單收集的數據字段。每個域本身的數據類型又分爲:
根據字段中需要存儲的數據來決定選用哪種類型。
注意到下面的“重複”選框,勾選上即代表該域成爲重複域,重複域用於儲存多值的情況,例如每個人可能會對應多個聯繫電話:
重複域的圖標區別於其他域,多了一個下箭頭。
- 組:是域的集合,用來組織域。組可以嵌套,即組可以包含組。組也可以重複組:
- 域(屬性):屬性,不能爲空。可以添加在域(元素)的下級。不可重複。
- 組(選項):特殊的組,其中包含的域或組,可以作爲選項進行替換。例如,我們需要用戶填寫聯繫方式,手機號碼、家庭電話二選一即可,就可以使用組(選項),設置如下:
填寫效果如下:
默認顯示家庭電話,點擊左側的圖標,即可切換爲手機號碼:
【設計表單樣式】
根據需要創建好數據源之後,就可以開始設計表單了。
表單由視圖組成,每個視圖中可以包含多個控件,每個控件(除按鈕)都需要綁定到對應的數據源上。
向視圖頁面中添加控件可以採用兩種方式:
- 從控件窗格中直接選取需要的控件
在設計主界面中將光標移至需要添加控件的位置,在控件窗格點擊需要的控件(注意取消下方“自動創建數據源”的選擇):
在彈出的界面中選擇要綁定的數據源:
- 在數據源窗格中選擇需要的控件
在需要添加進視圖的域組上點擊右鍵:
在菜單中單擊需要的控件(如果需要的控件不在菜單中,點擊“其他”)。
對於已經添加進視圖的控件,也可以通過點擊右鍵,選擇“更改控件”來修改控件的類型:
在已添加到設計主界面的控件上點擊右鍵:
可以在屬性編輯界面中修改控件的屬性:
不同控件中可以定製的屬性也不同,需要各位通過實踐自己來熟悉。
按照需要調整各控件在視圖中的位置及佈局:
點擊左上角的預覽按鈕(或按F5),可以預覽效果:
【保存/發佈表單模板】
- 對於客戶端填寫表單的場景,保存後點擊文件-->發佈-->電子郵件/網絡位置:
- 對於需要在瀏覽器中進行填寫的表單,保存後點擊文件-->發佈-->SharePoint服務器:
輸入SharePoint服務器地址,點擊下一步:
點擊下一步,選擇“新建表單庫”,點擊下一步,輸入要新建的表單庫名稱,一直下一步直到發佈:
點擊“在瀏覽器中打開此表單”:
總結:
經過以上四步,一個簡單的InfoPath表單模板已經完成。後面的文章中將繼續介紹如何在此基礎上對錶單進行改進。