我有一个可编辑的对话框列表,用于choices
Use formula for choices
。它在视图上使用DbLookup
。
是否有可能在@DbLookup
之后有3个值,第一个值已被设置为对话列表的默认值?
感谢您的时间和帮助!
答案 0 :(得分:6)
首先:为了优化性能并最小化Lookup,我会使用一个单独的字段来查找值(让我们称之为ValueList,它可以为Display计算,必须允许多个值)。
然后作为DialogBox的公式,只需输入字段ValueList
的名称
在对话框字段的默认值公式中输入:
@Subset( ValueList ; 1 );
如果您的ValueList如下所示:
someValue中| 1个
AnotherValue | 2
然后默认值中的公式如下:
@Word( @Subset( ValueList ; 1 ); "|" ; 2 )
如果您的查找依赖于表单中的其他字段,并且可能会更改,则默认值公式是不够的,因为它仅在新文档的第一个文档打开时计算一次。然后您的输入验证 - 公式可能如下所示:
@If( @IsMember( @ThisValue; ValueList ); @ThisValue; @Subset( ValueList ; 1 ) )
这样可以确保,如果您的查找公式发生变化且当前值不再出现在可能的更改列表中,那么它会再次从(新)列表中选择第一个值...
当然所有这些都需要一些“微调”,但基本上这应该可以解决你的问题。
答案 1 :(得分:0)
您可以使用DBLookup将默认值公式用于字段的默认值。在这种情况下,将设置字段值,因此也将在对话框中选择值。 您可以使用 @subset(@DbLookup(...); 1)
答案 2 :(得分:0)
有一个类似的案例,我使用这个解决方案与@prompt和ProfileDocument。
@Prompt([OkCancelList]:[NoSort]; Title; prompt; DefaultChoice; @GetProfileField(profilname; fieldname));
DefaultChoice必须是个人资料文档中的值。