• salesforce 零基础学习(六十六)VF页面应善于使用变量和函数(二)常用函数的使用


    上一篇介绍VF中常用的变量,此篇主要内容为VF页面可以直接使用的函数,主要包括Date相关函数,Text相关函数,Information相关函数以及logic相关函数,其他相关函数,比如math相关函数等可以自行去练习使用。

    一.Date相关常用函数

    使用Date相关函数可以很轻松的获取今天、现在时刻等信息,主要函数如下:

    1.now():此函数可以获取当前时刻的信息,精确到秒,如果需要某种格式的显示,可以进行相关格式的format;

    2.today():此函数可以获取当前日期的信息,包括年月日;

    3.year(date):此函数获取指定date的年的信息,使用此函数需要传递一个date类型的参数;

    4.month(date):此函数获取指定date的月的信息,使用此函数需要传递一个date类型的参数;

    5.day(date):此函数获取指定date的日的信息,使用此函数需要传递一个date类型的参数;

    6.date(year,month,day):此函数通过参数传递年月日三个参数返回一个date类型的结果,包括年月日以及星期等信息;

    7.datevalue(expression):此函数通过expression转换成date值,参数可以是date/time value或者text value或者表达式;

    8.datetimevalue(expression):此函数通过expression转换成date/time值,参数可以是date/time value或者text value或者表达式。

    代码举例:

     1 <apex:page >
     2     <apex:pageBlock title="日期相关函数汇总">
     3         当前的时间为:
     4         <apex:outputText value="{0,date,YYYY-MM-dd HH:mm:ss}">
     5             <apex:param value="{!now()}" />
     6         </apex:outputText>
     7         <br />
     8         当前的日期为:
     9         <apex:outputText value="{!TODAY()}"></apex:outputText>
    10         <br />
    11         当前的日期(格式转换)为:
    12         <apex:outputText value="{0,date,YYYY-MM-dd}">
    13             <apex:param value="{!TODAY()}" />
    14         </apex:outputText>
    15         <br />
    16         当前日期的年:
    17         <apex:outputText value="{!year(today())}"></apex:outputText>
    18         <br />
    19         当前日期的月:
    20         <apex:outputText value="{!month(today())}"></apex:outputText>
    21         <br />
    22         当前日期的日:
    23         <apex:outputText value="{!day(today())}"></apex:outputText>
    24         <br />
    25         自定义年月日设置日期:
    26         <apex:outputText value="{!date(2017,2,13)}"></apex:outputText>
    27         <br />
    28         使用datevalue函数显示日期(参数为date/time类型):
    29         <apex:outputText value="{!datevalue(now())}"></apex:outputText>
    30         <br />
    31         使用datevalue函数显示日期(参数为文本类型):
    32         <apex:outputText value="{!datevalue('2017-02-13')}"></apex:outputText>
    33         <br />
    34         使用DATETIMEVALUE函数返回一个日期+GMT时间的值,传递的参数可以为date/time类型也可以为字符串:
    35         <apex:outputText value="{!datetimevalue('2017-02-13 11:00:00')}"></apex:outputText>
    36     </apex:pageBlock>
    37 </apex:page>

    运行结果:

    二.Information相关函数

    1.BLANKVALUE(expression,substitute_expression):当某个变量或者某个值为空字符串情况下设置默认值,形参一为变量,形参二为所替换成的默认值;

    2.ISBLANK(expression):判断某个表达式或者变量是否为空,如果value为空或者为null则返回true,否则返回false;

    3.NULLVALUE(expression,substitute_expression):当某个变量或者某个值为null情况下设置默认值,形参一为变量,形参二为所替换成的默认值;

    4.PRIORVALUE:通常用于validation rule中获取update前一刻的值。

    代码举例:

    1.controller层声明一个变量,设置为null情况

    public with sharing class InformationRelatedFunctionController {
        public String testVariable{get;set;}
    }

    2.page层对function进行测试

    <apex:page controller="InformationRelatedFunctionController">
        testVariable是否为空:<apex:outputText value="{!ISBLANK(testVariable)}"></apex:outputText>
        <br/>
        testVariable是否为null:<apex:outputText value="{!ISNULL(testVariable)}"></apex:outputText>
        <br/>
        testVariable为空情况下设置一个默认值:<apex:outputText value="{!blankvalue(testVariable,'测试默认值')}"></apex:outputText>
        <br/>
    </apex:page>

    运行效果:

    三.Logical Function相关函数

    1.AND(logical1,logical2,...):所有的逻辑均为true情况下返回true;

    2.CASE(expression,case1,result1,case2,result2,...,else-result):类似apex或者java中的switch case用法;

    3.IF(logical_test, value_if_true, value_if_false):针对逻辑表达式,正确执行value_if_true,错误执行value_if_false;

    4.ISCHANGED(field):判断字段前后是否有更改,通常用于validation rule中判断某字段前后是否更改;

    5.ISNEW():判断某个formula字段的记录是否是新建的,如果记录是新建的则返回true,如果对于已经存在的记录此字段被更新,则返回false;

    6.ISNUMBER(text):判断text文本是否全部为数字,如果全部是数字,则返回true,否则为false;

    7.NOT(logical):对逻辑内容取反操作,等同于 !logical;

    8.OR(logical1,logical2,...):所有的逻辑中只要有一个为true则返回true;

     部分函数代码举例:

    1.LogicalRelatedFunctionController :声明两个变量,用于page页的业务逻辑处理

     1 public with sharing class LogicalRelatedFunctionController {
     2     public String testNumber{
     3         get{
     4             return '123';
     5         }
     6         
     7     }
     8     
     9     public Integer comparedValue{
    10         get{
    11             return 1;
    12         }
    13     }
    14 }

    2.LogicalRelatedFunctionPage:函数应用

     1 <apex:page controller="LogicalRelatedFunctionController">
     2     <apex:pageBlock title="isnumber函数用法">
     3         testNumber是否为数字:<apex:outputText value="{!ISNUMBER(testNumber)}"></apex:outputText>
     4     </apex:pageBlock>
     5     <apex:pageBlock title="and函数用法">
     6         <apex:outputText value="只有testNumber是数字并且comparedValue大于0才会显示此段内容"
     7         rendered="{!AND(isnumber(testNumber),comparedValue>0)}">
     8         </apex:outputText>
     9     </apex:pageBlock>
    10     <apex:pageBlock title="case函数用法">
    11         {!CASE(comparedValue,0,'value is 0',1,'value is 1','value is other')}
    12     </apex:pageBlock>
    13     <apex:pageBlock title="IF函数用法">
    14         <apex:outputText value="text value" style="{!IF(comparedValue>0,'color:red;','')}">
    15         </apex:outputText>
    16     </apex:pageBlock>
    17 </apex:page>

    运行效果:

    四.Text Function相关常用函数

    1.BEGINS(text,compare_text):判断某个字符串是否以指定的字符串开始,是返回true,否则返回false;

    2.BR():插入一行,类似HTML中的<br/>

    3.CONTAINS(text, compare_text) :判断字符串中是否包含指定的字符串,如果包含返回true,否则返回false;

    4.FIND(search_text, text[, start_num]) :查询指定的字符串在字符串的位置,类似apex中的indexOf方法的功能,坐标从1开始;

    5.ISPICKVAL(picklist_field, text_literal):判断picklist字段当前的记录是否为某个字符串;

    6.LEN(text):返回字符串的长度;

    7.TEXT(value):将其他类型转换成字符串,包括percent/number/date等;

    8.TRIM(text):将字符串进行去空处理,与apex中String.trim用法相同;

    9.VALUE(text):将字符串转换成number类型。

    部分函数代码举例:

     1.TextRelatedFunctionController:定义三种对象,方便page页逻辑处理

     1 public with sharing class TextRelatedFunctionController {
     2     public String testVariable{get{
     3         return 'test value';
     4     }}
     5     
     6     public String testTrimVariable{get{
     7         return ' test value ';
     8     }}
     9     
    10     public String testToNumberVariable {get{
    11         return '123';
    12     }}
    13 }

    2.TextRelatedFunctionPage:部分函数使用举例

     1 <apex:page controller="TextRelatedFunctionController">
     2     testVariable对象的值为:{!testVariable}
     3     <apex:pageBlock title="BEGINS函数用法">
     4         testVariable对象值是否以test字符开始 :  {!BEGINS(testVariable,'test')}
     5     </apex:pageBlock>
     6     <apex:pageBlock title="CONTAINS函数用法">
     7         testVariable对象值是否包含test字符 :  {!CONTAINS(testVariable,'test')}
     8     </apex:pageBlock>
     9     
    10     <apex:pageBlock title="FIND函数用法">
    11         testVariable对象中lue所在的位置:{!FIND('lue',testVariable)}
    12     </apex:pageBlock>
    13     <apex:pageBlock title="LEN函数用法">
    14         testTrimVariable对象值的长度为: {!LEN(testTrimVariable)}
    15     </apex:pageBlock>
    16     <apex:pageBlock title="TRIM函数用法">
    17         testTrimVariable对象trim以后长度为:{!LEN(TRIM(testTrimVariable))}
    18     </apex:pageBlock>
    19     <apex:pageBlock title="VALUE函数用法">
    20         <apex:outputText value="{!IF(VALUE(testToNumberVariable) > 100,'testToNumberVariable转换成number大于100','testToNumberVariable转换成number小于100')}">
    21         </apex:outputText>
    22     </apex:pageBlock>
    23 </apex:page>

    运行效果:

    总结:此篇只是讲解一些简单常用的函数的用法,还有一些其他的比如Math相关的,Encoding相关的等函数没有列出,如果VF页需要使用到相关函数时,请参考page的PDF,此片仅起到抛砖引玉作用。篇中描述有错误的地方欢迎指出,有不懂得欢迎留言。

  • 相关阅读:
    pycharm的常规使用
    python-引用/模块
    6-4 函数
    5-21文件的操作
    5-21python数据类型
    python-基础
    5-7接口测试工具之jmeter的使用
    接口测试基础
    把命令结果作为变量赋值
    shell变量子串
  • 原文地址:https://www.cnblogs.com/zero-zyq/p/6393527.html
Copyright © 2020-2023  润新知