Нужна помощь в создании полей visual page

Здравствуйте. Я новичок, нужна помощь в создании полей, не могу добавить поле date и текстовые поля, а также кнопки, вот что у меня получилось:
%D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B91

Кто может помочь?

Вам стоит обратить внимание на apex:pageBlockSectionItem, apex:outputLabel, apex:inputText.

Поддержу вопрос. Задание тоже делаю. Все бы ничего. Все инструкции написаны под стандартный контроллер типа Contact, Account etc. Но у нас есть Appointment__c, Doctor__c, Patient__c. Как их использовать в странице? Или нужно дописывать кастомный контроллер? Пока нет особых умений его писать, а задание поджимает сдать. Если бы в теге страницы можно было бы обратиться через standartController=Appointment__c было бы все просто.

<apex:page controller="AppointmentTableWithController" id="AppointmentList">
    <apex:form>
    <apex:pageBlock title="Appointment Table">
        
        <apex:pageBlockSection title="Select a doctor">
            <apex:inputField value="{!Appointment__c.Doctor__c}"/>
            </apex:pageBlockSection>>
    
        

            //<apex:pageBlockButtons >
            //<apex:commandButton action="{!addNewDoctor}" value="Add New Doctor"/>
            //</apex:pageBlockButtons>
            
            
            
            //<apex:outputField value="{!Doctor__c.Working_Hours_Start__c}"/>>
            //<apex:outputField value="{!Doctor__c.Working_Hours_End__c}"/>>
            
            //<apex:pageBlock title="Select a patient"> 
            <apex:inputField value="{!Appointment__c.Patient__c}"/>
            //</apex:pageBlock>>
            
            
            //<apex:pageBlockButtons >
            //<apex:commandButton action="{!addNewPatient}" value="Add New Patient"/>
            //</apex:pageBlockButtons>
        
        <apex:pageBlockSection columns="1">
            <apex:inputField value="{!Appointment__c.Appointment_Date__c}"/>
            <apex.outputField value="{!NOW()}"/>
        	<apex:inputField value="{!Appointment__c.Duration_in_minutes__c}"/>
        </apex:pageBlockSection>
        
        //<apex:pageBlockButtons >
            //<apex:commandButton action="{!addNewAppointment}" value="Add New Appointment"/>
            //</apex:pageBlockButtons>
        
</apex:pageBlock>>
             
    <!-- Appointments Table /готово/ --> 
<apex:pageBlock title="Appointments" id="contacts_list">
        <apex:pageBlockTable value="{!Appointment__c.Doctor__c}" var="doctor">//
            
        <apex:column>
            <apex:outputLink
                value="{! URLFOR($Action.Appointment__c.View, Appointment__c.Name) }">
                Edit
            </apex:outputLink>
            &nbsp;
        </apex:column>
            
        <apex:column value="{!Appointment__c.Doctor__c}"/>
        <apex:column value="{!Appointment__c.Patient__c}"/>
        <apex:column value="{!Appointment__c.Appointment_Date__c}"/>
            -----
            <!-- Pagination -->
<table style="width: 100%"><tr>
    <td>
        <!-- Page X of Y -->
        Page: <apex:outputText
    value=" {!PageNumber} of {! CEILING(ResultSize / PageSize) }"/>
    </td>
    <td align="center">
        <!-- Previous page -->
<!-- active -->
<apex:commandLink action="{! Previous }" value="« Previous" rendered="{! HasPrevious }"/>
<!-- inactive (no earlier pages) -->
<apex:outputText style="color: #ccc;" value="« Previous" rendered="{! NOT(HasPrevious) }"/>
&nbsp;&nbsp;
<!-- Next page -->
<!-- active -->
<apex:commandLink action="{! Next }" value="Next »" rendered="{! HasNext }"/>
<!-- inactive (no more pages) -->
<apex:outputText style="color: #ccc;" value="Next »" rendered="{! NOT(HasNext) }"/>
    </td>
    <td align="right">
        <!-- Records per page -->
        Records per page:
<apex:selectList value="{! PageSize }" size="1">
    <apex:selectOption itemValue="5" itemLabel="5"/>
    <apex:selectOption itemValue="20" itemLabel="20"/>
    <apex:actionSupport event="onchange" reRender="contacts_list"/>
</apex:selectList>
    </td>
</tr></table>
            ------
            
    </apex:pageBlockTable>
</apex:pageBlock>
    
    
        </apex:form>>
</apex:page>

Ну а почему бы и не обратится? док по стандартным контроллерам так и говорит
https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_controller_std_associate.htm

Ну а глядя на код страницы можно сказать что тут скорее нужен экстеншн контроллер - типа сама запись пусть будет в стандартном, а доп функции типа addNewDoctor итд пусть будут в расширении, док в помощь

Вся лажа в том что все объекты кастомные, и стандартные контроллеры для них не пашут. Со стандартным контроллером можно только работать со стандартными объектами. Печаль. Если сделать обращение со страницы к кастомным полям кастомных объектов, то компилятор не пропускает, пишет об отсутствии связей. Контроллер это хорошо, но видимо разработчики apex решили усложнить жизнь чайникам как я

Стандартный контроллер есть как у стандартных так и у кастомных объектов
Из документации:

A standard controller exists for every Salesforce object that can be queried using the Lightning Platform API.

1 Like

О да, разработчики языка только и сидят возле костра злобно потирая руки и думая как бы поднагадить пользователям))

Не понял о каком обращении речь, которое компилятор не пропускает, пример есть? Скорее всего была попытка получить данные связанной записи, это и правда стандартному контроллеру не разрешено, тут можно через экстеншн поправить, используя метод addFields

Да, это и имел ввиду