2011-12-15 106 views
0

IM完全新的SharePoint和C#的统计数据,但我得做IM告诉现在:P创建SharePoint列表

目前我想建立一个显示项目statusses的一些统计数据的web部件。

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

ProjectReport包含项目参考

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

号码具有状态RED的项目数量:$ x 状态黄色的项目数量:$ x 状态为绿色的项目数量:$ x

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

现实思考:

  • 通过所有ProjectStatus
  • 随着如果当前项目在数组中存在
  • 检查,如果目前的状况是低于存储在阵列中的状态更新的每个状态检查
  • 如果是这样,将其替换,如果不能继续

虽然我真的被困在建立数组我wan吨。我个人来自PHP和IM真的不喜欢与不同类型的多维数组的: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"); 
    } 
} 

正如你所看到的,其明显对我来说,那就是,是不是加工。我只是非常坚持要搞清楚这件事情。

如果有人能够指引我走向正确的方向,那将会很棒。我需要寻找什么,这是'做我想做什么'的方式'有什么好处 - 有没有一种更简单的解决方案,我根本不知道?

无论如何,在此先感谢!

山姆

回答

1

你会使用键集合构建,如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); 
      } 
     } 
+0

谢谢。这是所有我知道什么是可能的问题。这几乎是我需要的。非常感谢! – Sam 2011-12-15 20:37:06

相关问题