Two steps: Create a new entity and populate it with your options and add the relationship to the entity you need, then display it on the form where you want it. Let’s take it step by step. Note, I will be showing this in the new CRM 2013 Online, but the same method will work in 2011 or on-premise deployments.
The first step is to create an entity for your list. You must have the System Administrator or System Customizer role to perform this task.
1. Go to Settings/Customize/Customize the System, click on Entities and then New and you will be presented with the dialog below. Create a display name and a plural name for this “list” and tick the “Settings” area to display so you can access this later for adding items, then click Save and the dialog box will refresh.
Now click “Fields” in the left sidebar and scroll down to “new name” and double-click it. New entities are created with a default name, this step is optional but it makes sense to use a relevant name
Back in the Entity Dialog click “N:N Relationships” in the sidebar and click New. Select the entity you want this list to appear in, (I chose Opportunities ) and Save and Close. (Note you can add additional N:N relationships to use this list in other entities, like a global list)
Click Save and Close, and Publish all Customizations
Go back to, in my case, the Opportunities entity, click Forms and double-click the Default Opportunity form, or whichever form you want to add the list to:
In the form designer, click in the form block where you want the list to appear, then on the Insert tab click to add a Sub-Grid.
Create a name, a label, select the list entity, uncheck chart and click Set, Save and Publish
Here you can see the block was added to the form, as you may know you can resize and drag this anywhere you want.
Now let’s take a look at our completed Opportunity Form. You can click the image to enlarge.
In my opinion this is much more powerful than a simple multi-select list as each item in the list can be clicked to take you to that item’s information. While I only created an item name, I could have added more fields to the item entity to provide whatever additional information I wanted.
The best thing about this method is that it is “future-proof”, we have not introduced any third-party or foreign code so this will upgrade seamlessly.
In our Salesforce migration we were even able to map a Salesforce.com picklist to this related list lookup with no issues.
Feel free to give me your thoughts on this method in the comments below.