Microsoft Project to popularne oprogramowanie do zarządzania projektami, które ułatwia kierownikom projektów efektywne zarządzanie projektami. Pozwala menedżerom tworzyć zadania i zasoby, przydzielać zadania do zasobów, śledzić postęp projektu, zarządzać budżetem i wykonywać inne operacje związane z projektem. Aby programowo tworzyć i zarządzać plikami MS Project, Microsoft udostępnia MS Office Automation. Jednak wraz z innymi niedociągnięciami wymaga zainstalowania pakietu MS Office. Aby wypełnić tę lukę, Aspose wskakuje, aby zapewnić rozwiązanie automatyzacji MS Project dla aplikacji .NET jako Aspose.Tasks for .NET.

Aspose.Tasks for .NET to bogaty w funkcje interfejs API, który umożliwia programistyczne tworzenie plików MS Project (.mpp/.xml) przy użyciu języka C# lub VB.NET. Ponadto oferuje różne funkcje do pracy z zadaniami, zasobami i kalendarzami. W tym artykule pokażę, jak używać Aspose.Tasks for .NET do tworzenia plików MS Project i pracy z zadaniami i zasobami przy użyciu języka C#. Pozostała część artykułu jest podzielona na następujące sekcje.

Twórz pliki MS Project za pomocą C#

MPP to zastrzeżony format plików firmy Microsoft, który jest używany w plikach MS Project. Możesz jednak przechowywać dane projektu w plikach XML w celu udostępniania ich różnym aplikacjom. Tworzenie nowego projektu od podstaw jest prostym zadaniem i można to zrobić, wykonując następujące kroki:

Poniższe przykłady kodu pokazują, jak tworzyć pliki MS Project przy użyciu języka C#.

Zapisz pliki MS Project jako MPP

// Utwórz nowy projekt
Project project = new Project();

// Zapisz go jako plik .mpp
project.Save("New Project.mpp", SaveFileFormat.MPP);

Zapisz pliki MS Project jako XML

// Utwórz nowy projekt
Project project = new Project();

// Zapisz go jako plik .xml
project.Save("EmptyProjectSaveXML_out.xml", SaveFileFormat.XML);

Dodaj zadania do plików MS Project za pomocą C#

Pusty plik MS Project jest bezużyteczny bez zadań i zasobów. Zobaczmy więc, jak tworzyć i dodawać zadania do projektu. Zadaniem może być pojedyncze zadanie lub zadanie sumaryczne zawierające w sobie grupę podzadań. Poniżej przedstawiono kroki dodawania zadań do pliku MS Project.

  • Utwórz i zainicjuj obiekt Projekt.
  • Dodaj nowe zadanie sumaryczne do kolekcji Zadania projektu przy użyciu metody Project.RootTask.Children.Add(string).
  • Dodaj podzadanie do zadania sumarycznego przy użyciu metody Task.Children.Add(string).
  • Zapisz projekt metodą Project.Save().

Poniższy przykładowy kod pokazuje, jak tworzyć i dodawać zadania do plików MS Project przy użyciu języka C#.

// Utwórz nowy projekt
Project project = new Project();

// Dodaj zadanie i zadanie podrzędne
Task task = project.RootTask.Children.Add("Summary1");
Task subtask = task.Children.Add("Subtask1");

// Zapisz plik
project.Save("CreateTasks_out.xml", SaveFileFormat.XML);

Poniższy przykładowy kod pokazuje, jak ustawić różne właściwości zadań, takie jak czas trwania, data/godzina rozpoczęcia itp.

// Utwórz projekt
Project project = new Project();

// Dodaj zadanie i ustaw właściwości zadania
Task task = project.RootTask.Children.Add("Task1");
task.Set(Tsk.Start, project.RootTask.Get(Tsk.Start).AddDays(1));
task.Set(Tsk.Name, "new name");

Dodaj zasoby do plików MS Project za pomocą C#

