特殊时期,大家一定要保重身体。增强自身免疫力,一切都会过去,一起加油!!!

Apex+VisualforceでAccountオブジェクトのCRUDとページングクエリーRーAccount一覧表示(002)

Salesforce zchao 155℃ 0评论

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>
&nbsp;|&nbsp;
<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

発生した例外に基づいて、現在のページのコンテキストにメッセージのリストを追加します。

 

以上となります。

何か問題がございましたら、コメントを頂れば嬉しいです。

 

 

Follow me

zchao

站长 at GR
我在故我思,我思故我在
Follow me

转载请注明:zchao博客之家 » Apex+VisualforceでAccountオブジェクトのCRUDとページングクエリーRーAccount一覧表示(002)

喜欢 (2)or分享 (0)

说点什么

Please Login to comment
  Subscribe  
提醒