我想问一下如何使用按钮来确定用户的角色?
我有一个表格和一个按钮。我在访问控制列表中创建了一个名为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)
当我尝试运行以测试代码时,我注意到如果用户不是测试者角色,则用户将收到消息,并且工作正常。
但是我不明白当用户处于测试者角色时,用户可以获得该消息。
感谢有人能让我知道我在代码中做错了什么。
非常感谢。
你的忠实,
初学者
答案 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)
我在按钮属性中插入代码 - >段落隐藏时选项卡 - >如果公式为真,则选中隐藏段落
然后,当我跑去测试它时,它会起作用。
虽然,该代码有效,但我将继续研究何时使用"禁用按钮"在代码中。
我再次感谢您的回复。
谢谢。
您诚挚的,
初学者