1

根据 Lotus Notes 的文档,包含具有常量值的列或 UI 仅用作其数据的视图,该列不会通过视图条目的 getColumnValues 方法包含在列值向量中。因此,如果您在视图中定义了 5 列,并且其中一列是常量值,则视图条目仅返回 4 列值的向量。

尽管从视图索引效率 POV 可以理解这一点,但不幸的是,它使开发人员在分析视图及其数据的元结构时面临重大困境。

IBM 一直未能(多年来?)提供一种方法来允许开发人员查询 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

使用 NotesView.getColumns,然后使用 NotesViewColumn.isFormula()、isHidden() 和 isField() 来确定显示哪些列以及它们的值是什么。当您尝试确定列具有固定值时要非常小心...

于 2012-06-12T15:38:31.017 回答