Zasoby to podmioty, które mają wykonywać zadania w projekcie. Dlatego projekt nie byłby możliwy bez zasobów do pracy nad nim. Sprawdźmy więc, jak tworzyć i dodawać zasoby do projektu. Poniżej przedstawiono kroki dodawania zasobów do pliku MS Project.

  • Utwórz nowy projekt przy użyciu klasy Project.
  • Dodaj nowy zasób do kolekcji Resources projektu przy użyciu metody Project.Resources.Add(string).
  • Zapisz projekt metodą Project.Save().

Poniższy przykładowy kod pokazuje, jak dodać zasoby do pliku MS Project przy użyciu języka C#.

// Utwórz projekt
Project project = new Project();

// Dodaj zasoby
Resource resource = project.Resources.Add("Rsc");

// Zapisz Projekt
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

Poniższy przykładowy kod ustawia właściwości zasobu, takie jak data/godzina rozpoczęcia, typ itp.

// Utwórz projekt
Project project = new Project();

// Dodaj zasoby
Resource resource = project.Resources.Add("Rsc");

// Zapisz Projekt
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

Przydziel zadania do zasobu w projekcie przy użyciu języka C#

Po zakończeniu dodawania zadań i zasobów w projekcie możesz określić, które zadanie ma zostać wykonane przez który zasób. W ten sposób przypiszesz zadanie do każdego zasobu. Poniżej przedstawiono kroki przypisywania zadań do zasobów w projekcie.

  • Utwórz lub załaduj projekt przy użyciu klasy Project.
  • Dodaj nowe zasoby do projektu i ustaw ich właściwości, takie jak format daty, data rozpoczęcia itp.
  • Dodaj nowe zadania do projektu i ustaw ich właściwości, takie jak data/godzina rozpoczęcia, czas trwania itp.
  • Wykonaj przydział zadań, dodając zadanie i odpowiadający mu zasób do kolekcji Project.ResourceAssignments.
  • Zapisz projekt metodą Project.Save().

Poniżej znajduje się kompletny przykładowy kod tworzenia i przypisywania zadań do zasobów w pliku MS Project.

// Utwórz projekt
Project project = new Project("New Project.mpp")
{
    CalculationMode = CalculationMode.Automatic
};

// Ustaw właściwości
project.Set(Prj.DateFormat, DateFormat.DateDddMmDdYy);
project.Set(Prj.StartDate, new DateTime(2019, 9, 16, 9, 0, 0));
project.Set(Prj.NewTasksAreManual, false);
project.Set(Prj.ActualsInSync, false);

// Dodaj zasoby
Resource workResource = project.Resources.Add("Servente (Work)");
workResource.Set(Rsc.Name, "Servente (Work)");
workResource.Set(Rsc.Initials, "S");
workResource.Set(Rsc.Type, ResourceType.Work);
workResource.Set(Rsc.StandardRateFormat, RateFormatType.Hour);
workResource.Set(Rsc.Code, "1503");

Resource materialResource = project.Resources.Add("Tijolo (Material)");
materialResource.Set(Rsc.Name, "Tijolo (Material)");
materialResource.Set(Rsc.Initials, "T");
materialResource.Set(Rsc.Type, ResourceType.Material);
materialResource.Set(Rsc.StandardRateFormat, RateFormatType.MaterialResourceRate);
materialResource.Set(Rsc.Code, "21341");

// Dodaj zadania
Task task1 = project.RootTask.Children.Add("Task - 01");
task1.Set(Tsk.IsRollup, new NullableBool(true));
task1.Set(Tsk.IsPublished, new NullableBool(false));
Task task2 = task1.Children.Add("Task - 01.01");
task2.Set(Tsk.IsRollup, new NullableBool(true));
task2.Set(Tsk.IsPublished, new NullableBool(false));
Task task3 = task2.Children.Add("Task - 01.01.001");
task3.Set(Tsk.IsEstimated, new NullableBool(false));
task3.Set(Tsk.Start, new DateTime(2019, 9, 16, 9, 0, 0));
task3.Set(Tsk.Duration, project.GetDuration(10, TimeUnitType.Day));
task3.Set(Tsk.Work, project.GetDuration(10, TimeUnitType.Day));
task3.Set(Tsk.IsRollup, new NullableBool(true));
task3.Set(Tsk.IsPublished, new NullableBool(false));

