VisualForce IF语句 - 需要知道"或"的语法

 果果干儿_116 发布于 2023-02-09 12:42

我需要帮助使用正确的VisualForce语法来使用"或"逻辑.我正在使用的代码是:


     
        
        
    
    

在第一行:

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

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

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

感谢您的帮助和耐心!

1 个回答
  • 您可以使用逻辑运算符或使用公式函数来执行此操作.

    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
    )
    

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

      在这个特定的场景中 - 有一种方法可以在运行时检查用户是否有权删除帐户.当用户配置文件拒绝访问子对象时,请检查在Visualforce页面中使用apex:relatedList(您需要"isDeletable"版本).


    编辑(重新:关于!和的评论!=)

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

    !=有时<>程序员用来写"不等于".它看起来类似于"削减等号"(≠),但不需要记住该字符的一些奇怪的代码.这种约定在许多编程语言中都非常统一.

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

    ===为"平等"

    !=<>"不等于"(后者也在Excel中工作)

    因此,如果你写IF($User.Alias = 'JohnDoe', 'Allow', 'Deny')你意味着只有他会看到"允许".

    还有一件事可能会让你感到困惑 - 否定操作员:!站在任何表达式前都会转换为真↔假.这也可以通过包装所需的表达式来实现NOT(some true/false expression here).

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

    2023-02-09 12:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有