2011-09-21 68 views
1

我有一個值(00:00 AM,00字符串列表時間1點30分,上午01:00,凌晨01:30 ......... ..以此類推,直到11:30 PM)我可以有與多個數據類型的列表在Salesforce

我也有一個自定義對象appointment__c列表APPLIST。

此列表僅握住設置約會

的記錄,也就是說,如果一個約會設置爲8 AM - 8:30阿芒10:00 - 11:00那就只持有這2條

我需要創建網格或表格以顯示從00:00 AM到11:30 PM之間的約會。

我需要閱讀time1中的每一行,並檢查appList中是否存在與該時間相對應的匹配項,如果找到了,那麼我需要顯示appList中的詳細信息,否則它應該顯示爲免費的時間。我還需要將它存儲在一個列表中,以便我可以在VF頁面中使用它。我將如何定義這個列表? 我可以列表存儲在一列中的時間,並有其他列中的約會對象列表

任何更好的方法來處理?

+0

是該網格將在塊的工作,說每30分鐘或一個小時? –

+0

它在30分鐘的塊 – Prady

回答

5

在這種情況下,我會使用一個類,並有對象的列表該類:

class CTimeSlot 
{ 
    public Time   tStart   {get; set;} 
    public Appointment__c sAppointment {get; set;} 

    public CTimeSlot(Time startTime) 
    { 
     tStart = startTime; 
     Appointment__c = null; 
    } 
} 

// ** snip ** 

list<CTimeSlot> liTimeSlots = new list<CTimeSlot>(); 

// ** snip ** loop through times, and for each add an entry to the list 

    CTimeSlot newSlot = new CTimeSlot(loopTime); 
    liTimeSlots.add(newSlot); 
    mapTimeToSlot.put(loopTime + '', newSlot); 
} 

// ** snip ** when running through your query results of Appointment__c objects: 
for(Appointment__c sAppointment : [select Id, Time__c from Appointment__c where ...]) 
{ 
    if(mapTimeToSlot.get(sAppointment.Time__c) != null) 
    { 
     mapTimeToSlot.get(sAppointment.Time__c).sAppointment = sAppointment; 
    } 
} 

您可以然後填寫這份名單與CTimeSlot的實例,並在那裏你有預約設定時間通過具有地圖上的狹槽,以及,映射時間(字符串)向CTimeSlot這可以更容易 - 它sAppointment上的實例。

在頁面上,你可以再重複剛纔在名單:

<table> 
<apex:repeat var="slot" value="{!liTimeSlots}"> 
    <tr> 
     <td><apex:outputText value="{!slot.tStart}"/></td> 
     <td> 
      <apex:outputText value="{!IF(ISNULL(slot.sAppointment), 'Free', slot.sAppointment.SomeField)}"/> 
     </td> 
    </tr> 
</apex:repeat> 

希望這會給你一些想法和你動身了正確的道路上!

+0

謝謝..這個shd是gr8的幫助 – Prady

+0

我如何將值添加到liTimeSlots? – Prady

+0

謝謝萊西!真的很好的代碼示例。 – Adam

相關問題