Microsoft Project היא תוכנה פופולרית לניהול פרויקטים המקלה על מנהלי פרויקטים לנהל את הפרויקטים ביעילות. זה מאפשר למנהלים ליצור משימות ומשאבים, להקצות משימות למשאבים, לעקוב אחר התקדמות הפרויקט, לנהל את התקציב ולבצע פעולות אחרות הקשורות לפרויקט. על מנת ליצור ולנהל קבצי MS Project באופן פרוגרמטי, Microsoft מספקת MS Office Automation. עם זאת, יחד עם חסרונות אחרים, זה מחייב אותך להתקין את MS Office. כדי למלא את הפער הזה, Aspose קופץ על מנת לספק לך פתרון אוטומציה של MS Project עבור יישומי NET כ-Aspose.Tasks for .NET.

Aspose.Tasks עבור .NET הוא API עשיר בתכונות המאפשר לך ליצור קבצי MS Project (.mpp/.xml) באופן פרוגרמטי באמצעות C# או VB.NET. בנוסף, הוא מציע תכונות שונות לעבודה עם משימות, משאבים ולוחות שנה. במאמר זה, אני אראה לך כיצד להשתמש ב-Aspose.Tasks עבור .NET כדי ליצור קבצי MS Project ולעבוד עם משימות ומשאבים באמצעות C#. שאר המאמר מחולק לחלקים הבאים.

צור קבצי MS Project באמצעות C#

MPP הוא פורמט הקובץ הקנייני של Microsoft המשמש עבור קבצי MS Project. עם זאת, אתה יכול גם לשמור נתוני פרויקט בקבצי XML כדי לשתף אותם בין יישומים שונים. יצירת פרויקט חדש מאפס היא משימה פשוטה וניתן לבצע אותה באמצעות השלבים הבאים:

דוגמאות הקוד הבאות מראות כיצד ליצור קבצי MS Project באמצעות C#.

שמור קבצי MS Project כ-MPP

// צור פרויקט חדש
Project project = new Project();

// שמור אותו כקובץ .mpp
project.Save("New Project.mpp", SaveFileFormat.MPP);

שמור קבצי MS Project כ-XML

// צור פרויקט חדש
Project project = new Project();

// שמור אותו כקובץ ‎.xml
project.Save("EmptyProjectSaveXML_out.xml", SaveFileFormat.XML);

הוסף משימות לקבצי MS Project באמצעות C#

קובץ MS Project הריק הוא חסר תועלת ללא משימות ומשאבים. אז בואו נראה כיצד ליצור ולהוסיף משימות לפרויקט. משימה יכולה להיות משימה בודדת או משימת סיכום המכילה קבוצה של משימות משנה. להלן השלבים להוספת משימות לקובץ MS Project.

  • צור ואתחול את האובייקט פרויקט.
  • הוסף משימת סיכום חדשה לאוסף Tasks של הפרויקט באמצעות שיטת Project.RootTask.Children.Add(string).
  • הוסף תת-משימה למשימת הסיכום באמצעות שיטת Task.Children.Add(מחרוזת).
  • שמור את הפרויקט בשיטת 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 Project באמצעות 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 עבור .NET DLL או להתקין אותו בפרויקט שלך באמצעות NuGet.

נסה את Aspose.Tasks עבור .NET בחינם

Aspose מציעה רישיון זמני בחינם לנסות את מוצריה ללא מגבלות ניסיון. אתה יכול להשיג אחד מכאן.

ראה גם