Lotus Notes 客户端:如何通过单击按钮确定用户的角色
Lotus Notes Client: How to determine user's role by click a button
请问如何使用按钮来判断用户的角色?
我有一个表单和一个按钮。我在访问控制列表中创建了一个名为tester的角色(用于定义用户的角色)。
我尝试做的是按钮将通过单击它来检查用户的角色。我的意思是,如果用户处于测试者角色,则用户单击它,不会发生错误,也不会在此阶段执行任何操作。如果用户不是 tester 角色,当用户第一次点击按钮时,会有一个 pop window/message 框显示给用户,如果用户点击多次,另一个 pop window/ 消息框显示给用户。
我将以下代码放在按钮中以执行我上面提到的操作。我检查了代码中没有语法错误。
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)
当我尝试 运行 测试代码时,我注意到如果用户不是测试者角色,用户将收到消息,并且工作正常。
但我不明白当用户处于测试者角色时,用户可以收到消息。
如果有人能告诉我我在代码中做错了什么,我将不胜感激。
非常感谢。
您忠实的,
初学者
你误解了公式语言。变量和字段几乎是一回事:它们可以包含值;它们不包含函数。 (没有子例程。)当您将某些内容分配给变量或字段时,它是作为 运行 公式而不是公式本身的结果 returned 的值。如果成功 运行,大多数 @Commands 将 return 为 1 (@True),否则为 0 (@False)。
如果您想根据用户角色跳过某些内容,则必须这样做:
@If(@IsMember("[tester]"; @UserRoles); @Return(""); "");
作为公式的第一行。或者,至少,before 行是公式中您不希望用户转到的位置。该行表示 "if the user has the role '[tester]', then exit this formula without doing anything, otherwise do nothing else on this line, but continue"。使用 ""
作为公式语言中的无操作(no-op); @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"
非常感谢 muenzpraeger 和 Stan Rogers 的评论和回答。
当我 post 我的问题时,我忘记考虑用户界面问题,我发现这段代码对于防止无关角色用户使用按钮很有用。
!@IsMember("[tester]";@UserRoles)
我在按钮属性中插入代码 --> 选项卡时隐藏段落 --> 选中如果公式为真则隐藏段落
然后当我运行测试它时,它起作用了。
尽管该代码有效,但我将继续研究何时在代码中使用 "disablebutton"。
再次感谢您的回复。
谢谢。
此致,
初学者
请问如何使用按钮来判断用户的角色?
我有一个表单和一个按钮。我在访问控制列表中创建了一个名为tester的角色(用于定义用户的角色)。
我尝试做的是按钮将通过单击它来检查用户的角色。我的意思是,如果用户处于测试者角色,则用户单击它,不会发生错误,也不会在此阶段执行任何操作。如果用户不是 tester 角色,当用户第一次点击按钮时,会有一个 pop window/message 框显示给用户,如果用户点击多次,另一个 pop window/ 消息框显示给用户。
我将以下代码放在按钮中以执行我上面提到的操作。我检查了代码中没有语法错误。
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)
当我尝试 运行 测试代码时,我注意到如果用户不是测试者角色,用户将收到消息,并且工作正常。
但我不明白当用户处于测试者角色时,用户可以收到消息。
如果有人能告诉我我在代码中做错了什么,我将不胜感激。
非常感谢。
您忠实的,
初学者
你误解了公式语言。变量和字段几乎是一回事:它们可以包含值;它们不包含函数。 (没有子例程。)当您将某些内容分配给变量或字段时,它是作为 运行 公式而不是公式本身的结果 returned 的值。如果成功 运行,大多数 @Commands 将 return 为 1 (@True),否则为 0 (@False)。
如果您想根据用户角色跳过某些内容,则必须这样做:
@If(@IsMember("[tester]"; @UserRoles); @Return(""); "");
作为公式的第一行。或者,至少,before 行是公式中您不希望用户转到的位置。该行表示 "if the user has the role '[tester]', then exit this formula without doing anything, otherwise do nothing else on this line, but continue"。使用 ""
作为公式语言中的无操作(no-op); @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"
非常感谢 muenzpraeger 和 Stan Rogers 的评论和回答。
当我 post 我的问题时,我忘记考虑用户界面问题,我发现这段代码对于防止无关角色用户使用按钮很有用。
!@IsMember("[tester]";@UserRoles)
我在按钮属性中插入代码 --> 选项卡时隐藏段落 --> 选中如果公式为真则隐藏段落
然后当我运行测试它时,它起作用了。
尽管该代码有效,但我将继续研究何时在代码中使用 "disablebutton"。
再次感谢您的回复。
谢谢。
此致,
初学者