2011-03-15 112 views
1

(使用SharePoint 2010)我可以使用Visual Studio在SharePoint中循环列表吗?

嗨,大家好,我会尽量给出足够的背景以使其有意义。

基本上我们有一个客户名单与他们的电话号码和其他信息。此列表按逾期日期排序。我们有电话销售人员在这个列表中打电话给客户。到目前为止,我们只有一个电话推销员打电话给列表中的客户,这没有问题。但是现在我们希望在名单中有两个名叫客户,并且可能在将来有更多。当然,问题是我们不希望他们同时打电话给同一个客户。

我们可以通过给列表中的每个客户分配tm来解决这个问题,然后他们只能看到他们分配给的客户。但是因为我们想以某种顺序给他们打电话,所以我们也想按顺序分配电话号码,例如:

假设我们有3个电话。该列表将理想如下所示(TM1,2和3是将被分配给该客户的TM的):

  • 卡斯特#1 - TM1
  • 卡斯特#2 - TM2
  • 卡斯特# 3 - TM3
  • 卡斯特#4 - TM1
  • 卡斯特#5 - TM2
  • 卡斯特#6 - TM3
  • 卡斯特#7 - TM1
  • 卡斯特#8 - TM2 ...等等。

现在的诀窍是,有些日子我们可能会有1个电话或3个电话。因此,每天早上开始之前,管理员必须将呼叫分配给不同的tm。当列表中有1000多个cusomter时,这会变得棘手。当然,我们可以将列表切换到数据视图,并从Excel工作表中复制和粘贴值以进行分配。或者我们可以在Access中打开它并运行一个脚本。但有没有一种方法可以在Visual Studio中编写工作流程(或其他)来循环访问列表并执行此操作?我需要为它提供一个数字,表示将要调用多少个tm,然后它将遍历客户列表并以上面指定的方式分配tm。

如果你能想到更好的方法来做到这一点,我也接受其他想法。提前致谢!

+0

链接回我以前对同一主题的答案:http://stackoverflow.com/questions/5477267/sharepoint-2010-multiple-users-accessing-same-list-issue/5485793#5485793 – 2011-03-30 11:43:06

回答

1

您可以绝对循环列表中的项目。这里是你可以做到这一点的一种方式的示例:

string[] tms = new string[] { "TM1", "TM2", "TM3" }; 

SPList list = SPContext.Current.Web.Lists["My List"]; 
SPListItemCollection items = list.Items; 

for (int i = 0; i < items.Count; i++) 
{ 
    SPListItem item = items[i]; 
    item["AssignedTM"] = tms[i % tms.Length]; 

    item.Update(); 
} 

剩下的唯一问题是如何执行这个代码。你可以把它放在一个控制台应用程序中并在服务器上运行(不推荐),或者你可以把它放在一个webpart中,将它粘贴在一个页面上,授予管理员访问该页面的权限(可能带有一个附带的表单),以及有(他/她)每天执行它(或者当数据改变时)。

+0

真棒负鼠,凯尔!我完全不熟悉SharePoint开发,我从字面上不写一行SharePoint代码。我喜欢将这种代码添加到只有管理员才能访问的Web部件的想法,这将非常完美! Visual Studio是否内置了模块来构建SP的Web部件?如果是这样,你有任何资源建议,我可以看看开始?或者只是视觉工作室的火,并尝试一下吗?谢谢一堆! – 2011-03-15 18:22:28

+0

你是否熟悉在vanilla ASP.NET中创建用户控件?如果是这样,您就知道构建Web部件所需了解的一切。在Visual Studio中创建一个新的Visual Web部件。在这里看到更多的信息:http://msdn.microsoft.com/en-us/library/ff597539.aspx – 2011-03-15 18:56:30

+0

这是一段时间,但我认为我可以整理出来,谢谢你的链接! – 2011-03-15 20:40:58

相关问题