Lotus notes 当公式返回“始终为真”时隐藏

Lotus notes 当公式返回“始终为真”时隐藏,lotus-notes,lotus-formula,Lotus Notes,Lotus Formula,我有一个名为“vwTest”的视图,其中有一列,列出了3个文档: John Mcoy Peter Pap Ashley Young 我有一张带有默认热点的图片,我在上面键入了以下隐藏公式: view := "vwTest"; nume := @Name([CN];@UserName); @If(@IsMember(nume;_view);@False;@True) 用户是约翰·麦考伊。但这幅画是隐藏的。为什么?谢谢 您必须检查您的用户是否位于视图的第一列(已排序)。您可以使用@DbLooku

我有一个名为“vwTest”的视图,其中有一列,列出了3个文档:

John Mcoy
Peter Pap
Ashley Young
我有一张带有默认热点的图片,我在上面键入了以下隐藏公式:

view := "vwTest";
nume := @Name([CN];@UserName);
@If(@IsMember(nume;_view);@False;@True)

用户是约翰·麦考伊。但这幅画是隐藏的。为什么?谢谢

您必须检查您的用户是否位于视图的第一列(已排序)。您可以使用
@DbLookup
来实现这一点。您的隐藏公式如下所示:

@DbLookup("":"NoCache"; ""; "vwTest"; @Name([CN];@UserName); 1; [FAILSILENT]) = ""
如果用户名在视图的第一列中不是,则返回
@True

[FAILSILENT]
如果在列中找不到密钥用户名,则让
@DbLookup
返回一个空字符串


在你的问题代码中,你只需测试用户名是否是字符串“vwTest”的成员,当然从来都不是这样。

我完全改变了我的答案,因为我一开始就理解你的问题不同。事实上,在问题代码中更糟糕的是:他指定视图名称的变量是“view”,但他测试的变量是“\u view”@Db。。。函数是“昂贵的”-执行它们的延迟取决于许多因素(服务器配置、文档计数、视图的复杂性…),并且可能(将)随着数据库的增长而减慢表单的打开速度。在隐藏时,它很容易被忽略,整个公式可能只需点击该段落上的enter键就可以被克隆——因此,隐藏时尤其是@DbLookup最糟糕的地方。解决方法是在@DbLookup中使用computed for display字段,并在hide when中使用其值。@Frantisek:同意“容易忽略”和“被克隆”。“为显示计算”字段是使此公式更可见的好方法。