如何在sharepoint 2010列表中自动增加字段?

时间:2016-02-25 18:32:16

标签: sharepoint sharepoint-2010 sharepoint-designer sharepoint-workflow infopath2010

我已经在一个项目上工作了一段时间而且我被卡住了。

我有一个用于向列表中添加新数据的表单。在那种形式中,我创建了一个数字生成器,它根据用户从多个筛选列表中选择的条件进行更改。

例如,如果我要问杰克住在哪里,第一个字段会询问他住在哪个大陆,然后下一个字段会过滤该大陆上的国家,其次是时区,州,最后是城市。

最终的下降看起来像这样:北美 - >美利坚合众国 - >山地标准时间 - >科罗拉多州 - >丹佛。数字生成器根据Jack的选择将值连接成一个字符串。因此,北美将使用2填充发生器,美国将使用7,依此类推,直到我生成数量为27032.我需要这个数字是完全唯一的。因此,如果Jill(也住在丹佛)填写表格,生成的号码将与Jacks不同。

杰克 - 北美 - >美利坚合众国 - >山地标准时间 - >科罗拉多州 - >丹佛 - 自动生成的数字:27032

吉尔 - 北美 - >美利坚合众国 - >山地标准时间 - >科罗拉多州 - >丹佛 - 自动生成的数字:27032但它自动增加到27033,因为27032已被采用。

我知道ID字段已经拥有唯一值,但大多数情况下,数字生成器不会填充连续数字(这是故意的,并且基于提供的标准)。如果已在Sharepoint列表中找到生成的数字,我只需要生成的数字递增,并继续检查(和递增),直到生成的数字最终唯一,然后最终将增加的数字保存在列表中。

我必须实现的工具包括Sharepoint 2010,Sharepoint Workflows和Infopath 2010.您可以提供的任何帮助都将非常有用。

谢谢,

约翰

1 个答案:

答案 0 :(得分:0)

有两种方法可以解决这个问题

  1. 使用默认ID列以及您正在生成的组合,即27032
  2. 127032 [1:ID 27032:Combo]将其存储在WF项目添加事件的计算列或更新文本列中

    1. 如果您不想要ID列,则创建名为Counter list的列表并保留一条记录以维护顺序计数器,例如:000001
    2. 在列表中添加记录后,在项目添加事件中,工作流将触发并将读取当前计数器值,即000001,并将读取组合值27032,并将组合字符串列在列列中作为唯一ID [27032000001]。接下来,您将更新计数器000002。

      唯一的缺点是,一旦生成了唯一ID,用户就无法修改以表格形式输入的值。