0

私はドミノ デザイナーとロータス スクリプトの初心者です。

私はコンボボックスを持つフォームを持っています.コンボボックスにはコンボボックスの式があります:

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

IDとその名前を関連付けたい

例:id :1 name(コンボで表示する) :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)

Lotus Notes Design のトレーニングはすべて基本的なものであるため、Lotus Notes の仕組みを理解したことがあれば、ぜひ受講してください。

上記の式は多くの点で悪いです:

  1. 「NoCache」の使用は、実際のパフォーマンスキラーです。大きなアプリケーションでは行わないでください
  2. 検索を 1 回ではなく 2 回行うと、応答時間が 2 倍になります
  3. すべてのルックアップにはエラー処理が必要です。そうしないと、エラーが発生した場合にフォームが開かなくなります。
  4. DBColumn の戻り値が 32k を超えるデータ (大きなリスト) である場合、Lotus Notes のフィールド制限により、このすべてが失敗します。

これを行う「ベスト プラクティス」の方法 (考えられる 32k エラーを無視する) は次のようになります。

数式を使用して (非表示の) 3 番目の列を持つビューを作成するName + "|" + ID

次のコードを使用します。

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