创建SharePoint列表统计信息

本文关键字:信息 统计 列表 SharePoint 创建 | 更新日期: 2023-09-27 18:17:53

我对SharePoint和c#完全陌生,但我现在必须按照我说的去做:p

目前我想建立一个webpart,显示项目状态的一些统计信息。

我们建立了两个列表:一个项目列表ProjectReports的另一个列表

ProjectReport包含对Projects的引用

我们希望能够显示以下内容:

状态为RED的项目数:$x状态为黄色的项目数量:$x绿色项目数量:$x

为此,我们只需要检查所有项目的最新项目报告。

当前的想法:

  • 查看所有项目状态
  • 每个状态检查当前项目是否存在于数组
  • 检查当前状态是否比存储在数组中的状态更新
  • 如果有,替换它,如果没有继续

虽然我真的被困在构建我想要的数组。就我个人而言,我来自PHP,我真的不喜欢不同类型的多维数组:P

我做了什么:

ArrayList arrayItems = new ArrayList();
foreach(SPListItem item in allData) 
{
   if(arrayItems.Contains(item.GetFormattedValue("Name"))) {
     // later
   } else {
     // Here i need to create the new array, i want to store it like:
     //arrayItems.add("Name", "latestDate");
   }
}

正如你所看到的,对我来说也很明显,这是行不通的。我只是想把这件事弄清楚。

如果有人能给我指出正确的方向就太好了。我必须寻找什么,这种"做我想要实现的事情的方式"是否有任何好处-是否有一种我根本不知道的更简单的解决方案?

无论如何,提前感谢!

山姆

创建SharePoint列表统计信息

您最好使用键式集合结构,例如Dictionary。

使用你的代码:

        var cItems = new System.Collections.Generic.Dictionary<string, DateTime>();
        foreach (SPListItem item in allData)
        {
            string sName;
            DateTime dtDate;
            sName = item.GetFormattedValue("Name");
            dtDate = (DateTime)item.GetFormattedValue("latestDate");
            if (cItems.ContainsKey(sName))
            {
                // later
            }
            else
            {
                cItems.Add(sName, dtDate);
            }
        }