S.B.S. Salesforce技術ブログ

教えて921さん!

StanderdConrtollerとExtensionsを使用したVFのフォーマット

yumotoです。

standardContollerとExtensionsController使用して帳票とかVFページとかを作成するときが多々あります。 毎回書き始めってある程度フォーマット決まっているのですが、覚えていないので以前に自分が書いたプログラムを参考にして書いています。 覚えろって話なのですが、プログラムって覚えるものでもないので、チートシート的にこちらに載せます。

今回は例として取引先オブジェクト[Account]の情報をそのまま表示するVFです。

Apex

/******************************
*
*  プログラムID : cntl_AccountExtension⇐[帳票Extensionコントローラー名]
*  プログラム名 :「[帳票名]」帳票ページコントロールクラス
*  処理形態     : Apex
*  処理概要     : 帳票「[帳票名]」に展開する情報を設定する
*  
*  
*******************************
*  修正履歴
*  [日付]    [名前] 新規作成
*******************************/

public class cntl_AccountExtension{
    public Account acc{get;set;}
    
    public cntl_AccountExtension(ApexPages.StandardController stdController){
        acc = (Account)stdController.getRecord();
        acc = getAccount(acc.id);
    }
    
    private Account getAcc(ID id){
        Anken__c rtnAnken = [   SELECT  id
                                        ,Name   
                                        ,[項目API]
                                        ,[項目API]
                                        ,[項目API]
                                        ,[項目API]
                                        ,[項目API]
                                        ,[項目API]
                                        ,[項目API]
                                FROM    Account
                                WHERE   id =:id
                                LIMIT   1
                            ];
        return rtnAnken;
    }

    ~~~~~~~~~~~~以下に何かしらのメソッド~~~~~~~~~~~~~~~


}

Visualforce

<apex:page standardController="Account" extensions="cntl_AccountExtension" contentType="text-html" showHeader="false" applyHtmlTag="false" [renderAs="pdf"] >
    <head>
        <style>
            <!--    帳票用
            @page {
            size: A4; 
            margin: ●mm ●mm ●m ●mm; <!-- ページ全体heiht:〇〇px; width:〇〇px;-->  <!--⇐ページの上下左右の余白設定-->
            }
            -->
            body {
            font-family: Arial Unicode MS;     <!--⇐日本語設定-->
            font-size:12px;           <!--⇐ページ全体のフォント設定-->
            }
            *{
            margin:   0;
            padding: 0;
            }
            .clearfix::after {       <!-- ⇐floatとか使うなら-->
            content: "";
            display: block;
            clear: both;
            }
        </style>
    </head>
    <body>
        

        ~~~~~~内容~~~~~~
        <apex:outputText value = "{!acc.name}"/>


    </body>
    
</apex:page>

細かいところはいろいろ変えてください。 こうしたほうがいいよ!とかありましたらコメントください!