在文档创建时引用父字段

时间:2011-10-05 11:35:23

标签: lotus-notes lotus-formula

我有一个名为ProductFamily的表单。 它有一个名为ProductFamilyMBValues的字段,它是一个字符串列表。

我使用名为Item的表单获得了一份回复文档,该表单始终是使用上述表单的文档回复。

Item表单的dialoglist字段ItemMakeBuy具有验证公式@If(@Length(ItemMakeBuy) = 0;@Failure("You must choose a Make or Buy value");@Success)

该字段的选项是公式:@IfError(@GetDocField($ref;"ProductFamilyMBValues");"?")

我的问题是,当我创建新的Item文档时,ItemMakeBuy字段的选项未填充,似乎是因为在保存文档之前$ref字段不是填充。但是,由于我的验证公式,我无法保存它,需要输入一个值。

我如何解决这个问题?理想情况下,我想保留该字段的验证公式。

3 个答案:

答案 0 :(得分:2)

创建回复时,您是否从父级复制任何其他字段?如果将UniversalID复制到响应,则可以使用该ID,直到保存文档。如果与公式中的@IsNewDoc结合使用,则保存文档的时刻可以指向$ REF。

或类似的东西:@IfError(@GetDocField($ ref;“ProductFamilyMBValues”); @ GetDocField(ParentUNIDField;“ProductFamilyMBValues”))

答案 1 :(得分:1)

这是引用父文档的合理方式,但Notes有另一种获取父字段信息的方法。在“项目”表单中,转到表单属性,然后选择“在创建时:公式从所选文档继承值”选项。然后,您可以在Item表单中创建任意数量的字段,并使用引用ProductFamily表单中字段名称的计算字段公式,这些值将被传入。在您的情况下,您可以只是将ProductFamilyMBValues字段传递给响应文档。

以下是文档中关于该主题的more information

答案 2 :(得分:1)

您可以在创建新文档时使用函数@InheritedDocumentUniqueID获取父文档ID。

在您的情况下,选择的公式为:     @IfError(@GetDocField(@InheritedDocumentUniqueID;"ProductFamilyMBValues");"?")