2010年3月4日 星期四

VSTO Integrated Moss 2007 Design (VSTO 2005 整合MOSS 2007網站設計)

存取Moss網站時,瀏覽器只是其中一個常用的Client,另一個功能強大的前端程式其實是Officr,如:Word、Excel、Outlook等等,而Office軟體這個前端應用程式搭配Moss Server才是真正的完整整合,因為一般使用者使用Office時,並不需要另外做訓練,就可以駕輕就熟的使用Office來建立Moss網站,或是上傳文件資料,或是下載資料等等

然而,有時候當使用者使用這些Office時,假設有一些特殊需求無法達成,而必須特過客製化程式來達到目的時,那麼開發VSTO整合Moss就變成一個重要的議題了,在這裡亞當斯要介紹如何透過VSTO的應用程式來把Moss整合到應用程式中。

以下為開發的幾個主要簡易步驟,提供給各位參考:

1. 先執行Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System(CH).exe (網址為:http://www.microsoft.com/downloads/details.aspx?FamilyId=5E86CAB3-6FD6-4955-B979-E1676DB6B3CB&displaylang=en),安裝之後,VS2005就可以建立開發VSTO的專案範本。

2. 新增一個「Excel增益集」專案,叫做「ExcelAddIn」

3. 在專案按右鍵選擇加入參考,將Microsoft.SharePoint.dll加入參考

clip_image002[7]

4. 在「ExcelAddIn」專案按右鍵-->加入-->新增項目,選擇「使用者控制項」,並且命名為MOSSUserControl.cs

5. 在MOSSUserControl中設計畫面如下:

clip_image002

6. MOSSUserControl.cs中先匯入主要的命名空間:

using Microsoft.SharePoint;

using Excel = Microsoft.Office.Interop.Excel;

using Office = Microsoft.Office.Core;

7. 在buttonContact的click事件中撰寫程式,針對指定的MOSS網站取出其聯絡人清單中的資料

private void buttonContact_Click(object sender, EventArgs e)
{
    //取得MOSS網站中的聯絡人清單資料  
    SPWeb web = new SPSite(textBoxUrl.Text).OpenWeb();
    SPList list = (SPList)web.Lists["MOSS聯絡人"];
    foreach (SPListItem item in list.Items)
    {
        listBoxContact.Items.Add(item.DisplayName);
    }
}

8. 在buttonExcel的click事件中撰寫程式,將取得的聯絡人資料設定給Excel所選取的範圍(Range),程式碼如下

private void buttonExcel_Click(object sender, EventArgs e)
{
  Excel.Range RangeSelection =  (Excel.Range)Globals.ThisAddIn.Application.Selection;
   RangeSelection.Value2 = listBoxContact.SelectedItem.ToString();
}

9. 打開ThisAddIn專案下Excel資料夾中的ThisAddIn.cs檔,在ThisAddIn_Startup事件程序中,將使用者控制項透過CustomTaskPanes屬性加入Excel中。

MOSSUserControl myControl;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    … …
    myControl = new MOSSUserControl();
    this.CustomTaskPanes.Add(myControl, "Adams InsertData").Visible = true;
}

10. 建置完成,按下F5執行測試。

沒有留言: