Создать визуальную страницу силы с помощью класса Apex

Моя задача состоит в том, чтобы создать страницу визуальной силы с помощью класса Apex. На странице visual force должно быть только id поле и search button,

Мои требования: есть 6 объектов obj1, obj2, obj3, obj4, obj5, obj6в котором obj1 имеет отношение к obj2 & obj2, с obj3& obj3, с obj4 & оbj4, с obj5 & obj5, с obj6, Но когда я вставляю запись id в окне поиска я должен получить связанные списки всех 6 объектов на одной странице.

Мой код должен дать такой вывод:

  • когда я нажимаю на obj1 это должно показать obj2, obj3, obj4, obj5, obj6
  • когда я нажимаю на obj2 это должно показать obj1, obj3, obj4, obj5, obj6
  • когда я нажимаю на obj3 это должно показать obj1, obj2, obj4, obj5, obj6
  • когда я нажимаю на obj4 это должно показать obj1, obj2, obj3, obj5, obj6
  • когда я нажимаю на obj5 это должно показать obj1, obj2, obj3, obj4, obj6
  • когда я нажимаю на obj6 это должно показать obj1, obj2, obj3, obj4, obj5

Мой код:

VF страница

    <apex:pageBlock>
        <apex:inputText value="{!searchText}" />
        <apex:commandButton onclick="bindData('{!searchText}');return false;" value="Search" />
    </apex:pageBlock>
        <apex:dataTable value="{!Obj2List}" var="v" id="tblObj2" title="Obj2" rowClasses="odd,even" styleClass="tableClass">
            <apex:column title="Name"  >
                <apex:facet name="header">Name</apex:facet>
                <apex:outputText value="{!v.name}"/>
            </apex:column>
        </apex:dataTable>
        <br/>
        <apex:dataTable value="{!Obj3List}" var="v" id="tblObj3" title="Obj3">
            <apex:column title="Name"  >
                <apex:facet name="header">Name</apex:facet>
                <apex:outputText value="{!v.name}"/>
            </apex:column>
        </apex:dataTable>
        <br/>
        <apex:dataTable value="{!Obj4List}" var="v" id="tblObj4" title="Obj4">
            <apex:column title="Name" >
                <apex:facet name="header">Name</apex:facet>
                <apex:outputText value="{!v.name}"/>
            </apex:column>
        </apex:dataTable>
        <br/>
        <apex:dataTable value="{!Obj5List}" var="v" id="tblObj5" title="Obj5">
            <apex:column title="Name" >
                <apex:facet name="header">Name</apex:facet>
                <apex:outputText value="{!v.name}"/>
            </apex:column>
        </apex:dataTable>
        <br/>
        <apex:dataTable value="{!Obj6List}" var="v" id="tblObj6" title="Obj6">
            <apex:column title="Name">
                <apex:facet name="header">Name</apex:facet>
                <apex:outputText value="{!v.name}"/>
            </apex:column>
        </apex:dataTable>

    <apex:actionFunction id="bindData" name="bindData" action="{!bindData}" reRender="tblObj2,tblObj3,tblObj4,tblObj5,tblObj6">
        <apex:param name="obj1Value" value="" />
    </apex:actionFunction>
</apex:form>

Контроллер Apex

public class displayChilds {

public obj1__c obj1{get;set;}
public string searchText{get;set;}
public List<Obj2__c> Obj2List{get;set;}
public List<Obj3__c>Obj3List{get;set;}
public List<Obj4__c>Obj4List{get;set;}
public List<Obj5__c>Obj5List{get;set;}
public List<Obj6__c>Obj6List{get;set;}

public displayChilds(ApexPages.StandardController ctrl){
    // obj1 = (obj1__c)ctrl.getRecord();
}

public void bindData(){
    // string obj1Id = ApexPages.currentPage().getParameters().get('obj1Value');
    // searchText = obj1Id;
    System.debug('searchText '+searchText);
    bindObj2List();
}
public void bindObj2List(){
    if(searchText !=''){
        List<Obj1__c> ObjList = [select id,  Obj2__r.Id,Obj2__r.Name from obj1__C where id =:searchText  ];
        Obj2List = new List<Obj2__c>();
        for(obj1__C c: ObjList){
            if(c.Obj2__r!=null){                    
                Obj2List.add(c.Obj2__r); 
            }
        }
        if(Obj2List.size()>0){
            bindObj3List();
        }
    }           

}
public void bindObj3List(){

    List<ID>objExistId= new List<Id>();
    for(Obj2__c c:Obj2List ){
        objExistId.add(c.id);
    } 
    List<Obj2__c> ObjList = [select id,  Obj3__r.Id,Obj3__r.Name from obj2__C where Id  in :objExistId  ];
    System.debug('ObjList '+ObjList);
    Obj3List = new List<Obj3__c>();
    for(obj2__C c: ObjList){ 
        if(c.Obj3__r!=null){                
            Obj3List.add(c.Obj3__r);  
        }
    }                   
    if(Obj3List.size()>0){
        bindObj4List();
    }
}
public void bindObj4List(){

    List<ID>objExistId= new List<Id>();
    for(Obj3__c c:Obj3List ){
        objExistId.add(c.id);
    } 
    List<Obj3__c> ObjList = [select id,  Obj4__r.Id,Obj4__r.Name from obj3__C where Id  in :objExistId  ];
    Obj4List = new List<Obj4__c>();
    for(obj3__C c: ObjList){ 
        if(c.Obj4__r!=null){ 
            system.debug('c'+c);
            Obj4List.add(c.Obj4__r);
        }

    } 
    if(Obj4List.size()>0){
        bindObj5List();
    }

}
public void bindObj5List(){

    List<ID>objExistId= new List<Id>();
    for(Obj4__c c:Obj4List ){
        objExistId.add(c.id);
    } 
    List<Obj4__c> ObjList = [select id,  Obj5__r.Id,Obj5__r.Name from obj4__C where Id  in :objExistId  ];
    Obj5List = new List<Obj5__c>();

    for(obj4__C c: ObjList){ 
        if(c!=null){
            Obj5List.add(c.Obj5__r);
        }
    } 
    if(Obj5List.size()>0){
        bindObj6List();
    }

}
public void bindObj6List(){

    List<ID>objExistId= new List<Id>();
    for(Obj5__c c:Obj5List ){
        objExistId.add(c.id);
    } 
    List<Obj5__c> ObjList = [select id,  Obj6__r.Id,Obj6__r.Name from obj5__C where Id  in :objExistId  ];
    for(obj5__C o1: ObjList){               
        Obj6List = new List<Obj6__c>();
        Obj6List.add(o1.Obj6__r);               
    }}}

0 ответов

Другие вопросы по тегам