public static void Run() { try { // The path to the documents directory. string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName); // ExStart:UpdateResourceAssignmentInMPP // Create project instance and access first task and resource Project project1 = new Project(dataDir + "UpdateResourceAssignment.mpp"); Task task = project1.RootTask.Children.GetById(1); Resource rsc = project1.Resources.GetById(1); // Create resource assignment ResourceAssignment assn = project1.ResourceAssignments.Add(task, rsc); assn.Set(Asn.Notes, "Newly added assignment"); // Save project as MPP project1.Save(dataDir + "UpdateResourceAssignment_out.mpp", SaveFileFormat.MPP); // ExEnd:UpdateResourceAssignmentInMPP } catch (Exception ex) { Console.WriteLine(ex.Message + "\nThis example will only work if you apply a valid Aspose License. You can purchase full license or get 30 day temporary license from http://www.aspose.com/purchase/default.aspx."); } }
public static void Run() { // ExStart:ReadWriteTimephasedData // Create project instance string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName); Project project1 = new Project(dataDir + "ReadWriteTimephasedData.mpp"); // Set project properties project1.Set(Prj.StartDate, new DateTime(2013, 10, 30, 9, 0, 0)); project1.Set(Prj.NewTasksAreManual, false); // Add task and resources Task task = project1.RootTask.Children.Add("Task"); Resource rsc = project1.Resources.Add("Rsc"); // Set resource rates and task duration rsc.Set(Rsc.StandardRate, 10); rsc.Set(Rsc.OvertimeRate, 15); task.Set(Tsk.Duration, project1.GetDuration(6)); // Create resource assignment ResourceAssignment assn = project1.ResourceAssignments.Add(task, rsc); assn.Set(Asn.Stop, DateTime.MinValue); assn.Set(Asn.Resume, DateTime.MinValue); // Set Backloaded contour, it increases task duration from 6 to 10 days assn.Set(Asn.WorkContour, WorkContourType.BackLoaded); project1.SetBaseline(BaselineType.Baseline); task.Set(Tsk.PercentComplete, 50); // Read timephased data List <TimephasedData> td = assn.GetTimephasedData(assn.Get(Asn.Start), assn.Get(Asn.Finish), TimephasedDataType.AssignmentRemainingWork).ToList(); Console.WriteLine(td.Count); foreach (TimephasedData timePhasedValue in td) { Console.WriteLine(timePhasedValue.Value); } // ExEnd:ReadWriteTimephasedData }
public static void Run() { // ExStart:CreateSplitTasks // Create new project Project splitTaskProject = new Project(); // Get a standard calendar Calendar calendar = splitTaskProject.Get(Prj.Calendar); // Set project's calendar settings splitTaskProject.Set(Prj.StartDate, new DateTime(2000, 3, 15, 8, 0, 0)); splitTaskProject.Set(Prj.FinishDate, new DateTime(2000, 4, 21, 17, 0, 0)); // Add a new task to root task Task rootTask = splitTaskProject.RootTask; rootTask.Set(Tsk.Name, "Root"); Task taskToSplit = rootTask.Children.Add("Task1"); taskToSplit.Set(Tsk.Duration, splitTaskProject.GetDuration(3)); // Create a new resource assignment and generate timephased data ResourceAssignment splitResourceAssignment = splitTaskProject.ResourceAssignments.Add(taskToSplit, null); splitResourceAssignment.TimephasedDataFromTaskDuration(calendar); // Split the task into 3 parts. // Provide start date and finish date arguments to SplitTask method which will be used for split splitResourceAssignment.SplitTask(new DateTime(2000, 3, 16, 8, 0, 0), new DateTime(2000, 3, 16, 17, 0, 0), calendar); splitResourceAssignment.SplitTask(new DateTime(2000, 3, 18, 8, 0, 0), new DateTime(2000, 3, 18, 17, 0, 0), calendar); splitResourceAssignment.Set(Asn.WorkContour, WorkContourType.Contoured); // Save the Project string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName); splitTaskProject.Save(dataDir + "CreateSplitTasks_out.xml", SaveFileFormat.XML); // ExEnd:CreateSplitTasks }
public static void Run() { try { //ExStart:WriteMetadataToMPP string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName); Project project = new Project(dataDir + "Project1.mpp"); // Add working times to project calendar WorkingTime wt = new WorkingTime(); wt.FromTime = new DateTime(2010, 1, 1, 19, 0, 0); wt.ToTime = new DateTime(2010, 1, 1, 20, 0, 0); WeekDay day = project.Get(Prj.Calendar).WeekDays.ToList()[1]; day.WorkingTimes.Add(wt); // Change calendar name project.Get(Prj.Calendar).Name = "CHANGED NAME!"; // Add tasks and set task meta data Task task = project.RootTask.Children.Add("Task 1"); task.Set(Tsk.DurationFormat, TimeUnitType.Day); task.Set(Tsk.Duration, project.GetDuration(3)); task.Set(Tsk.Contact, "Rsc 1"); task.Set(Tsk.IsMarked, true); task.Set(Tsk.IgnoreWarnings, true); Task task2 = project.RootTask.Children.Add("Task 2"); task2.Set(Tsk.DurationFormat, TimeUnitType.Day); task2.Set(Tsk.Contact, "Rsc 2"); // Link tasks project.TaskLinks.Add(task, task2, TaskLinkType.FinishToStart, project.GetDuration(-1, TimeUnitType.Day)); // Set project start date project.Set(Prj.StartDate, new DateTime(2013, 8, 13, 9, 0, 0)); // Add resource and set resource meta data Resource rsc1 = project.Resources.Add("Rsc 1"); rsc1.Set(Rsc.Type, ResourceType.Work); rsc1.Set(Rsc.Initials, "WR"); rsc1.Set(Rsc.AccrueAt, CostAccrualType.Prorated); rsc1.Set(Rsc.MaxUnits, 1); rsc1.Set(Rsc.Code, "Code 1"); rsc1.Set(Rsc.Group, "Workers"); rsc1.Set(Rsc.EMailAddress, "*****@*****.**"); rsc1.Set(Rsc.WindowsUserAccount, "user_acc1"); rsc1.Set(Rsc.IsGeneric, new NullableBool(true)); rsc1.Set(Rsc.AccrueAt, CostAccrualType.End); rsc1.Set(Rsc.StandardRate, 10); rsc1.Set(Rsc.StandardRateFormat, RateFormatType.Day); rsc1.Set(Rsc.OvertimeRate, 15); rsc1.Set(Rsc.OvertimeRateFormat, RateFormatType.Hour); rsc1.Set(Rsc.IsTeamAssignmentPool, true); rsc1.Set(Rsc.CostCenter, "Cost Center 1"); // Create resource assignment and set resource assignment meta data ResourceAssignment assn = project.ResourceAssignments.Add(task, rsc1); assn.Set(Asn.Uid, 1); assn.Set(Asn.Work, task.Get(Tsk.Duration)); assn.Set(Asn.RemainingWork, assn.Get(Asn.Work)); assn.Set(Asn.RegularWork, assn.Get(Asn.Work)); task.Set(Tsk.Work, assn.Get(Asn.Work)); rsc1.Set(Rsc.Work, task.Get(Tsk.Work)); assn.Set(Asn.Start, task.Get(Tsk.Start)); assn.Set(Asn.Finish, task.Get(Tsk.Finish)); // Add extended attribute for project and task ExtendedAttributeDefinition attr = ExtendedAttributeDefinition.CreateTaskDefinition(CustomFieldType.Flag, ExtendedAttributeTask.Flag1, "My Flag Field"); project.ExtendedAttributes.Add(attr); ExtendedAttribute taskAttr = attr.CreateExtendedAttribute(); taskAttr.FlagValue = true; task2.ExtendedAttributes.Add(taskAttr); // Save project as MPP project.Save(dataDir + "WriteMetaData_out.mpp", SaveFileFormat.MPP); //ExEnd:WriteMetadataToMPP } catch (Exception ex) { Console.WriteLine(ex.Message + "\nThis example will only work if you apply a valid Aspose License. You can purchase full license or get 30 day temporary license from http://www.aspose.com/purchase/default.aspx."); } }
public static void Run() { // The path to the documents directory. string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName); //ExStart:CreateMultipleResourceAssignmentsForOneTask Project project = new Project(dataDir + "TemplateResource2010.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 tsk1 = project.RootTask.Children.Add("Task - 01"); tsk1.Set(Tsk.IsRollup, new NullableBool(true)); tsk1.Set(Tsk.IsPublished, new NullableBool(false)); Task tsk2 = tsk1.Children.Add("Task - 01.01"); tsk2.Set(Tsk.IsRollup, new NullableBool(true)); tsk2.Set(Tsk.IsPublished, new NullableBool(false)); Task tsk3 = tsk2.Children.Add("Task - 01.01.001"); tsk3.Set(Tsk.IsEstimated, new NullableBool(false)); tsk3.Set(Tsk.Start, new DateTime(2019, 9, 16, 9, 0, 0)); tsk3.Set(Tsk.Duration, project.GetDuration(10, TimeUnitType.Day)); tsk3.Set(Tsk.Work, project.GetDuration(10, TimeUnitType.Day)); tsk3.Set(Tsk.IsRollup, new NullableBool(true)); tsk3.Set(Tsk.IsPublished, new NullableBool(false)); ResourceAssignment assignment1 = project.ResourceAssignments.Add(tsk3, 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(tsk3, 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)); // to match expected MPP fully assignment2.Set(Asn.WorkContour, WorkContourType.Contoured); tsk3.Set(Tsk.IsManual, new NullableBool(true)); tsk1.Set(Tsk.IsManual, new NullableBool(true)); project.Save(dataDir + @"Assignment_Dates.mpp", Saving.SaveFileFormat.MPP); //ExEnd:CreateMultipleResourceAssignmentsForOneTask }
public static void Run() { // The path to the documents directory. string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName); // ExStart:GenerateResourceAssignmentTimephasedData // Create project instance Project project1 = new Project(dataDir + "ResourceAssignmentTimephasedData.mpp"); // Get the first task of the Project Task task = project1.RootTask.Children.GetById(1); // Get the First Resource Assignment of the Project ResourceAssignment firstRA = project1.ResourceAssignments.ToList()[0]; // Flat contour is default contour Console.WriteLine("Flat contour"); var tdList = task.GetTimephasedData(project1.Get(Prj.StartDate), project1.Get(Prj.FinishDate)); foreach (TimephasedData td in tdList) { Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value); } // Change contour firstRA.Set(Asn.WorkContour, WorkContourType.Turtle); Console.WriteLine("Turtle contour"); tdList = task.GetTimephasedData(project1.Get(Prj.StartDate), project1.Get(Prj.FinishDate)); foreach (TimephasedData td in tdList) { Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value); } // Change contour firstRA.Set(Asn.WorkContour, WorkContourType.BackLoaded); Console.WriteLine("BackLoaded contour"); tdList = task.GetTimephasedData(project1.Get(Prj.StartDate), project1.Get(Prj.FinishDate)); foreach (TimephasedData td in tdList) { Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value); } // Change contour firstRA.Set(Asn.WorkContour, WorkContourType.FrontLoaded); Console.WriteLine("FrontLoaded contour"); tdList = task.GetTimephasedData(project1.Get(Prj.StartDate), project1.Get(Prj.FinishDate)); foreach (TimephasedData td in tdList) { Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value); } // Change contour firstRA.Set(Asn.WorkContour, WorkContourType.Bell); Console.WriteLine("Bell contour"); tdList = task.GetTimephasedData(project1.Get(Prj.StartDate), project1.Get(Prj.FinishDate)); foreach (TimephasedData td in tdList) { Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value); } // Change contour firstRA.Set(Asn.WorkContour, WorkContourType.EarlyPeak); Console.WriteLine("EarlyPeak contour"); tdList = task.GetTimephasedData(project1.Get(Prj.StartDate), project1.Get(Prj.FinishDate)); foreach (TimephasedData td in tdList) { Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value); } // Change contour firstRA.Set(Asn.WorkContour, WorkContourType.LatePeak); Console.WriteLine("LatePeak contour"); tdList = task.GetTimephasedData(project1.Get(Prj.StartDate), project1.Get(Prj.FinishDate)); foreach (TimephasedData td in tdList) { Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value); } // Change contour firstRA.Set(Asn.WorkContour, WorkContourType.DoublePeak); Console.WriteLine("DoublePeak contour"); tdList = task.GetTimephasedData(project1.Get(Prj.StartDate), project1.Get(Prj.FinishDate)); foreach (TimephasedData td in tdList) { Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value); } // ExEnd:GenerateResourceAssignmentTimephasedData }