2011-10-05 20 views
1

我有一個名爲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字段未填充。但是,由於我的驗證公式,我無法保存它,因此需要輸入一個值。

我該如何解決這個問題?理想情況下,我想保留該字段的驗證公式。

回答

2

創建響應時,是否複製父項中的任何其他字段?如果將UniversalID複製到響應中,則可以使用該通用符號直到文檔被保存。如果與公式中的@IsNewDoc結合使用,文檔保存的時刻可以指向$ REF。

或者是這樣的:@IfError(@GetDocField($參考; 「ProductFamilyMBValues」); @ GetDocField(ParentUNIDField; 「ProductFamilyMBValues」))

+0

你說的「複製從父任何其他領域」是什麼意思?我如何將UNID複製到respnose? –

+0

複製它的一種方法是肯在他的答案中提到的方法。如果您使用公式或腳本創建響應,我會將其添加到那裏。 –

+0

我用公式'@Command([Compose];「」;「Item」)'使用表單動作創建它,我如何設置新創建文檔的字段。我猜'@ SetField'會影響當前文檔。 –

1

這是引用父文檔的邏輯方法,但注意有一種替代方式可以獲得父母的領域信息。在您的項目表單中,轉到表單屬性,然後選擇「關於創建:公式繼承選定文檔中的值」選項。然後,您可以在Item表單中創建任意數量的字段,並使用計算字段公式並引用ProductFamily表單中的字段名稱,並且這些值將傳入。對於您的情況,您可以將ProductFamilyMBValues字段傳遞給響應文檔。

這是關於該主題的more information來自文檔。

+0

據我所知,我可以使用公式從選定的文檔繼承值,但是,我希望如果父文檔值更改(如果我可以添加額外的代碼)更新值, 。我也不希望所有父母的字段污染迴應表單。 –

+0

有道理。使用此方法將parentUNID轉換爲響應文檔,然後在公式中使用該方法通過@GetDocField檢索值的組合應該可以實現。 –

1

創建新文檔時,您可以使用功能@InheritedDocumentUniqueID獲取父文檔ID。

在你的情況適合自己的選擇公式是: @IfError(@GetDocField(@InheritedDocumentUniqueID;"ProductFamilyMBValues");"?")

相關問題