Microsoft Project文件处理API-Aspose.Tasks功能演示:使用C ++向项目添加任务,资源或日历

MS Project是一种广泛使用的项目管理软件,可帮助管理人员有效地管理其项目。它允许创建任务,添加资源,将任务分配给资源,监视进度以及管理与预算相关的操作。

  • 使用C ++从头开始创建MS Project文件
  • 使用C ++将任务添加到项目中
  • 使用C ++向项目添加资源
  • 使用C ++将项目的任务分配给资源
  • 使用C ++在Project中添加日历

Aspose.Tasks for .NET已升级至V20.7,如果你还没有用过Aspose.Tasks可以点击这里下载最新版测试。

整合所有格式API处理控件Aspose永久授权正在 火热销售中,新购乐享85折起!联系客服立马1分钟了解全部咨询!


使用C ++创建MS Project文件(.mpp)

首先创建一个空项目。以下是使用Aspose.Tasks for C ++从头开始创建MS Project(.mpp)文件的步骤。

  • 创建一个Project类的对象。
  • 设置项目的属性。
  • 使用Project-> Save(u“ project.mpp”,Aspose :: Tasks :: Saving :: SaveFileFormat :: MPP)方法将项目另存为.mpp文件。

下面的代码示例演示如何使用C ++ 创建MS Project的.mpp文件。

将MS项目文件另存为MPP

// Create projectSystem::SharedPtrproject = System::MakeObject();// Set project informationproject->Set(Prj::Author(), u"Author");project->Set(Prj::LastAuthor(), u"Last Author");project->Set(Prj::Revision(), 15);project->Set(Prj::Keywords(), u"MSP Aspose");project->Set(Prj::Comments(), u"Comments");// Save project as .mpp fileproject->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

使用C ++将任务添加到项目中

创建项目后,可以继续向其中添加任务。可以创建一个新项目,也可以加载现有的MS Project文件来添加任务。以下是创建任务或将子任务添加到项目中的步骤。

  • 创建一个新项目,或使用Project类从.mpp文件加载它。
  • 使用Project-> get_RootTask()-> get_Children()-> Add(u“ Summary1”)方法将任务添加到项目中,并将新创建的任务存储到Task对象中。
  • (可选)使用Task-> get_Children()-> Add(u“ Subtask1”)方法将子任务添加到新创建的任务中。
  • 使用Project-> Save(u“ project.mpp”,Aspose :: Tasks :: Saving :: SaveFileFormat :: MPP)方法将项目另存为.mpp文件。

下面的代码示例演示如何使用C ++创建任务并将任务添加到项目中。

// Create project instanceSystem::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp");// Add task, sub task and save projectSystem::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Summary1");task->Set(Tsk::Start(), project->get_RootTask()->Get<System::DateTime>(Tsk::Start()).AddDays(1));task->Set<System::String>(Tsk::Name(), u"new name");System::SharedPtr<Task> subtask = task->get_Children()->Add(u"Subtask1");// Save projectproject->Save(dataDir + u"CreateTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

使用C ++向项目添加资源

资源是应该完成项目的实体。通常,人们被称为项目的资源。以下是创建资源并将资源添加到项目的步骤。

  • 创建一个新项目,或使用Project类从.mpp文件加载它。
  • 使用Project-> get_Resources()-> Add(u“ Rsc”)方法添加新资源。
  • 使用Project-> Save(u” project.mpp”,Aspose :: Tasks :: Saving :: SaveFileFormat :: MPP)方法保存项目。

下面的代码示例演示如何使用C ++在项目中添加资源。

// Create project instanceSystem::SharedPtrproject = System::MakeObject();  // Add resourcesSystem::SharedPtrrsc1 = project->get_Resources()->Add(u"Rsc");    // Set resource properties, Resource properties are represented by static class Rscrsc1->Set(Rsc::StandardRate(), static_cast(15));rsc1->Set(Rsc::OvertimeRate(), static_cast(20));  // Save project as XMLproject->Save(u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);

使用C ++将项目的任务分配给资源

