
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 Project ตั้งแต่เริ่มต้นโดยใช้ C#
- เพิ่มงานในโครงการ
- เพิ่มทรัพยากรในโครงการ
- มอบหมายงานให้กับทรัพยากรในโครงการ
- เพิ่มปฏิทินในโครงการ
สร้างไฟล์โครงการ MS โดยใช้ C#
MPP เป็นรูปแบบไฟล์ที่เป็นกรรมสิทธิ์ของ Microsoft ซึ่งใช้สำหรับไฟล์ MS Project อย่างไรก็ตาม คุณยังสามารถเก็บข้อมูลโครงการไว้ในไฟล์ XML เพื่อแบ่งปันระหว่างแอปพลิเคชันต่างๆ การสร้างโครงการใหม่ตั้งแต่เริ่มต้นเป็นงานง่ายๆ และสามารถทำได้โดยใช้ขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส Project
- บันทึกไฟล์โดยใช้เมธอด Project.Save(string, SaveFileFormat)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างไฟล์ 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 เสนอใบอนุญาตชั่วคราวฟรีเพื่อทดลองใช้ผลิตภัณฑ์โดยไม่มีข้อจำกัดในการทดลองใช้งาน คุณสามารถรับได้จาก ที่นี่