我在的Lotus Domino应用程序与现场如何在莲花多米诺骨牌中创建自动递增字段?
UNIDID - 值(计算)...
我想,每一个创建新条目时,此字段由1和增量新的价值应该被存储在新的记录文件..
我有一个@DbColumn公式,这将让我在UNIDID最后进入现场
mFind:= @ DbColumn(“”:“NoCache的“; @DbNa我 ; “lkpEmpMasterbyOnlyUnidCode”; 1);
如何增加mFind和 'UNIDXXXX' 的形式提交?
我在的Lotus Domino应用程序与现场如何在莲花多米诺骨牌中创建自动递增字段?
UNIDID - 值(计算)...
我想,每一个创建新条目时,此字段由1和增量新的价值应该被存储在新的记录文件..
我有一个@DbColumn公式,这将让我在UNIDID最后进入现场
mFind:= @ DbColumn(“”:“NoCache的“; @DbNa我 ; “lkpEmpMasterbyOnlyUnidCode”; 1);
如何增加mFind和 'UNIDXXXX' 的形式提交?
为了回答您的具体问题:
lastEntry:= @Subset(mFind; -1); “UNID”+ lastEntry;
但这里有几件事情你应该想想:
“UNID”是具有Notes和Domino中一个非常特殊的意义的术语。它指的是自动分配给每个数据库中每个文档的通用标识。如果您在应用程序中将此术语用于其他目的,那么当某些其他Notes专家必须查看您的应用程序时,您可能会在某一天导致混淆。
分配顺序编号,最好的办法是让服务器为你做它。也就是说,用一个空白字段保存文档,并创建一个在新文档和编辑文档上运行的代理,检查空字段,并根据需要分配下一个可用标识。由于一次只能在数据库中运行一个代理程序,并且它一次只能在一个文档上运行,所以这可确保您不可能有两个文件同时使用相同的唯一ID保存。这样做的缺点是,在代理获得运行机会之前,您无法向用户显示顺序标识。
阅读由IBMer Andre Guirard编写的comprehensive treatment of sequential numbering in Notes/Domino。他认为使用@DBColumn可以对序列编号产生重大的性能风险,并为替代方法提供算法和代码。
我使用清单2中的代码推荐了“按需生成数字”标题下的方法。文档锁定过度 - 仅仅检测编号文档是否已被修改,因为它已被读取,因此反应已足够。
这个公式是从我的技术说明数据库,生成使用窗体上的计算由当字段,以便用户可以看到数的顺序越来越多,但是当你保存文档是唯一的固定。
T_List:= @ DbColumn( “”: “NoCache的”; “”; “RefNumView”; 1); @If(@IsNewDoc & @Elements(T_List)= 0; 1; @IsNewDoc &!@IsError(T_List); @ Subset(T_List; 1)+ 1; RefNumber)
如果视图没有记录,则需要一个视图第一列按降序存储您的编号在1
数据库编号是在Notes 4.5开发的,但现在我还用它现在有8.5 Notes客户端&设计师,从来没有需要改变配方,它确实已经在所有后来的再利用,多年来多次版本。如果文档是在多个服务器上创建的,则它将不起作用,因为排定的代理是唯一获得真正唯一顺序编号的方法。
此数据库是否复制到其他服务器或本地用户系统?莲花的分布式特性可能会使这非常困难。 – 2011-12-16 10:00:56
其系统的本地用户。 – Bebo 2011-12-16 10:20:12