Visualforce ページによる既存のページの上書き
標準の取引先詳細ページなど、既存のページ形式を変更するとします。取引先のすべての情報は単一ページに表示されます。多くの情報がある場合は、延々とスクロールする必要があります。Visualforce ページを使用すると、取引先責任者、商談など、取引先の各セクションをタブに表示できます。
最初に、クイック修正を使用して新しい Visualforce ページを作成します。
- ブラウザで、テキスト「/apex/tabbedAccount」を Salesforce インスタンスの URL に追加します。たとえば、Salesforce インスタンスが https://na1.salesforce.com の場合、新しい URL は https://na1.salesforce.com/apex/tabbedAccount になります。次のエラーメッセージが表示されます。
- 新規ページを作成するには、[Create Page tabbedAccount (ページ tabbedAccount を作成)] をクリックします。
- ページの左下のページエディタリンクをクリックします。これにより、新しいページのコードが次のように表示されます。
1<apex:page> 2<!-- Begin Default Content REMOVE THIS --> 3<h1>Congratulations</h1> 4This is your new Page: tabbedAccount 5<!-- End Default Content REMOVE THIS --> 6</apex:page> - 既存のコードを次のコードで置き換えて、[Save (保存)] をクリックします。
1swfobject.registerObject("clippy.codeblock-1", "9"); 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17<apex:page standardController="Account" showHeader="true" 18 tabStyle="account" > 19 <style> 20 .activeTab {background-color: #236FBD; color:white; 21 background-image:none} 22 .inactiveTab { background-color: lightgrey; color:black; 23 background-image:none} 24 </style> 25 <apex:tabPanel switchType="client" selectedTab="tabdetails" 26 id="AccountTabPanel" tabClass='activeTab' 27 inactiveTabClass='inactiveTab'> 28 <apex:tab label="Details" name="AccDetails" id="tabdetails"> 29 <apex:detail relatedList="false" title="true"/> 30 </apex:tab> 31 <apex:tab label="Contacts" name="Contacts" id="tabContact"> 32 <apex:relatedList subject="{!account}" list="contacts" /> 33 </apex:tab> 34 <apex:tab label="Opportunities" name="Opportunities" 35 id="tabOpp"> 36 <apex:relatedList subject="{!account}" 37 list="opportunities" /> 38 </apex:tab> 39 <apex:tab label="Open Activities" name="OpenActivities" 40 id="tabOpenAct"> 41 <apex:relatedList subject="{!account}" 42 list="OpenActivities" /> 43 </apex:tab> 44 <apex:tab label="Notes and Attachments" 45 name="NotesAndAttachments" id="tabNoteAtt"> 46 <apex:relatedList subject="{!account}" 47 list="CombinedAttachments" /> 48 </apex:tab> 49 </apex:tabPanel> 50</apex:page> - [取引先] ページにはデータがありません。前のページと同様に、URL に特定の取引先の ID を指定する必要があります。たとえば、https://Salesforce_instance/apex/tabbedAccount?id=001D000000IRt53 のように指定します。取引先 ID を追加した後、ページは次のように表示されます。
このページマークアップについては、次の点に留意してく��さい。
- <style> は、実際には Visualforce マークアップではなく CSS マークアップの一部です。このマークアップでは、activeTab と inactiveTab という 2 種類のタブのスタイルが定義されます。
-
<apex:tabPanel> が、タブの生成に使用されます。次の属性の使用方法を確認してください。
- tabClass 属性: 有効になっているタブの表示に使用されるスタイルクラスを指定します。
- inactiveTabClass 属性: 無効になっているタブの表示に使用されるスタイルクラスを指定します。
- タブパネルの定義内に、それぞれの子のタブコンポーネントの定義 <apex:tab> があります。最初のタブは <apex:detail> タグを使用してページの詳細ビューの該当部分を返します。
1<apex:tab label="Details" name="AccDetails" id="tabdetails"> 2 <apex:detail relatedList="false" title="true"/> 3 </apex:tab>一方、残りのタブは <apex:relatedList> を使用して取引先ページの異なる部分を指定します。取引先責任者のタブは次のようになります。タブでは、取引先責任者の既存のリストが使用されます。1<apex:tab label="Contacts" name="Contacts" id="tabContact"> 2 <apex:relatedList subject="{!account}" list="contacts" /> 3 </apex:tab>
これで取引先をタブで表示するページが作成できたため、このページを使用してすべての取引先の詳細ビューを上書きできるようになりました。
- [設定] から、 をクリックします。
- [ビュー] の横にある [編集] をクリックします。
- [上書き手段] で、[Visualforce ページ] を選択します。
- [Visualforce ページ] ドロップダウンリストで、tabbedAccount を選択します。
- [保存] をクリックします。
[取引先] タブをクリックし、任意の取引先を選択します。取引先の詳細がタブに表示されます。