كيف يمكنني إنشاء قائمة مؤشرات الأداء الرئيسية برمجياً في SharePoint؟

StackOverflow https://stackoverflow.com/questions/2633391

  •  26-09-2019
  •  | 
  •  

سؤال

أريد أن أكون قادرًا على إنشاء قائمة KPI على تثبيت MOSS 2007 عبر نموذج الكائن. هل هذا ممكن؟

هل كانت مفيدة؟

المحلول 2

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

لقد وجدت أن معرف القالب لمؤشر الحالة (قائمة KPI) هو 432. Google لهذا للعثور على بعض المعلومات حول إنشاء قائمة جديدة. أحتاج إلى قراءة الخصائص التي يمكنني تعيينها في هذه القائمة.

نصائح أخرى

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.

هذا عمل بالنسبة لي:

   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);
        }
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top