1

Lotus Notes のドキュメントによると、データとして定数値または UI のみの機能を持つ列を含むビューは、ビュー エントリの getColumnValues メソッドを介して列値のベクトルに含まれません。したがって、ビューに 5 つの列が定義されていて、1 つの列が定数値である場合、ビュー エントリは 4 つの列値のベクトルのみを返します。

これは、ビュー インデックスの効率の POV から理解できる限りではありますが、残念ながら、ビューとそのデータのメタ構造を分析する際に、開発者に重大なジレンマをもたらします。

IBM は (何年もの間?) 開発者が columnvalues のベクトルでどの列が欠落するかを判断するために viewColumns 構造を調査できるようにする方法を提供できませんでした。viewentry オブジェクトの getColumnValues メソッドから省略される列を決定するプログラム的な手段はありますか?

4

2 に答える 2

1

代わりに、列の定数値を式として扱うようにビューをだますことができます。空の文字列を追加するか、 @Text 式でラップするのと同じくらい簡単だと思います。例えば:

"Constant Value"  // won't be returned by NotesViewEntry's getColumnValues() method

@Text("Constant Value")  // should be returned

"Constant Value" + ""  // should also be returned

それができない場合は、NotesView クラスを介して列自体にアクセスできます。列の値に対して得られるものと、実際に存在する列を比較できるはずです。ビューに存在する列のリストと値のない列を比較することで、どの列が省略されているかがわかります。

または、列自体を調べて、定数式を持つ列または「UI のみ」の型を確認することもできます。残念ながら、これ以上の方法はないと思います。

于 2012-06-12T15:13:58.833 に答える
1

Use NotesView.getColumns, and then NotesViewColumn.isFormula(), isHidden() and isField() to determine what columns are shown and what their values are. Be very careful when you try to determine that a column has a fixed value...

于 2012-06-12T15:38:31.017 に答える