こんにちは、にいるです。
最近、開発をよくしているので身についてきたことをまとめていきます
その第一段階として、簡単な検索画面を作成してみました
コードの長さとしてはApex ControllerとVisualforce足して50行もないので、テンプレとして使いやすいと思います
1.Apex Controller
まずはApex Controllerから書いていきます
主な点はコメントアウトしている検索結果、コンストラクタ、getメソッドになります
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | public class RecordSearchController {     // 検索結果     public List<Account> resultList {get; set;}     //コンストラクタ     public RecordSearchController(){         getResultList();     }     // 取引先の検索メソッド     public List<Account> getResultList(){         List<Account> selectList              = [                 SELECT                  Name                 ,AnnualRevenue                  ,Industry                 ,NumberOfEmployees                  FROM                 Account             ];         this.resultList = selectList;         return resultList;     } } | 
本当に簡単に作成しています
変数宣言でVisualforceに渡すリストを宣言しています
そしてコンストラクタを定義します
getResultListしかメソッドはないので、それをコンストラクタ内に追加します
次にgetResultListメソッドを作成します
戻り値はリストにしたいので、リスト型です
あとは、SELECT文を書いて、resultListに検索結果を代入して、そのリストをreturnさせます
※このコードだと検索語のselectListが0だとエラーが起こるので注意してください
・エラーについてはここにまとめていますので、よければご覧ください
これでバインド変数のresultListにSOQLの検索結果が入るようになります
2.Visualforce
次は、Visualforceです
動きとしては、Apex Controllerで検索したリストをVisualforceに渡して、それをカラム毎に表示しています
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <apex:page controller="RecordSearchController">     <apex:form>         <apex:pageBlock>             <apex:pageBlockSection title="取引先リスト" >                 <apex:pageBlockTable value="{!resultList}" var="r">                     <apex:column headerValue="取引先名" width="120px">                         <apex:outputField value="{!r.name}"/>                     </apex:column>                     <apex:column headerValue="業種" width="50px">                         <apex:outputField value="{!r.Industry}"/>                     </apex:column>                     <apex:column headerValue="年間売上" width="70px">                         <apex:outputField value="{!r.AnnualRevenue}"/>                     </apex:column>                 </apex:pageBlockTable>             </apex:pageBlockSection>         </apex:pageBlock>     </apex:form> </apex:page> | 
apex:outputfieldで3つの項目を表示しています
Apex ControllerのgetResultListメソッドのSELECT文に他の項目も追加すれば表示する事が可能です
3.実際の画面
では、コンパイルも通っているので、問題ないです書いたコードがどのように見えるか見ていきましょう

とりあえずの及第点ですが、エクセルのシートのような感じになりました
最低限のコードしか書いていないので、ただの取引先リストですね
WHERE句を指定すれば、私の取引先リストとして使えそうですね
4.まとめ
いかがでしたでしょうか
僕自身、開発の知識はほとんどなく、Javaの初心者向けの本を読んで勉強したり、Progateしたりで独学でやっています
今はアドミンでもディベロッパーでもないので、もっと学んでいろんなコードを書けるように勉強していきます
次回は名前にレコードリンクを張って、遷移が簡単にできるように装飾したり、コマンドボタンでのアクション操作も追加したいと思います
皆さんもぜひ、コードを書いてみてください!
他にも色々と標準機能やSalesforce機能について紹介しています。
そのまとめ一覧ページはこちらになりますので、よければ見てみてください。
ではでは!
 
  
  
  
  


コメント