function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Sanu VermaSanu Verma 

Fetch field Dynamically from List (Related to code optimisation)

Hi,
My Scenarios is to convert each field value into CM and then display on vf page. To achieve this i created a sObject list and fetch every field into String and then do Converting Cm Operation.

here is the code:-
string query = '';
                query = 'Select ' + String.join(sObjectFieldsList, ',') + ' From Measurement__c WHERE Huntsman_Order__c = :hOrderId and Client__c = :clientId ORDER BY CreatedDate DESC';
                List<Measurement__c> measurementList = Database.query(query);

if(productionType == 'LDC'){                      
                        String NeckStr = measurementList[0].Neck_Shirt__c;
                        String RSlopeStr = measurementList[0].R_Slope_Shirt__c;
                        String FrontlengthStr = measurementList[0].Front_Length_Shirt__c;
                        String LSlopeStr = measurementList[0].L_Slope_Shirt__c;
                        String BackLengthStr = measurementList[0].Back_Length_Shirt__c;
                        String PTPStr = measurementList[0].Point_to_Point_Shirt__c;
                        String ChestStr = measurementList[0].Chest_Shirt__c;
                        String ChestAllownaceStr = measurementList[0].Chest_Allowance_Shirt__c;
                        String RSleeveStr = measurementList[0].R_Sleeve_Shirt__c;
                        String WaistStr = measurementList[0].Waist_Shirt__c;
                        String WaistAllowanceStr = measurementList[0].Waist_Allowance_Shirt__c;
                        String LSleeveStr = measurementList[0].L_Sleeve_Shirt__c;
                        String SeatStr = measurementList[0].Seat_Shirt__c;
                        String SeatAllowanceStr = measurementList[0].Seat_Allowance_Shirt__c;
                        String RCuffStr = measurementList[0].R_Wrist_Shirt__c;
                        String LBicepsStr = measurementList[0].L_Bicep_Shirt__c;
                        String RBicepsStr = measurementList[0].R_Bicep_Shirt__c;
                        String LCuffStr = measurementList[0].L_Wrist_Shirt__c;
                        
                        if(String.valueOf(measurementList[0].Neck_Shirt__c).trim().contains(' ')){
                           List<String> filterLogicSplittedbySpace = neckStr.split(' ');
                            if(filterLogicSplittedbySpace[1] != null && filterLogicSplittedbySpace[1].contains('/')){
                                List<String> splitBySlash = filterLogicSplittedbySpace[1].split('/');
                                Decimal val = (Decimal.valueOf(filterLogicSplittedbySpace[0])+(Decimal.valueOf(splitBySlash[0]) / Decimal.valueOf(splitBySlash[1]))) * 2.54; 
                                measurementList[0].Neck_Shirt__c = String.valueOf(val);
                                
                            }
                        } else {
                                Decimal val = (Decimal.valueOf(neckStr)) * 2.54; 
                                measurementList[0].Neck_Shirt__c = String.valueOf(val);
                        }
                        if(String.valueOf(measurementList[0].R_Slope_Shirt__c).trim().contains(' ')){
                           List<String> filterLogicSplittedbySpace = RSlopeStr.split(' ');
                            if(filterLogicSplittedbySpace[1] != null && filterLogicSplittedbySpace[1].contains('/')){
                                List<String> splitBySlash = filterLogicSplittedbySpace[1].split('/');
                                Decimal val = (Decimal.valueOf(filterLogicSplittedbySpace[0])+(Decimal.valueOf(splitBySlash[0]) / Decimal.valueOf(splitBySlash[1]))) * 2.54; 
                                measurementList[0].R_Slope_Shirt__c = String.valueOf(val);
                                
                            } 
                        } else {
                                Decimal val = (Decimal.valueOf(RSlopeStr)) * 2.54; 
                                measurementList[0].R_Slope_Shirt__c = String.valueOf(val);
                        }
                        if(String.valueOf(measurementList[0].Front_Length_Shirt__c).trim().contains(' ')){
                           List<String> filterLogicSplittedbySpace = FrontlengthStr.split(' ');
                            if(filterLogicSplittedbySpace[1] != null && filterLogicSplittedbySpace[1].contains('/')){
                                List<String> splitBySlash = filterLogicSplittedbySpace[1].split('/');
                                Decimal val = (Decimal.valueOf(filterLogicSplittedbySpace[0])+(Decimal.valueOf(splitBySlash[0]) / Decimal.valueOf(splitBySlash[1]))) * 2.54; 
                                measurementList[0].Front_Length_Shirt__c = String.valueOf(val);
                                
                            } 
                        } else {
                                Decimal val = (Decimal.valueOf(FrontlengthStr)) * 2.54; 
                                measurementList[0].Front_Length_Shirt__c = String.valueOf(val);
                        }
                        if(String.valueOf(measurementList[0].L_Slope_Shirt__c).trim().contains(' ')){
                           List<String> filterLogicSplittedbySpace = LSlopeStr.split(' ');
                            if(filterLogicSplittedbySpace[1] != null && filterLogicSplittedbySpace[1].contains('/')){
                                List<String> splitBySlash = filterLogicSplittedbySpace[1].split('/');
                                Decimal val = (Decimal.valueOf(filterLogicSplittedbySpace[0])+(Decimal.valueOf(splitBySlash[0]) / Decimal.valueOf(splitBySlash[1]))) * 2.54; 
                                measurementList[0].L_Slope_Shirt__c = String.valueOf(val);
                                
                            } 
                            
                        } else {
                                Decimal val = (Decimal.valueOf(LSlopeStr)) * 2.54; 
                                measurementList[0].L_Slope_Shirt__c = String.valueOf(val);
                        }

and so on. So in 1st part of Code you see i fetch every field and Store in string and then do operation. So is there a way to do it dynamically?