MS Project是一个著名的项目管理应用程序,它使管理人员更容易有效地执行项目管理活动。项目经理可以创建任务,添加资源以及将任务分配给特定项目中的资源。此外,他们可以定义时间表并执行预算管理操作。但是,当经理需要自定义项目管理操作时,可能会出现各种情况。同样,组织可能需要在Web或桌面应用程序内自动化项目管理。
对于这种情况,本文介绍如何以编程方式执行基本的项目管理操作。特别是,将学习如何从头开始创建项目,添加任务和资源以及如何使用Java处理资源分配和日历。
- 使用Java从头开始创建MS Project文件
- 将任务添加到项目
- 向项目添加资源
- 将任务分配给项目中的资源
- 将日历添加到项目
Aspose.Tasks是一个项目管理API,可让您从头开始创建MS Project文件。此外,您可以操纵现有项目以添加一些修改。该API使您可以无缝地执行基本以及高级项目管理操作。如果你还没有用过Aspose.Tasks可以点击这里下载最新版测试。
使用Java创建MS Project文件
MS Project允许您以MPP或XML格式保存与项目相关的数据。因此,让我们开始按照以下步骤创建一个空的项目文件。
- 创建一个Project 类的实例 。
- 使用Project.save(String,SaveFileFormat) 方法保存文件 。
下面的代码示例演示如何使用Java创建MS Project(.mpp和.xml)文件。
将MS项目文件另存为MPP
// Create a project instance Project newProject = new Project(); // Save project as MPP file newProject.save("Project1.mpp", SaveFileFormat.MPP);
将MS Project文件另存为XML
// Create a project instance Project newProject = new Project(); // Save project as XML file newProject.save("Project1.xml", SaveFileFormat.XML);
使用Java将任务添加到项目中
创建项目文件后,您可以开始向其中添加任务。以下是创建任务并将任务添加到项目文件的步骤。
- 创建一个Project 类的实例 。
- 使用Project.getRootTask().getChildren().add(string) 方法将新的摘要任务添加到项目的任务集合中 。
- 使用Task.getChildren.add(string) 方法将子任务添加到摘要任务 。
- 使用Project.save(String,SaveFileFormat) 方法保存项目文件。
下面的代码示例演示如何使用C#将任务添加到项目中。
// Create project Project project = new Project(); // Add task Task task = project.getRootTask().getChildren().add("Summary1"); // Add sub task Task subtask = task.getChildren().add("Subtask1"); // Save project as MPP/XML file newProject.save("Project1.xml", SaveFileFormat.XML);
使用Java将资源添加到项目中
项目中的下一个重要事项是分配给执行任务的资源。因此,在本节中,我们将向项目添加一些资源。以下是将资源添加到项目的步骤。
- 使用Project 类创建一个新项目或加载一个现有 项目。
- 使用Project.getResources().add(String)方法添加资源。
- 使用Project.save(String,SaveFileFormat) 方法保存项目文件。
下面的代码示例演示如何使用Java在项目中添加资源。
// Create project Project project = new Project(); // Add resource Resource rsc = project.getResources().add("Rsc"); // Save project as MPP/XML file newProject.save("Project1.mpp", SaveFileFormat.MPP);
使用Java将任务分配给项目中的资源
添加任务和资源后,下一步就是将任务分配给相关资源。以下是在项目中执行资源分配的步骤。
- 使用Project 类创建一个新项目或加载一个现有 项目。
- 以与前面各节中相同的方式添加任务和资源。
- 分别在Task和Resource对象中获取对任务和资源的引用。
- 使用Project.getResourceAssignments().add(Task,Resource)方法创建资源分配。
- 使用Project.save(String,SaveFileFormat) 方法保存项目文件。
以下代码示例显示了如何使用Java在项目中创建资源分配。
// Create project Project project = new Project(); // Add task Task task = project.getRootTask().getChildren().add("Summary1"); // Add resource Resource rsc = project.getResources().add("Rsc"); // Assign task to the resource ResourceAssignment assn = project.getResourceAssignments().add(task, rsc); // Save project as MPP/XML file newProject.save("Project1.mpp", SaveFileFormat.MPP);
使用Java将日历添加到项目中
日历是另一个重要的实体,用于定义项目的时间表。使用日历,您可以为项目创建完整的时间表。为了创建日历,您可以按照以下步骤操作:
- 使用Project 类创建一个新项目或加载一个现有 项目。
- 使用Project.getCalendars().add(String)方法创建一个新日历,并在Calendar对象中获取其引用。
- 使用Calendar.getWeekDays().add(WeekDay)方法指定工作日。
- 在日历中设置工作时间。
- 使用Project.save(String,SaveFileFormat) 方法保存项目文件。
下面的代码示例演示如何使用Java在项目中创建日历。
// Create project Project project = new Project(); // Define Calendar Calendar cal = prj.getCalendars().add("Calendar1"); // Add working days Monday through Thursday with default timings cal.getWeekDays().add(WeekDay.createDefaultWorkingDay(DayType.Monday)); cal.getWeekDays().add(WeekDay.createDefaultWorkingDay(DayType.Tuesday)); cal.getWeekDays().add(WeekDay.createDefaultWorkingDay(DayType.Wednesday)); cal.getWeekDays().add(WeekDay.createDefaultWorkingDay(DayType.Thursday)); cal.getWeekDays().add(new WeekDay(DayType.Saturday)); cal.getWeekDays().add(new WeekDay(DayType.Sunday)); // Set Friday as short working day WeekDay myWeekDay = new WeekDay(DayType.Friday); // Sets working time, only time part of DateTime is important WorkingTime wt1 = new WorkingTime(); java.util.Calendar calTime = java.util.Calendar.getInstance(); calTime.set(1,1,1,9,0,0); Date date = calTime.getTime(); wt1.setFromTime(date); calTime.set(1,1,1,12,0,0); date = calTime.getTime(); wt1.setToTime(date); WorkingTime wt2 = new WorkingTime(); calTime.set(1,1,1,13,0,0); date = calTime.getTime(); wt2.setFromTime(date); calTime.set(1,1,1,16,0,0); date = calTime.getTime(); wt2.setToTime(date); myWeekDay.getWorkingTimes().add(wt1); myWeekDay.getWorkingTimes().add(wt2); myWeekDay.setDayWorking(true); cal.getWeekDays().add(myWeekDay); // Save project as MPP/XML file newProject.save("Project1.mpp", SaveFileFormat.MPP);
如果您有任何疑问或需求,请随时加入Aspose技术交流群(761297826),我们很高兴为您提供查询和咨询。
来源:oschina
链接:https://my.oschina.net/u/4087915/blog/4901150