Memos About Salesforce

Salesforceにハマってたこと!

VF apex:outputTextとapex:paramでフォーマット指定

こんにちは、管理人の@Salesforce.Zです。

VF側でデータを表示させる時に

決まったフォーマットでデータを表示したい時ある

そんな時にapex:outputTextとapex:paramで

データのフォーマットを指定可能です。

今回、その指定方法を共有します。

欲しけりゃくれてやる・・・。

探せ!

この世の全てをそこに置いてきた〜笑



目次


サンプルコード

<!-- カンマ区切り数値 -->
<apex:outputtext value="{0, number, ###,###}">
	<apex:param value="{!classVariable}"></apex:param>
</apex:outputtext>

<!-- 0埋め6桁数値 -->
<apex:outputtext value="{0, number, 000000}">
	<apex:param value="{!classVariable}"></apex:param>
</apex:outputtext>

<!-- 日付と時刻 -->
<apex:outputtext value="{0, date, yyyy/MM/dd HH:mm:ss}">
	<apex:param value="{!classVariable}"></apex:param>
</apex:outputtext>

フォーマット網羅

サンプルVF

<apex:page title="日付と数値のフォーマットVF">
    <style>
        .TBcontent {
            border: 1px solid green;
        	font: 12px, Verdana;
        }
        .tableHeader {
            background-color: blue;
            font: 16px, Verdana;
            color: white;
        }
        .bold {
            font-weight: bold;
        }
    </style>
<table border="0" cellspacing="2" cellpadding="6" class="TBcontent" width="80%" align = "center">
    <tr class="tableHeader">
        <th>
            フォーマット
        </th>
        <th>
            入力
        </th>
        <th>
            出力
        </th>
    </tr>
    
    <tr>
        <td>
            <apex:outputtext value="{0, date, short}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{!NOW()}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{0, date, short}">
                <apex:param value="{!NOW()}"></apex:param>
            </apex:outputtext>
        </td>
    </tr>
    
    <tr>
        <td>
            <apex:outputtext value="{0, date, medium}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{!NOW()}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{0, date, medium}">
                <apex:param value="{!NOW()}"></apex:param>
            </apex:outputtext>
        </td>
    </tr>
    <tr>
        <td>
            <apex:outputtext value="{0, date, long}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{!NOW()}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{0, date, long}">
                <apex:param value="{!NOW()}"></apex:param>
            </apex:outputtext>
        </td>
    </tr>
    <tr>
        <td>
            <apex:outputtext value="{0, date, full}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{!NOW()}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{0, date, full}">
                <apex:param value="{!NOW()}"></apex:param>
            </apex:outputtext>
        </td>
    </tr>
    <tr>
        <td>
            <apex:outputtext value="{0, date, yyyy-mm-dd hh:mm:ss a}" styleClass="bold"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{!NOW()}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{0, date, yyyy-MMM-dd hh:mm:ss a z}">
                <apex:param value="{!NOW()}"></apex:param>
            </apex:outputtext>
        </td>
    </tr>
    <tr>
        <td>
            <apex:outputtext value="{0, number, integer}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{!VALUE('123.456')}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{0, number, integer}">
                <apex:param value="{!VALUE('123.456')}"></apex:param>
            </apex:outputtext>
        </td>
    </tr>
    <tr>
        <td>
            <apex:outputtext value="{0, number, currency}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{!VALUE('123.456')}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{0, number, currency}">
                <apex:param value="{!VALUE('123.456')}"></apex:param>
            </apex:outputtext>
        </td>
    </tr>
    <tr>
        <td>
            <apex:outputtext value="{0, number, percent}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{!VALUE('0.5')}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{0, number, percent}">
                <apex:param value="{!VALUE('0.5')}"></apex:param>
            </apex:outputtext>
        </td>
    </tr>
    <tr>
        <td>
            <apex:outputtext value="{0, number, 0000.0}" styleClass="bold"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{!VALUE('123.456')}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{0, number, 0000.0}">
                <apex:param value="{!VALUE('123.456')}"></apex:param>
            </apex:outputtext>
        </td>
    </tr>
    <tr>
        <td>
            <apex:outputtext value="{0, number, ####.#}" styleClass="bold"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{!VALUE('123.456')}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{0, number, ####.#}">
                <apex:param value="{!VALUE('123.456')}"></apex:param>
            </apex:outputtext>
        </td>
    </tr>
    <tr>
        <td>
            <apex:outputtext value="{0, number, 0.0000}" styleClass="bold"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{!VALUE('123.456')}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{0, number, 0.0000}">
                <apex:param value="{!VALUE('123.456')}"></apex:param>
            </apex:outputtext>
        </td>
    </tr>
    <tr>
        <td>
            <apex:outputtext value="{0, number, #.####}" styleClass="bold"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{!VALUE('123.456')}"></apex:outputtext>
        </td>
        <td>
            <apex:outputtext value="{0, number, #.####}">
                <apex:param value="{!VALUE('123.456')}"></apex:param>
            </apex:outputtext>
        </td>
    </tr>
</table>
</apex:page>

出力結果

フォーマット 入力 出力
{0, date, short} Thu Jul 26 07:26:08 GMT 2018 7/26/18
{0, date, medium} Thu Jul 26 07:26:08 GMT 2018 26-Jul-18
{0, date, long} Thu Jul 26 07:26:08 GMT 2018 26-Jul-18
{0, date, full} Thu Jul 26 07:26:08 GMT 2018 Thursday, July 26, 2018
{0, date, yyyy-mm-dd hh:mm:ss a} Thu Jul 26 07:26:08 GMT 2018 2018-Jul-26 07:26:08 AM GMT
{0, number, integer} 123.456 123
{0, number, currency} 123.456 $123.46
{0, number, percent} 0.5 50%
{0, number, 0000.0} 123.456 123.5
{0, number, ####.#} 123.456 123.5
{0, number, 0.0000} 123.456 123.456
{0, number, #.####} 123.456 123.456