2014-10-24 2 views
0

MPXJ 라이브러리를 통해 MS Project에서 프로젝트를 내보내는 중 하나의 질문이 있습니다.
토요일 (일요일)을 토요일 대신 주말 대신 일로 설정하는 방법은 무엇입니까? (ProjectCalendar 또는 다른 장소에서)
예를 들어 2014 년 8 월 18 일 (토요일)은 근무일로 설정되지만 다른 토요일은 주말이어야합니다.MPXJ에서 주말을 근무일로 설정하는 방법

<Calendar> 
    ... 
    <WeekDay> 
     <DayType> 
      0 
     </DayType> 
     <DayWorking> 
      1 
     </DayWorking> 
     <TimePeriod> 
      <FromDate>2014-10-18T00:00:00</FromDate> 
      <ToDate>2014-10-18T23:59:00</ToDate> 
     </TimePeriod> 
     <WorkingTimes> 
      <WorkingTime> 
       <FromTime>09:00:00</FromTime> 
       <ToTime>13:00:00</ToTime> 
      </WorkingTime> 
      <WorkingTime> 
       <FromTime>14:00:00</FromTime> 
       <ToTime>18:00:00</ToTime> 
      </WorkingTime> 
     </WorkingTimes> 
    </WeekDay> 
    ... 
</Calendar> 

감사 :

public ProjectCalendar initCalendar(ProjectFile projectfile, int calendarId, Date startDate, Date endDate) { 
     ProjectCalendar defaultCalendar = projectfile.addDefaultBaseCalendar(); 

     /*Setup standart working week*/ 
     defaultCalendar.setName("Standart"); 
     defaultCalendar.setWorkingDay(Day.MONDAY, DayType.WORKING); 
     defaultCalendar.setWorkingDay(Day.THURSDAY, DayType.WORKING); 
     defaultCalendar.setWorkingDay(Day.WEDNESDAY, DayType.WORKING); 
     defaultCalendar.setWorkingDay(Day.TUESDAY, DayType.WORKING); 
     defaultCalendar.setWorkingDay(Day.FRIDAY, DayType.WORKING); 
     defaultCalendar.setWorkingDay(Day.SATURDAY, DayType.NON_WORKING); 
     defaultCalendar.setWorkingDay(Day.SUNDAY, DayType.NON_WORKING); 


     ProjectCalendarHours pch; 
     pch = defaultCalendar.addCalendarHours(Day.MONDAY); 
     pch.addRange(ProjectCalendar.DEFAULT_WORKING_MORNING); 
     pch.addRange(ProjectCalendar.DEFAULT_WORKING_AFTERNOON); 

     pch = defaultCalendar.addCalendarHours(Day.THURSDAY); 
     pch.addRange(ProjectCalendar.DEFAULT_WORKING_MORNING); 
     pch.addRange(ProjectCalendar.DEFAULT_WORKING_AFTERNOON); 

     pch = defaultCalendar.addCalendarHours(Day.WEDNESDAY); 
     pch.addRange(ProjectCalendar.DEFAULT_WORKING_MORNING); 
     pch.addRange(ProjectCalendar.DEFAULT_WORKING_AFTERNOON); 

     pch = defaultCalendar.addCalendarHours(Day.TUESDAY); 
     pch.addRange(ProjectCalendar.DEFAULT_WORKING_MORNING); 
     pch.addRange(ProjectCalendar.DEFAULT_WORKING_AFTERNOON); 

     pch = defaultCalendar.addCalendarHours(Day.FRIDAY); 
     pch.addRange(ProjectCalendar.DEFAULT_WORKING_MORNING); 
     pch.addRange(ProjectCalendar.DEFAULT_WORKING_AFTERNOON); 


     /* setup holydays*/ 
     List<Date> workingHollidays = DBHelper.getWorkingHolidays(ppmCalendarId, startDate, endDate); 
     for (Date work : workingHollidays) { 
      ProjectCalendarException ex = defaultCalendar.addCalendarException(work, work); 
     } 

     /*There is I need change stendart week and setup 6-days working week (Saturday is work day) */ 
     /*something like that*/ 
     Date workindDay = new SimpleDateFormat("dd.MM.yyyy").parse("18.10.2014"); 
     defaultCalendar.setWorkingDay(workindDay, DayType.NON_WORKING); // This code not work 
     pch = defaultCalendar.addCalendarHours(workindDay); // This code not work 
     pch.addRange(ProjectCalendar.DEFAULT_WORKING_MORNING); 
     pch.addRange(ProjectCalendar.DEFAULT_WORKING_AFTERNOON); 
    } 

및 ountput Microsoft Project에서 XML의

이 같은 태그가 될 것입니다.

+0

지금까지 시도한 내용의 샘플 코드를 포함하십시오. –

답변

1

답변을 찾았습니다.
일 날짜로 정의 일을 할 수있는 코드가있다 : 범위의

Date workindDay = new SimpleDateFormat("dd.MM.yyyy").parse("18.10.2014"); 
ProjectCalendarException ex = defaultCalendar.addCalendarException(workindDay, workindDay); 
ex.addRange(ProjectCalendar.DEFAULT_WORKING_MORNING); 
ex.addRange(ProjectCalendar.DEFAULT_WORKING_AFTERNOON); 

주문이 중요하다.

관련 문제