1

すべてのタイムシートをまとめてグループ化するタイムシート ページを作成したいと考えています (つまり、2 つのプロジェクトに分割された 1 週間のタイムシートを追加すると、2 つのタイムシート レコードが作成されます)。

そのため、開始日に基づいて 1 週間のタイムシートをグループ化し、リソースに従ってグループ化された結果も表示したいと考えています。

WEEK ENDING DATE - 2012 年 1 月 3 日など。リソース名 - abc

  • プロジェクト名 -test 、合計 16 時間
  • プロジェクト名 - test2 、合計 20 時間

このすべての詳細は、タイムシート レコードで利用できます。

以下は私のコントローラーです:

public class TimesheetHeader {

    public Map<Date,Set<pse__Timecard_Header__c>> getTimecardMap(){
    return timecardMap;
    }

   public Map<Date,Set<pse__Timecard_Header__c>> timecardMap = new Map<Date,Set<pse__Timecard_Header__c>>();
   Set<pse__Timecard_Header__c> timecardSet = new Set<pse__Timecard_Header__c>(); 

   Date tcdate;

    public TimesheetHeader(ApexPages.StandardSetController controller) {

     List<pse__Timecard_Header__c> timecardheader = [Select f.Id,f.Name,f.pse__Start_Date__c,f.pse__End_Date__c,f.pse__Project__r.Name,f.pse__Status__c,f.pse__Total_Hours__c From pse__Timecard_Header__c f ]; 

         for(pse__Timecard_Header__c tc :timecardheader ){
          tcdate = tc.pse__End_Date__c;
          System.debug('tcdate---->'+tcdate);

           if(timecardMap.containsKey(tcdate)){
          Set<pse__Timecard_Header__c> temp = new Set<pse__Timecard_Header__c>();
          temp = timecardMap.get(tcdate);
          temp.add(tc);
          timecardMap.put(tcdate,temp);
          temp.clear();
          }
         else{
         timecardSet.add(tc);
         timecardMap.put(tcdate,timecardSet);

        }       
    }
    System.debug('timecardMap------>'+timecardMap.keySet());
   } 
}
4

1 に答える 1