gpt4 book ai didi

syntax - VisualForce IF 语句 - 需要了解 "or"的语法

转载 作者:行者123 更新时间:2023-12-01 10:50:54 26 4
gpt4 key购买 nike

我需要有关正确 VisualForce 语法的帮助以使用“或”逻辑。我使用的代码是:

<apex:page action="{!if($User.Alias !='Item1',
null,
urlFor($Action.Account.Delete, $CurrentPage.Parameters.id, [retURL='/001'], true)
)
}"
standardController="Account">
<apex:pageBlock >
<apex:PageMessage summary="You are not allowed to delete Accounts"
severity="Warning"
strength="3"/>
<apex:pageMessages />
</apex:pageBlock>
</apex:page>

第一行:

{!if($User.Alias !='Item1',

我需要使用“或”逻辑指定多个项目,以便在任何指定的“项目”为真时评估 IF 语句。我想要这样的东西,但我不知道正确的语法是什么:

{!if($User.Alias !='Item1', OR 'Item2', OR 'Item3',

感谢您的协助和耐心等待!

最佳答案

您可以使用逻辑运算符或公式函数来完成。

https://help.salesforce.com/HTViewHelpDoc?id=customize_functions.htm

这就是我所说的“程序员语法”,因为它使用竖线 (||) 和符号 (&&);运算符更易于开发人员阅读。

IF($User.Alias = 'JohnDoe' || $User.Alias = 'JBloggs' || $User.Alias = 'FooBar',
value_if_true,
value_if_false
)

您还可以使用“Excel 语法”,其中您有 OR() 函数,可以接受任意数量的参数。

IF(OR($User.Alias = 'JohnDoe', $User.Alias = 'JBloggs', $User.Alias = 'FooBar'),
value_if_true,
value_if_false
)

  1. 尽量不要在业务逻辑中使用用户别名。用户可以更改自己的别名,使您的支票失效。看看您是否可以根据 $Profile$UserRole 进行检查,或者在用户记录上创建一些复选框字段,使其仅对系统管理员可编辑...

  2. 在此特定场景中 - 有一种方法可以在运行时检查用户是否有权删除帐户。检查 Using apex:relatedList in a Visualforce page when the user profile denies access to child objects(您需要“isDeletable”版本)。


编辑(回复:关于 !!= 的评论)

它在我用过的第一个链接中提到过;)

!=,有时 <> 是程序员用来写“不等于”的。它看起来与“斜线等号”(≠)非常相似,但不需要记住该字符的一些奇怪代码。这种约定在许多编程语言中几乎是统一的。

就您而言 - 公式和 Visualforce 表达式的语法可以互换使用:

  • === 表示“等于”
  • !=<> 表示“不等于”(后者也适用于 Excel)

所以如果你写 IF($User.Alias = 'JohnDoe', 'Allow', 'Deny') 你的意思是只有他会看到“允许”。

还有一件事可能会让您感到困惑 - 否定运算符:! 站在任何表达式前面都会转换为 true ↔ false。这也可以通过将您想要的表达式包装在 NOT(some true/false expression here) 中来实现。

(表示合并字段开始的感叹号并不意味着否定。因此 {!some expression} 仅表示该表达式的逻辑(或数字或文本)值。要否定它,您可以执行 {!!expression}{!NOT(expression)}

关于syntax - VisualForce IF 语句 - 需要了解 "or"的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20671252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com