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

Issue in setting unique ID in Domino designer

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

关注我的

我在设置唯一 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 的回答

Server : Local

DBname : DBintro

view name : testview id - field in the form (which is set when required to save in DB)

我得到的错误

Field id ! does not exist

请帮我摆脱这个.. 谢谢

编辑: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
);

也许重新安排逻辑可能会有所帮助 - 在 Id 字段的公式中试试这个。制作字段 "Computed When Composed"(在属性框中的字段输入器旁边 - 这意味着它仅在首次创建文档时进行评估,并且在保存检测 @IsNewDoc :-D 之后保持不变):

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

如果文档不是新的,您不必担心 id 字段会自行返回,因为在第一次保存后计算的组合字段停止计算。

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

将字段类型 "testid" 设置为 "Number"
将公式更改为

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

将列排序设置为 "Descending"

您的 dbColumn 的公式有误。服务器名和文件名之间应该有一个冒号,而不是分号。当然,没有名为"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
);