Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save fractastical/989771 to your computer and use it in GitHub Desktop.
Save fractastical/989771 to your computer and use it in GitHub Desktop.
@fractastical Field Details from fieldnames and object Name
public void getLabelsAndWidthsfromFields(List<String> fieldNames, String objectName)
{
labels = new List<String>();
widths = new List<String>();
try {
Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
SObjectType sot = gd.get(objectName);
Map<String, SObjectField> fields = sot.getDescribe().fields.getMap();
List<SObjectField> fieldtokens = fields.values();
for(String fn : fieldNames)
{
SObjectField field;
List<String> fnParts = fn.split('[.]');
if(fnParts.size() == 2)
{
String outerObjectName = fnParts.get(0);
if(outerObjectName.endsWith('__r'))
outerObjectName = outerObjectName.substring(0,outerObjectName.length() - 1) + 'c';
SObjectType sotOuter = gd.get(outerObjectName);
Map<String, SObjectField> outerFields = sotOuter.getDescribe().fields.getMap();
field = outerFields.get(fnParts.get(1));
}
else
field = fields.get(fn);
Schema.DescribeFieldResult fieldDescribe = field.getDescribe();
labels.add(fieldDescribe.getLabel());
widths.add(String.valueOf(fieldDescribe.getLength() * 3));
}
}
catch (Exception e)
{
System.debug('UNABLE TO GENERATE LABELS:' + e);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment