0

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

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

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

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

示例:id:1 名称(组合显示):Benz

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

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

目前我只显示名称并保存名称(我想将其链接到 id)

我怎样才能做到这一点?

4

1 回答 1

3

您的视图需要包含格式 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 设计方面的培训,因为这些都是基础知识。

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

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

执行此操作的“最佳实践”方法(忽略可能的 32k 错误)是:

使用公式创建具有(隐藏的)第三列的视图Name + "|" + ID

使用此代码:

_view := "myview";
_col := 3;
_lkp := @DBColumn( "" : "Cache" ; "" ; _view; _col );
@If( @IsError( _lkp ) ; "" ; _lkp )
于 2015-01-22T11:53:28.750 回答