2013-06-24 34 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对你来说太随机,你可以使用一个时间戳到毫秒,附加用户的首字母缩写。 –