开发者

How do I create a KPI list programmatically in SharePoint?

I want to be able to create a KPI List on my MOSS 20开发者_开发问答07 installation via the object model. Is this possible?


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 is the calculation value and the column is Average_x0020_Rating.


http://alonsorobles.com/2010/03/17/important-custom-sharepoint-list-template-notes/

I found that the Template ID for a Status Indicator (KPI List) is 432. Google for this to find some info on creating a new list. I'm needing to read up what properties I can set on this list.


this is work for me:

   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);
        }
    }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