こんにちは、にいるです。
最近、開発をよくしているので身についてきたことをまとめていきます
その第一段階として、簡単な検索画面を作成してみました
コードの長さとしては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機能について紹介しています。
そのまとめ一覧ページはこちらになりますので、よければ見てみてください。
ではでは!
コメント