Регистрация  |  Вход

merge two objects

У меня есть 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];
}

Только тепер надо в етот t объект запихнуть масив times. От в етом вопрос!!!
Думал про Subquery но что то не получаетса...
P.S. Два года работал с JavaScript так там таких проблем с JSON`ами не было... :)

У меня есть 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 ...]

[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>

И еще одно. У меня есть Дейт филд в Тайме. Я могу определить день недели, создать например Пиклист филд в Тайме и засетать туда значения. Но потом мне нужен какой то If condition на <apex:column/>, что такое возможно???

[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>

Только не вкурсе вожможно ли такое вопше =)
1) Как добавить Map<string, Int> в tasks.
2) как зделать такое value="{!task.Map.get(columnHeaderValue)}"

Какой я вижу солушен?
Создать 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. Что за прикол???