0

MPXJフレームワークを使用して、プロジェクト2007にインポートしてXMLファイルを生成しています。多くの問題が発生しましたが、次の答えが見つからないようです。

タスクの作業時間と期間は固定されていますが、リソースを追加してプロジェクトにインポートすると、次のエラーメッセージが表示されます。

「リソースは、プロジェクトのタスク2の元の日付の外に割り当てられます。この固定期間のタスクの期間は、リソースの割り当てに対応するために変更されます」。

次に、プロジェクトは作業または期間の値を変更します。それは私が望むものではありません。リソースで24時間カレンダーを使用したいのですが、プロジェクト2007の標準カレンダーを添付できないようです。そのため、独自の24時間カレンダーを作成して、リソースに添付してみましょう。今、私は就業日の0:00:00から0:00:00の時間を設定できないようです。

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時間カレンダーを自分で作成するリソースに設定できます。

4

1 に答える 1

2

以下のコードは、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);
于 2011-07-05T17:08:28.457 に答える