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,此片僅起到拋磚引玉作用。篇中描述有錯誤的地方歡迎指出,有不懂得歡迎留言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM