Book Image

Visualforce Development Cookbook - Second Edition

By : Keir Bowden
Book Image

Visualforce Development Cookbook - Second Edition

By: Keir Bowden

Overview of this book

Visualforce is a framework that allows developers to build sophisticated, custom user interfaces that can be hosted natively on the Force.com platform. The Visualforce framework includes a tag-based markup language, similar to HTML that is used to write the Visualforce pages and a set of controllers that are used to write business logic to the Visualforce pages. Visualforce Development Cookbook provides solutions to a variety of challenges faced by Salesforce developers and demonstrates how easy it is to build rich, interactive pages using Visualforce. Whether you are looking to make a minor addition to the standard page functionality or override it completely, this book will provide you with the help you require throughout. You will start by learning about the simple utilities and will build up to more advanced techniques for data visualization and to reuse functionality. You will learn how to perform various tasks such as creating multiple records from a single page, visualizing data as charts, using JavaScript to enhance client-side functionality, building a public website, and making data available to a mobile device. With an interesting chapter on tackling common issues faced while developing Visualforce pages, the book provides lots of practical examples to enhance and extend your Salesforce user interface.
Table of Contents (16 chapters)
Visualforce Development Cookbook - Second Edition
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface

Overriding standard buttons


Two common complaints from users are that the information they are interested in requires a number of clicks to access, or that there is too much information on a single page, resulting in a cluttered layout that requires significant scrolling. This is an area where a Visualforce override can make a significant difference by traversing relationships to display information from a number of records on a single page.

Salesforce allows the standard pages associated with sObject record actions, such as view and edit, to be overridden with Visualforce pages. This is typically used to display the record in a branded or customized format; for example, to display details and related lists in separate tabs.

In this recipe, we will override the standard page associated with viewing an account record with a Visualforce page that not only provides a tabbed user interface but also lifts up additional activity information from the related contact list and line item information from the related opportunity lists. Furthermore, the related opportunities displayed will be limited to those that are open.

Note

Only Visualforce pages that use the standard controller for the sObject can override standard pages.

Getting ready

This recipe makes use of a standard controller, so we only need to create the Visualforce page.

How to do it...

  1. Navigate to the Visualforce setup page by clicking on Your Name | Setup | Develop | Visualforce Pages.

  2. Click on the New button.

  3. Enter AccViewOverride in the Label field.

  4. Accept the default AccViewOverride that is automatically generated for the Name field.

  5. Paste the contents of the AccViewOverride.page file from the code download into the Visualforce Markup area and click on the Save button.

  6. Then, navigate to the Visualforce setup page by clicking on Your Name | Setup | Develop | Visualforce Pages.

  7. Locate the entry for the AccViewOverride page and click on the Security link.

  8. On the resulting page, select which profiles should have access and click on the Save button:

    Note

    As the record view override applies to all users, ensure that all profiles are given access to the Visualforce page. Any user with a profile that does not have access will receive an Insufficient Privileges error when attempting to view an account record.

  9. Now that the Visualforce page is complete, configure the account view override. Navigate to Your Name | Setup | Customize | Accounts | Buttons, Links and Actions.

  10. Locate the View entry on the page and click on the Edit link.

  11. On the following page, locate the Override With entry, check the Visualforce Page radio button, and choose AccViewOverride from the list of available pages.

  12. Click on the Save button.

How it works...

When a user clicks on an account record link anywhere in Salesforce, the tabbed page with details from related records is displayed, as shown in the following screenshot:

The key areas of the code are the tabs for the related records. The Open Opportunities tab iterates the opportunities related list, and generates an <apex:pageblock /> for each opportunity that is currently open by encapsulating this inside a conditionally rendered <apex:outputPanel />:

<apex:repeat value="{!Account.Opportunities}" var="opp"> 
  <apex:outputPanel rendered="{!NOT(opp.IsClosed)}"> 
    <apex:pageBlock > 

Then, the standard <apex:relatedList /> component is used to generate the opportunity product list by specifying the current value of the opportunity iterator as the subject of the component:

 <apex:relatedList subject="{!opp}" list="OpportunityLineItems" />