在 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
);
我是 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
);