Accountオブジェクトの一覧を表示したいと思います。
四つ項目:取引先名、種別、業種、電話(50個レコードまで)
二つアクション:Edit、Del(Link、今回表示のみ)(具体的な機能はそれから~)
移動:取引先名をクリックすると、その取引先の詳細画面に移動します。(ログイン)
最終的な画面イメージ
一番上の取引先名:Testをクリックすると、
Visualforce1.vfp
<apex:page controller="Apex1" showHeader="false" sidebar="false">
<apex:sectionHeader subtitle="Account表示一覧" title="Account"/>
<apex:form id="formId">
<apex:pageMessages id="message"/>
<apex:pageBlock >
<apex:outputPanel id="showpanel">
<apex:pageBlockTable value="{!accounts}" var="acc" footerClass="footer" id="pageBlockTable">
<apex:column headerValue="Action" width="70px">
<apex:commandLink value="" onclick="" style="color:#015ba7;" id="edit" reRender="formId,message">
Edit
</apex:commandLink>
|
<apex:commandLink value="" onclick="" style="color:#015ba7;" id="del" reRender="formId,message">
Del
</apex:commandLink>
</apex:column>
<apex:column headerValue="取引先名" >
<apex:outputlink value="https://ap2.salesforce.com/{!acc.id}" target="_blank" >{!acc.Name}</apex:outputlink>
</apex:column>
<apex:column value="{!acc.Type}" />
<apex:column value="{!acc.Industry}" />
<apex:column value="{!acc.Phone}" />
</apex:pageBlockTable>
</apex:outputPanel>
</apex:pageBlock>
</apex:form>
</apex:page>
説明:
① controller=”Apex1″:このVisualforce1.vfpに対して、 Apexコード、Visualforce1.vfp画面のコントロールできます。どんなデータが表示されるか、ロジックなど編集したところです。
このページの動作を制御するために使用する、Apex で記述されたカスタムコントローラクラスの名前。standardController 属性も存在する場合、この属性は指定できません。
②showHeader=”false”:Salesforce タブのヘッダーを含めるかどうかを指定する、true:表示、false:非表示制限
ページに Salesforce タブのヘッダーを含めるかどうかを指定する boolean 値。true の場合、タブのヘッダーは表示されます。指定されていない場合、この値はデフォルトの true に設定されます。
注意: Lightning Experience および Salesforce アプリケーションでは、この属性の値は上書きされ、常に false になります。
③sidebar=”false”:標準の Salesforce サイドバーをページに含めるかどうかを指定する、true:表示、false:非表示制限
標準の Salesforce サイドバーをページに含めるかどうかを指定する boolean 値。true の場合、サイドバーは表示されます。指定されていない場合、この値はデフォルトの true に設定されます。
注意: Lightning Experience および Salesforce アプリケーションでは、この属性の値は上書きされ、常に false になります。
①、②、③こちら⇒
apex:page:https://developer.salesforce.com/docs/atlas.ja-jp.pages.meta/pages/pages_compref_page.htm
④<apex:pageMessages id=”message”/> :画面のエラー発生する時、エラーメッセージ内容を表示されるところです。
このコンポーネントは、特定の重要度に対するエラー、警告、およびその他の種類のメッセージ用の Salesforce パターンを使用してカスタムメッセージをページに表示するために使用されます。「pageMessages コンポーネント」も参照してください。
apex:pageMessage:https://developer.salesforce.com/docs/atlas.ja-jp.pages.meta/pages/pages_compref_pageMessage.htm
⑤<apex:pageBlock >:https://developer.salesforce.com/docs/atlas.ja-jp.pages.meta/pages/pages_compref_pageBlock.htm
Salesforce の詳細ページの外観に似た、デフォルトのコンテンツを使用しないスタイルを使用するページの領域です。
このコンポーネントでは、「html-」プレフィックスを使用した HTML パススルー属性がサポートされています。パススルー属性は、生成されたコンテナタグ <div> に適用されます。
⑥<apex:outputPanel id=”showpanel”>:https://developer.salesforce.com/docs/atlas.ja-jp.pages.meta/pages/pages_compref_outputPanel.htm
グループ化された一連のコンテンツです。HTML <span> タグや <div> タグを使用して、またはいずれのタグも使用せずに表示されます。<apex:outputPanel> を使用して、AJAX の更新に使用するコンポーネントをグループ化します。
このコンポーネントでは、「html-」プレフィックスを使用した HTML パススルー属性がサポートされています。パススルー属性は、layout 属性の値に応じて、生成されたコンテナタグである <div> または <span> に適用されます。
⑦<apex:pageBlockTable value=”{!accounts}” var=”acc” footerClass=”footer” id=”pageBlockTable”>:
pageBlockTable:https://developer.salesforce.com/docs/atlas.ja-jp.pages.meta/pages/pages_compref_pageBlockTable.htm?search_text=pageBlockTable
標準のリストビューみたい、レコードを見やすいように表示できる。ほかの類似した機能:<apex:dataTable>、<apex:dataList>、<apex:repeat>など。
value=”{!accounts}”:Apex1の getAccounts()メソッドと合わせて、Accountのレコードを取得し、ループできる。
var=”acc”:Accountのレコードを取得する値はaccに割り当て、accはAccountのレコードです。
id=”pageBlockTable”:<apex:pageBlockTable>の代わりに、重要な識別子。
ページの他のコンポーネントが pageBlockTable コンポーネントを参照できるようにする識別子。
⑧<apex:column>:https://developer.salesforce.com/docs/atlas.ja-jp.pages.meta/pages/pages_compref_column.htm?search_text=%3Capex:column%3E
テーブルの単一の列です。<apex:column> コンポーネントは必ず <apex:dataTable> または <apex:pageBlockTable> コンポーネントの子である必要があります。
headerValue=”Action” :
列ヘッダーに表示されるテキスト。この属性の値を指定すると、列の header ファセットを使用できません。この属性の値を指定することで、列本文の inputField または outputField を使用する場合に表示されるデフォルトのヘッダーラベルが上書きされます。
width=”70px”:
列のピクセル (px) またはパーセント (%) 単位の幅。指定されていない場合、この値はデフォルトの 100 ピクセルに設定されます。
⑨<apex:commandLink value=”” onclick=”” style=”color:#015ba7;” id=”edit” reRender=”formId,message”>
<apex:commandLink>:リンクですね、クリックすると、ほかの画面へ移動できる。
コントローラで定義されているアクションを実行してから、現在のページを更新するか、またはアクションで返される PageReference 変数に基づいて他のページに移動するリンクです。<apex:commandLink> コンポーネントは必ず <apex:form> コンポーネントの子である必要があります。
onclick=””:
onclick イベントが発生した場合 (ユーザがコマンドリンクをクリックした場合) に呼び出される JavaScript。
reRender=”formId,message”:他の場所でリフレッシュできる。formId、message:ほかのタブのIDです。
AJAX 更新要求の結果がクライアントに返されるときに再作成される 1 つ以上のコンポーネントの ID。この値には、単一の ID、ID のカンマ区切りのリスト、または ID のリストまたはコレクションの差し込み項目の式を使用できます。
⑩<apex:column value=”{!acc.Type}” />
value=”{!acc.Type}”:Apex1の getAccounts()メソッド中に、selectの項目ですね。
⑪value=”https://ap2.salesforce.com/{!acc.id}”
{!acc.id}:AccountのID、詳細画面に移動できます。
レコードIDの15桁と18桁の違いと、数式のカスタム項目によるコンバート
SalesforceのレコードIDには15桁と18桁が存在しています。
SalesforceにはすべてのレコードにIDが付与されています。
実はこのレコードIDには15桁のものと18桁のものが存在します。それぞれの違いは下記となります。
15桁ID:大文字・小文字の区別あり
(例:0017F00002UWiiZ)
18桁ID:大文字・小文字の区別なし(例:0017F00002UWiiZQAT)
Apex1.apxc
public with sharing class Apex1 {
public List<Account> accounts;
//変数 accounts のgetメソッド
public List<Account> getAccounts() {
try {
accounts= [select Id,Name,Type,Industry,phone from Account order by createddate desc limit 50 ];
return accounts;
} catch (Exception e) {
ApexPages.addMessages(e);
return null;
}
}
}
説明:
①public with sharing class Apex1:https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_classes_keywords_sharing.htm
With Sharing:ログインユーザーの共有ルールと一致する
with sharing キーワードでは、クラスで現在のユーザの共有ルールを考慮するように指定できます。
Without Sharing:ログインユーザーの共有ルールと一致しない
現在のユーザに適用されている共有ルールを強制実行されないようにするには、クラスの宣言時に without sharing キーワードを使用します。たとえば、クラスが with sharing を使用して宣言された別のクラスからコールされた場合、共有ルールの強制実行を明示的にオフにできます。
②public List<Account> accounts;
変数:accounts、List型のAccount
③public List<Account> getAccounts()
戻り値:List<Account>のgetAccountsメソッド、Accountのlimit 50 個レコードを取得し、createddateの逆に順番通り取得する、最新作成Accountですね。
④ApexPages.addMessages(e):https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_methods_system_apexpages.htm
発生した例外に基づいて、現在のページのコンテキストにメッセージのリストを追加します。
以上となります。
何か問題がございましたら、コメントを頂れば嬉しいです。
Latest posts by zchao (see all)
- Auraでアクションボタン作成して画面のチェックボックス項目一括処理 - 2021年4月12日
- デフォルト項目値を含むレコード作成実例説明(defaultFieldValues) - 2021年1月9日
- Salesforce のノーコード・ローコード開発 - 2020年12月31日
转载请注明:zchao博客之家 » Apex+VisualforceでAccountオブジェクトのCRUDとページングクエリーRーAccount一覧表示(002)