こんにちは。にいるです。
ちょいちょい開発の勉強も必要になってきているので、備忘録含めてアウトプットできるようにまとめていきます。
今回はリスト型のカスタム設定を使用して、その値をVisualforceに表示する方法を紹介したいと思います。
1.カスタム設定とは
カスタム設定とはカスタムオブジェクトに近い機能です。
大きく違うのは
今回は下記のような選択リストを作成しました。
オブジェクトはこんな感じで。
そのオブジェクトの中身(=選択リスト値)は音楽ジャンルを入力しました。
SOQLでもちゃんと想定通りに値が取得出来ています。
という風に設定したものを今度はプログラムの中で取得して表示してみたいと思います。
2.コーディング(Apex)
SObjectをApexからバインドする場合はinputfieldを使ってvalue属性で値を取得すればいいんですが、リスト型になるとそれが出来ません。
一度カスタム設定(≠SObject型)で取得したものをSelectOption型のリストに格納する必要があります。
要するに、型が違うからちゃんと型を変換して値を渡してってことです。
ってことで書いてみました。
何をしているかと言うと、
①まず2つの入力(カスタム設定)と出力用(SelectOption)のリストを用意します。
②次に入力用のfavMusicListにカスタム設定の値を入れます。
③favMusicListに入れた値を、変数cfに入れます。
④そしてcsListsにcfに入った値をどんどん追加していきます。
ってことをしています。
型が違って怒られてばかりで最初はよくわからなかったですが、公式ヘルプドキュメントを読んで理解を深めました。
※2019年8月7日追記※
カスタム設定だと、初期値のnullを手入力で作成しないといけないですね。
コントローラ側に下記をnewした直後に追加してリストに突っ込んでいます。
csLists.add(new SelectOption(cf.fav_music__c,cf.fav_music__c));
3.コーディング(Visualforce)
Visualforce側は簡単です!
もうただ単純にSelectListとSelectOptionsでリストを受け取っただけですね。
size=”1″と言うのは表示する行数を指定しています。
※下ではロックだけが表示されています。
4.まとめ
如何でしたでしょうか。
カスタム設定の概念が理解できればすぐにコードも書けるかと思います。
汎用的に使用したいリストが必要な場合はカスタム設定で作成しておいて、すぐに呼び出せるようにしておくといいですね。
まだオブジェクトの中にオブジェクトがあると言う概念が掴めていません!笑
あと階層型もあるので、それはロール機能を使用して何かできるみたいです。
また調べて記事にしたいと思います。
ではでは!