2010-04-13 88 views

回答

1
using (SPWeb web1 = properties.Feature.Parent as SPWeb) 
{ 
    using (SPSite objSite = new SPSite(web1.Site.ID))        
    { 
     using (SPWeb web = objSite.OpenWeb(web1.ID)) 
     { 
      SPListTemplate template = null; 
      foreach (SPListTemplate t in web.ListTemplates) 
      { 
       if (t.Type.ToString() == "432") 
       { 
        template = t; 
        break; 
       } 
      } 
      Guid gG = Guid.Empty; 
      SPList list = null; 
      string sListTitle = "Status List"; 
      SPSecurity.RunWithElevatedPrivileges(delegate 
      { 
       try 
       { 
        web.AllowUnsafeUpdates = true; 
        gG = web.Lists.Add(sListTitle, sListTitle, template); 
        list = web.Lists[gG]; 
       } 
       catch 
       { 
        // exists 
        list = web.Lists[sListTitle]; 
       } 
       SPContentType ct = 
        list.ContentTypes["SharePoint List based Status Indicator"]; 

       //declare each item which u want to insert in the kpi list 
       SPListItem item1 = list.Items.Add(); 

       SPFieldUrlValue value1 = new SPFieldUrlValue(); 

       item1["ContentTypeId"] = ct.Id; 
       item1.SystemUpdate(); 
       item1["Title"] = "Project Specific Doc.Lib.Rating"; 
       value1.Url = web.Url + "/Lists/Project Specific Documents"; 
       item1["DataSource"] = value1; 
       item1["Indicator Goal Threshold"] = "3"; 
       item1["Indicator Warning Threshold"] = "3"; 
       item1["Value Expression"] = 
        "Average;Average_x0020_Rating:Number"; 
       item1.SystemUpdate(); 
      } 
     } 
    } 

average是計算值和列是Average_x0020_Rating

0

這是爲我工作:

private void CreateKPIDocumentLibrary(List<PageStructure> list) 
    { 
     SPListTemplate kpi = null; 
     foreach (SPListTemplate t in web.ListTemplates) 
     { 
      if (t.Type.ToString() == "432") 
      { 
       kpi = t; 
       break; 
      } 
     } 

     foreach (PageStructure st in list) 
     { 
      bool find = false; 
      string[] periodType = st.tag.Split('_'); 
      string name = periodType[0] + "-" + st.effdate + "-" + st.template; 
      SPListCollection lstCol = site.OpenWeb().GetListsOfType(SPBaseType.GenericList); 
      foreach (SPList l in lstCol) 
      { 
       string title = l.Title; 
       if (title == name) 
       { 
        find = true; 
        break; 
       } 
      } 

      if (find == false) 
      { 
       Guid docLibID = web.Lists.Add(name, "", kpi); 
      } 

      SPList itemList = web.Lists[name]; 
      SPListItem item = itemList.Items.Add(); 
      SPFieldUrlValue value = new SPFieldUrlValue(); 
      item["Title"] = st.tag; 
      value.Url = st.docUrl; 
      item["DetailLink"] = st.url; 
      item["DataSource"] = value; 
      item["Indicator Goal Threshold"] = "2"; 
      item["Indicator Warning Threshold"] = "1"; 
      item["View Name"] = "All Documents"; 
      item.SystemUpdate(); 
      web.Update(); 
      KpiObject kp = new KpiObject(name, SPContext.Current.Site.Url + itemList.DefaultViewUrl); 
      this.kpiList.Add(kp); 
     } 
    } 
相關問題