2013-06-24 18 views
1

我正在使用xpages編寫項目。 我想創建一個在創建新文檔時遞增的計數器。 我已經創建了一個表單,其中包含一個初始化爲1的字段引用。如何才能恢復第一行的第一個值,因此是1,並添加1以獲取數字序列。我試過getfirstitem(),但是這是行不通的。 我也希望每一個新的一年計數器重新啓動在0.使用xpages編號

回答

4

一旦你想在多個服務器上運行你的應用程序或脫機(只是等待它,它會發生在你的應用程序中),序列編號是一個小挑戰太)。話雖如此,有一些採取多年來的方法:

  • 使用@Subset(@DbColumn(@DbName, 「SomeViewSortedDecendingByNumber」,1),1)+1;問題:如果2個用戶打開文檔並且未保存它
  • 使用applicationScope變量,您在保存之前增加(不要忘記該函數的​​關鍵字)。問題:值僅在保存時顯示 - 否則如果用戶不保存文檔,則會出現「漏洞」。
  • 使用只能在一臺服務器上運行的代理。這樣可以解決多服務器和離線使用問題。問題:編號顯示比文檔創建晚
  • 使用Web服務(用Notes編寫)提供下一個可用編號。您面臨同樣的問題:「何時提供」(打開或保存文檔),「如果用戶不保存,不會離線使用
  • 不要存儲編號,但使用視圖的編號機制來顯示數

究竟什麼是你的使用情況?告訴多一點!

+0

我的目標是爲客戶創造票單票號爲每個新票,1例Ticket0001/2013- > Ticket0002/2013的價值增量。並在更改期間返回值0001示例Ticket000211/2013 - > Ticket00001/2014 – user2452344

+0

您實際上會向用戶公開票務頻率。我會使用@unique。但在這裏選擇 – stwissel

+0

以上的任何方法。當用戶詢問連續數字時,他們通常意味着他們想要獨一無二的東西,這不是不可能提及的。人們想說「你看到門票83了嗎?」當提及票證12499304083時。如果@Unique對你來說太隨機,你可以使用一個時間戳到毫秒,附加用戶的首字母縮寫。 –