我有一张表格。当我打开表单时,应该从另一个名为staff.nsf的数据库中选择两个名为office和group的字段。根据申请人姓名作为关键数据。我已将我的名字列入员工数据库。但表格并未从员工数据库中获取两个字段。
字段公式是这样的,
server := @Name([CN]; @Subset(@DbName; 1));
temp:= @If(Applicant != ""; @DbLookup( "" : "NoCache"; server:"Mast\\Staff.nsf";
"ByApplicant";Applicant; 2); "");
@If(@IsError(temp);"";temp)
这是系统错误吗?请有人帮忙。
此致 普里亚
答案 0 :(得分:1)
Lotus Notes已有20多年的历史,并且经过了极好的测试。您发现“系统错误”的可能性很小。这里有许多可能存在的问题,你需要仔细排除它们,直到找到实际问题为止。
你应该做的第一件事是从公式中取出@IsError(暂时)。通过它,你可以抑制一个潜在有用的错误消息。好吧......诚然,错误消息通常没那么有用,但有时它们是。如果您不想将其从公式中删除,只需添加另一个仅显示@DbLoookup的计算显示字段 - 并遵循Ken关于硬编码所有内容的建议。
然后回顾以下所有内容:
“mast \ staff.nsf”是数据库的正确路径吗?
您是否可以访问数据库?
“ByApplicant”是视图的正确名称吗? (拼写错误发生!)
您有权访问该视图吗?
您是否可以访问视图中的文档?
正如Ken所说,ByApplicant视图中的第一列是否排序?
您为申请人传递的名称值是否与视图列中显示的格式完全相同? (即,如果它在视图列中以缩写形式显示,请确保以缩写格式将其传递给@DbLookup。)
视图的第二列是否包含您尝试读取的值? (查看@DbLookup文档中列数的规则。)
答案 1 :(得分:0)
一些想法:
ByApplicant视图需要按字母顺序排列第一列,该列应该是您要匹配的申请人名称列表
尝试在@DBLookup中对申请人的值进行硬编码以查看它是否有效,并将其排除为问题。
这不适用于网络,只能在客户端上使用(我相信)