Microsoft Project je oblíbený software pro řízení projektů, který usnadňuje projektovým manažerům efektivně řídit projekty. Umožňuje manažerům vytvářet úkoly a zdroje, přiřazovat úkoly zdrojům, sledovat průběh projektu, spravovat rozpočet a provádět další operace související s projektem. Aby bylo možné vytvářet a spravovat soubory MS Project programově, poskytuje Microsoft MS Office Automation. Spolu s dalšími nedostatky však vyžaduje instalaci MS Office. Aby zaplnil tuto mezeru, Aspose vám poskytne řešení pro automatizaci MS Project pro aplikace .NET jako Aspose.Tasks for .NET.

Aspose.Tasks for .NET je rozhraní API bohaté na funkce, které umožňuje vytvářet soubory MS Project (.mpp/.xml) programově pomocí C# nebo VB.NET. Kromě toho nabízí různé funkce pro práci s úkoly, zdroji a kalendáři. V tomto článku vám ukážu, jak používat Aspose.Tasks for .NET k vytváření souborů MS Project a práci s úkoly a zdroji pomocí C#. Zbytek článku je rozdělen do následujících částí.

Vytvářejte soubory MS Project pomocí C#

MPP je proprietární formát souboru společnosti Microsoft, který se používá pro soubory MS Project. Data projektu však můžete také uchovávat v souborech XML a sdílet je mezi různými aplikacemi. Vytvoření nového projektu od začátku je jednoduchý úkol a lze jej provést pomocí následujících kroků:

Následující ukázky kódu ukazují, jak vytvořit soubory MS Project pomocí C#.

Uložte soubory MS Project jako MPP

// Vytvořte nový projekt
Project project = new Project();

// Uložte jej jako soubor .mpp
project.Save("New Project.mpp", SaveFileFormat.MPP);

Uložit soubory MS Project jako XML

// Vytvořte nový projekt
Project project = new Project();

// Uložte jej jako soubor .xml
project.Save("EmptyProjectSaveXML_out.xml", SaveFileFormat.XML);

Přidejte úkoly do souborů MS Project pomocí C#

Prázdný soubor MS Project je bez úkolů a prostředků k ničemu. Pojďme se tedy podívat, jak vytvořit a přidat úkoly do projektu. Úkolem může být jeden úkol nebo souhrnný úkol obsahující skupinu dílčích úkolů. Následují kroky pro přidání úkolů do souboru MS Project.

  • Vytvořte a inicializujte objekt Project.
  • Přidejte nový souhrnný úkol do kolekce Tasks projektu pomocí metody Project.RootTask.Children.Add(string).
  • Přidejte dílčí úkol k souhrnnému úkolu pomocí metody Task.Children.Add(string).
  • Uložte projekt pomocí metody Project.Save().

Následující ukázka kódu ukazuje, jak vytvořit a přidat úkoly do souborů MS Project pomocí C#.

// Vytvořte nový projekt
Project project = new Project();

// Přidat úkol a dílčí úkol
Task task = project.RootTask.Children.Add("Summary1");
Task subtask = task.Children.Add("Subtask1");

// Uložení souboru
project.Save("CreateTasks_out.xml", SaveFileFormat.XML);

Následující ukázka kódu ukazuje, jak nastavit různé vlastnosti úkolů, jako je trvání, datum/čas zahájení atd.

// Vytvořit projekt
Project project = new Project();

// Přidejte úkol a nastavte vlastnosti úkolu
Task task = project.RootTask.Children.Add("Task1");
task.Set(Tsk.Start, project.RootTask.Get(Tsk.Start).AddDays(1));
task.Set(Tsk.Name, "new name");

Přidejte zdroje do souborů MS Project pomocí C#

Zdroje jsou entity, které mají plnit úkoly v projektu. Projekt by tedy nebyl možný bez zdrojů na jeho realizaci. Pojďme se tedy podívat, jak vytvořit a přidat zdroje do projektu. Následují kroky pro přidání prostředků do souboru MS Project.

  • Vytvořte nový projekt pomocí třídy Project.
  • Přidejte nový zdroj do kolekce Resources projektu pomocí metody Project.Resources.Add(string).
  • Uložte projekt pomocí metody Project.Save().

