我有一个名为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
字段不是填充。但是,由于我的验证公式,我无法保存它,需要输入一个值。
我如何解决这个问题?理想情况下,我想保留该字段的验证公式。
答案 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");"?")