private void gvProjects_RowClick(object sender, RowClickEventArgs e) { if (e.Clicks != 2) { return; } ProjectBo p = new ProjectBo(); p.Id = (int)gvProjects.GetRowCellValue(e.RowHandle, "Id"); p.Name = (string)gvProjects.GetRowCellValue(e.RowHandle, "Name"); p.StartTime = (string)gvProjects.GetRowCellValue(e.RowHandle, "StartTime"); ProjectCalendar pc = new ProjectCalendar(); pc.project = p; pc.ShowDialog(); }
/// <summary> /// Set up a 24 hour calendar /// </summary> /// <param name="calendar"></param> private void SetupCalendar(ProjectCalendar calendar) { // Simple date format for setting dates SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); // Date range containing all hours DateRange range = new DateRange(format.parse("2000-01-01 00:00"), format.parse("2000-01-02 00:00")); // Set calendar name to the same value to which the project calendar will be set calendar.Name = PROJECT_CALENDER_NAME; // Mark each day as working calendar.setWorkingDay(Day.SUNDAY, true); calendar.setWorkingDay(Day.MONDAY, true); calendar.setWorkingDay(Day.TUESDAY, true); calendar.setWorkingDay(Day.WEDNESDAY, true); calendar.setWorkingDay(Day.THURSDAY, true); calendar.setWorkingDay(Day.FRIDAY, true); calendar.setWorkingDay(Day.SATURDAY, true); // Add a working hours range to each day ProjectCalendarHours hours; hours = calendar.addCalendarHours(Day.SUNDAY); hours.addRange(range); hours = calendar.addCalendarHours(Day.MONDAY); hours.addRange(range); hours = calendar.addCalendarHours(Day.TUESDAY); hours.addRange(range); hours = calendar.addCalendarHours(Day.WEDNESDAY); hours.addRange(range); hours = calendar.addCalendarHours(Day.THURSDAY); hours.addRange(range); hours = calendar.addCalendarHours(Day.FRIDAY); hours.addRange(range); hours = calendar.addCalendarHours(Day.SATURDAY); hours.addRange(range); }
public void process(string filename) { // // Create a ProjectFile instance // ProjectFile file = new ProjectFile(); // // Uncomment these lines to test the use of alternative // delimiters and separators for MPX file output. // //file.setDelimiter(';'); //file.setDecimalSeparator(','); //file.setThousandsSeparator('.'); // // Add a default calendar called "Standard" // ProjectCalendar calendar = file.addDefaultBaseCalendar(); // // Add a holiday to the calendar to demonstrate calendar exceptions // calendar.addCalendarException(ParseDate("2006-03-13"), ParseDate("2006-03-13")); // // Retrieve the project properties and set the start date. Note Microsoft // Project appears to reset all task dates relative to this date, so this // date must match the start date of the earliest task for you to see // the expected results. If this value is not set, it will default to // today's date. // ProjectProperties properties = file.ProjectProperties; properties.StartDate = ParseDate("2003-01-01"); // // Set a couple more properties just for fun // properties.ProjectTitle = "Created by MPXJ"; properties.Author = "Jon Iles"; // // Add resources // Resource resource1 = file.addResource(); resource1.Name = "Resource1"; Resource resource2 = file.addResource(); resource2.Name = "Resource2"; // // This next line is not required, it is here simply to test the // output file format when alternative separators and delimiters // are used. // resource2.MaxUnits = NumberHelper.getDouble(50.0); // // Create a summary task // Task task1 = file.addTask(); task1.Name = "Summary Task"; // // Create the first sub task // Task task2 = task1.addTask(); task2.Name = "First Sub Task"; task2.Duration = Duration.getInstance(10.5, TimeUnit.DAYS); task2.Start = ParseDate("2003-01-01"); // // We'll set this task up as being 50% complete. If we have no resource // assignments for this task, this is enough information for MS Project. // If we do have resource assignments, the assignment record needs to // contain the corresponding work and actual work fields set to the // correct values in order for MS project to mark the task as complete // or partially complete. // task2.PercentageComplete = NumberHelper.getDouble(50.0); task2.ActualStart = ParseDate("2003-01-01"); // // Create the second sub task // Task task3 = task1.addTask(); task3.Name = "Second Sub Task"; task3.Start = ParseDate("2003-01-11"); task3.Duration = Duration.getInstance(10, TimeUnit.DAYS); // // Link these two tasks // task3.addPredecessor(task2, RelationType.FINISH_START, null); // // Add a milestone // Task milestone1 = task1.addTask(); milestone1.Name = "Milestone"; milestone1.Start = ParseDate("2003-01-21"); milestone1.Duration = Duration.getInstance(0, TimeUnit.DAYS); milestone1.addPredecessor(task3, RelationType.FINISH_START, null); // // This final task has a percent complete value, but no // resource assignments. This is an interesting case it it requires // special processing to generate the MSPDI file correctly. // Task task4 = file.addTask(); task4.Name = "Next Task"; task4.Duration = Duration.getInstance(8, TimeUnit.DAYS); task4.Start = ParseDate("2003-01-01"); task4.PercentageComplete = NumberHelper.getDouble(70.0); task4.ActualStart = ParseDate("2003-01-01"); // // Assign resources to tasks // ResourceAssignment assignment1 = task2.addResourceAssignment(resource1); ResourceAssignment assignment2 = task3.addResourceAssignment(resource2); // // As the first task is partially complete, and we are adding // a resource assignment, we must set the work and actual work // fields in the assignment to appropriate values, or MS Project // won't recognise the task as being complete or partially complete // assignment1.Work = Duration.getInstance(80, TimeUnit.HOURS); assignment1.ActualWork = Duration.getInstance(40, TimeUnit.HOURS); // // If we were just generating an MPX file, we would already have enough // attributes set to create the file correctly. If we want to generate // an MSPDI file, we must also set the assignment start dates and // the remaining work attribute. The assignment start dates will normally // be the same as the task start dates. // assignment1.RemainingWork = Duration.getInstance(40, TimeUnit.HOURS); assignment2.RemainingWork = Duration.getInstance(80, TimeUnit.HOURS); assignment1.Start = ParseDate("2003-01-01"); assignment2.Start = ParseDate("2003-01-11"); // // Write a 100% complete task // Task task5 = file.addTask(); task5.Name = "Last Task"; task5.Duration = Duration.getInstance(3, TimeUnit.DAYS); task5.Start = ParseDate("2003-01-01"); task5.PercentageComplete = NumberHelper.getDouble(100.0); task5.ActualStart = ParseDate("2003-01-01"); // // Write the file // ProjectWriter writer = ProjectWriterUtility.getProjectWriter(filename); writer.write(file, filename); }