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
DJP1SDJP1S 

Rewrite code to handle printing text in a loop

I have a class that has some limited functionality. I'd like for it to be able to handle more related priorities without having to hard-code each scnario, e.g.:

 

List<Client_Priority__c> writePriority = new Client_Priority__c[6];
                   writePriority = [SELECT ClientCode__c, Priority_Notes__c, Status__c FROM Client_Priority__c
                                      WHERE Status__c = 'Active' AND Client_Priority__c.ClientCode__c =: cci.Id
                                      LIMIT 5];
                                       
                            //for(Client_Priority__c wp : writePriority){
                if(writePriority.size() == 1){
                                priorityList += 'Client Priorities: \r\n- ' + writePriority[0].Priority_Notes__c;
                                priorityList += '\r\n';
                }
                if(writePriority.size() == 2){
                                priorityList += 'Client Priorities: \r\n- ' + writePriority[0].Priority_Notes__c;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[1].Priority_Notes__c ;
                                priorityList += '\r\n';
                }
                if(writePriority.size() == 3){
                                priorityList += 'Client Priorities: \r\n- ' + writePriority[0].Priority_Notes__c;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[1].Priority_Notes__c ;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[2].Priority_Notes__c ;
                }
                if(writePriority.size() >= 4){
                                priorityList += 'Client Priorities: \r\n- ' + writePriority[0].Priority_Notes__c;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[1].Priority_Notes__c ;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[2].Priority_Notes__c ;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[3].Priority_Notes__c ;
                }
                if(writePriority.size() >= 5){
                                priorityList += 'Client Priorities: \r\n- ' + writePriority[0].Priority_Notes__c;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[1].Priority_Notes__c ;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[2].Priority_Notes__c ;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[3].Priority_Notes__c ;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[4].Priority_Notes__c ;
                }
                if(writePriority.size() >= 6){
                                priorityList += 'Client Priorities: \r\n- ' + writePriority[0].Priority_Notes__c;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[1].Priority_Notes__c ;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[2].Priority_Notes__c ;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[3].Priority_Notes__c ;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[4].Priority_Notes__c ;
                                priorityList += '\r\n';
                                priorityList += '- ' + writePriority[5].Priority_Notes__c ;
                }

 

It prints text out too the client priorities field like this:

 

Client Priorities:

- A Priority

- Another Priority

- Foo Foo Foo

 

How could I get this to work in a loop to handle more than 6 (what I have coded for now) client priorities?

Best Answer chosen by Admin (Salesforce Developers) 
SLockardSLockard

Here ya go, I hope this helps you.

String priorityList = '';
Integer num = 5; List<Client_Priority__c> writePriority = new List<Client_Priority__c>(); writePriority = [SELECT ClientCode__c, Priority_Notes__c, Status__c FROM Client_Priority__c WHERE Status__c = 'Active' AND Client_Priority__c.ClientCode__c =: cci.Id LIMIT :num]; for (Integer i = 0; i < writePriority.size(); i++) {
if (i == 0)
{ priorityList += 'Client Priorities: \r\n- ' + writePriority[i].Priority_Notes__c;
}
else
{
priorityList += '- ' + writePriority[i].Priority_Notes__c ;
} priorityList += '\r\n'; }

 

               

All Answers

SLockardSLockard

Here ya go, I hope this helps you.

String priorityList = '';
Integer num = 5; List<Client_Priority__c> writePriority = new List<Client_Priority__c>(); writePriority = [SELECT ClientCode__c, Priority_Notes__c, Status__c FROM Client_Priority__c WHERE Status__c = 'Active' AND Client_Priority__c.ClientCode__c =: cci.Id LIMIT :num]; for (Integer i = 0; i < writePriority.size(); i++) {
if (i == 0)
{ priorityList += 'Client Priorities: \r\n- ' + writePriority[i].Priority_Notes__c;
}
else
{
priorityList += '- ' + writePriority[i].Priority_Notes__c ;
} priorityList += '\r\n'; }

 

               

This was selected as the best answer
DJP1SDJP1S

Thanks, that definitely gave me some headway.

 

It writes out like this per your code:

 

Client Priorities:

- First priority

Client Priorities:

- Second priority

 

I revised it to look like this, which get's me 95% there. I just need to trim the last character, how do I do that?

 

This makes it look like this:

 

Client Priorities:

- blah blah

- more blah

-

 

I get an extra 'r\n- '. I just need to cut that off. 

 

Integer num = 10;
				
				List<Client_Priority__c> writePriority = new List<Client_Priority__c>();
				writePriority = [SELECT ClientCode__c, Priority_Notes__c, Status__c FROM Client_Priority__c
				    WHERE Status__c = 'Active' AND Client_Priority__c.ClientCode__c =: cci.Id
				    LIMIT :num];
				
                priorityList = 'Client Priorities: \r\n- ';
                
				for (Integer i = 0; i < writePriority.size(); i++)
				{
				    priorityList += writePriority[i].Priority_Notes__c;
				    priorityList += '\r\n- ';  
				}

 

SLockardSLockard

Yeah, I edited my post right after you saw it probably. Look back up at my first post and try that again.

DJP1SDJP1S

Works like a charm, thank you!

SLockardSLockard

You're welcome.