创建任务和资源后,下一步就是将每个任务分配给负责完成任务的资源。以下是将任务分配给资源的步骤。

  • 创建一个新项目,或使用Project类从.mpp文件加载它。
  • 如果项目为空,请添加新的任务和资源。
  • 将所需的任务和资源分别访问Task和Resource对象。
  • 使用Project-> get_ResourceAssignments()-> Add(Task,Resource)方法将任务分配给资源。
  • 使用Project.Save()方法保存项目。

下面的代码示例演示如何使用C ++将任务分配给项目中的资源。

// Create empty projectSystem::SharedPtrproject1 = System::MakeObject();    // Add new task and resourceSystem::SharedPtrtask1 = project1->get_RootTask()->get_Children()->Add(u"Task");System::SharedPtrrsc1 = project1->get_Resources()->Add(u"Rsc");  // Assign the resource desired taskSystem::SharedPtrassn = project1->get_ResourceAssignments()->Add(task1, rsc1);

使用C ++在Project中添加日历

日历用于为MS Project中的项目创建时间表。C ++的Aspose.Tasks使创建项目日历变得非常简单。以下是创建日历,添加工作日并指定工作时间的步骤。

  • 创建一个新项目,或使用Project类从.mpp文件加载它。
  • 使用Project-> get_Calendars()-> Add(u“ Calendar1”)将日历添加到项目中,并将返回值存储在Calendar对象中。
  • 使用Calendar-> get_WeekDays()-> Add()方法将工作日添加到日历中。
  • 保存项目。

还可以在日历中设置工作日的工作时间。为此,您可以在添加工作日后按照以下步骤操作。

  • 创建WeekDay类的对象。
  • 创建一个WorkingTime类的对象。
  • 使用WorkingTime-> set_FromTime()和WorkingTime-> set_ToTime()方法设置时间。
  • 使用WeekDay-> get_WorkingTimes()-> Add(WorkingTime)方法将工作时间添加到工作日。
  • 使用Calendar-> get_WeekDays()-> Add(WeekDay)方法将工作日添加到日历。
  • 保存项目。

下面的代码示例演示如何使用C ++在项目中创建日历。

// Create a project instanceSystem::SharedPtrproject = System::MakeObject();    // Define CalendarSystem::SharedPtrcal = project->get_Calendars()->Add(u"Calendar1");    // Add working days monday through thursday with default timingscal->get_WeekDays()->Add(WeekDay::CreateDefaultWorkingDay(Aspose::Tasks::DayType::Monday));cal->get_WeekDays()->Add(WeekDay::CreateDefaultWorkingDay(Aspose::Tasks::DayType::Tuesday));cal->get_WeekDays()->Add(WeekDay::CreateDefaultWorkingDay(Aspose::Tasks::DayType::Wednesday));cal->get_WeekDays()->Add(WeekDay::CreateDefaultWorkingDay(Aspose::Tasks::DayType::Thursday));cal->get_WeekDays()->Add(System::MakeObject(Aspose::Tasks::DayType::Saturday));cal->get_WeekDays()->Add(System::MakeObject(Aspose::Tasks::DayType::Sunday));  // Set friday as short working daySystem::SharedPtrmyWeekDay = System::MakeObject(Aspose::Tasks::DayType::Friday);  // Sets working time. Only time part of DateTime is importantSystem::SharedPtrwt1 = System::MakeObject();wt1->set_FromTime(System::DateTime(1, 1, 1, 9, 0, 0, 0));wt1->set_ToTime(System::DateTime(1, 1, 1, 12, 0, 0, 0));System::SharedPtrwt2 = System::MakeObject();wt2->set_FromTime(System::DateTime(1, 1, 1, 13, 0, 0, 0));wt2->set_ToTime(System::DateTime(1, 1, 1, 16, 0, 0, 0));myWeekDay->get_WorkingTimes()->Add(wt1);myWeekDay->get_WorkingTimes()->Add(wt2);myWeekDay->set_DayWorking(true);cal->get_WeekDays()->Add(myWeekDay);   // Save the ProjectSystem::String dataDir = Examples::CPP::RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());project->Save(u"Project_DefineCalendarWeekdays_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);


还想要更多吗可以点击阅读【2020 · Aspose最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(),我们很高兴为您提供查询和咨询


标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年8月7日
下一篇 2020年8月7日

相关推荐

发表回复

登录后才能评论