西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)C#.NET → InfoPath進階之二:給InfoPath添加VSTA托管代碼并從SharePoint列表查詢數(shù)據(jù)

InfoPath進階之二:給InfoPath添加VSTA托管代碼并從SharePoint列表查詢數(shù)據(jù)

相關軟件相關文章發(fā)表評論 來源:dosboy時間:2010/1/29 23:11:52字體大。A-A+

作者:dosboy點擊:1674次評論:0次標簽: InfoPath

  • 類型:遠程監(jiān)控大。4.6M語言:中文 評分:5.7
  • 標簽:
立即下載

摘要:本章節(jié)里,我們要學習如何給InfoPath添加代碼,然后如何把含有代碼的表單模板發(fā)布到具有Forms Service的網(wǎng)站上去。本代碼比較簡單:根據(jù)上一章的示例,模板里有一個字段叫“申請人”,這段代碼就是根據(jù)當前登錄的人名,通過代碼查詢到他的部門,然后自動地填到“申請部門”這個下拉框中去。這樣當使用者第一次新建這個表單時,申請人和部門就會自動填好,這樣就會顯得模板比較智能。

你將學會:

  1. 如何給InfoPath模板添加代碼,并進行發(fā)布。
  2. 如何從MOSS的用戶配置文件中來讀取用戶的中文名稱
  3. 如何使用OM和Query語句,對SharePoint列表進行查詢
  4. 如何在程序中設置表單中某個節(jié)點(域)的值
  5. 如何應用Loading事件

 

一、新建一個表單庫,用來存放表單

如下圖:

image

 

二、編輯表單模板,并加入程序

1 以設計模式打開模板,在“工具”-“表單選項”中設置編程語言為c#,如下圖:

image

 

2.設置表單模板的安全級別為“完全信任”和表單模板簽名,如下圖:

image

3. 在通過菜單中的Loading事件,打開編寫程序的界面:

image

 

4.給程序添加3個必要的“引用”,如圖下圖,打開“添加引用”對話框,

image

1)給程序集添加WSS的引用,主要使用OM對象模型,如下圖:

image

2)給程序集添加Office Server的引用,主要使用配置文件類,如下圖:

image

3) 參照之前的例子,再給程序加上System.Web的引用,主要用來使用ServerContext對象。

 

5 給程序加上代碼

1) 給程序加上引用行,如下示例:

//以下需要手動加上去的
using System.Web;
using Microsoft.Office.Server;
using Microsoft.Office.Server.Administration;
using Microsoft.Office.Server.UserProfiles;
using Microsoft.SharePoint;

2) 在Loading事件中加入如下的代碼:

            if (this.New) //如果是新的表單,就設置初始值
            {
                //取得當前用戶在配置文件中FullName的值
                using (SPSite site = new SPSite("http://oss")) //請把這個值換成你的SharePoint網(wǎng)站的URL
                {
                    //以下根據(jù)當前用戶登錄名來取得用戶的配置文件
                    ServerContext context = ServerContext.GetContext(site);
                    UserProfileManager profileManager = new UserProfileManager(context);             
                    UserProfile u = profileManager.GetUserProfile(this.Application.User.LoginName);
                    string fullName = u[PropertyConstants.PreferredName].Value.ToString();

                    XPathNavigator mainNavigator = this.MainDataSource.CreateNavigator();   //取得主數(shù)據(jù)源的檢索游標

                    //設置申請人的節(jié)點值為用戶名,即配置文件中PreferredName(名稱)的屬性                   
                    mainNavigator.SelectSingleNode("/my:myFields/my:申請人", this.NamespaceManager).SetValue(fullName);  
                   
                    //根據(jù)姓名從SharePoint的部門列表來查詢部門
                    using (SPWeb web = site.AllWebs["/demo"]) //請把這個換成你的SharePoint網(wǎng)站的URL
                    {
                        SPQuery query = new SPQuery();
                        //因為姓名字段,是從標題更改而來的,所以其內(nèi)部名稱為Title
                        query.Query = "<Where><Eq><FieldRef Name='Title'/><Value Type='Text'>" + fullName + "</Value></Eq></Where>"; 
                        SPList list = web.Lists["部門人員"];
                        SPListItemCollection items = list.GetItems(query);
                        if (items.Count > 0) //如果查找到了就設置部門的值
                            mainNavigator.SelectSingleNode("/my:myFields/my:申請部門", this.NamespaceManager).SetValue(items[0]["部門"].ToString ());  
 
                    }

                } 
            }
        }
 
 

6 調(diào)試看結(jié)果

請按image 可以看看調(diào)試結(jié)果,如下圖:

image

 

三、 部署模板到文檔庫

程序都調(diào)試好了,應該部署到文檔庫中,如何部署呢?

1. 啟動文件菜單中的發(fā)布向?qū)В涯0灏l(fā)布到C:盤的根文件夾下,如下圖:

image

 

image

image

image

image

 

2 把剛才發(fā)布的模板上傳到管理中心,并激活到網(wǎng)站集

進入管理中心,的“應用程序管理”頁面,如下圖點擊進入上傳頁面:

image

 

image

 

點擊上傳后,再點擊確定,進入模板的列表頁面,如下圖把這個模板激活到網(wǎng)站集:

image

在配置頁面里,如下圖配置好使用這個模板的網(wǎng)站集:

image

3 設置文檔庫

1)首先打開第一步創(chuàng)建的“采購申請”文檔庫的高級設置,打開內(nèi)容類型管理,并配置為網(wǎng)頁顯示這個表單庫如下圖:

image

 

2)如下圖添加“采購申請單”內(nèi)容類型:

image

 

如下圖把采購申請單添加進入右邊

image

結(jié)果如圖:

 

image

 

 

 

 

 

 

 

 

 

 

 

 

3)把這個內(nèi)容類型設置為唯一模板,并把原有的表單模板刪除掉,

點擊“更改’新建’按鈕的順序和默認內(nèi)容類型”,

image

 

采購申請單,設置為第1內(nèi)容類型,如下圖:

 

image

點擊進入表單內(nèi)容類型的設置界面,點擊刪除:

image

 

四、測試結(jié)果

如下圖,點擊新建

image

 

結(jié)果如下圖,一切正常:

image

    相關評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    第 1 樓 山東淄博電信 網(wǎng)友 客人 發(fā)表于: 2013/1/15 8:58:58
    不錯

    支持( 0 ) 蓋樓(回復)

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)