Tag Archives: Salesforce.com

Modal dialogue box using apex and visualforce page

To create a modal dialogue box in visualforce page follow below steps.

  • Login to your Salesforce.com developer account.
  • Click “Setup” in the upper right corner.
  • Under the App Setup section (left menu), expand Develop.
  • Click on Apex Classes.
  • Click the “New” button to create a new Apex Class.
  • Add the following source and click the “Save” button.
    public class TestPopup{
        public boolean DisplayPopup {get; set;}    
        public void ClosePopup() {       
            DisplayPopup = false;   
        public void ShowPopup() {       
            DisplayPopup = true;   
  • Click on Pages (below Apex Classes on the left menu).
  • Create a new Visualforce page by clicking the “New” button.
  • For the purpose of this tutorial I used “TestPopupPage” for my Label & Name.
  • Enter the Visualforce Markup code below and click “Save”.
    <apex:page controller="TestPopup">
            <apex:commandbutton action="{!ShowPopup}" rerender="TestPopup" value="Show Popup">
                This is a sample Test Popup Page.
            <apex:outputpanel id="TestPopup">
            <apex:outputpanel layout="block" rendered="{!DisplayPopUp}" styleclass="popupBackground">
                <apex:outputpanel layout="block" rendered="{!DisplayPopUp}" styleclass="customPopup">
                    Hi, Biswajeet 
                    <apex:commandbutton action="{!ClosePopup}" rerender="TestPopup" value="Close Popup">
    <style type="text/css">
                background-color: white;
                border-width: 2px;
                border-style: solid;
                z-index: 9999;
                left: 50%;
                position: absolute;        
                width: 300px;
                margin-left: -250px;
                opacity: 0.20;
                filter: alpha(opacity = 20);
                position: absolute;
                width: 100%;
                height: 100%;
                top: 0;
                left: 0;
                z-index: 9998;
  • Now, to view the created visualforce page, you’ll need to go up to the browser address bar and navigate to the apex directory in your Salesforce.com account and type in the page name.
    For me, that is the following: https://na3.salesforce.com/apex/TestPopupPage
    or, you can create a new tab for this visualforce page, and can view it on click of the new created tab.

Here is the output comes up:

Created Visualforce Page:


After click on the button, modal popup is displayed:

download (1)

Add Custom Button to a salesforce standard Page

To create a new custom button go to “Your Name” > Setup > Develop > objects and click the object on which you want to use custom button.
Step 1:
“Your Name” > Setup


Step 2:
Develop > Objects


Step 3:
Now you can see the list of all custom objects. Select the object where you want to create a new custom button.


Step 4:
Now you can see the custom object page. Scroll down to the (Buttons, Links, and Actions) section and click on the New Button or Link.


Step 5:
At the next page you need to define some parameters for the custom button. Very important is that you selects Detail Page Button radio button. In this example i have selected Execute Javascript for the behavior, you can adjust it as you want. Now click on Save.


Step 6:
Now the “Test Button” is in button list.


Step 7:

At the next page click on the Back to Custom Object: Your Object Name to go back to the custom object page.
Now you have to insert your new custom button to the page layout to be able to see it. Scroll down to the Page Layout section and click on Edit link.
At the layout page select Buttons at the left top corner and the click and drag your custom button to the layout.


Now save the layout and then go to the custom object item page to see your new created custom button.

Schedule an apex job

To create and test a schedulable class, let’s take a look at how to schedule the class using the user interface.

  1. Create an apex which implemented the schedulable.
    global class TestScheduleService implements Schedulable
        global void execute(SchedulableContext SC)
  2. Your Name -> Setup
  3. App Setup -> Develop -> Apex Classes
  4. Schedule Apex button at the top -> Click Schedule Apex button
  5. Here you can manually schedule an apex class which implemented the schedulable interface.


How to Create a Visualforce page

To create a new VisualForce page go to “Your Name” > Setup > Develop > Pages and click the New button.

  • Your Name” > Setup
  • Develop > Pages
    download (1)
  • New Page Button
    download (2)

You will now see the VisualForce page creation wizard. The very first thing you will want to do is give your new VisualForce page a Label. A label is a more esthetic name of what your page name will actually be.

Once you’ve typed your page label press the Tab key to set your cursor to the Name field. You will notice that the Name automatically took the value of “Test Page” from Label. SalesForce won’t allow you to have spaces in the name so replace your space with an Underscore character as shown below.

download (3)

SalesForce will automatically give you some default VisualForce markup to work with as shown below.

  <!-- Begin Default Content REMOVE THIS -->
  This is your new Page
  <!-- End Default Content REMOVE THIS -->
  • And now save your page.
  • For preview click on preview button.

download (4)

Salesforce Relationships Among Objects

Master-Detail Relationship (1:N) :
A parent-child relationship in which the master object controls certain behaviors of the detail object:

  • When a record of the master object is deleted, its related detail records are also deleted.
  • The Owner field on the detail object is not available and is automatically set to the owner of its associated master record. Custom objects on the detail side of a master-detail relationship cannot have sharing rules, manual sharing, or queues, as these require the Owner field.
  • The detail record inherits the sharing and security settings of its master record.
  • The master-detail relationship field is required on the page layout of the detail record.
  • By default, records can’t be re-parented in master-detail relationships. Administrators can, however, allow child records in master-detail relationships on custom objects to be re-parented to different parent records by selecting the Allow re-parenting option in the master-detail relationship definition.

We can define master-detail relationships between custom objects or between a custom object and a standard object. However, the standard object cannot be on the detail side of a relationship with a custom object. In addition, we cannot create a master-detail relationship in which the User or Lead objects are the master.

When we define a master-detail relationship, the custom object on which you are working is the detail side. Its data can appear as a custom related list on page layouts for the other object.

Many-To-Many Relationship (N:N):

We can use master-detail relationships to model many-to-many relationships between any two objects. A many-to-many relationship allows each record of one object to be linked to multiple records from another object and vice versa. For example, We may have a custom object called “Bug” that relates to the standard case object such that a bug could be related to multiple cases and a case could also be related to multiple bugs. To create a many-to-many relationship, simply create a custom junction object with two master-detail relationship fields, each linking to the objects you want to relate.

Note: Custom objects with two master-detail relationships are supported in API version 11 and later.

Lookup Relationship (1:N):

This type of relationship links two objects together, but has no effect on deletion or security. Unlike master-detail fields, lookup fields are not automatically required. When we define a lookup relationship, data from one object can appear as a custom related list on page layouts for the other object. See the Salesforce online help for details.