在Domino设计器中设置唯一ID的问题

时间:2015-01-21 14:08:57

标签: unique lotus-notes lotus-domino lotus lotus-formula

我是Domino设计师和Lotus脚本的新手,

关注second question

我在设置唯一ID(表单中的id字段)方面存在一些问题。

我的Id字段值公式:

  

T_List:=@DbColumn("" : "NoCache"; "Local"; "DBintro";"testview"; 1); @If(@IsNewDoc & @Elements(T_List)=0;1;@IsNewDoc & !@IsError(T_List);@Subset(T_List;1) + 1;id)

我在本地拥有数据库(没有共享)。

引用this link答案AndrewB

  

服务器:本地

     

DBname:DBintro

     

查看名称:testview   id - 表单中的字段(在需要保存在DB中时设置)

错误我正在

  

字段ID!不存在

请帮我摆脱这个.. 感谢

编辑:1更新代码

T_List:=@DbColumn("" : "NoCache"; "Local"; "DBintro";"testview"; 1);
T_List:=@Sort(T_List; [DESCENDING]);
@if(@Iserror(T_List);
  1;
  @Subset(T_List;1)+1
);

4 个答案:

答案 0 :(得分:2)

将字段“testid”的类型设置为“Number”
将公式更改为

_List:=@DbColumn("" : "NoCache"; ""; "testview"; 1);
@If(    @IsError(_List);
            1;
        _List = "";
            1;
            @Subset(_List; 1) + 1
)

将列排序设置为“降序”

enter image description here

答案 1 :(得分:1)

也许重新安排逻辑可能有所帮助 - 在Id字段的公式中尝试这一点。使字段“Computed When Composed”(在属性框中的字段typer旁边 - 这意味着它仅在首次创建文档时进行评估,并在保存后检测@IsNewDoc :-D后保持不变):

T_List:=@DbColumn("" : "NoCache"; "Local"; "DBintro";"testview"; 1);
@if(@Iserror(T_List);
  1;
  @Subset(T_List;1)
);

如果doc不是新的,你不必担心id字段返回自己,因为计算的when when字段在第一次保存后停止评估。

答案 2 :(得分:1)

dbColumn的错误公式。 servername和filename之间应该有一个冒号,而不是分号。当然,没有名为" Local"的服务器。你只需要使用""为了本地。此外,文件名是完整的文件名 - " DBintro.nsf",而不是" DBintro"。

T_List:=@DbColumn("Notes":"NoCache"; "":"DBintro.nsf";"testview"; 1);
T_List:=@Sort(T_List; [DESCENDING]);
@if(@Iserror(T_List);
  1;
  @Subset(T_List;1)+1
);

答案 3 :(得分:0)

您是否将唯一ID设置为文本字段,因为我发现公式必须转换为文本值而不仅仅是唯一的文档ID。