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
Kathir DevanKathir Devan 

How to avoid loop variable must be type...

I want to update the record depend upon level1,2,3 like that.given below i put it red mark  this line am gettting Compile Error: Loop variable must be of type why this happen. how to avoid that one please let me know friends... 

 

//// LEVEL1///////////

List<level1s__c> selectedLevel1 = new List<level1s__c>();

for(Level1sClass cCon: getList1Details() )
{
system.debug('cCon'+cCon.selected);
if(cCon.selected == true)
{
system.debug('firstCCCCCCCCCC:'+cCon.lev1);
selectedLevel1.add(cCon.lev1);
}
}

Level1__c[] levl1= [Select Id from Level1__c where Account__c=: ApexPages.currentPage().getParameters().get('id')];
delete levl1;
if(selectedLevel1 != null)
{
for(level1s__c con : selectedLevel1)
{
system.debug('CCCCCCCCCC:'+con+'\n');
string acctid =ApexPages.currentPage().getParameters().get('id');
List<Level1__c> lvl1obj= new Level1__c[0];
lvl1obj.add(new Level1__c(Name='Level1',Account__c=acctid,cLevel1__c=con.id));
insert lvl1obj;

}
}
///////////////// LEVEL2 //////////////////////
// List<level2s__c> selectedLevel2 = new List<level2s__c>();

for(Level2sClass cCon : getList1Details() )
{
system.debug('cCon'+cCon.selected);
if(cCon.selected == true)
{
system.debug('firstCCCCCCCCCC:'+cCon.lev2);
selectedLevel2.add(cCon.lev2);
}
}

Level2__c[] levl2= [Select Id from Level2__c where Account__c=: ApexPages.currentPage().getParameters().get('id')];
delete levl2;
if(selectedLevel2 != null)
{
for(level2s__c cCon : selectedLevel1)
{
system.debug('CCCCCCCCCC:'+cCon +'\n');
string acctid =ApexPages.currentPage().getParameters().get('id');
List<Level2__c> lvl2obj= new Level1__c[0];
lvl1obj.add(new Level2__c(Name='Level2',Account__c=acctid,cLevel2__c=cCon.id));
insert lvl2obj;

}
}

return null;

}

Kathir DevanKathir Devan

srry small mistake  here below i put red mark this line am getting err.........

 

 

//// LEVEL1///////////

List<level1s__c> selectedLevel1 = new List<level1s__c>();

for(Level1sClass cCon: getList1Details() )
{
system.debug('cCon'+cCon.selected);
if(cCon.selected == true)
{
system.debug('firstCCCCCCCCCC:'+cCon.lev1);
selectedLevel1.add(cCon.lev1);
}
}

Level1__c[] levl1= [Select Id from Level1__c where Account__c=: ApexPages.currentPage().getParameters().get('id')];
delete levl1;
if(selectedLevel1 != null)
{
for(level1s__c con : selectedLevel1)
{
system.debug('CCCCCCCCCC:'+con+'\n');
string acctid =ApexPages.currentPage().getParameters().get('id');
List<Level1__c> lvl1obj= new Level1__c[0];
lvl1obj.add(new Level1__c(Name='Level1',Account__c=acctid,cLevel1__c=con.id));
insert lvl1obj;

}
}
///////////////// LEVEL2 //////////////////////
// List<level2s__c> selectedLevel2 = new List<level2s__c>();

for(Level2sClass cCon : getList1Details() )//: Compile Error: Loop variable must be of type
{
system.debug('cCon'+cCon.selected);
if(cCon.selected == true)
{
system.debug('firstCCCCCCCCCC:'+cCon.lev2);
selectedLevel2.add(cCon.lev2);
}
}

Level2__c[] levl2= [Select Id from Level2__c where Account__c=: ApexPages.currentPage().getParameters().get('id')];
delete levl2;
if(selectedLevel2 != null)
{
for(level2s__c cCon : selectedLevel1)
{
system.debug('CCCCCCCCCC:'+cCon +'\n');
string acctid =ApexPages.currentPage().getParameters().get('id');
List<Level2__c> lvl2obj= new Level1__c[0];
lvl1obj.add(new Level2__c(Name='Level2',Account__c=acctid,cLevel2__c=cCon.id));
insert lvl2obj;

}
}

magicforce9magicforce9

Hi,

 

