Lotus Notes客户端:如何通过单击按钮确定用户的角色

时间:2015-07-28 04:01:44

标签: lotus-notes lotus-domino lotus-formula

我想问一下如何使用按钮来确定用户的角色?

我有一个表格和一个按钮。我在访问控制列表中创建了一个名为tester的角色(用于定义用户的角色)。

我尝试做的是按钮将通过单击它来检查用户的角色。我的意思是,如果用户处于测试者角色,则用户单击它,不会发生错误,并且此阶段不会执行任何操作。如果用户不是测试者角色,当用户第一次点击按钮时,将会有一个弹出窗口/消息框显示给用户,如果用户点击多次,则会显示另一个弹出窗口/消息框给用户。

我将以下代码放在按钮中以执行上面提到的操作。我检查了代码中没有语法错误。

temp := @If(disablebutton="1"; @Return(@Prompt([Ok];"";"You clicked this
button more than one time.")); @Prompt([Ok];"";"This is your first time 
to click this button."));
FIELD disablebutton:="1";

@If(@IsMember("[tester]";@UserRoles);@Success;temp)

当我尝试运行以测试代码时,我注意到如果用户不是测试者角色,则用户将收到消息,并且工作正常。

但是我不明白当用户处于测试者角色时,用户可以获得该消息。

感谢有人能让我知道我在代码中做错了什么。

非常感谢。

你的忠实,

初​​学者

2 个答案:

答案 0 :(得分:2)

你误解了公式语言。变量和字段几乎是一样的:它们可以包含值;它们不包含功能。 (没有子程序。)当您为变量或字段分配内容时,它是由于运行公式而不是公式本身而返回的值。如果成功运行,大多数@Commands将返回1(@True),如果不成功则返回0(@False)。

如果您想根据用户角色跳过某些内容,则必须这样做:

@If(@IsMember("[tester]"; @UserRoles); @Return(""); "");

作为公式的第一行。或者,至少在之前中您不希望用户去的公式中的位置。该行显示“如果用户具有'[tester]'角色,则退出此公式而不做任何事情,否则在此行上不做任何其他事情,但继续”。在公式语言中使用""作为无操作(无操作); @Success只应用于字段验证公式。所以你的公式变成:

@If(@IsMember("[tester]"; @UserRoles); @Return(""); "");
@If(disablebutton="1"; @Return(@Prompt([Ok];"";"You clicked this
button more than one time.")); @Prompt([Ok];"";"This is your first time 
to click this button."));
FIELD disablebutton:="1"

答案 1 :(得分:0)

我要感谢muenzpraeger和Stan Rogers的评论和回答。

当我发布我的问题时,我忘记考虑用户界面问题,我发现此代码对于防止不相关角色用户使用该按钮很有用。

!@IsMember("[tester]";@UserRoles)

我在按钮属性中插入代码 - >段落隐藏时选项卡 - >如果公式为真,则选中隐藏段落

然后,当我跑去测试它时,它会起作用。

虽然,该代码有效,但我将继续研究何时使用"禁用按钮"在代码中。

我再次感谢您的回复。

谢谢。

您诚挚的,

初​​学者