深入淺出InfoPath——如何在InfoPath表單中引用SQL SERVER 中的資料

來源:互聯網
上載者:User

1 為什麼要這麼做,要引用背景資料幹嘛?

當你開啟一個基於瀏覽器的表單時,表單中的一些下拉式控制項,比如"商品類型","材料規格",你可能不希望讀者自己輸入,而希望直接從系統原有的SQL SERVER中的"商品類型表"讀取。

或者,你希望完成一些"自動填寫"操作,比如當輸入完"客戶名稱"時,"客戶地址"一欄就會根據系統原有資料自動填寫完成。

 

2 基於InfoPath Form Service來引用後台資料庫有什麼注意的?

基於網頁的表單,根據SDK文檔,你只能引用“唯讀”而不是提交的資料。也就是說,如果你想把表單直接回填到資料庫,你不能直接通過Infopath的無代碼設計,必須做Event Handler、工作流程、或是改用InfoPath方式。

3 這個過程InfoPath Form Service做了一個什麼事情?

當使用者開啟這個表單的時候,InfoPath Form Service伺服器自己,會以目前使用者身份,登入SQL 伺服器,用SQL把資料取回來。然後通過瀏覽器呈給使用者。

自己:這很重要,因為這表明,當開啟InfoPath的表單時,是伺服器自己去讀資料,而不是使用IE用戶端。

目前使用者身份:這更重要,因為你需要手動在SQL SERVER,資料庫下的“安全”“使用者”裡面,建立一個以“使用者名稱”為登入名稱的使用者,並給這個使用者Sys_DataReader的架構和許可權。

*我就是因為沒有意識到這個問題,在用Admin調試完了後,交給使用者使用而不成功,白白浪費了一個上午。

4 額外做的一個些事情:

需要調整網站結構,“網站所有內容”->“建立”->“資料連線庫”

如上所說,進入SQL SERVER,把將來使用該表單的使用者加入資料庫的,並賦於讀取許可權。

做這個事情主要是為了儲存,SQL的串連檔案。

5 主要步驟:

“工具”->“資料連線”->“添加”->資料連線嚮導中選“建立串連”下的“僅接受資料”點擊“下一步”->選“資料庫(僅SQL Server)”->點“選擇資料庫”按鈕->會彈出“選取資料來源”,你可以“建立一個SQL串連”,然後會彈出一個資料連線嚮導,你如提示建立好一個SQL串連並且要“串連到指定表格”(步驟省略),完成這些後你的“資料來源”除了“主”會多一個“輔助資料來源”,名稱就是你剛才建立串連設定的名稱。 

重要的一步,做好這些後,進入“資料連線庫”(名稱你建立的時候任意命名),在你的電腦上“我的文件”下有一個“我的資料來源”下面有你剛才通過InfoPath建立的這個資料連線檔案一般是ODC副檔名。把這個檔案上傳到庫裡。
然後:在“工具”->“資料連線”->選中你的那個SQL資料來源,點擊“轉換...”,在對話方塊中可以指定那個資料連線檔案,請點擊“瀏覽”,選中你的SharePoint資料連線庫中的那個上傳的檔案。
很重要的一步: 進入那個資料連線庫,把庫中的一個以Odc和一個udcx為副檔名的檔案(轉換時產生的)全部設定為“批准”
6 如何把資料連到控制項上:

以列表為例:雙擊清單控制項,在“資料”選項卡上,選擇“從外部資料源尋找資料”,下面依提示選擇好。就OK拉。 

還可以使用“規則”,比如在“使用者號”一欄使用“賦值”規則, 來完成“使用者名稱”的自動填寫:

當使用者號更改時,

把輔助資料來源的“使用者名稱”欄位值賦值給“使用者名稱”文字框域

篩選條件是:輔助資料來源的“使用者號”欄位值=“使用者號”文字框。

7 按正常程式發布到InfoPath表單庫裡就OK拉。

 

不管你的InfoPath 表單通過Web services 串連到資料庫,還是直接連接到資料庫,這個資料連線檔案都是儲存在xsn模版裡的。

並不是都需要將這個資料連線檔案轉換成UDC檔案的(Universal Data Connection),只有當你的InfoPath表單需要支援在SharePoint網站上用瀏覽器開啟,這種情況下,我們需要將這個資料連線檔案轉換成UDC,以保證能成功提交資料。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.