0

我一直在做一個項目一段時間,我卡住了。如何自動增加SharePoint 2010列表中的字段?

我有一個表單用於添加新的數據到列表中。在這種形式下,我創建了一個數字生成器,根據用戶從多個過濾列表中選擇的條件進行更改。例如,如果我要問傑克住在哪裏,第一個領域會問他住在哪個大陸,然後下一個領域過濾那個大陸上的國家,接着是時區,州,最後是城市。

下降最終看起來像這樣:北美洲 - >美國 - >山區標準時間 - >科羅拉多州 - >丹佛。數字生成器根據Jack的選擇將值連接成一個字符串。因此,北美將使用2來填充發生器,美國會給出7,等等,直到我產生27032個數。我需要這個數字是完全唯一的。因此,如果吉爾(他也住在丹佛)填寫表格,生成的數字將與傑克不同。

傑克 - 北美 - >美利堅合衆國 - >山地標準時間 - >科羅拉多 - >丹佛 - 自動生成的編號:27032

吉爾 - 北美 - >美利堅合衆國 - >山標準時間 - >科羅拉多州 - >丹佛 - 自動生成號碼:27032,但自動增加到27033,因爲27032已被佔用。

我知道ID字段已經擁有唯一的值,但大多數時候,號碼生成器不會填充連續的數字(這是故意的,並基於提供的標準)。如果在Sharepoint列表中已經找到生成的數字,並且繼續檢查(並遞增)直到生成的數字最終是唯一的,那麼我只需要生成的數字就可以遞增,然後最後將增加的數字保存在列表中。

我必須做的工具是Sharepoint 2010,Sharepoint Workflows和Infopath 2010.任何幫助,你們可以提供將是非常有用的。

謝謝

約翰

回答

0

有兩種方法來處理這個

  1. 與組合一起使用默認ID列的你正在生成即27032

127032 [1:ID 27032:Combo]將其存儲在計算列中或更新文本列中的項目添加事件WF

  • 如果你不想ID列然後創建列表名爲Counter的名單,只保留一個紀錄保持比如順序計數器:一旦你在你的列表中添加記錄000001
  • 在項目添加事件時,工作流程將觸發並讀取當前計數器值(即000001),並將讀取組合值27032,並將組合字符串存儲在列表列中作爲唯一ID [27032000001]。接下來您將更新計數器到000002.

    唯一的缺點是一旦生成唯一ID,用戶無法修改在表單中輸入的值。

    +0

    感謝您的回答Vailbhav, 這將工作得很好,如果數字是連續的。我被迫使用一個數字生成器,它根據特定的標準填充數字,這意味着這些值幾乎不會是連續的。我也只允許更改數字的最後三個值,並且必須在每次增量後檢查列表以確保新值是唯一的。如果不是,我需要再添加一個,然後重新檢查。類似於遞歸函數。 – John

    +1

    使用我建議的第二種方法:如果數字生成器根據第一個請求的標準爲您提供27032,您將從SP計數器列表中獲得000001,因此唯一的組合是27032000001.一旦將記錄添加到列表中。工作流程增量爲000001-> 000002。對於下一條記錄,讓它成爲任何組合XXXXX000002將是唯一值。 – Vaibhav

    相關問題