こんにちは。にいるです。
今回も前回に引き続き、開発関連でVisualforceについて書きたいと思います。
前回は簡単なページの作成でただコンポーネントを記載して属性を指定するだけのものでした。
今回は作成されるページに動的なデータを表示させることを目的としたグローバル変数とVisualforce式についてご紹介します。
※前回の記事はVisualforce導入編「【Trailehead】Visualforce ページの作成と編集」をご覧ください。
学習のベースとするTrailheadは「単純な変数と数式の使用」です。
※モジュールはこちらからご覧ください。
1.Visualforceでの数式について
Visualforceでは動的なデータをページに表示することができます。
動的というのはユーザ毎に参照できるデータが変動するということです。
詳しくみていきます。
・グローバル変数
グローバル変数とは、Visualforce式と合わせて使用します。
・Visualforce式
Visualforce式とは{! expression}と記載します。
ここに記載したリソースが自動的に変換されます。
2.単純な変数と数式の使用
と、色々と概論みたいなものを記載してもイメージできないと思うので、早速チャレンジで確認してみましょう。
チャレンジ内容を訳すと、
ログインユーザのデータを動的に作成して、
DisplayUserInfoという名前のページを作成してね。
ということみたいです。
すごい簡単にできました。
コードはこれですが、ちょっと簡単過ぎるので、もう少し詳細にみていきます。
1 2 3 4 5 |
<apex:page > <p>{! $user.firstname}</p> </apex:page> |
Trailheadにもあるように、グローバル変数と数式についてもう少ししっかり作成したものを記載します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<apex:page > <p>初めまして!{! $user.lastname}{! $user.firstname}</p> <p>会社名は{! $user.companyname}です。</p> <p> 今日は {! TEXT (TODAY()) } ですね。</p> <p> 1週間後は {! TODAY() + 7 }なので、もう6月も終わりですね。。。</p> <p>Is it true? {! IF(CONTAINS("Account", "株式会社平成"),"その会社はまだ取引をしていません。","現在取引中です。") }</p> </apex:page> |
ここでは会社名も参照してみましょう。
想定値はsavepoです。
次にTODAY関数を使用して今日の日付を取得しましょう。
さらに1週間後の日付も取得したいので、値に+7を追記します。
最後に取引先が存在しているかどうかの条件式をIFとCONTAINSを使用して作成したいと思います。
と、ここまで数式を書いてみたものがどう表示されるかを確認してみましょう。
ここに記載した{! }の中身が動的な要素になっていて、ページを表示するタイミングの条件によって変換されています。
※日付のデータ型が気になったので、TEXT関数で変換しています。
※括弧内の大小文字は区別されません。
詳しい解説をメモで書いておきます。
Trailheadに記載してあるものだけを流用しているので、理解しやすいかと思います。
また下部に参考にしたヘルプドキュメントのリンクを記載していたので、合わせて見てみてください。
※日付の変換についてはこちらのHelpを参考にしています。
※CONTAINSのヘルプドキュメントはこちらをご覧ください。
Visualforceは視覚的にわかりやすい言語なので、初心者の方もとっつきやすい言語だと思います。
今回は条件分岐であるIFやTODAYやTEXTといった関数を使用しました。
参照する条件で表示されるページ内容が変更されるので、ちょっと面白く感じている方もいると思いますので、引き続き色々と触ってみてください。
また同モジュール内のTrailheadに関する記事はこちらからご覧頂けます
ではでは!