Microsoft Project är en populär projektledningsprogramvara som gör det enklare för projektledare att effektivt hantera projekten. Det låter cheferna skapa uppgifter och resurser, tilldela uppgifter till resurser, spåra projektets framsteg, hantera budgeten och utföra andra projektrelaterade operationer. För att skapa och hantera MS Project-filer programmatiskt tillhandahåller Microsoft MS Office Automation. Men tillsammans med andra brister måste du installera MS Office. För att fylla denna lucka hoppar Aspose in för att förse dig med en MS Project-automatiseringslösning för .NET-applikationer som Aspose.Tasks for .NET.

Aspose.Tasks för .NET är ett funktionsrikt API som låter dig skapa MS Project-filer (.mpp/.xml) programmatiskt med C# eller VB.NET. Dessutom erbjuder den olika funktioner för att arbeta med uppgifter, resurser och kalendrar. I den här artikeln kommer jag att visa dig hur du använder Aspose.Tasks för .NET för att skapa MS Project-filer och arbeta med uppgifter och resurser med C#. Resten av artikeln är uppdelad i följande avsnitt.

Skapa MS Project-filer med C#

MPP är Microsofts proprietära filformat som används för MS Project-filer. Men du kan också behålla projektdata i XML-filer för att dela dem mellan olika applikationer. Att skapa ett nytt projekt från grunden är en enkel uppgift och kan göras med följande steg:

Följande kodexempel visar hur man skapar MS Project-filer med C#.

Spara MS Project-filer som MPP

// Skapa ett nytt projekt
Project project = new Project();

// Spara den som .mpp-fil
project.Save("New Project.mpp", SaveFileFormat.MPP);

Spara MS Project-filer som XML

// Skapa ett nytt projekt
Project project = new Project();

// Spara den som .xml-fil
project.Save("EmptyProjectSaveXML_out.xml", SaveFileFormat.XML);

Lägg till uppgifter till MS Project-filer med C#

Den tomma MS Project-filen är värdelös utan uppgifter och resurser. Så låt oss se hur man skapar och lägger till uppgifter i ett projekt. En uppgift kan vara en enskild uppgift eller sammanfattningsuppgift som innehåller en grupp deluppgifter. Följande är stegen för att lägga till uppgifter till en MS Project-fil.

  • Skapa och initiera objektet Project.
  • Lägg till en ny sammanfattningsuppgift till projektets Tasks-samling med Project.RootTask.Children.Add(string)-metoden.
  • Lägg till en deluppgift till sammanfattningsuppgiften med Task.Children.Add(sträng)-metoden.
  • Spara projektet med metoden Project.Save().

Följande kodexempel visar hur man skapar och lägger till uppgifter till MS Project-filer med C#.

// Skapa ett nytt projekt
Project project = new Project();

// Lägg till uppgift och underuppgift
Task task = project.RootTask.Children.Add("Summary1");
Task subtask = task.Children.Add("Subtask1");

// Spara fil
project.Save("CreateTasks_out.xml", SaveFileFormat.XML);

Följande kodexempel visar hur du ställer in olika egenskaper för uppgifterna som längd, startdatum/tid, etc.

// Skapa projekt
Project project = new Project();

// Lägg till uppgift och ställ in uppgiftsegenskaper
Task task = project.RootTask.Children.Add("Task1");
task.Set(Tsk.Start, project.RootTask.Get(Tsk.Start).AddDays(1));
task.Set(Tsk.Name, "new name");

Lägg till resurser till MS Project-filer med C#

Resurser är de enheter som är tänkta att utföra uppgifterna i ett projekt. Därför skulle ett projekt inte vara möjligt utan resurserna att arbeta med det. Så låt oss kolla in hur man skapar och lägger till resurser till ett projekt. Följande är stegen för att lägga till resurser till en MS Project-fil.

  • Skapa ett nytt projekt med klassen Project.
  • Lägg till en ny resurs till projektets Resources-samling med Project.Resources.Add(string)-metoden.
  • Spara projektet med metoden Project.Save().

Följande kodexempel visar hur man lägger till resurser till en MS Project-fil med C#.

// Skapa projekt
Project project = new Project();

// Lägg till resurser
Resource resource = project.Resources.Add("Rsc");

// Spara projekt
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

Följande kodexempel ställer in egenskaperna för en resurs som ett startdatum/tid, typ, etc.

// Skapa projekt
Project project = new Project();

// Lägg till resurser
Resource resource = project.Resources.Add("Rsc");

// Spara projekt
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

Tilldela uppgifter till resurs i ett projekt med C#

När du har lagt till uppgifter och resurser i projektet kan du ange vilken uppgift som ska utföras av vilken resurs. Sålunda kommer du att tilldela uppgiften/uppgifterna till varje resurs. Följande är stegen för att tilldela uppgifter till resurser i ett projekt.

  • Skapa eller ladda ett projekt med klassen Project.
  • Lägg till nya resurser till projektet och ställ in deras egenskaper som datumformat, startdatum, etc.
  • Lägg till nya uppgifter till projektet och ställ in deras egenskaper som startdatum/tid, varaktighet och etc.
  • Utför uppgiftstilldelning genom att lägga till uppgiften och dess respektive resurs till samlingen Project.ResourceAssignments.
  • Spara projektet med metoden Project.Save().

Följande är det fullständiga kodexemplet på hur man skapar och tilldelar uppgifter till resurser i en MS Project-fil.

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

// Ställ in egenskaper
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);

// Lägg till resurser
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");

// Lägg till uppgifter
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));

// Tilldela uppgifter
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));

// för att helt matcha förväntad MPP
assignment2.Set(Asn.WorkContour, WorkContourType.Contoured);
task3.Set(Tsk.IsManual, new NullableBool(true));
task1.Set(Tsk.IsManual, new NullableBool(true));

// Spara projekt
project.Save("Assignment_Dates.mpp", SaveFileFormat.MPP);

Lägg till kalender till ett projekt med C#

Kalendrarna är också en av huvudenheterna i projekten som används för att definiera projektets tidsplan. Kalendern gör det möjligt för projektledarna att skapa en tidslinje för ett projekt. Följande är stegen för att lägga till en kalender till ett projekt.

  • Skapa eller ladda ett projekt med klassen Project.
  • Lägg till ny Calendar till Project.Calendars-samlingen.
  • Skapa schemat med hjälp av objektet Kalender.
  • Spara projektet.

Följande kodexempel visar hur man lägger till en kalender till ett projekt med C#.

// Skapa en projektinstans
Project project = new Project();

// Definiera kalender
Calendar cal = project.Calendars.Add("Calendar1");

// Lägg till arbetsdagar måndag till torsdag med standardtider
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));

// Ange fredag som kort arbetsdag
WeekDay myWeekDay = new WeekDay(DayType.Friday);

// Ställer in arbetstid. Endast tidsdelen av DateTime är viktig
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);

// Spara projekt
project.Save("Project_DefineCalendarWeekdays_out.xml", SaveFileFormat.XML);

Ladda ner eller installera

Du kan ladda ner Aspose.Tasks för .NET DLL eller installera det i ditt projekt med NuGet.

Prova Aspose.Tasks för .NET gratis

Aspose erbjuder en gratis tillfällig licens för att prova sina produkter utan testbegränsningar. Du kan få en från här.

Se även