如何在Combobox Domino设计器(莲花脚本)中关联id及其值

时间:2015-01-22 11:27:29

标签: lotus-notes lotus-domino lotusscript lotus domino-designer-eclipse

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

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

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

现在我想关联ID及其名称

  

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

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

现在我的组合框必须只显示菲亚特,雅马哈,奔驰,但必须保存相应的ID(不是名字)

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

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:3)

您的视图需要包含格式名称| ID(这是管道符号)的值,以实现您想要的效果。

列值:

Benz|1
Fiat|2
Yamaha|3

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

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

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

你真的应该接受Lotus Notes Design的培训,因为这些都是基础知识,如果你曾经理解过Notes的工作方式。

以上公式在很多方面都很糟糕:

  1. 使用" NoCache"是一个真正的表演杀手。不要在大型​​应用程序中执行此操作
  2. 进行两次查找,而不是一次查询,使您的响应时间加倍
  3. 每次查找都有错误处理,否则如果出现错误,您的表单将不再打开。
  4. 如果您的DBColumn返回大于32k的数据(大型列表),由于Lotus Notes中的字段限制,这一切都将失败
  5. A"最佳实践"这样做的方法(忽略可能的32k错误)将是:

    使用公式为Name + "|" + ID

    的(隐藏)第三列创建视图

    使用此代码:

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