Der Schwerpunkt des letzten Projektes lag eindeutig auf der benutzerfreundlichen Darstellung bestimmter Inhalte. Dazu gehört unter anderem die Benutzung von Checkboxen.
Salesforce stellt zwar eine relativ große Menge von Feldtypen zur Verfügung, aber die in der HTML-Welt so geliebten Checkboxen sind leider nicht dabei.
Mit Einsatz einer neuen VisualForce Page ist das Problem aber schnell gelöst.
Das Ziel dabei ist: die Werte eines "Picklist"-Feldes sollen als Checkboxen erscheinen.
VisualForce Page:
Der Controller baut die entsprechende Auswahlmöglichkeiten zusammen:
Die folgende Funktion liefert die gewünschte Liste:
Salesforce stellt zwar eine relativ große Menge von Feldtypen zur Verfügung, aber die in der HTML-Welt so geliebten Checkboxen sind leider nicht dabei.
Mit Einsatz einer neuen VisualForce Page ist das Problem aber schnell gelöst.
Das Ziel dabei ist: die Werte eines "Picklist"-Feldes sollen als Checkboxen erscheinen.
VisualForce Page:
<apex:selectCheckboxes
value="{!contactTypes}"
>
<apex:selectOptions
value="{!contactTypesOptions}"/>
</apex:selectCheckboxes>
Der Controller baut die entsprechende Auswahlmöglichkeiten zusammen:
{!contactTypesOptions} ist die Liste mit allen Werten
{!contactTypes} ist die Liste mit den Default Werten (aktive Checkboxen)
Ich beschränke mich auf die Beschreibung der Liste mit allen Werten.{!contactTypes} ist die Liste mit den Default Werten (aktive Checkboxen)
Die folgende Funktion liefert die gewünschte Liste:
public
List<SelectOption> getContactTypesOptions(){
return
getPicklistValues(oppObject, 'sf42_ContactType__c');
}
Die wiederum aufgerufene Funktion getPicklistValues()
kann in eine "Helper"-Klasse mit anderen Hilfsmethoden ausgelagert werden.
1. Parameter ist das Ziel-Objekt
2. Parameter ist das Picklist-Feld
/*
getPicklistValues
*/
private
list<SelectOption>
getPicklistValues(SObject obj, String fld){
list<SelectOption>
options = new
list<SelectOption>();
//
Get the object type of the SObject.
Schema.sObjectType
objType = obj.getSObjectType();
//
Describe the SObject using its object type.
Schema.DescribeSObjectResult
objDescribe = objType.getDescribe();
//
Get a map of fields for the SObject
map<String,
Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
//
Get the list of picklist values for this field.
list<Schema.PicklistEntry>
values = fieldMap.get(fld).getDescribe().getPickListValues();
//
Add these values to the selectoption list.
for
(Schema.PicklistEntry a : values){
options.add(new
SelectOption(a.getLabel(), a.getValue()));
}
return
options;
}
Kommentare
Kommentar veröffentlichen