Не отображается id объекта

здравствуйте, подскажите почему не находится объект Patient ?!!

public class AppointmentController {
    public String myText {get;set;}
    public List<Doctor__c> DoctorList {get;set;}
    public List<SelectOption> doctorSelectOptionList {get;set;}
    public List<Patient__c> PatientList {get;set;}
    public List<SelectOption> patientSelectOptionList {get;set;} 
    
    
    

    public AppointmentController (){ 
       DoctorList = [SELECT iD, Name FROM Doctor__c];
     doctorSelectOptionList = new List<SelectOption>();
        for (Doctor__c item : DoctorList){ 
     doctorSelectOptionList.add(new SelectOption(item.Id, item.Name)); 
          
             
            PatientList = [SELECT iD, Name FROM Patient__c];
            patientSelectOptionList = new List<SelectOption>();
            for (Patient__c a : PatientList){
               patientSelectOptionList.add(new SelectOption(item.iD, item.Name)); 
  
            }
        }    
        }          
    }

Лучше скопируйте код и вставьте его с помощью кнопки code, так люди смогут его скопировать к себе и разорраться в чём проблема.
image

1 Вподобання

не совсем понятно что куда вы хотите присвоить.
лучше не используйте переменные типа а.

и код лучше сбросить текстом. тогда поправить будет легче )

1 Вподобання

спасибо за советы! `

public class AppointmentController {
    public String myText {get;set;}
    public List<Doctor__c> DoctorList {get;set;}
    public List<SelectOption> doctorSelectOptionList {get;set;}
    public List<Patient__c> PatientList {get;set;}
    public List<SelectOption> patientSelectOptionList {get;set;} 
    
    
    

    public AppointmentController (){ 
       DoctorList = [SELECT iD, Name FROM Doctor__c];
     doctorSelectOptionList = new List<SelectOption>();
        for (Doctor__c item : DoctorList){ 
     doctorSelectOptionList.add(new SelectOption(item.Id, item.Name)); 
          
             
            PatientList = [SELECT iD, Name FROM Patient__c];
            patientSelectOptionList = new List<SelectOption>();
            for (Patient__c a : PatientList){
               patientSelectOptionList.add(new SelectOption(item.iD, item.Name)); 
               
                
            }
        }   
            
        }          
    }

` в последней строчке я хочу чтоб из объекта пациент доставалось id и поле имени пациентов, но когда я нажимаю Id. мне предлагается взять данные из другого объекта, а нужного вообще в списке нет)) я не знаю как по другому объяснить, надеюсь меня хоть немного поняли)) я только учусь всем этим заниматься

  1. Уберите SOQL из цикла - для этого после doctorSelectOption.add … поставьте }
  2. Во втором цикле замените a на item
1 Вподобання
public class AppointmentController {
    public String myText {get;set;}
    public List<Doctor__c> DoctorList {get;set;}
    public List<SelectOption> doctorSelectOptionList {get;set;}
    public List<Patient__c> PatientList {get;set;}
    public List<SelectOption> patientSelectOptionList {get;set;} 
    
    
    

    public AppointmentController (){ 
        doctorSelectOptionList = new List<SelectOption>();
        patientSelectOptionList = new List<SelectOption>();

        DoctorList = [SELECT iD, Name FROM Doctor__c];
        for (Doctor__c doc : DoctorList){ 
            doctorSelectOptionList.add(new SelectOption(doc.Id, doc.Name)); 
        }
             
        PatientList = [SELECT Id, Name FROM Patient__c];
        for (Patient__c patient : PatientList){
            patientSelectOptionList.add(new SelectOption(patient.Id, patient.Name)); 
        }
    }
}
1 Вподобання

основная идея как я понимаю, это при выборе доктора, выводить всех его пациентов? так?

спасибо, исправила, но поле с пациентами почему то не выводится
основная идея это сделать таблицу, в которой будут три объекта: доктор, пациент и запись к врачу, пользователь нажимает запись к врачу, выбирает врача, выбирает себя из списка пациентов и указывает время и дату для записи, как то так

А можно посомтреть код страницы?

<apex:page controller="AppointmentController">
<apex:form>
 
    <apex:pageBlock>
 Select a doctor:
        <apex:selectList size="1">
            <apex:selectOptions value="{!doctorSelectOptionList}"/>
      
        </apex:selectList>
    Select a patient:
        <apex:selectList size="1">
           <apex:selectOptions value="{!patientSelectOptionList}"/>
        </apex:selectList>
    </apex:pageBlock>
    </apex:form>
</apex:page>
<apex:page controller=“AppointmentController”>
    <apex:form>
        <apex:pageBlock>
        Select a doctor:
            <apex:selectList>
                <apex:selectOptions value="{!doctorSelectOptionList}"/>
            </apex:selectList>
        Select a patient:
            <apex:selectList>
                <apex:selectOptions value="{!patientSelectOptionList}"/>
            </apex:selectList>
        </apex:pageBlock>
    </apex:form>
</apex:page>
1 Вподобання

спасибо!

получилось?

1 Вподобання

да, всё отоброжается

1 Вподобання

у меня остался вопрос по архитектуре. то есть в вашем приложении человек может записать кого угодно на прием. так?
если у вас это личный кабинет для пациента? может лучше давать выбор лишь врача. а пациента где-то хранить, чтобы он автоматически вписывался при создании записи приема.

ну это так чисто мысли.

1 Вподобання


что-то типо такого надо, пациенты и в базе есть и можно нового добавить

понял, своего рода админка. думал это для каждого пациента своя страничка.

1 Вподобання