我已经在一个项目上工作了一段时间而且我被卡住了。
我有一个用于向列表中添加新数据的表单。在那种形式中,我创建了一个数字生成器,它根据用户从多个筛选列表中选择的条件进行更改。
例如,如果我要问杰克住在哪里,第一个字段会询问他住在哪个大陆,然后下一个字段会过滤该大陆上的国家,其次是时区,州,最后是城市。
最终的下降看起来像这样:北美 - >美利坚合众国 - >山地标准时间 - >科罗拉多州 - >丹佛。数字生成器根据Jack的选择将值连接成一个字符串。因此,北美将使用2填充发生器,美国将使用7,依此类推,直到我生成数量为27032.我需要这个数字是完全唯一的。因此,如果Jill(也住在丹佛)填写表格,生成的号码将与Jacks不同。
杰克 - 北美 - >美利坚合众国 - >山地标准时间 - >科罗拉多州 - >丹佛 - 自动生成的数字:27032
吉尔 - 北美 - >美利坚合众国 - >山地标准时间 - >科罗拉多州 - >丹佛 - 自动生成的数字:27032但它自动增加到27033,因为27032已被采用。
我知道ID字段已经拥有唯一值,但大多数情况下,数字生成器不会填充连续数字(这是故意的,并且基于提供的标准)。如果已在Sharepoint列表中找到生成的数字,我只需要生成的数字递增,并继续检查(和递增),直到生成的数字最终唯一,然后最终将增加的数字保存在列表中。
我必须实现的工具包括Sharepoint 2010,Sharepoint Workflows和Infopath 2010.您可以提供的任何帮助都将非常有用。
谢谢,
约翰
答案 0 :(得分:0)
有两种方法可以解决这个问题
127032 [1:ID 27032:Combo]将其存储在WF项目添加事件的计算列或更新文本列中
在列表中添加记录后,在项目添加事件中,工作流将触发并将读取当前计数器值,即000001,并将读取组合值27032,并将组合字符串列在列列中作为唯一ID [27032000001]。接下来,您将更新计数器000002。
唯一的缺点是,一旦生成了唯一ID,用户就无法修改以表格形式输入的值。