Помогите разобраться с Apex Class

Помогите разобраться с Apex Class

Всем привет, помогите разобраться, что то я делаю не так и постоянные ошибки в коде, сколько не правил, не получается. Страницу VF написал вот её листинг:

<apex:page controller="StoreFrontController" tabStyle="storage_of_goods__c">

<apex:pageBlock title="Наша продукция">
<apex:pageBlockSection columns="1">
<apex:pageBlockTable value="{!products}" var="pitem">
<apex:column headerValue="Наименование товара">
<apex:outputText value="{!pitem.Name}"/>
</apex:column>
<apex:column headerValue="Имя">
<apex:outputText value="{!pitem.name__c}"/>
</apex:column>
<apex:column headerValue="Тип">
<apex:outputField value="{!pitem.type__c}"/>
</apex:column>
<apex:column headerValue="Цена">
<apex:outputField value="{!pitem.price__c}"/>
</apex:column>
<apex:column headerValue="Количество">
<apex:outputField value="{!pitem.count__c}"/>
</apex:column>
<apex:column headerValue="Дата поступления">
<apex:outputField value="{!pitem.DataADD__c}"/>
</apex:column>
<apex:column headerValue="Дата выпуска">
<apex:outputField value="{!pitem.DataPROD__c}"/>
</apex:column>
<apex:column headerValue="Наличие товара">
<apex:outputField value="{!pitem.Availability__c}"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:page>

и вот код apex class
public class StoreFrontController {

List<Displaystorage_of_goods> products;

public List<Displaystorage_of_goods> getProducts() {
if(products == null) {
products = new List<Displaystorage_of_goods>();
for(storage_of_goods__c item : [
SELECT Id, name__c, count__c, price__c, DataADD__c, DataPROD__c, type__c
FROM storage_of_goods__c]) {
products.add(new Displaystorage_of_goods(item));
}
}
return products;
}

// Inner class to hold online store details for item
public class Displaystorage_of_goods {

private storage_of_goods__c storage_of_goods;
public Displaystorage_of_goods(storage_of_goods__c item) {
this.storage_of_goods = item;
}

// Properties for use in the Visualforce view
public String name {
get { return storage_of_goods.name__c; }
}
public Decimal count {
get { return storage_of_goods.count__c; }
}
public Decimal price {
get { return storage_of_goods.price__c; }
}
public Boolean Availability {
get { return storage_of_goods.Availability__c; }
}
public Date DataADD {
get { return storage_of_goods.DataADD__c; }
}

public Date DataPROD {
get { return storage_of_goods.DataPROD__c; }
}

public String type {
get { return storage_of_goods.type__c; }
}
}
}


сначала ругается на типы данных Date
а потом вообще вот такое выбил:
Unknown property 'StoreFrontController.Displaystorage_of_goods.name__c'
с этой ошибкой я справиться не смог.
вот скрин с моими полями:
[img]http://www.picshare.ru/view/5326195/[/img]

А как ты думаешь StoreFrontController.Displaystorage_of_goods.name__c видна на странице ? и объясни почему.

Кроме этого считается очень плохой привычной давать лейблы полям не в локали пользователя. Я так понимаю локаль у тебя английская я лейблы у тебя на русском. В последствеии отгребешь кучу гемороя с правильным переводом.

честно говоря, думаю что нет, но почему не знаю. Что значит не в локали пользователя??, лейблы по-переименовывал.

не странице отображается ошибка: is in expression '{!pitem.name__c}' in component <apex:outputText> in page catalog, что ошибка в выражении, а как её исправить, не понимаю
я уже несколько раз всё переделывал, опираясь на workbook, там показано так, но вот у меня беда

eneko
честно говоря, думаю что нет, но почему не знаю. Что значит не в локали пользователя??, лейблы по-переименовывал.

1. У тебя переменная к которой ты пытаешься обратиться на прямую private storage_of_goods__c storage_of_goods; пока не сделаешь ее публичной ничего не получится.

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

а ещё скажите пожалуйста почему ругается на тип данных Date:
Return value must be of type: Date