What is your method getList1Details()  returning ? I belive its returning a list of different type i.e List<Level1sClass> as I can see you didn't got a compile error in the first for loop. So it its returning a list of different object type then how can you capture it in Level2sClass type object. You might need to add another method that returns a List<Level2sClass> and use that method in the error for loop

 

Kathir DevanKathir Devan

Actually my functionality  level of treeview.. if i click 1st level first record is saved,and then select the second level that record also saved and 3rd also like that but here level1 record is saved,2nd level is getting err i need to show three level of records saved on detailed pages..here my code... whr do i write level2 method what should i do..please help me...

note:i put it red mark given below err line

 

public class kathirLand {

public Account acct{get; set;}
public static String accid;
public static String qryString;
public static List<Level1s__c> lstLevel1Tree;
public static List<Level1s__c> lstLevel1;
public static List<Level2s__c> lstLevel2;
public static List<Level3s__c> lstLevel3;
public static List<Level4s__c> lstLevel4;
public String searchinput {get;set;}
public List<Level1__c> lstsearch {get;set;}
public List<Level2__c> lstsearch2 {get;set;}
public List<Level3__c> lstsearch3 {get;set;}
public List<Level4__c> lstsearch4 {get;set;}
public List<Level5__c> lstsearch5 {get;set;}
public List<Level6__c> lstsearch6 {get;set;}
public String lurl{get;set;}
public String state{get; set;}
public String SearchText {get; set;}

public Level1__c le1;

public ApexPages.StandardController stdController;
public kathir_clsLand(ApexPages.StandardController con)
{
stdController = con;
accid = ApexPages.currentPage().getParameters().get('id');
lurl=ApexPages.currentPage().getParameters().get('levid');
this.acct = (Account)con.getRecord();
// this.le1= (Level1__c)con.getRecord();
system.debug('*********'+acct);
Integer j;
Integer k;
// lstLevel1Tree = [Select id, name,(select account__r.name from Level1s__r where account__c =:accid ) from Level1s__c where id in (Select cLevel1__c from Level1__c where Account__c=:accid) ];
if(ApexPages.currentPage().getParameters().get('S') == null)
{
lstLevel1 = [Select Id, Name,Description__c,(select account__r.name from Level1s__r where account__c =:accid ),(select id, name from Level2s__r limit 1) from level1s__c order by Name ];
// lstLevel4 = [Select Id,name,Level3__c,(select id, account__r.name from Level4s__r where account__c =: + accid ) from Level4s__c ];
}else
{
lstLevel1 = [Select id, name,(select account__r.name from Level1s__r where account__c =:accid ) from Level1s__c where id in (Select cLevel1__c from Level1__c where Account__c=:accid) ];
// lstLevel4 = [Select Id,name,Level3__c,(select id, account__r.name from Level4s__r where account__c =: + accid ), (select id from cusLevel5s__r limit 1) from Level4s__c where id in (Select cLevel4__c from Level4__c where Account__c=:accid) ];
}

if(ApexPages.currentPage().getParameters().get('S') == null)
{
Level='All';
}
else
{
Level='Selected Only';
}


}
/* search*/

public void searchmethod()
{
String url = ApexPages.currentPage().getParameters().get('levid');
String urls = ApexPages.currentPage().getParameters().get('id');
if(url != '' && url != null)
{
system.debug('$$$$$$$$$$$$$$$$$$$$$$state '+searchinput );
if(searchinput != null)
{

lstsearch = [Select Level1__c,Name,cLevel1__r.Name, AccountName__c, Account__c ,cLevel1__c from Level1__c where cLevel1__c=:url and AccountName__c LIKE :(searchinput+'%') limit 500];
lstsearch2 = [Select Level2__c,Name,cLevel2__r.Name, AccountName__c, Account__c ,cLevel2__c from Level2__c where cLevel2__c=:url and AccountName__c LIKE :(searchinput+'%') limit 500];
lstsearch3 = [Select Level3__c,Name,cLevel3__r.Name, AccountName__c, Account__c ,cLevel3__c from Level3__c where cLevel3__c=:url and AccountName__c LIKE :(searchinput+'%') limit 500];
lstsearch4 = [Select Level4__c,Name,cLevel4__r.Name, AccountName__c, Account__c ,cLevel4__c from Level4__c where cLevel4__c=:url and AccountName__c LIKE :(searchinput+'%') limit 500];
lstsearch5 = [Select Level5__c,Name,cLevel5__r.Name, AccountName__c, Account__c ,cLevel5__c from Level5__c where cLevel5__c=:url and AccountName__c LIKE :(searchinput+'%') limit 500];
lstsearch6 = [Select Level6__c,Name,cLevel6__r.Name, AccountName__c, Account__c ,cLevel6__c from Level6__c where cLevel6__c=:url and AccountName__c LIKE :(searchinput+'%') limit 500];

system.debug('****search****'+lstsearch);
// return lstLevel11 ;
}

}
}

/*radio*/
public List<SelectOption> getItems()
{
List<SelectOption> options = new List<SelectOption>();
options.add(new SelectOption('All','All'));
options.add(new SelectOption('Selected Only','Selected Only'));
return options;
}

public string Level;
public String getLevel()
{
return Level;
}
public void setLevel(String Level)
{
this.Level= Level;
}
/*cuslevel start */

public class Level1sClass
{
public String accURL;
public string acid1{ get; set; }
public Level1s__c lev1{ get; set; }
public Level1s__c lev1Tree{ get; set; }
// public Level1__c lev1AccTree{ get; set; }
public Level1__c lev1IDTree{ get; set; }
public List<Level2sClass> lev2 {get; set;}
public List<Level2sClass> lev2Tree {get; set;}
public integer chkcountL1 {get; set;}
public Boolean selected {get; set;}
public Level1sClass(Level1s__c gp)

{
accURL= ApexPages.currentPage().getParameters().get('id');
lev1 = gp;
lev1Tree = gp;
acid1 = accURL;
/* List<Level1__c> treelst1 = [Select Level1__c,Name,CusLevel1Name__c, AccountName__c, Account__c ,cLevel1__c from Level1__c where Account__c=:accURL];
for(Level1__c le1: treelst1)
{
lev1IDTree = le1;

} */

lev2 = getList2Details(gp);
// lev2Tree = getTreeLevel2list(gp);

if(accURL!= '' && accURL!= null)
{
chkcountL1 = gp.Level1s__r.size();
if(chkcountL1 > 0 )
{
selected = true;

}
else
{
selected = false;

}

}

}
}
public class Level2sClass
{
public String accURL;
public level2s__c lev2 {get; set;}
public level2s__c lev2Tree {get; set;}
public Level2__c lev2IDTree{ get; set; }
public List<Level3sClass> lev3 {get; set;}
public List<Level3sClass> lev3Tree {get; set;}
public Boolean selected {get; set;}
public integer chkcountL2 {get; set;}
public Level2sClass(Level2s__c l2)
{
accURL= ApexPages.currentPage().getParameters().get('id');
lev2 = l2;
lev2Tree = l2;
/* List<Level2__c> treelst2 = [Select Level2__c,Name,CusLevel2Name__c, AccountName__c, Account__c ,cLevel2__c from Level2__c where Account__c=:accURL];
for(Level2__c le1: treelst2)
{
lev2IDTree = le1;

} */
lev3 = getList3Details(l2);
// lev3Tree = getTreeLevel3list(l2);

chkcountL2 = l2.Level2s__r.size();
if(chkcountL2 > 0 )
{
selected = true;

}
else
{
selected = false;

}
}
}
public class Level3sClass
{
public Level3s__c lev3 {get; set;}
public Level3__c lev3IDTree{ get; set; }
public List<Level4sClass> lev4 {get; set;}
public Boolean selected {get; set;}
public integer chkcountL3{get; set;}
public Level3sClass(Level3s__c l3)
{
lev3 = l3;
/* List<Level3__c> treelst3 = [Select Level3__c,Name,CusLevel3Name__c, AccountName__c, Account__c ,cLevel3__c from Level3__c where Account__c=:accid];
for(Level3__c le1: treelst3 )
{
lev3IDTree = le1;

} */

lev4 = getList4Details(l3);
chkcountL3 = l3.Level3s__r.size();
if(chkcountL3 > 0 )
{
selected = true;

}
else
{
selected = false;

}
}
}
public class Level4sClass
{
public Level4s__c lev4 {get; set;}
public Boolean selected {get; set;}
public integer chkcountL4{get; set;}
public Level4sClass(Level4s__c l4)
{
lev4 = l4;
// lstLevel4 = [Select Id,name,Level3__c,(select id, account__r.name from Level4s__r where account__c =: + accid ) from Level4s__c where Level3__c =:lev4.id limit 1 ];
chkcountL4 = l4.Level4s__r.size();
if(chkcountL4 > 0 )
{
selected = true;

}
else
{
selected = false;

}
}
}
List<Level1sClass> Level1List{get; set;}
public List<Level1sClass> getList1Details()

{
if(Level1List == null)
{
Level1List = new List<Level1sClass>();

for(level1s__c k: lstLevel1 )
{
Level1List.add(new Level1sClass(k));
}
}

return Level1List ;
}

public static List<Level2sClass> Level2List;
public static List<Level2sClass> getList2Details(Level1s__c lvl)


{
Level2List= new List<Level2sClass>();
if(ApexPages.currentPage().getParameters().get('S') == null)
{
lstLevel2 = [Select id,name,Level1_Name__c,Level1__c, (select id,account__r.name from Level2s__r where account__c =:accid ) from Level2s__c where Level1__c =:lvl.id order by id];

}else
{
lstLevel2 = [Select id,name,Level1_Name__c,Level1__c, (select id,account__r.name from Level2s__r where account__c =:accid ),(select id from Level3s__r limit 1) from Level2s__c where Level1__c =:lvl.id and id in (Select cLevel2__c from Level2__c where Account__c=:accid) order by id];

}
for(level2s__c s: lstLevel2)
{
Level2List.add(new Level2sClass(s));
}


return Level2List;
}

public static List<Level3sClass> Level3List;
public static List<Level3sClass> getList3Details(Level2s__c lvl)
{
Level3List= new List<Level3sClass>();
if(ApexPages.currentPage().getParameters().get('S') == null)
{
lstLevel3 = [Select Id,name,Description__c,Level2__c,(select id,account__r.name from Level3s__r where account__c =: accid ),(select id from cusLevel4s__r limit 1) from Level3s__c where Level2__c =:lvl.id ];
}else
{
lstLevel3 = [Select Id,name,Description__c,Level2__c,(select id,account__r.name from Level3s__r where account__c =: accid ),(select id from cusLevel4s__r limit 1) from Level3s__c where Level2__c =:lvl.id and id in (Select cLevel3__c from Level3__c where Account__c =: accid) ];
}

for(level3s__c s: lstLevel3)
{
Level3List.add(new Level3sClass(s));
}

return Level3List;
}
public static List<Level4sClass> Level4List;
public static List<Level4sClass> getList4Details(Level3s__c lv4)
{

Level4List= new List<Level4sClass>();



return Level4List;
}

/*cuslevel end */

/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Save $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */

public PageReference Save()
{
List<level1s__c> selectLevel1 = new List<level1s__c>();
//this.stdController.save();

/////////// LEVEL1 ///////////////////
List<level1s__c> selectedLevel1 = new List<level1s__c>();
for(Level1sClass cCon : getList1Details() )
{
system.debug('cCon'+cCon.selected);
if(cCon.selected == true)
{
system.debug('firstCCCCCCCCCC:'+cCon.lev1);
selectedLevel1.add(cCon.lev1);
}
}

Level1__c[] levl1= [Select Id from Level1__c where Account__c=: ApexPages.currentPage().getParameters().get('id')];
delete levl1;
if(selectedLevel1 != null)
{
for(level1s__c con : selectedLevel1)
{
system.debug('CCCCCCCCCC:'+con+'\n');
string acctid =ApexPages.currentPage().getParameters().get('id');
List<Level1__c> lvl1obj= new Level1__c[0];
lvl1obj.add(new Level1__c(Name='Level1',Account__c=acctid,cLevel1__c=con.id));
insert lvl1obj;

}
}
///////////////// LEVEL2 //////////////////////
List<level2s__c> selectedLevel2 = new List<level2s__c>();

for(Level2sClass cCon : getList2Details()) 
{
system.debug('cCon'+cCon.selected);
if(cCon.selected == true)
{
system.debug('firstCCCCCCCCCC:'+cCon.lev2);
selectedLevel2.add(cCon.lev2);
}
}

Level2__c[] levl2= [Select Id from Level2__c where Account__c=: ApexPages.currentPage().getParameters().get('id')];
delete levl2;
if(selectedLevel2 != null)
{
for(level2s__c con : selectedLevel2)
{
system.debug('CCCCCCCCCC:'+con+'\n');
string acctid =ApexPages.currentPage().getParameters().get('id');
List<Level2__c> lvl2obj= new Level2__c[0];
lvl2obj.add(new Level2__c(Name='Level2',Account__c=acctid,cLevel2__c=con.id));
insert lvl2obj;

}
}

return null;

}