我试图在隐藏视图中使用dbLookup获取字段的特定值,但是我收到此错误“字段:版本:在索引中找不到条目”。我确信字段版本已添加为视图中的列。第2列是“版本字段”。我该如何解决这个问题?
@DbLookup(“”:“NoCache”;“”:“”;“(vwLDoc)”; ParentId + @ Text(Version); 2)
答案 0 :(得分:2)
假设这段代码在一个字段中(?)像这样重写你的代码
key := @trim(ParentID + @Trim(@Text(Version)));
lkup := @DbLookup("":"NoCache";"":"";"(vwLDoc)";key; 2);
val := @if(@IsError(lkup);@Text(lkup) + ", key:" + key;lkup);
val;
这允许您将密钥与DBLookup分开,以便您可以调查用于运行查找的实际值。将2个字符串连接在一起可能会导致插入额外的空格,从而产生无效的键值。
它还可以更优雅地处理错误,因为您可以使用“val”变量而不会导致出现丑陋的提示框,这也会在打开时影响表单。
我会检查视图“(vwLDoc)”是否有一个已排序的列。如果视图中没有已排序的列,则dblookup将始终返回“在索引中找不到条目”。
您可以通过打开视图并只键入键值来测试键,它应该跳转到任何匹配的文档。要打开隐藏的视图,只需选择“查看”=> “转到”(执行此操作时按住ctrl-shift键以查看隐藏的视图),然后选择视图。
如果您将整个公式粘贴到使用此dblookup的位置,我可以提供更好的答案。