Následující ukázka kódu ukazuje, jak přidat prostředky do souboru MS Project pomocí C#.

// Vytvořit projekt
Project project = new Project();

// Přidejte zdroje
Resource resource = project.Resources.Add("Rsc");

// Uložit projekt
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

Následující ukázka kódu nastavuje vlastnosti prostředku, jako je počáteční datum/čas, typ atd.

// Vytvořit projekt
Project project = new Project();

// Přidejte zdroje
Resource resource = project.Resources.Add("Rsc");

// Uložit projekt
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

Přiřazení úkolů ke zdrojům v projektu pomocí C#

Jakmile dokončíte přidávání úkolů a zdrojů do projektu, můžete určit, který úkol má který zdroj provést. Úkoly tedy přiřadíte každému zdroji. Následují kroky k přiřazení úkolů ke zdrojům v projektu.

  • Vytvořte nebo načtěte projekt pomocí třídy Project.
  • Přidejte do projektu nové zdroje a nastavte jejich vlastnosti, jako je formát data, datum zahájení atd.
  • Přidejte do projektu nové úkoly a nastavte jejich vlastnosti, jako je datum/čas zahájení, trvání atd.
  • Proveďte přiřazení úkolů přidáním úkolu a jeho příslušného zdroje do kolekce Project.ResourceAssignments.
  • Uložte projekt pomocí metody Project.Save().

Následuje kompletní ukázka kódu, jak vytvořit a přiřadit úkoly zdrojům v souboru MS Project.

// Vytvořit projekt
Project project = new Project("New Project.mpp")
{
    CalculationMode = CalculationMode.Automatic
};

// Nastavit vlastnosti
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);

// Přidejte zdroje
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");

// Přidejte úkoly
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));

// Přidělujte úkoly
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));

// plně odpovídat očekávanému MPP
assignment2.Set(Asn.WorkContour, WorkContourType.Contoured);
task3.Set(Tsk.IsManual, new NullableBool(true));
task1.Set(Tsk.IsManual, new NullableBool(true));

// Uložit projekt
project.Save("Assignment_Dates.mpp", SaveFileFormat.MPP);

Přidat kalendář do projektu pomocí C#

Kalendáře jsou také jednou z hlavních entit projektů, které se používají k definování harmonogramu projektu. Kalendář umožňuje projektovým manažerům vytvořit časovou osu projektu. Níže jsou uvedeny kroky pro přidání kalendáře do projektu.

  • Vytvořte nebo načtěte projekt pomocí třídy Project.
  • Přidejte nový Calendar do kolekce Project.Calendars.
  • Vytvořte plán pomocí objektu Kalendář.
  • Uložte projekt.

Následující ukázka kódu ukazuje, jak přidat kalendář do projektu pomocí C#.

// Vytvořte instanci projektu
Project project = new Project();

// Definujte kalendář
Calendar cal = project.Calendars.Add("Calendar1");

// Přidejte pracovní dny pondělí až čtvrtek s výchozím načasováním
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));

// Nastavte pátek jako krátký pracovní den
WeekDay myWeekDay = new WeekDay(DayType.Friday);

// Nastavuje pracovní dobu. Důležitá je pouze časová část 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);

// Uložit projekt
project.Save("Project_DefineCalendarWeekdays_out.xml", SaveFileFormat.XML);

Stáhnout nebo nainstalovat

Můžete si stáhnout Aspose.Tasks for .NET DLL nebo jej nainstalovat do svého projektu pomocí NuGet.

Vyzkoušejte Aspose.Tasks for .NET zdarma

Aspose nabízí bezplatnou dočasnou licenci k vyzkoušení svých produktů bez zkušebních omezení. Jeden můžete získat zde.

Viz také