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
        }
Пример #4
0
        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
        }