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拉。 |