Xpages 使用公式语言返回列值

Xpages 使用公式语言返回列值,xpages,lotus-notes,xpages-ssjs,lotus,lotus-formula,Xpages,Lotus Notes,Xpages Ssjs,Lotus,Lotus Formula,我试图返回tNames变量中存储的所有值 字段中存在值。已选择“将多值显示为单独条目”,但未返回任何名称 下面是示例代码: tNames := ""; @For(n := 0; n <= QuestionCount - 1; n := n + 1; tNames := tNames + ", " + @Implode(@GetField("ChecklistContact_" + @Text(n));",") ); @Trim(tNames) 我不相信n明确地说了这一点,但我认为@

我试图返回tNames变量中存储的所有值

字段中存在值。已选择“将多值显示为单独条目”,但未返回任何名称

下面是示例代码:

tNames := "";
@For(n := 0; n <= QuestionCount - 1; n := n + 1;
tNames := tNames + ", " + @Implode(@GetField("ChecklistContact_" + 
  @Text(n));",")
);
@Trim(tNames)
我不相信n明确地说了这一点,但我认为@GetField在列值公式中不起作用。文档表示它在“当前文档”中工作,并且在视图中执行公式时没有当前文档

假设您知道N的最大值,那么可以使用一个简单的列表:

ChecklistContact_1 : ChecklistContact_2 : ChecklistContact_3 : ... : ChecklistContact_N
如果N很大,这将需要大量的键入,但您只需执行一次,复制、粘贴和编辑数字将使其运行得非常快。

我不相信N明确地说了这一点,但我认为@GetField在列值公式中不起作用。文档表示它在“当前文档”中工作,并且在视图中执行公式时没有当前文档

假设您知道N的最大值,那么可以使用一个简单的列表:

ChecklistContact_1 : ChecklistContact_2 : ChecklistContact_3 : ... : ChecklistContact_N

如果N很大,这将需要大量的键入,但您只需执行一次,复制、粘贴和编辑数字将使其运行得非常快。

可能使用您的循环按照Richard的建议创建字段名列表,然后显示tNames

可能使用您的循环按照Richard的建议创建字段名列表,然后显示tNames

这听起来可能不雅观,但如果可以,请在表单中使用列公式创建一个新的计算字段,然后在列中使用该新字段。此外,从性能的角度来看,您会更好。

这听起来可能不太雅观,但如果可以,请在表单中使用列公式创建一个新的计算字段,然后在列中使用该新字段。另外,从性能的角度来看,您会更好。

感谢您的提示,我在上面添加了一个新脚本,它使用@GetField()只返回第一个索引,但我希望返回全部。我在上面添加了一个脚本,它返回所有必需的值,但我不希望硬编码字段名。感谢您的帮助。您可以按照shillem的建议,为视图中的文档在表单中添加计算字段。你与get field的循环策略将在那里起作用。但是,在视图级别上看到结果之前,您必须刷新并重新保存所有文档。如果有大量文档,并且用户有副本,他们将受到打击。未读标记也将更改。此外,确保在“计算”字段中选中了“多值”复选框。这是我能想到的避免硬编码的唯一方法。感谢您的提示,我在上面添加了一个新脚本,它使用@GetField()只返回第一个索引,但我希望返回全部。我在上面添加了一个脚本,它返回所有必需的值,但我不希望硬编码字段名。感谢您的帮助。您可以按照shillem的建议,为视图中的文档在表单中添加计算字段。你与get field的循环策略将在那里起作用。但是,在视图级别上看到结果之前,您必须刷新并重新保存所有文档。如果有大量文档,并且用户有副本,他们将受到打击。未读标记也将更改。此外,确保在“计算”字段中选中了“多值”复选框。这是我能想到的避免硬编码的唯一方法。我不相信这是可能的。顺便说一句,除了通过硬编码名称引用字段外,无法访问列公式中的字段值。我认为这是不可能的。另外,除了通过硬编码名称引用字段外,无法访问列公式中的字段值。
ChecklistContact_1 : ChecklistContact_2 : ChecklistContact_3 : ... : ChecklistContact_N