Microsoft Project เป็นซอฟต์แวร์การจัดการโครงการยอดนิยมที่ช่วยให้ผู้จัดการโครงการสามารถจัดการโครงการได้อย่างมีประสิทธิภาพได้ง่ายขึ้น ช่วยให้ผู้จัดการสร้างงานและทรัพยากร มอบหมายงานให้กับทรัพยากร ติดตามความคืบหน้าของโครงการ จัดการงบประมาณ และดำเนินการอื่น ๆ ที่เกี่ยวข้องกับโครงการ เพื่อสร้างและจัดการไฟล์ MS Project ทางโปรแกรม Microsoft มี MS Office Automation อย่างไรก็ตาม นอกเหนือจาก [ข้อบกพร่องอื่นๆ] แล้ว 2 คุณจะต้องติดตั้ง MS Office เพื่อเติมเต็มช่องว่างนี้ Aspose กระโดดเข้ามาเพื่อมอบโซลูชันระบบอัตโนมัติของ MS Project สำหรับแอปพลิเคชัน .NET ในชื่อ Aspose.Tasks for .NET

Aspose.Tasks for .NET เป็น API ที่มีคุณลักษณะหลากหลายซึ่งช่วยให้คุณสร้างไฟล์ MS Project (.mpp/.xml) โดยทางโปรแกรมโดยใช้ C# หรือ VB.NET นอกจากนี้ยังมีคุณลักษณะต่างๆ เพื่อทำงานกับงาน ทรัพยากร และปฏิทิน ในบทความนี้ ฉันจะแสดงวิธีใช้ Aspose.Tasks for .NET เพื่อสร้างไฟล์ MS Project และทำงานกับงานและทรัพยากรโดยใช้ C# ส่วนที่เหลือของบทความแบ่งออกเป็นส่วนต่อไปนี้

สร้างไฟล์โครงการ MS โดยใช้ C#

MPP เป็นรูปแบบไฟล์ที่เป็นกรรมสิทธิ์ของ Microsoft ซึ่งใช้สำหรับไฟล์ MS Project อย่างไรก็ตาม คุณยังสามารถเก็บข้อมูลโครงการไว้ในไฟล์ XML เพื่อแบ่งปันระหว่างแอปพลิเคชันต่างๆ การสร้างโครงการใหม่ตั้งแต่เริ่มต้นเป็นงานง่ายๆ และสามารถทำได้โดยใช้ขั้นตอนต่อไปนี้:

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างไฟล์ MS Project โดยใช้ C#

บันทึกไฟล์โครงการ MS เป็น MPP

// สร้างโครงการใหม่
Project project = new Project();

// บันทึกเป็นไฟล์ .mpp
project.Save("New Project.mpp", SaveFileFormat.MPP);

บันทึกไฟล์โครงการ MS เป็น XML

// สร้างโครงการใหม่
Project project = new Project();

// บันทึกเป็นไฟล์ .xml
project.Save("EmptyProjectSaveXML_out.xml", SaveFileFormat.XML);

เพิ่มงานไปยังไฟล์โครงการ MS โดยใช้ C#

ไฟล์ MS Project ที่ว่างเปล่านั้นไร้ประโยชน์หากไม่มีงานและทรัพยากร มาดูวิธีสร้างและเพิ่มงานในโครงการกัน งานอาจเป็นงานเดียวหรืองานสรุปที่มีกลุ่มของงานย่อยอยู่ในนั้น ต่อไปนี้เป็นขั้นตอนในการเพิ่มงานลงในไฟล์ MS Project

  • สร้างและเริ่มต้นวัตถุ Project
  • เพิ่มงานสรุปใหม่ไปยังคอลเลกชัน Tasks ของโครงการโดยใช้เมธอด Project.RootTask.Children.Add(string)
  • เพิ่มงานย่อยให้กับงานสรุปโดยใช้เมธอด Task.Children.Add(string)
  • บันทึกโครงการโดยใช้เมธอด Project.Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างและเพิ่มงานไปยังไฟล์ MS Project โดยใช้ C#

// สร้างโครงการใหม่
Project project = new Project();

// เพิ่มงานและงานย่อย
Task task = project.RootTask.Children.Add("Summary1");
Task subtask = task.Children.Add("Subtask1");

// บันทึกไฟล์
project.Save("CreateTasks_out.xml", SaveFileFormat.XML);

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการตั้งค่าคุณสมบัติต่างๆ ของงาน เช่น ระยะเวลา วันที่/เวลาเริ่มต้น ฯลฯ

// สร้างโครงการ
Project project = new Project();

// เพิ่มงานและตั้งค่าคุณสมบัติของงาน
Task task = project.RootTask.Children.Add("Task1");
task.Set(Tsk.Start, project.RootTask.Get(Tsk.Start).AddDays(1));
task.Set(Tsk.Name, "new name");

เพิ่มทรัพยากรให้กับไฟล์โครงการ MS โดยใช้ C#