wilder
eneko
честно говоря, думаю что нет, но почему не знаю. Что значит не в локали пользователя??, лейблы по-переименовывал.

1. У тебя переменная к которой ты пытаешься обратиться на прямую private storage_of_goods__c storage_of_goods; пока не сделаешь ее публичной ничего не получится.

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


сделал её public, проблему это не решило

eneko
http://www.picshare.ru/view/5326195/

Я задам один вопрос. Сколько времени ты в salesforce ?

DataAdd__c имеет тип Date/Time а ты пытаешься вернуть Date.

eneko
wilder
eneko
честно говоря, думаю что нет, но почему не знаю. Что значит не в локали пользователя??, лейблы по-переименовывал.

1. У тебя переменная к которой ты пытаешься обратиться на прямую private storage_of_goods__c storage_of_goods; пока не сделаешь ее публичной ничего не получится.

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


сделал её public, проблему это не решило

А get для переменной я буду делать ?

я очень извиняюсь, но я вас немного не понимаю, вы бы не могли более подробно объяснить

eneko
я очень извиняюсь, но я вас немного не понимаю, вы бы не могли более подробно объяснить

Дано
private storage_of_goods__c storage_of_goods;

Должно быть
public storage_of_goods__c storage_of_goods { get; set; }

а на счёт типа данных дата, зкажете что-нибудь хорошее

eneko
а на счёт типа данных дата, зкажете что-нибудь хорошее

Посмотри пару постов выше, плиз

хорошо спасибо, огромное спасибо, надеюсь не сильно достал

wilder
eneko
а на счёт типа данных дата, зкажете что-нибудь хорошее

Посмотри пару постов выше, плиз

честно говоря не нашёл

eneko
wilder
eneko
а на счёт типа данных дата, зкажете что-нибудь хорошее

Посмотри пару постов выше, плиз

честно говоря не нашёл

есть
Date dateVar;

a есть
Datetime datetimeVar;

DataAdd__c имеет тип Date/Time а ты пытаешься вернуть Date.

eneko
хорошо спасибо, огромное спасибо, надеюсь не сильно достал

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

Den Brown
eneko
хорошо спасибо, огромное спасибо, надеюсь не сильно достал

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

Я просто однажды с такой же хренью, часа 2 просидел. В те махровые времена когда еще эклипс не подсказывал этого.

wilder
В те махровые времена когда еще эклипс не подсказывал этого.

а я пилю контроллеры прям в браузере, в отличие от тригеров, прочих классов и тестов. Мне до сих пор никто не подсказывает это... не знаю или мне

wilder
В те махровые времена когда еще эклипс не подсказывал этого.

Эклипс научился что-то подсказывать?

Gres
wilder
В те махровые времена когда еще эклипс не подсказывал этого.

Эклипс научился что-то подсказывать?

Да. вроде в последней верии не дает сохранить страницу, если в ней есть переменная, которая не видна на этой странице.

Столкнулся с той же проблемой, переменная публичная, get; set; добавил, все равно выдает Unknown property. Что не так, как решить этот вопрос?

Milton
Столкнулся с той же проблемой, переменная публичная, get; set; добавил, все равно выдает Unknown property. Что не так, как решить этот вопрос?

Код в студию и сообщение об ошибке тоже и лучше как скриншот.

Согласен, вопрос совсем не конкретный. По нему можно понять только что salesforce неправильно работает Но обычно он работает правильно

wilder
Milton
Столкнулся с той же проблемой, переменная публичная, get; set; добавил, все равно выдает Unknown property. Что не так, как решить этот вопрос?

Код в студию и сообщение об ошибке тоже и лучше как скриншот.


Dmitry Shnyrev
Согласен, вопрос совсем не конкретный. По нему можно понять только что salesforce неправильно работает Но обычно он работает правильно :D

Спасибо за отклик. Посидел пару часов, подумал, пересмотрел код и сам нашел ошибку. Поэтому уже не актуально)

Interesting information? Help us, post link to social media..