Return to Snippet

Revision: 29382
at July 28, 2010 07:17 by d3developer


Initial Code
    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);
		    }
		    		 
    }

Initial URL

                                

Initial Description

                                

Initial Title
@fractastical Field Details from fieldnames and object Name

Initial Tags

                                

Initial Language
Other