Question

Je travaille avec cadre MPXJ pour générer un fichier XML avec i importer dans le projet 2007. J'ai couru pour attribuer des problèmes, mais je ne peux pas sembler trouver une réponse à ce qui suit.

J'ai un travail fixe et la durée sur une tâche, mais quand j'ajouter une ressource et l'importer dans le projet que je reçois un message d'erreur:

« La ressource est affectée en dehors des dates originales pour la tâche 2 dans le projet. La durée de cette tâche à durée déterminée changera pour accueillir l'affectation des ressources ».

Projet modifie ensuite le travail et la valeur ou la durée. ce n'est pas ce que je veux. je veux la ressource à utiliser le calendrier 24 heures mais je ne peux pas sembler attacher le projet 2007 calendrier standard, donc je pensais que laisse faire mon 24 heures et le calendrier attacher à cette ressource. Maintenant, je ne peux pas sembler régler le 0:00:00 à 0:00:00 temps dans une journée de travail.

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);

Tout savoir d'une solution à un calendrier par défaut obtenir le réglage de l'heure à 24 la ressource de faire mon propre.

Était-ce utile?

La solution

Le code ci-dessous illustre comment créer un calendrier de 24 heures. Je présente mes excuses pour la façon de longue haleine chaque jour est mis en place, je dois améliorer le fonctionnement de la classe jour afin qu'il soit plus facile à itérer.

Le point essentiel à noter est que l'instance DateRange est configuré pour commencer à 00:00 heures à une date et arrivée à 00:00 heures le jour suivant . La date réelle utilisée est hors de propos, le calendrier ne fait qu'utiliser l'élément temporel de la date.

L'espoir qui fait sens!

  //
  // 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);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top