原創(chuàng)|其它|編輯:郝浩|2009-07-30 10:04:47.000|閱讀 1726 次
概述:
MS Office InfoPath 2007是一整套創(chuàng)建收集和共享信息的動態(tài)表單工具,它可以創(chuàng)建功能豐富的動態(tài)表單,供團隊和組織收集、共享、重復使用和管理信息。InfoPath Forms Services是對InfoPath作的Web擴展,允許用戶使用 Web 瀏覽器填寫InfoPath表單
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
MS Office InfoPath 2007是一整套創(chuàng)建收集和共享信息的動態(tài)表單工具,它可以創(chuàng)建功能豐富的動態(tài)表單,供團隊和組織收集、共享、重復使用和管理信息。InfoPath Forms Services是對InfoPath作的Web擴展,允許用戶使用 Web 瀏覽器填寫InfoPath表單,用戶不需要在其計算機上安裝 InfoPath 便可填寫 InfoPath 表單,也不需要額外從 Web 上下載任何內容。這為開發(fā)純B/S結構的應用提供了良好的平臺。但是,在瀏覽器中填寫表單的用戶所能使用的功能集并不完全,不能實現InfoPath客戶端的所有功能。也就是說,InfoPath Forms Services 不能兼容InfoPath客戶端部分功能。
在表單中實現上下聯動的下拉列表框能提供非常好的用戶體驗,這個功能在InfoPath客戶端可以說是開箱即用的功能。在InfoPath客戶端通過對控件數據源進行“篩選數據”就可以實現數據聯動功能。然而,InfoPath Forms Services不支持“篩選數據”功能,不能按照InfoPath客戶端那樣實現數據聯動。在InfoPath Forms Services中究竟可否實現數據聯動呢?答案是肯定的,只不過方法稍微復雜一些。本文介紹第一種實現方法——“Web Service+規(guī)則”方法。后續(xù)文章會介紹VSTA編程方法以及在重復表中實現聯動的下拉列表框的方法。
Microsoft Office SharePoint Server2007(MOSS2007)企業(yè)版包含了InfoPath Forms Services,以下操作在MOSS2007企業(yè)版+IE6.0環(huán)境下測試通過。
用InfoPath設計表單時,可以作為下拉列表框的外部數據源有四種,即XML文檔,MS SQL Server 數據庫,Web Service和SharePoint列表。在這四種數據源只有Web Service支持參數查詢,所以本例中我們選擇Web Service作為聯動的下級下拉列表框的數據源。我們的思路是這樣的:表單上有兩個下拉列表框,在上級下拉列表框的屬性中設定規(guī)則,當上級下拉列表框的值改變時設置下級下拉列表框數據源的查詢參數,然后重新檢索數據,這樣就刷新了下拉列表框的選項內容。
下面我們詳細說明實現過程。
首先,我們需要準備一個演示用的Web Service,這個Web Service有一個操作GetCitiesByProvince,通過傳入參數——省的名稱,可返回該省城市名稱的列表。具體如何創(chuàng)建Web Service這里不再贅述,下面是代碼。這段代碼只作為演示用,不具實際意義,實際應用中應該從數據庫里查詢數據。
將以上代碼保存為文件ddlbws.asmx,放到SharePoint網站的_Layouts的虛擬目錄,缺省物理路徑為“c:\Program Files"Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS”。至于為什么放到這個目錄中,我們在這里只作簡要說明,有興趣的朋友可以在網上搜索SharePoint中自定義Web Service的金喜正規(guī)買球相關的文章。一般認為,將Web Service文件放到_Layouts這個目錄操作起來最簡單,而且在InfoPath Forms Services中調用方便,不會有安全和信任方面的問題。
部署完ddlbws.asmx這個文件后可以試著在IE中訪問該Web Service,觀察是否部署成功,地址為://< SharePoint網站地址>/_layouts/ddlbws.asmx。如果部署成功,應該出現該Web Service的說明網頁,如下圖。
1. 打開InfoPath客戶端,點擊菜單“設計表單模板”,在“設計表單模板”對話框中鉤選“僅啟用瀏覽器兼容性功能”。
2. 進入設計版面后我們先添加一個Web Service數據連接,作為以后用到的下拉列表框的數據源。選擇菜單工具/數據連接進入數據連接對話框,點擊“添加”按鈕進入“數據連接向導”。選擇新建連接/僅接收數據。
3. 進入下一步,選擇“Web服務”。
4. 進入下一步,輸入Web服務的位置:網站地址>/_layouts/ddlbws.asmx
5. 進入下一步,選擇操作GetCitiesByProvince。
進入下一步,不要鉤選“在表單模板中存儲一份數據副本”。
7. 再下一步,接受缺省的數據連接的名字,點擊“完成”按鈕。
8. 創(chuàng)建完畢數據連接后我們接著設計表單。在表單模板中設置好布局,放置兩個下拉列表框ddlb1和ddlb2。
9. 進入下拉列表框ddlb1的屬性對話框,在“數據”頁中,刪除原有選項,手動輸入兩個選項“四川”和“新 疆”。
點擊“規(guī)則”按鈕,再點擊“添加”按鈕進入規(guī)則設置對話框。在這里,我們添加三項操作,下表給出說明。
No. |
操作 |
說明 |
1 |
設置域值: ddlb2 = “” |
ddlb1值改變后先將ddlb2值清空 |
2 |
設置域值: province = . |
設置Web Service數據源的查詢參數province |
3 |
使用數據連接進行查詢: GetCitiesByProvince |
按照新參數重新檢索數據 |
11. 設置好規(guī)則后,我們還需要進入ddlb1屬性的“瀏覽器表單”頁,將回發(fā)設置更改為“始終”。
12. 下拉列表框ddlb1的屬性設置完畢后,我們接著設置ddlb2的屬性,這次我們只需要設置它的數據源。在“列表框項”下選擇“從外部數據源查找值”,將“數據源”設置為GetCitiesByProvince,“項”設置為:/dfs:myFields/dfs:dataFields/tns:GetCitiesByProvinceResponse/tns:GetCitiesByProvinceResult/tns:string
值和顯示名稱都為“.”
至此,InfoPath表單設計完畢,將這個表單模板保存為ddlb.xsn。下一步我們將要把這個表單發(fā)布到SharePoint的網站上。
在InfoPath表單設計界面中,點擊設計任務窗格中的“發(fā)布表單模板”啟動發(fā)布向導,按照該向導可以一步一步地將該表單發(fā)布到SharePoint的網站上,具體操作步驟這里就不贅述了,不熟悉的讀者可以很容易在網上找到金喜正規(guī)買球相關的文章。發(fā)布成功后就可以測試一下效果。
以上三步演示了如何使用規(guī)則加調用Web Service方法實現下拉列表框聯動的整個過程。這種方法實現起來相對容易,InfoPath表單中不需編程,發(fā)布也簡單,但必須與Web Service配合使用,需要Web Service開發(fā)。后續(xù)文章將介紹通過VSTA編程實現下拉列表框聯動的方法,后者更為通用,但實現起來較為復雜。
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:博客園