彩票走势图

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

翻译|使用教程|编辑:李显亮|2020-09-10 11:01:02.073|阅读 313 次

概述:在本文中,将学习如何在没有MS Project的情况下将项目管理活动嵌入到C ++应用程序中。在代码示例的帮助下,将学习如何使用C ++以编程方式创建MS Project文件(.mpp / .xml),添加任务,资源和日历。此外,还将演示将任务分配给项目中的资源的方法。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

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

Aspose.Tasks for .NET是功能丰富的API,可让您使用C#或VB.NET通过编程方式创建MS Project文件(.mpp / .xml)。 此外,它提供了各种功能来处理任务,资源和日历。在本文中,将学习如何在没有MS Project的情况下将项目管理活动嵌入到C ++应用程序中。在代码示例的帮助下,将学习如何使用C ++以编程方式创建MS Project文件(.mpp / .xml),添加任务,资源和日历。此外,还将演示将任务分配给项目中的资源的方法。

  • 使用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 project
System::SharedPtrproject = System::MakeObject();

// Set project information
project->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 file
project->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 instance
System::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp");

// Add task, sub task and save project
System::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 project
project->Save(dataDir + u"CreateTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

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

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

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

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

// Create project instance
System::SharedPtrproject = System::MakeObject();  

// Add resources
System::SharedPtrrsc1 = project->get_Resources()->Add(u"Rsc");    

// Set resource properties, Resource properties are represented by static class Rsc
rsc1->Set(Rsc::StandardRate(), static_cast(15));
rsc1->Set(Rsc::OvertimeRate(), static_cast(20));  

// Save project as XML
project->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 project
System::SharedPtrproject1 = System::MakeObject();    

// Add new task and resource
System::SharedPtrtask1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtrrsc1 = project1->get_Resources()->Add(u"Rsc");  

// Assign the resource desired task
System::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 instance
System::SharedPtrproject = System::MakeObject();    

// Define Calendar
System::SharedPtrcal = project->get_Calendars()->Add(u"Calendar1");    

// Add working days monday through thursday with default timings
cal->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 day
System::SharedPtrmyWeekDay = System::MakeObject(Aspose::Tasks::DayType::Friday);  

// Sets working time. Only time part of DateTime is important
System::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 Project
System::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技术交流群(642018183),我们很高兴为您提供查询和咨询


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP