如何在Combobox Domino designer(lotus脚本)中关联id和它的值

How to associate id and its value in Combobox Domino designer(lotus script)

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

我有一个表单,其中有一个组合框,在组合框中我有一个组合框的公式:

(@DbColumn("" : "NoCache"; ""; "myview"; 2)

现在我要关联ID和它的名字

Example : id :1 name(to display in combo) :Benz

      id :2  name : Fiat
      id :3  name : Yamaha

现在我的组合框必须只显示 fiat,yamaha,benz 但必须保存相应的 id(不是名称)

目前我只显示名字和保存名字(我想link它到id)

我怎样才能做到这一点?

您的视图需要包含 Name|ID 格式的值(这是一个竖线符号)才能实现您想要的效果。

列值:

Benz|1
Fiat|2
Yamaha|3

对您的评论的回应:最佳做法(性能方面)是,使用公式 Name + "|" + ID 在您的视图中创建一个单独的列(如果您使用用户视图和 DBColumn,则可以隐藏它,顺便说一句,什么是不好的做法)。

如果您不想这样做,那么您的公式可能如下所示:

_names := @DbColumn("" : "NoCache"; ""; "myview"; 2);
_ids := @DbColumn("" : "NoCache"; ""; "myview"; 1);
_names + "|" + @Text(_ids)

如果您曾经了解 Notes 的工作原理,那么您真的应该接受 Lotus Notes Design 方面的培训,因为这些都是基础知识。

上面的公式在很多方面都不好:

  1. "NoCache" 的使用是真正的性能杀手。不要在大型​​应用程序中这样做
  2. 进行两次查找而不是一次查找会使您的响应时间加倍
  3. 每次查找都必须进行错误处理,否则如果出现错误,您的表单将无法再打开。
  4. 如果您的 DBColumn 的 return 数据超过 32k(大型列表),由于 Lotus Notes 中的字段限制,这整个事情都会失败

一个 "best practice" 方法(忽略可能的 32k 错误)是:

使用公式 Name + "|" + ID

创建一个包含(隐藏的)第三列的视图

使用此代码:

_view := "myview";
_col := 3;
_lkp := @DBColumn( "" : "Cache" ; "" ; _view; _col );
@If( @IsError( _lkp ) ; "" ; _lkp )