C# MPXJ在资源上设置24小时日历
我正在使用MPXJ框架生成一个XML文件,并将其导入到Project2007中。我遇到了很多问题,但似乎找不到以下问题的答案 我对任务有固定的工时和持续时间,但当我添加资源并将其导入project时,会收到一条错误消息: “资源分配在project中任务2的原始日期之外。此固定工期任务的工期将更改以适应资源分配。” Project然后更改工时和/或工期值。那不是我想要的。我希望资源使用24小时日历,但我似乎无法附加project 2007标准日历,因此我想让我们制作自己的24小时日历并将其附加到资源。现在我似乎无法将工作日的0:00:00设置为0:00:00C# MPXJ在资源上设置24小时日历,c#,mpxj,C#,Mpxj,我正在使用MPXJ框架生成一个XML文件,并将其导入到Project2007中。我遇到了很多问题,但似乎找不到以下问题的答案 我对任务有固定的工时和持续时间,但当我添加资源并将其导入project时,会收到一条错误消息: “资源分配在project中任务2的原始日期之外。此固定工期任务的工期将更改以适应资源分配。” Project然后更改工时和/或工期值。那不是我想要的。我希望资源使用24小时日历,但我似乎无法附加project 2007标准日历,因此我想让我们制作自己的24小时日历并将其附加到
ProjectCalendar calendar = projectFile.addResourceCalendar();
calendar.setName("24 Hours");
calendar.setUniqueID(Count);
calendar.setWorkingDay(Day.MONDAY, true);
calendar.setWorkingDay(Day.TUESDAY, true);
calendar.setWorkingDay(Day.WEDNESDAY, true);
calendar.setWorkingDay(Day.TUESDAY, true);
calendar.setWorkingDay(Day.FRIDAY, true);
Resource resource = projectFile.addResource();
resource.setUniqueID(Count);
resource.setName("Painters");
resource.setResourceCalendar(calendar);
任何人都知道一个解决方案,可以将默认的24小时日历设置为make my own的资源。下面的代码演示了如何创建24小时日历。我为每天冗长的设置方式道歉,我需要改进day类的工作方式,以便更容易迭代 需要注意的关键点是,DateRange实例设置为在一个日期的00:00开始,并在第二天的00:00结束。实际使用的日期不相关,日历仅使用日期的时间元素 希望这有意义
//
// Use this date formatter to make it simple to specific the range
// start and wne dates
//
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
//
// This is an immutable date range, so we can share it without
// worrying about it being changed
//
DateRange range = new DateRange(format.parse("2000-01-01 00:00"), format.parse("2000-01-02 00:00"));
//
// Add the calendar and name it
//
ProjectCalendar test = file.addBaseCalendar();
test.setName("Test 24 Hours");
//
// Mark each day as working
//
test.setWorkingDay(Day.SUNDAY, true);
test.setWorkingDay(Day.MONDAY, true);
test.setWorkingDay(Day.TUESDAY, true);
test.setWorkingDay(Day.WEDNESDAY, true);
test.setWorkingDay(Day.THURSDAY, true);
test.setWorkingDay(Day.FRIDAY, true);
test.setWorkingDay(Day.SATURDAY, true);
//
// Add a working hours range to each day
//
ProjectCalendarHours hours;
hours = test.addCalendarHours(Day.SUNDAY);
hours.addRange(range);
hours = test.addCalendarHours(Day.MONDAY);
hours.addRange(range);
hours = test.addCalendarHours(Day.TUESDAY);
hours.addRange(range);
hours = test.addCalendarHours(Day.WEDNESDAY);
hours.addRange(range);
hours = test.addCalendarHours(Day.THURSDAY);
hours.addRange(range);
hours = test.addCalendarHours(Day.FRIDAY);
hours.addRange(range);
hours = test.addCalendarHours(Day.SATURDAY);
hours.addRange(range);