ทรัพยากรคือเอนทิตีที่ควรดำเนินงานในโครงการ ดังนั้นโครงการจะเป็นไปไม่ได้หากไม่มีทรัพยากรในการทำงาน มาดูวิธีสร้างและเพิ่มทรัพยากรในโครงการกัน ต่อไปนี้เป็นขั้นตอนในการเพิ่มทรัพยากรลงในไฟล์ MS Project

  • สร้างโครงการใหม่โดยใช้คลาส Project
  • เพิ่มทรัพยากรใหม่ให้กับคอลเลกชัน Resources ของโครงการโดยใช้เมธอด Project.Resources.Add(string)
  • บันทึกโครงการโดยใช้เมธอด Project.Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการเพิ่มทรัพยากรให้กับไฟล์ MS Project โดยใช้ C#

// สร้างโครงการ
Project project = new Project();

// เพิ่มทรัพยากร
Resource resource = project.Resources.Add("Rsc");

// บันทึกโครงการ
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

ตัวอย่างโค้ดต่อไปนี้ตั้งค่าคุณสมบัติของทรัพยากร เช่น วันที่/เวลาเริ่มต้น ประเภท เป็นต้น

// สร้างโครงการ
Project project = new Project();

// เพิ่มทรัพยากร
Resource resource = project.Resources.Add("Rsc");

// บันทึกโครงการ
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

กำหนดงานให้กับทรัพยากรในโครงการโดยใช้ C

เมื่อคุณเพิ่มงานและทรัพยากรในโครงการเสร็จแล้ว คุณสามารถระบุได้ว่างานใดที่จะดำเนินการโดยทรัพยากรใด ดังนั้น คุณจะมอบหมายงานให้กับแต่ละทรัพยากร ต่อไปนี้เป็นขั้นตอนในการมอบหมายงานให้กับทรัพยากรในโครงการ

  • สร้างหรือโหลดโปรเจ็กต์โดยใช้คลาส Project
  • เพิ่มทรัพยากรใหม่ให้กับโครงการและตั้งค่าคุณสมบัติ เช่น รูปแบบวันที่ วันที่เริ่มต้น ฯลฯ
  • เพิ่มงานใหม่ให้กับโครงการและตั้งค่าคุณสมบัติ เช่น วันที่/เวลาเริ่มต้น ระยะเวลา และอื่นๆ
  • ดำเนินการมอบหมายงานโดยเพิ่มงานและทรัพยากรที่เกี่ยวข้องไปยังคอลเลกชัน Project.ResourceAssignments
  • บันทึกโครงการโดยใช้เมธอด Project.Save()

ต่อไปนี้เป็นตัวอย่างโค้ดที่สมบูรณ์ของวิธีการสร้างและมอบหมายงานให้กับทรัพยากรในไฟล์ MS Project

// สร้างโครงการ
Project project = new Project("New Project.mpp")
{
    CalculationMode = CalculationMode.Automatic
};

// ตั้งค่าคุณสมบัติ
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);

// เพิ่มทรัพยากร
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");

// เพิ่มงาน
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));

// มอบหมายงาน
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));

// เพื่อให้ตรงกับ MPP ที่คาดหวังอย่างเต็มที่
assignment2.Set(Asn.WorkContour, WorkContourType.Contoured);
task3.Set(Tsk.IsManual, new NullableBool(true));
task1.Set(Tsk.IsManual, new NullableBool(true));

// บันทึกโครงการ
project.Save("Assignment_Dates.mpp", SaveFileFormat.MPP);

เพิ่มปฏิทินในโครงการโดยใช้ C#

ปฏิทินยังเป็นหนึ่งในเอนทิตีหลักของโครงการซึ่งใช้เพื่อกำหนดกำหนดการของโครงการ ปฏิทินทำให้ผู้จัดการโครงการสามารถสร้างไทม์ไลน์สำหรับโครงการได้ ต่อไปนี้เป็นขั้นตอนในการเพิ่มปฏิทินในโครงการ

  • สร้างหรือโหลดโปรเจ็กต์โดยใช้คลาส Project
  • เพิ่ม Calendar ใหม่ไปยังคอลเลกชัน Project.Calendars
  • สร้างกำหนดการโดยใช้วัตถุปฏิทิน
  • บันทึกโครงการ

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเพิ่มปฏิทินในโครงการโดยใช้ C#

// สร้างตัวอย่างโครงการ
Project project = new Project();

// กำหนดปฏิทิน
Calendar cal = project.Calendars.Add("Calendar1");

// เพิ่มวันทำการตั้งแต่วันจันทร์ถึงวันพฤหัสบดีด้วยการกำหนดเวลาเริ่มต้น
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));

// กำหนดวันศุกร์เป็นวันทำงานสั้น
WeekDay myWeekDay = new WeekDay(DayType.Friday);

// ตั้งเวลาทำงาน เฉพาะส่วนของ 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);

// บันทึกโครงการ
project.Save("Project_DefineCalendarWeekdays_out.xml", SaveFileFormat.XML);

ดาวน์โหลดหรือติดตั้ง

คุณสามารถ ดาวน์โหลด Aspose.Tasks for .NET DLL หรือติดตั้งในโครงการของคุณโดยใช้ NuGet

ลอง Aspose.Tasks for .NET ฟรี

Aspose เสนอใบอนุญาตชั่วคราวฟรีเพื่อทดลองใช้ผลิตภัณฑ์โดยไม่มีข้อจำกัดในการทดลองใช้งาน คุณสามารถรับได้จาก ที่นี่

ดูสิ่งนี้ด้วย