// Przydziel zadania
ResourceAssignment assignment1 = project.ResourceAssignments.Add(task3, materialResource);
assignment1.Set(Asn.Delay, project.GetDuration(40, TimeUnitType.Hour));
assignment1.Set(Asn.Start, new DateTime(2019, 9, 23, 9, 0, 0));
assignment1.Set(Asn.Finish, new DateTime(2019, 9, 27, 18, 0, 0));
ResourceAssignment assignment2 = project.ResourceAssignments.Add(task3, workResource);
assignment2.Set(Asn.Work, project.GetDuration(56, TimeUnitType.Hour));
assignment2.Set(Asn.Start, new DateTime(2019, 9, 16, 9, 0, 0));
assignment2.Set(Asn.Finish, new DateTime(2019, 9, 24, 18, 0, 0));

// aby w pełni dopasować oczekiwane MPP
assignment2.Set(Asn.WorkContour, WorkContourType.Contoured);
task3.Set(Tsk.IsManual, new NullableBool(true));
task1.Set(Tsk.IsManual, new NullableBool(true));

// Zapisz Projekt
project.Save("Assignment_Dates.mpp", SaveFileFormat.MPP);

Dodaj kalendarz do projektu za pomocą C#

Kalendarze są również jednym z głównych elementów projektów, które służą do definiowania harmonogramu projektu. Kalendarz umożliwia kierownikom projektów stworzenie harmonogramu projektu. Poniżej opisano kroki dodawania kalendarza do projektu.

  • Utwórz lub załaduj projekt przy użyciu klasy Project.
  • Dodaj nowy Kalendarz do kolekcji Project.Calendars.
  • Utwórz harmonogram, korzystając z obiektu Calendar.
  • Zapisz projekt.

Poniższy przykład kodu pokazuje, jak dodać kalendarz do projektu przy użyciu języka C#.

// Utwórz instancję projektu
Project project = new Project();

// Zdefiniuj kalendarz
Calendar cal = project.Calendars.Add("Calendar1");

// Dodaj dni robocze od poniedziałku do czwartku z domyślnymi godzinami
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Thursday));
cal.WeekDays.Add(new WeekDay(DayType.Saturday));
cal.WeekDays.Add(new WeekDay(DayType.Sunday));

// Ustaw piątek jako krótki dzień roboczy
WeekDay myWeekDay = new WeekDay(DayType.Friday);

// Ustawia czas pracy. Ważna jest tylko część czasu DateTime
WorkingTime wt1 = new WorkingTime();
wt1.FromTime = new DateTime(1, 1, 1, 9, 0, 0, 0);
wt1.ToTime = new DateTime(1, 1, 1, 12, 0, 0, 0);
WorkingTime wt2 = new WorkingTime();
wt2.FromTime = new DateTime(1, 1, 1, 13, 0, 0, 0);
wt2.ToTime = new DateTime(1, 1, 1, 16, 0, 0, 0);
myWeekDay.WorkingTimes.Add(wt1);
myWeekDay.WorkingTimes.Add(wt2);
myWeekDay.DayWorking = true;
cal.WeekDays.Add(myWeekDay);

// Zapisz Projekt
project.Save("Project_DefineCalendarWeekdays_out.xml", SaveFileFormat.XML);

Pobierz lub zainstaluj

Możesz pobrać Aspose.Tasks for .NET DLL lub zainstalować go w swoim projekcie za pomocą NuGet.

Wypróbuj Aspose.Tasks for .NET za darmo

Aspose oferuje bezpłatną tymczasową licencję na wypróbowanie swoich produktów bez ograniczeń próbnych. Możesz go pobrać z tutaj.

Zobacz też