У меня есть 2 объекта: Task__c , Time__c. В Time__c есть lookup на Таск. Типа есть таск и в каждом таске время работы. Мне нужно построить таблицу по Тасках только достучаться с таска в тайм я не знаю как, с тайма можно увидеть таск но наоборот нет, только так таблицу строить не получиться потомучто в таске может не быть таймов.
В контроллере я вытягиваю список тасков і потом могу вытянуть список Таймов которые есть в Таске
tasks = [SELECT Id, Name FROM Task__C];
for(Task__c t:tasks){
times = [SELECT Id, Name FROM Time__c WHERE Task__r.Name =: t.Name];
}
У меня есть 2 объекта: Task__c , Time__c. В Time__c есть lookup на Таск. Типа есть таск и в каждом таске время работы. Мне нужно построить таблицу по Тасках только достучаться с таска в тайм я не знаю как, с тайма можно увидеть таск но наоборот нет, только так таблицу строить не получиться потомучто в таске может не быть таймов. [img]http://i70.fastpic.ru/big/2015/0513/7a/c27262b59d71a948e4fccecca408f07a.png[/img] В контроллере я вытягиваю список тасков і потом могу вытянуть список Таймов которые есть в Таске [code] tasks = [SELECT Id, Name FROM Task__C]; for(Task__c t:tasks){ times = [SELECT Id, Name FROM Time__c WHERE Task__r.Name =: t.Name]; } [/code] Только тепер надо в етот t объект запихнуть масив times. От в етом вопрос!!! :) Думал про Subquery но что то не получаетса... P.S. Два года работал с JavaScript так там таких проблем с JSON`ами не было... :)
[SELECT Id, Name, Task__c FROM Time__c WHERE Task__c in (SELECT Id, FROM Task__c WHERE ... ) LIMIT ...]
или
[SELECT Id, Name, (SELECT Id FROM Times__r) FROM Task__c WHERE ... LIMIT ...]
[SELECT Id, Name, Task__c FROM Time__c WHERE Task__c in (SELECT Id, FROM Task__c WHERE ... ) LIMIT ...] или [SELECT Id, Name, (SELECT Id FROM Times__r) FROM Task__c WHERE ... LIMIT ...]
Ну ок, я вытянул так Таймс. В контроллере нужно пройти 2 цыкла
public List<Task__c> tasks2{get;set;}
tasks2 =[SELECT Id, Name, (SELECT Id, Name, Date__c, Time_spend__c FROM Times__r) FROM Task__c];
for(Task__c t:tasks2){
for(Time__c ti:t.Times__r){
system.debug(ti.Time_spend__c);
}
}
<apex:pageBlockTable value="{!tasks2}" var="task">
<apex:column value="{!task.Name}"/>
<apex:column value="{!?????}"/>
</apex:pageBlockTable>
[quote][SELECT Id, Name, (SELECT Id FROM Times__r) FROM Task__c WHERE ... LIMIT ...][/quote] Ну ок, я вытянул так Таймс. В контроллере нужно пройти 2 цыкла [code] public List<Task__c> tasks2{get;set;} tasks2 =[SELECT Id, Name, (SELECT Id, Name, Date__c, Time_spend__c FROM Times__r) FROM Task__c]; for(Task__c t:tasks2){ for(Time__c ti:t.Times__r){ system.debug(ti.Time_spend__c); } } [/code] А как мне ето зделать в таблице? [code] <apex:pageBlockTable value="{!tasks2}" var="task"> <apex:column value="{!task.Name}"/> <apex:column value="{!?????}"/> </apex:pageBlockTable> [/code] И еще одно. У меня есть Дейт филд в Тайме. Я могу определить день недели, создать например Пиклист филд в Тайме и засетать туда значения. Но потом мне нужен какой то If condition на <apex:column/>, что такое возможно???
apex:repeat
и я советую использовать wrapper классы если нужна логика форматирования выводимых данных
apex:repeat и я советую использовать wrapper классы если нужна логика форматирования выводимых данных
Какой я вижу солушен?
Создать tasks =[SELECT Id, Map<string, Int>,Name, (SELECT Id, Name, Date__c, Time_spend__c FROM Times__r) FROM Task__c]; с Map<string, Int> потом в пробежатса по всем Таймам и заполнить ету карту Map<день недели,время>
И потом в VF что такое
<apex:column headerValue="Mon">
<apex:outputField value="{!task.Map.get(columnHeaderValue)}">
<apex:inlineEditSupport />
</apex:outputField>
</apex:column>
Какой я вижу солушен? Создать tasks =[SELECT Id, Map<string, Int>,Name, (SELECT Id, Name, Date__c, Time_spend__c FROM Times__r) FROM Task__c]; с Map<string, Int> потом в пробежатса по всем Таймам и заполнить ету карту Map<день недели,время> И потом в VF что такое [code] <apex:column headerValue="Mon"> <apex:outputField value="{!task.Map.get(columnHeaderValue)}"> <apex:inlineEditSupport /> </apex:outputField> </apex:column> [/code] Только не вкурсе вожможно ли такое вопше =) 1) Как добавить Map<string, Int> в tasks. 2) как зделать такое value="{!task.Map.get(columnHeaderValue)}"
никак, в sObject нельзя добавить свои проперти
сделай wrapper класс, в нём ты инкапсулируешь всю логику представления, заполни лист инстансами на основе данных запроса, а на странице в цикле выведешь apex:repeat-ом
никак, в sObject нельзя добавить свои проперти сделай wrapper класс, в нём ты инкапсулируешь всю логику представления, заполни лист инстансами на основе данных запроса, а на странице в цикле выведешь apex:repeat-ом
Создал Иннер Класс но столкнулса з проблемой.
Как мне добавить <apex:inlineEditSupport />? Етот тег требует apex:outputField а когда я запихиваю велю со своего класса, падает ошибка - <apex:outputField> can only be used with SObjects, or objects that are Visualforce field component resolvable.
Возможно есть какая то альтернатива <apex:inlineEditSupport />, просто хочу что бы все было красиво... Конечно я могу инпутов закинуть но ето плохо выглядит!!!!
Создал Иннер Класс но столкнулса з проблемой. Как мне добавить <apex:inlineEditSupport />? Етот тег требует apex:outputField а когда я запихиваю велю со своего класса, падает ошибка - <apex:outputField> can only be used with SObjects, or objects that are Visualforce field component resolvable. Возможно есть какая то альтернатива <apex:inlineEditSupport />, просто хочу что бы все было красиво... Конечно я могу инпутов закинуть но ето плохо выглядит!!!!
положи sObject в инер класс
положи sObject в инер класс
А можно както достать только изменении объекты в котреллере?Только те которые обозначении красным в таблице :)
А можно както достать только изменении объекты в котреллере?Только те которые обозначении красным в таблице :)
<apex:outputField value="{!t.fri.Time_spend__c}">
<apex:inlineEditSupport />
</apex:outputField>
t - ето мой иннер класс с филдом fri типа Time__c. Когда я апдейтаю таблицу, цвет меняетса, кликаю на save и в дебаге system.debug(t.fri); - null. Что за прикол???
[code] <apex:outputField value="{!t.fri.Time_spend__c}"> <apex:inlineEditSupport /> </apex:outputField>[/code] t - ето мой иннер класс с филдом fri типа Time__c. Когда я апдейтаю таблицу, цвет меняетса, кликаю на save и в дебаге system.debug(t.fri); - null. Что за прикол???