我有一个代理(在服务器上运行),它创建Notes文档,随后填充后端字段。显然,代理无法访问uidoc,因为这里没有前端。当我在UI中打开文档时,将填充所有字段,但组合框无法从后端值中选择选择。它看起来好像单独打开文档的行为正在消除我知道存储在基础文档中的值。
代理的工作方式如下:(从内存中输入)
set nd = db.createdocument()
nd.form = "some form"
nd.somefield = "some value"
nd.combobox = "apples"
nd.save true true
当我在调试器中检查nd时,组合框包含" apples"选择。然而,当我在UI中打开文档时,使用类似
的内容msgbox uidoc.document.combobox(0)
该字段现在为空(但某些字段'包含'某些值'正如预期的那样)。据我所知,在创建文档时我无法刷新或重新加载,这几乎就像我在UI中首次打开文档时需要这样做,因为它似乎当我在UI中打开文档时,某些东西正在刷新后端。
PS。我知道' apples'作为组合框中的一个选择存在,那么为什么组合框选择现在不能反映这种选择。只是为了倍加肯定,这不是我尝试使用的可用选择,而是用户做出的选择。
任何帮助都非常感激。
答案 0 :(得分:1)
这很可能是打开文档时的时间问题。 组合框具有在字段属性中定义的选项值。
这些可以修复"值或从某些来源计算。
如果在计算选择值之前计算字段,那么该字段将为空,因为只保留选项中的值,其他所有内容都将被删除。然后计算顺序为:
在这种情况下:请确保每个案例中的选项包含字段值,方法是在选择公式中执行以下操作:
_choices := ... do your calculation here
@If( !@Contains( _choices ; @ThisValue ) ; _choices : @ThisValue ; _choices )
您的值被删除的另一种可能性是,您在选项中使用别名。如果您的选择如下:
Apples|A
Bananas|B
Pines|P
你放了"苹果"在后端的字段中,然后它将在文档打开时清空。然后,您必须将别名放在字段中:nd.combobox = "A"