Skip to content

Instantly share code, notes, and snippets.

@aspose-com-gists
Last active October 31, 2020 15:14
Show Gist options
  • Save aspose-com-gists/85d3cb818a62006b9ae8f8e3eaab6f80 to your computer and use it in GitHub Desktop.
Save aspose-com-gists/85d3cb818a62006b9ae8f8e3eaab6f80 to your computer and use it in GitHub Desktop.
Aspose.Tasks for C++
Gists for Aspose.Tasks for C++.
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project2.mpp");
System::SharedPtr<SaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::Months);
options->set_View(ProjectView::GetDefaultGanttChartView());
System::SharedPtr<GanttChartColumn> column1 = System::DynamicCast_noexcept<Aspose::Tasks::Visualization::GanttChartColumn>(options->get_View()->get_Columns()->idx_get(2));
column1->set_StringAlignment(System::Drawing::StringAlignment::Center);
column1 = System::DynamicCast_noexcept<Aspose::Tasks::Visualization::GanttChartColumn>(options->get_View()->get_Columns()->idx_get(3));
column1->set_StringAlignment(System::Drawing::StringAlignment::Far);
column1 = System::DynamicCast_noexcept<Aspose::Tasks::Visualization::GanttChartColumn>(options->get_View()->get_Columns()->idx_get(4));
column1->set_StringAlignment(System::Drawing::StringAlignment::Far);
project->Save(dataDir + u"AlignCellContents_GanttChart_out.pdf", options);
options->set_PresentationFormat(Aspose::Tasks::Visualization::PresentationFormat::ResourceSheet);
options->set_View(ProjectView::GetDefaultResourceSheetView());
System::SharedPtr<ResourceViewColumn> column2 = System::DynamicCast_noexcept<Aspose::Tasks::Visualization::ResourceViewColumn>(options->get_View()->get_Columns()->idx_get(2));
column2->set_StringAlignment(System::Drawing::StringAlignment::Center);
column2 = System::DynamicCast_noexcept<Aspose::Tasks::Visualization::ResourceViewColumn>(options->get_View()->get_Columns()->idx_get(3));
column2->set_StringAlignment(System::Drawing::StringAlignment::Far);
column2 = System::DynamicCast_noexcept<Aspose::Tasks::Visualization::ResourceViewColumn>(options->get_View()->get_Columns()->idx_get(4));
column2->set_StringAlignment(System::Drawing::StringAlignment::Far);
project->Save(dataDir + u"AlignCellContents_ResourceSheet_out.pdf", options);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project2.mpp");
System::SharedPtr<SaveOptions> options = System::MakeObject<XamlOptions>();
options->set_UseGradientBrush(false);
project->Save(dataDir + u"ChangeGanttBarsColorGradient_Solid_out.xaml", options);
options->set_UseGradientBrush(true);
project->Save(dataDir + u"ChangeGanttBarsColorGradient_Gradient_out.xaml", options);
System::SharedPtr<Project> project = System::MakeObject<Project>();
System::SharedPtr<Task> task1 = project->get_RootTask()->get_Children()->Add(u"Task 1");
System::SharedPtr<Task> task2 = project->get_RootTask()->get_Children()->Add(u"Task 2");
task1->Set<Duration>(Tsk::Duration(), project->GetDuration(1, Aspose::Tasks::TimeUnitType::Day));
task2->Set<Duration>(Tsk::Duration(), project->GetDuration(1, Aspose::Tasks::TimeUnitType::Day));
System::SharedPtr<TaskLink> link = project->get_TaskLinks()->Add(task1, task2, Aspose::Tasks::TaskLinkType::FinishToStart);
System::SharedPtr<Task> task3 = project->get_RootTask()->get_Children()->Add(u"Task 3");
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Resource 1");
System::SharedPtr<Resource> rsc2 = project->get_Resources()->Add(u"Resource 2");
System::SharedPtr<Resource> rsc3 = project->get_Resources()->Add(u"Resource 3");
System::SharedPtr<ResourceAssignment> assn1 = project->get_ResourceAssignments()->Add(task1, rsc1);
System::SharedPtr<ResourceAssignment> assn2 = project->get_ResourceAssignments()->Add(task2, rsc2);
System::SharedPtr<ResourceAssignment> assn3 = project->get_ResourceAssignments()->Add(task3, rsc3);
System::SharedPtr<SaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths);
System::SharedPtr<BarStyle> style = System::MakeObject<BarStyle>();
style->set_ItemType(Aspose::Tasks::Visualization::BarItemType::CriticalTask);
style->set_BarTextConverter(&CustomizeTextWithTaskBars::_anonymous_method_0);
System::SharedPtr<BarStyle> style2 = System::MakeObject<BarStyle>();
style2->set_BarColor(System::Drawing::Color::get_DarkOrchid());
style2->set_ItemType(Aspose::Tasks::Visualization::BarItemType::Task);
options->set_BarStyles(System::MakeObject<System::Collections::Generic::List<System::SharedPtr<BarStyle>>>());
options->get_BarStyles()->Add(style);
options->get_BarStyles()->Add(style2);
project->Save(dataDir + u"result2.pdf", options);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CustomBarStyle.mpp");
System::SharedPtr<GanttChartView> view = System::DynamicCast_noexcept<Aspose::Tasks::GanttChartView>(project->get_DefaultView());
System::Console::WriteLine(u"Custom bar styles count: {0}", System::ObjectExt::Box<int32_t>(view->get_CustomBarStyles()->get_Count()));
System::SharedPtr<GanttBarStyle> style1 = view->get_CustomBarStyles()->idx_get(0);
System::Console::WriteLine(u"Style1.LeftField is TaskDurationText : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style1->get_LeftField(), Aspose::Tasks::Field::TaskDurationText)));
System::Console::WriteLine(u"Style1.RightField is TaskResourceNames : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style1->get_RightField(), Aspose::Tasks::Field::TaskResourceNames)));
System::Console::WriteLine(u"Style1.TopField is TaskACWP: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style1->get_TopField(), Aspose::Tasks::Field::TaskACWP)));
System::Console::WriteLine(u"Style1.BottomField is Undefined : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style1->get_BottomField(), Aspose::Tasks::Field::Undefined)));
System::Console::WriteLine(u"Style1.InsideField is Undefined : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style1->get_InsideField(), Aspose::Tasks::Field::Undefined)));
System::SharedPtr<GanttBarStyle> style2 = view->get_CustomBarStyles()->idx_get(1);
System::Console::WriteLine(u"Style2.LeftField is TaskActualWork : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style2->get_LeftField(), Aspose::Tasks::Field::TaskActualWork)));
System::Console::WriteLine(u"Style2.RightField is TaskActualCost : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style2->get_RightField(), Aspose::Tasks::Field::TaskActualCost)));
System::Console::WriteLine(u"Style2.TopField is Undefined : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style2->get_TopField(), Aspose::Tasks::Field::Undefined)));
System::Console::WriteLine(u"Style2.BottomField is Undefined : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style2->get_BottomField(), Aspose::Tasks::Field::Undefined)));
System::Console::WriteLine(u"Style2.InsideField is Undefined : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style2->get_InsideField(), Aspose::Tasks::Field::Undefined)));
System::SharedPtr<GanttBarStyle> style3 = view->get_CustomBarStyles()->idx_get(2);
System::Console::WriteLine(u"Style3.LeftField is TaskPercentComplete : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_LeftField(), Aspose::Tasks::Field::TaskPercentComplete)));
System::Console::WriteLine(u"Style3.RightField is TaskPercentWorkComplete : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_RightField(), Aspose::Tasks::Field::TaskPercentWorkComplete)));
System::Console::WriteLine(u"Style3.TopField is Field.TaskActive : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_TopField(), Aspose::Tasks::Field::TaskActive)));
System::Console::WriteLine(u"Style3.BottomField is TaskActualCost : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_BottomField(), Aspose::Tasks::Field::TaskActualCost)));
System::Console::WriteLine(u"Style3.InsideField is Field.TaskActualDuration : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_InsideField(), Aspose::Tasks::Field::TaskActualDuration)));
System::Console::WriteLine(u"Style3.StartShape is HouseDown : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_StartShape(), Aspose::Tasks::Visualization::GanttBarEndShape::HouseDown)));
System::Console::WriteLine(u"Style3.StartShapeType is Framed : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_StartShapeType(), Aspose::Tasks::Visualization::GanttBarType::Framed)));
System::Console::WriteLine(u"Style3.StartShapeColor is Red : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_StartShapeColor(), System::Drawing::Color::FromArgb(System::Drawing::Color::get_Red().ToArgb()))));
System::Console::WriteLine(u"Style3.EndShape is CircleDiamond : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_EndShape(), Aspose::Tasks::Visualization::GanttBarEndShape::CircleDiamond)));
System::Console::WriteLine(u"Style3.EndShapeType is Solid : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_EndShapeType(), Aspose::Tasks::Visualization::GanttBarType::Solid)));
System::Console::WriteLine(u"Style3.EndShapeColor is Yellow : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_EndShapeColor(), System::Drawing::Color::FromArgb(System::Drawing::Color::get_Yellow().ToArgb()))));
System::Console::WriteLine(u"Style3.MiddleShape is RectangleTop : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_MiddleShape(), Aspose::Tasks::Visualization::GanttBarMiddleShape::RectangleTop)));
System::Console::WriteLine(u"Style3.MiddleFillPattern is SolidFill : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_MiddleFillPattern(), Aspose::Tasks::Visualization::GanttBarFillPattern::SolidFill)));
System::Console::WriteLine(u"Style3.EndShapeColor is Red : {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(style3->get_MiddleShapeColor(), System::Drawing::Color::FromArgb(System::Drawing::Color::get_Red().ToArgb()))));
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project2.mpp");
PresentationFormat presentationFormat = Aspose::Tasks::Visualization::PresentationFormat::GanttChart;
System::String resultFile = System::String(u"RenderDifferentPresentationFormatsToXAML_") + System::ObjectExt::ToString(presentationFormat) + u"_out.xaml";
System::SharedPtr<SaveOptions> options = System::MakeObject<XamlOptions>();
options->set_PresentationFormat(presentationFormat);
project->Save(dataDir + resultFile, options);
System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_PresentationFormat(Aspose::Tasks::Visualization::PresentationFormat::GanttChart);
options->set_FitContent(true);
options->set_RollUpGanttBars(false);
options->set_DrawNonWorkingTime(false);
options->set_PageSize(Aspose::Tasks::Visualization::PageSize::A3);
System::String file = System::IO::Path::Combine(dataDir, fileName);
System::String resultFile = System::IO::Path::Combine(dataDir, u"RenderGanttChartWithBarsNotRolledUp_out.pdf");
System::SharedPtr<Project> project = System::MakeObject<Project>(file);
project->Save(resultFile, System::StaticCast<Aspose::Tasks::Saving::SaveOptions>(options));
System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_PresentationFormat(Aspose::Tasks::Visualization::PresentationFormat::GanttChart);
options->set_FitContent(true);
options->set_RollUpGanttBars(true);
options->set_DrawNonWorkingTime(true);
options->set_PageSize(Aspose::Tasks::Visualization::PageSize::A3);
System::String file = System::IO::Path::Combine(dataDir, fileName);
System::String resultFile = System::IO::Path::Combine(dataDir, u"RenderGanttChartWithBarsNotRolledUp_out.pdf");
System::SharedPtr<Project> project = System::MakeObject<Project>(file);
//for (int i = 14; i <= 23; i++)
// project.GetTaskById(i).HideBar = false;
project->Save(resultFile, System::StaticCast<Aspose::Tasks::Saving::SaveOptions>(options));
// Source file to be converted to TIFF
System::String file = u"Project2.mpp";
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + file);
// Save the project to TIFF
project->Save(dataDir + u"RenderMultipageTIFF_out.tif", Aspose::Tasks::Saving::SaveFileFormat::TIFF);
// Save the project with CCITT4 compression
System::SharedPtr<ImageSaveOptions> options = System::MakeObject<ImageSaveOptions>(Aspose::Tasks::Saving::SaveFileFormat::TIFF);
options->set_TiffCompression(Aspose::Tasks::Saving::TiffCompression::Ccitt4);
project->Save(dataDir + u"RenderMultipageTIFF_options_out.tif", System::StaticCast<Aspose::Tasks::Saving::SaveOptions>(options));
// Remove the compression
options->set_TiffCompression(Aspose::Tasks::Saving::TiffCompression::None);
project->Save(dataDir + u"RenderMultipageTIFF_comp_none_out.tif", System::StaticCast<Aspose::Tasks::Saving::SaveOptions>(options));
// Source File to Render
System::String fileName = u"Project2.mpp";
// Read the Project
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + fileName);
// Select a Presentation format
PresentationFormat format = Aspose::Tasks::Visualization::PresentationFormat::GanttChart;
// Render the project to all Pre-Defined page sizes
{
for (PageSize pageSize : System::DynamicCast<System::Array<Aspose::Tasks::Visualization::PageSize>>(System::Enum<PageSize>::GetValues()))
{
System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_PresentationFormat(format);
options->set_FitContent(true);
options->set_PageSize(pageSize);
System::String resultFile = System::String(u"result_PredefinedPageSizes_") + System::ObjectExt::ToString(format) + u"_" + System::ObjectExt::ToString(pageSize) + u"_out.pdf";
project1->Save(dataDir + resultFile, System::StaticCast<Aspose::Tasks::Saving::SaveOptions>(options));
}
}
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project2.mpp");
System::String resultFile = u"RenderToXAML_out.xaml";
project->Save(dataDir + resultFile, Aspose::Tasks::Saving::SaveFileFormat::XAML);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project2.mpp");
const System::String resultFile = u"RenderXAMLWithOptions_out.xaml";
System::SharedPtr<SaveOptions> options = System::MakeObject<XamlOptions>();
options->set_FitContent(true);
options->set_LegendOnEachPage(false);
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths);
project->Save(dataDir + resultFile, options);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project2.mpp");
project->Set(Prj::TimescaleStart(), System::DateTime(2012, 4, 30));
project->Save(dataDir + u"SetGanttChartViewStartDate_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project2.mpp");
// Save to one page image (Timescale.days by default)
project->Save(u"NewProductDevDays.jpeg", System::MakeObject<ImageSaveOptions>(Aspose::Tasks::Saving::SaveFileFormat::JPEG));
// Save to one page image (Timescale.ThirdsOfMonths)
System::SharedPtr<ImageSaveOptions> options = System::MakeObject<ImageSaveOptions>(Aspose::Tasks::Saving::SaveFileFormat::JPEG);
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths);
project->Save(u"NewProductDevThirdsOfMonths.jpeg", options);
// Save to one page image (Timescale.Months)
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::Months);
project->Save(u"NewProductDevMonths.jpeg", options);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
auto options = [&]{ auto tmp_0 = System::MakeObject<PdfSaveOptions>(); tmp_0->set_PresentationFormat(Aspose::Tasks::Visualization::PresentationFormat::GanttChart); tmp_0->set_FitContent(true); tmp_0->set_UseProjectDefaultFont(false); tmp_0->set_DefaultFontName(u"Segoe UI Black"); return tmp_0; }();
project->Save(dataDir + u"CreateProject2_out.pdf", System::StaticCast<Aspose::Tasks::Saving::SaveOptions>(options));
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
System::SharedPtr<HtmlSaveOptions> options = [&]{ auto tmp_0 = System::MakeObject<HtmlSaveOptions>(); tmp_0->set_CssStylePrefix(u"test_prefix"); return tmp_0; }();
project->Save(dataDir + u"TestCssStylePrefix_out.html", options);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
System::SharedPtr<HtmlSaveOptions> htmlSaveOptions = System::MakeObject<HtmlSaveOptions>();
// Determines whether to include project name in HTML title (true by default)
htmlSaveOptions->set_IncludeProjectNameInTitle(false);
// Determines whether to include project name in HTML page header (true by default)
htmlSaveOptions->set_IncludeProjectNameInPageHeader(false);
htmlSaveOptions->set_Pages(System::MakeObject<System::Collections::Generic::List<int32_t>>());
htmlSaveOptions->get_Pages()->Add(1);
project->Save(dataDir + u"ControlHeaderNameDuringHTMLExport_out.html", htmlSaveOptions);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
project->Set(Prj::StartDate(), System::DateTime(2014, 9, 22));
// By default project.DateFormat == DateFormat.Date_ddd_mm_dd_yy (Mon 09/22/14) customize DateFormat (September 22, 2014)
project->Set<DateFormat>(Prj::DateFormat(), Aspose::Tasks::DateFormat::DateMmmmDdYyyy);
project->Save(dataDir + u"CustomizeDateFormats1_out.pdf", Aspose::Tasks::Saving::SaveFileFormat::PDF);
// Export to date format 19/07/2016
project->Set<DateFormat>(Prj::DateFormat(), Aspose::Tasks::DateFormat::DateDdMmYyyy);
project->Save(dataDir + u"CustomizeDateFormats2_out.pdf", Aspose::Tasks::Saving::SaveFileFormat::PDF);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
System::SharedPtr<SaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_PresentationFormat(Aspose::Tasks::Visualization::PresentationFormat::ResourceSheet);
System::SharedPtr<TextStyle> style = System::MakeObject<TextStyle>();
style->set_Color(System::Drawing::Color::get_OrangeRed());
style->set_FontStyle(System::Drawing::FontStyle::Bold);
System::setter_or_wrap(style.GetPointer(), &TextStyle::get_FontStyle, &TextStyle::set_FontStyle, System::Drawing::FontStyle::Italic);
style->set_ItemType(Aspose::Tasks::Visualization::TextItemType::OverallocatedResources);
options->set_TextStyles(System::MakeObject<System::Collections::Generic::List<System::SharedPtr<TextStyle>>>());
options->get_TextStyles()->Add(style);
project->Save(dataDir + u"CustomizeTextStyle_out.pdf", options);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
System::SharedPtr<SaveOptions> saveOptions = System::MakeObject<PdfSaveOptions>();
// Set option fit content to true
saveOptions->set_FitContent(true);
saveOptions->set_Timescale(Aspose::Tasks::Visualization::Timescale::Months);
saveOptions->set_PresentationFormat(Aspose::Tasks::Visualization::PresentationFormat::TaskUsage);
project->Save(dataDir + u"FitContentsToCellSize_out.pdf", saveOptions);
System::SharedPtr<SaveOptions> saveOptions = System::MakeObject<PdfSaveOptions>();
// Set the LegendOnEachPage property to false to hide legends
saveOptions->set_LegendOnEachPage(false);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
System::SharedPtr<ImageSaveOptions> saveOptions = System::MakeObject<ImageSaveOptions>(Aspose::Tasks::Saving::SaveFileFormat::PNG);
saveOptions->set_StartDate(project->Get<System::DateTime>(Prj::StartDate()).AddDays(-3));
saveOptions->set_EndDate(project->Get<System::DateTime>(Prj::FinishDate()));
saveOptions->set_MarkCriticalTasks(true);
saveOptions->set_LegendOnEachPage(false);
saveOptions->set_Gridlines(System::MakeObject<System::Collections::Generic::List<System::SharedPtr<Gridline>>>());
System::SharedPtr<Gridline> gridline = System::MakeObject<Gridline>();
gridline->set_GridlineType(Aspose::Tasks::Visualization::GridlineType::GanttRow);
gridline->set_Color(System::Drawing::Color::get_CornflowerBlue());
gridline->set_Pattern(Aspose::Tasks::Visualization::LinePattern::Dashed);
saveOptions->get_Gridlines()->Add(gridline);
// Save the whole project layout to one file
project->Save(dataDir + u"PrintProjectPagesToSeparateFiles1_out.png", System::StaticCast<Aspose::Tasks::Saving::SaveOptions>(saveOptions));
// Save project layout to separate files
saveOptions->set_SaveToSeparateFiles(true);
project->Save(dataDir + u"PrintProjectPagesToSeparateFiles2_out.png", System::StaticCast<Aspose::Tasks::Saving::SaveOptions>(saveOptions));
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
//Read the MPP file.
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
//Use ReduceFooterGap property to reduce the gap between list of tasks and Footer
auto imageSaveOptions = [&]{ auto tmp_0 = System::MakeObject<ImageSaveOptions>(Aspose::Tasks::Saving::SaveFileFormat::PNG); tmp_0->set_ReduceFooterGap(true); tmp_0->set_SaveToSeparateFiles(true); tmp_0->set_PageSize(Aspose::Tasks::Visualization::PageSize::A0); tmp_0->set_Timescale(Aspose::Tasks::Visualization::Timescale::Days); return tmp_0; }();
project->Save(dataDir + u"ReducingGapBetweenTasksListAndFooter_out.png", System::StaticCast<Aspose::Tasks::Saving::SaveOptions>(imageSaveOptions));
auto pdfSaveOptions = [&]{ auto tmp_1 = System::MakeObject<PdfSaveOptions>(); tmp_1->set_ReduceFooterGap(true); tmp_1->set_SaveToSeparateFiles(true); tmp_1->set_PageSize(Aspose::Tasks::Visualization::PageSize::A0); tmp_1->set_Timescale(Aspose::Tasks::Visualization::Timescale::Days); return tmp_1; }();
project->Save(dataDir + u"ReducingGapBetweenTasksListAndFooter_out.pdf", System::StaticCast<Aspose::Tasks::Saving::SaveOptions>(pdfSaveOptions));
auto htmlSaveOptions = [&]{ auto tmp_2 = System::MakeObject<HtmlSaveOptions>(); tmp_2->set_ReduceFooterGap(false); tmp_2->set_IncludeProjectNameInPageHeader(false); tmp_2->set_IncludeProjectNameInTitle(false); tmp_2->set_PageSize(Aspose::Tasks::Visualization::PageSize::A0); tmp_2->set_Timescale(Aspose::Tasks::Visualization::Timescale::Days); return tmp_2; }();
project->Save(dataDir + u"ReducingGapBetweenTasksListAndFooter_out.html", htmlSaveOptions);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Input.mpp");
project->get_DefaultView()->get_PageInfo()->get_PageViewSettings()->set_PrintNotes(true);
project->Save(dataDir + u"ProjectWithComments.pdf", Aspose::Tasks::Saving::SaveFileFormat::PDF);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"TestProject1.mpp");
System::SharedPtr<ImageSaveOptions> options = System::MakeObject<ImageSaveOptions>(Aspose::Tasks::Saving::SaveFileFormat::TIFF);
options->set_HorizontalResolution(72.0f);
options->set_VerticalResolution(72.0f);
options->set_PixelFormat(System::Drawing::Imaging::PixelFormat::Format24bppRgb);
project->Save(dataDir + u"RenderProjectDataToFormat24bppRgb_out.tif", System::StaticCast<Aspose::Tasks::Saving::SaveOptions>(options));
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject1.mpp");
project->Save(dataDir + u"SaveProjectAsCSV_out.csv", Aspose::Tasks::Saving::SaveFileFormat::CSV);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
// in order to manipulate JPEG quality one can use ImageSaveOptions.JpegQuality property.
// The allowed value range is 0..100.
auto options = [&]{ auto tmp_0 = System::MakeObject<ImageSaveOptions>(Aspose::Tasks::Saving::SaveFileFormat::JPEG); tmp_0->set_JpegQuality(50); return tmp_0; }();
project->Save(dataDir + u"image_out.jpeg", System::StaticCast<Aspose::Tasks::Saving::SaveOptions>(options));
// Read the input Project file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
// Save the Project as PDF
project->Save(dataDir + u"SaveProjectAsPDF_out.pdf", Aspose::Tasks::Saving::SaveFileFormat::PDF);
// Read the input Project file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject1.mpp");
// Save the Project as SVG
project->Save(dataDir + u"SaveProjectAsSVG_out.SVG", Aspose::Tasks::Saving::SaveFileFormat::SVG);
// Read the input Project file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
// Save the Project as text
project->Save(dataDir + u"SaveProjectAsText_out.txt", Aspose::Tasks::Saving::SaveFileFormat::TXT);
// Read the input Project file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
// Save the Project as XLSX
project->Save(dataDir + u"SaveProjectAsXLSX_out.xlsx", Aspose::Tasks::Saving::SaveFileFormat::XLSX);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
System::SharedPtr<HtmlSaveOptions> option = System::MakeObject<HtmlSaveOptions>();
project->Save(dataDir + u"SaveProjectDataAsHTML_out.html", option);
// OR
// Adding only one page (page number 2)
option = System::MakeObject<HtmlSaveOptions>();
option->get_Pages()->Add(2);
project->Save(dataDir + u"SaveProjectDataAsHTML2_out.html", option);
const System::String projectName = u"Project2.mpp";
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + projectName);
System::SharedPtr<ProjectFileInfo> projectFileInfo = Project::GetProjectFileInfo(dataDir + projectName);
if (Aspose::Tasks::FileFormat::MPP14 == projectFileInfo->get_ProjectFileFormat())
{
System::Console::WriteLine(u"Project file format is ok");
}
System::SharedPtr<SaveTemplateOptions> options = System::MakeObject<SaveTemplateOptions>();
options->set_RemoveActualValues(true);
options->set_RemoveBaselineValues(true);
const System::String templateName = u"SaveProjectDataAsTemplate_out.mpt";
project->SaveAsTemplate(dataDir + templateName);
System::SharedPtr<ProjectFileInfo> templateFileInfo = Project::GetProjectFileInfo(dataDir + templateName);
if (Aspose::Tasks::FileFormat::MPT14 == templateFileInfo->get_ProjectFileFormat())
{
System::Console::WriteLine(u"Template FileFormat is ok");
}
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
project->Save(dataDir + u"SaveProjectDataToSpreadsheet2003XML_out.xml", Aspose::Tasks::Saving::SaveFileFormat::Spreadsheet2003);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Software Development Plan.mpp");
System::SharedPtr<PdfSaveOptions> saveOptions = System::MakeObject<PdfSaveOptions>();
saveOptions->set_SaveToSeparateFiles(true);
saveOptions->set_Pages(System::MakeObject<System::Collections::Generic::List<int32_t>>());
saveOptions->get_Pages()->Add(1);
saveOptions->get_Pages()->Add(4);
project->Save(dataDir + u"SaveToMultiplePDFFiles_out.pdf", System::StaticCast<Aspose::Tasks::Saving::SaveOptions>(saveOptions));
System::SharedPtr<Spreadsheet2003SaveOptions> options = System::MakeObject<Spreadsheet2003SaveOptions>();
System::SharedPtr<GanttChartColumn> col = System::MakeObject<GanttChartColumn>(u"WBS", 100, &UsingSpreadsheet2003SaveOptions::_anonymous_method_0);
options->get_View()->get_Columns()->Add(col);
System::SharedPtr<ResourceViewColumn> rscCol = System::MakeObject<ResourceViewColumn>(u"Cost center", 100, &UsingSpreadsheet2003SaveOptions::_anonymous_method_1);
options->get_ResourceView()->get_Columns()->Add(rscCol);
System::SharedPtr<AssignmentViewColumn> assnCol = System::MakeObject<AssignmentViewColumn>(u"Notes", 200, &UsingSpreadsheet2003SaveOptions::_anonymous_method_2);
options->get_AssignmentView()->get_Columns()->Add(assnCol);
project->Save(dataDir + u"UsingSpreadsheet2003SaveOptions_out.xml", options);
// Read the input Project file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
System::SharedPtr<SaveOptions> saveOptions = System::MakeObject<SvgOptions>();
saveOptions->set_FitContent(true);
saveOptions->set_Timescale(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths);
project->Save(dataDir + u"UseSvgOptions_out.svg", saveOptions);
// Read the input Project file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CreateProject2.mpp");
System::SharedPtr<XlsxOptions> options = System::MakeObject<XlsxOptions>();
// Add desired Gantt Chart columns
System::SharedPtr<GanttChartColumn> col = System::MakeObject<GanttChartColumn>(u"WBS", 100, &UsingXlsxOptions::_anonymous_method_0);
options->get_View()->get_Columns()->Add(col);
// Add desired resource view columns
System::SharedPtr<ResourceViewColumn> rscCol = System::MakeObject<ResourceViewColumn>(u"Cost center", 100, &UsingXlsxOptions::_anonymous_method_1);
options->get_ResourceView()->get_Columns()->Add(rscCol);
// Add desired assignment view columns
System::SharedPtr<AssignmentViewColumn> assnCol = System::MakeObject<AssignmentViewColumn>(u"Notes", 200, &UsingXlsxOptions::_anonymous_method_2);
options->get_AssignmentView()->get_Columns()->Add(assnCol);
project->Save(dataDir + u"UsingXlsxOptions_out.xlsx", options);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project1.mpp");
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task1");
task->Set(Tsk::ActualStart(), System::DateTime::Parse(u"23-Aug-2012"));
// Set duration in hours
task->Set<Duration>(Tsk::Duration(), project->GetDuration(24, Aspose::Tasks::TimeUnitType::Hour));
task->Set<TimeUnitType>(Tsk::DurationFormat(), Aspose::Tasks::TimeUnitType::Day);
// Save the Project as XML
project->Save(dataDir + u"AddNewTask_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"SampleProject.mpp");
// Declare ChildTasksCollector class object
System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
// Use TaskUtils to get all children tasks in RootTask
TaskUtils::Apply(project1->get_RootTask(), collector, 0);
// Define Resources
for (int32_t i = 0; i <= 4; i++)
{
System::String devloper = System::String(u"Developer0") + i;
// Add resource to project
System::SharedPtr<Resource> newResource = project1->get_Resources()->Add(devloper);
newResource->Set<ResourceType>(Rsc::Type(), Aspose::Tasks::ResourceType::Work);
// Define assignment
System::SharedPtr<ResourceAssignment> newResourceAssignment = project1->get_ResourceAssignments()->Add(System::StaticCast<Aspose::Tasks::Task>(collector->get_Tasks()->idx_get(i)), newResource);
}
project1->Save(dataDir + u"CreateResourcesAndLinkToTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"SampleProject.mpp");
System::SharedPtr<Task> task1 = project->get_RootTask()->get_Children()->GetById(1);
System::SharedPtr<Task> task2 = project->get_RootTask()->get_Children()->GetById(2);
System::SharedPtr<Task> task3 = project->get_RootTask()->get_Children()->GetById(3);
System::SharedPtr<Task> task4 = project->get_RootTask()->get_Children()->GetById(4);
System::SharedPtr<Task> task5 = project->get_RootTask()->get_Children()->GetById(5);
// Link the tasks
System::SharedPtr<TaskLink> tsklnk = project->get_TaskLinks()->Add(task1, task2, Aspose::Tasks::TaskLinkType::FinishToStart);
tsklnk = project->get_TaskLinks()->Add(task2, task3, Aspose::Tasks::TaskLinkType::FinishToStart);
tsklnk = project->get_TaskLinks()->Add(task3, task4, Aspose::Tasks::TaskLinkType::FinishToStart);
tsklnk = project->get_TaskLinks()->Add(task4, task5, Aspose::Tasks::TaskLinkType::FinishToStart);
tsklnk = project->get_TaskLinks()->Add(task2, task5, Aspose::Tasks::TaskLinkType::FinishToStart);
// Display links among the tasks
System::SharedPtr<TaskLinkCollection> allinks = project->get_TaskLinks();
{
auto tasklnk_enumerator = (allinks)->GetEnumerator();
decltype(tasklnk_enumerator->get_Current()) tasklnk;
while (tasklnk_enumerator->MoveNext() && (tasklnk = tasklnk_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(u"From ID = ") + tasklnk->get_PredTask()->Get<int32_t>(Tsk::Id()) + u"=>To ID = " + tasklnk->get_SuccTask()->Get<int32_t>(Tsk::Id()));
System::Console::WriteLine(u"________________________________________");
}
}
// Save the project
project->Save(dataDir + u"LinkTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// Load MPP file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project1.mpp");
// Get the critical path
System::SharedPtr<TaskCollection> criticalPath = project->get_CriticalPath();
// Enumerate the tasks in the critical path
{
auto task_enumerator = (criticalPath)->GetEnumerator();
decltype(task_enumerator->get_Current()) task;
while (task_enumerator->MoveNext() && (task = task_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::Convert::ToString(task->Get<int32_t>(Tsk::Id())) + u" " + task->Get(Tsk::Name()));
System::Console::WriteLine(System::ObjectExt::Box<System::DateTime>(task->Get<System::DateTime>(Tsk::Start())));
System::Console::WriteLine(System::Convert::ToString(task->Get<System::DateTime>(Tsk::Finish())) + u"\n");
}
}
// Load MPP file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project1.mpp");
// Load all tasks
System::SharedPtr<TaskCollection> allTasks = project->get_RootTask()->get_Children();
// Loop through each task and read information related to tasks
{
auto task_enumerator = (allTasks)->GetEnumerator();
decltype(task_enumerator->get_Current()) task;
while (task_enumerator->MoveNext() && (task = task_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(u"Reading Task ") + task->Get(Tsk::Name()));
System::Console::WriteLine(System::String(u"\nID: ") + task->Get<int32_t>(Tsk::Id()));
System::Console::WriteLine(System::String(u"Start: ") + task->Get<System::DateTime>(Tsk::Start()));
System::Console::WriteLine(System::String(u"Finish: ") + task->Get<System::DateTime>(Tsk::Finish()));
System::Console::WriteLine(u"\n===========================\n");
}
}
// Loop through each resource and read information related to resources
{
auto resource_enumerator = (project->get_Resources())->GetEnumerator();
decltype(resource_enumerator->get_Current()) resource;
while (resource_enumerator->MoveNext() && (resource = resource_enumerator->get_Current(), true))
{
System::String resourceType;
switch (resource->Get<ResourceType>(Rsc::Type()))
{
case Aspose::Tasks::ResourceType::Material:
resourceType = u"Material";
break;
case Aspose::Tasks::ResourceType::Work:
resourceType = u"Work";
break;
default:
resourceType = u"Cost";
break;
}
System::Console::WriteLine(System::String(u"Reading Resource ") + resource->Get<System::String>(Rsc::Name()));
System::Console::WriteLine(System::String(u"\nID: ") + resource->Get<int32_t>(Rsc::Id()));
System::Console::WriteLine(System::String(u"Type: ") + resourceType);
System::Console::WriteLine(u"\n===========================\n");
}
}
System::SharedPtr<Aspose::Tasks::License> license = System::MakeObject<Aspose::Tasks::License>();
license->SetLicense(u"Aspose.Tasks.lic");
System::SharedPtr<Aspose::Tasks::License> license = System::MakeObject<Aspose::Tasks::License>();
System::SharedPtr<System::IO::FileStream> myStream = System::MakeObject<System::IO::FileStream>(u"Aspose.Tasks.lic", System::IO::FileMode::Open);
license->SetLicense(myStream);
// Create a prject instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>();
// Define Tasks
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task1");
task1->Set(Tsk::ActualStart(), System::DateTime::Parse(u"06-Apr-2010"));
System::SharedPtr<Task> task2 = project1->get_RootTask()->get_Children()->Add(u"Task2");
task2->Set(Tsk::ActualStart(), System::DateTime::Parse(u"10-Apr-2010"));
// Save the Project as XML
project1->Save(u"EvalProject_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
System::SharedPtr<Project> project;
try
{
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
project = System::MakeObject<Project>(dataDir + u"project.mpp");
}
catch (TasksReadingException& ex)
{
System::Console::WriteLine(u"Message:");
System::Console::WriteLine(ex->get_Message());
System::Console::WriteLine(u"Log:");
System::Console::WriteLine(ex->get_LogText());
if (ex->get_InnerException() != nullptr)
{
System::Console::WriteLine(u"Inner exception message:");
System::Console::WriteLine(ex->get_InnerException()->get_Message());
}
}
catch (System::Exception& ex)
{
System::Console::WriteLine(ex->get_Message());
}
// Analyze the project risks
System::SharedPtr<RiskAnalyzer> analyzer = System::MakeObject<RiskAnalyzer>(settings);
System::SharedPtr<RiskAnalysisResult> analysisResult = analyzer->Analyze(project);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Software Development Plan-1.mpp");
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(17);
// Initialize a risk pattern
System::SharedPtr<RiskPattern> pattern = System::MakeObject<RiskPattern>(task);
// Select a distribution type for the random number generator to generate possible values from (only two types currently supported, namely normal and uniform)
// For more details see here: https://en.wikipedia.org/wiki/Normal_distribution)
pattern->set_Distribution(Aspose::Tasks::RiskAnalysis::ProbabilityDistributionType::Normal);
// Set the percentage of the most likely task duration which can happen in the best possible project scenario
// The default value is 75, which means that if the estimated specified task duration is 4 days then the optimistic duration will be 3 days
pattern->set_Optimistic(70);
// Set the percentage of the most likely task duration which can happen in the worst possible project scenario
// The defaut value is 125, which means that if the estimated specified task duration is 4 days then the pessimistic duration will be 5 days.
pattern->set_Pessimistic(130);
// Set a confidence level that correspond to the percentage of the time the actual values will be within optimistic and pessimistic estimates.
// You can think of it as a value of standard deviation: the more uncertain about your estimates you are, the more the value of standard deviation used in random number generator is
pattern->set_ConfidenceLevel(Aspose::Tasks::RiskAnalysis::ConfidenceLevel::CL75);
settings->get_Patterns()->Add(pattern);
System::SharedPtr<RiskAnalysisSettings> settings = System::MakeObject<RiskAnalysisSettings>();
// Set number of iterations for Monte Carlo simulation (the default value is 100).
settings->set_IterationsCount(200);
// Select the desired output (here we get early finish of the root task)
System::SharedPtr<RiskItemStatistics> rootEarlyFinish = analysisResult->GetRiskItems(Aspose::Tasks::RiskAnalysis::RiskItemType::EarlyFinish)->Get(project->get_RootTask());
System::Console::WriteLine(u"Expected value: {0}", System::ObjectExt::Box<System::DateTime>(rootEarlyFinish->get_ExpectedValue()));
System::Console::WriteLine(u"StandardDeviation: {0}", System::ObjectExt::Box<Duration>(rootEarlyFinish->get_StandardDeviation()));
System::Console::WriteLine(u"10% Percentile: {0}", System::ObjectExt::Box<System::DateTime>(rootEarlyFinish->GetPercentile(10)));
System::Console::WriteLine(u"50% Percentile: {0}", System::ObjectExt::Box<System::DateTime>(rootEarlyFinish->GetPercentile(50)));
System::Console::WriteLine(u"90% Percentile: {0}", System::ObjectExt::Box<System::DateTime>(rootEarlyFinish->GetPercentile(90)));
System::Console::WriteLine(u"Minimum: {0}", System::ObjectExt::Box<System::DateTime>(rootEarlyFinish->get_Minimum()));
System::Console::WriteLine(u"Maximum: {0}", System::ObjectExt::Box<System::DateTime>(rootEarlyFinish->get_Maximum()));
// Save PDF report which is rendered for Project Root Task Finish date
analysisResult->SaveReport(dataDir + u"AnalysisReport_out.pdf");
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Cyclic stucture.mpp");
project1->SaveReport(dataDir + u"BestPracticeAnalyzer_out.pdf", Aspose::Tasks::Visualization::ReportType::BestPracticeAnalyzer);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Homemoveplan.mpp");
project1->SaveReport(dataDir + u"Burndown_out.pdf", Aspose::Tasks::Visualization::ReportType::Burndown);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"OzBuild 16 Orig.mpp");
project1->SaveReport(dataDir + u"CashFlow_out.pdf", Aspose::Tasks::Visualization::ReportType::CashFlow);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Software Development.mpp");
project1->SaveReport(dataDir + u"CostOverruns_out.pdf", Aspose::Tasks::Visualization::ReportType::CostOverruns);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"OzBuild 16 Orig.mpp");
project1->SaveReport(dataDir + u"CostOverview_out.pdf", Aspose::Tasks::Visualization::ReportType::CostOverview);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Residential Construction.mpp");
project1->SaveReport(dataDir + u"CriticalTasks_out.pdf", Aspose::Tasks::Visualization::ReportType::CriticalTasks);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Residential Construction.mpp");
project1->SaveReport(dataDir + u"LateTasks_out.pdf", Aspose::Tasks::Visualization::ReportType::LateTasks);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Residential Construction.mpp");
project1->SaveReport(dataDir + u"Milestones_out.pdf", Aspose::Tasks::Visualization::ReportType::Milestones);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Software Development Plan.mpp");
project1->SaveReport(dataDir + u"OverAllocatedResources_out.pdf", Aspose::Tasks::Visualization::ReportType::OverallocatedResources);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Cyclic stucture.mpp");
project1->SaveReport(dataDir + u"ProjectOverView_out.pdf", Aspose::Tasks::Visualization::ReportType::ProjectOverview);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"OzBuild 16 Orig.mpp");
project1->SaveReport(dataDir + u"ResourceCostOverview_out.pdf", Aspose::Tasks::Visualization::ReportType::ResourceCostOverview);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Software Development Plan.mpp");
project1->SaveReport(dataDir + u"ResourceOverview_out.pdf", Aspose::Tasks::Visualization::ReportType::ResourceOverview);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Homemoveplan.mpp");
project1->SaveReport(dataDir + u"SlippingTasks_out.pdf", Aspose::Tasks::Visualization::ReportType::SlippingTasks);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Software Development.mpp");
project1->SaveReport(dataDir + u"TaskCostOverview_out.pdf", Aspose::Tasks::Visualization::ReportType::TaskCostOverview);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"UpcomingTasks.mpp");
project1->SaveReport(dataDir + u"UpcomingTasks_out.pdf", Aspose::Tasks::Visualization::ReportType::UpcomingTask);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Residential Construction.mpp");
project1->SaveReport(dataDir + u"WorkOverview_out.pdf", Aspose::Tasks::Visualization::ReportType::WorkOverview);
int32_t SortResourcesByName::RscNameComparer::Compare(System::SharedPtr<Resource> const &x, System::SharedPtr<Resource> const &y) ASPOSE_CONST
{
if (System::String::IsNullOrEmpty(x->Get<System::String>(Rsc::Name())))
{
return 1;
}
if (System::String::IsNullOrEmpty(y->Get<System::String>(Rsc::Name())))
{
return -1;
}
return x->Get<System::String>(Rsc::Name()).CompareTo(y->Get<System::String>(Rsc::Name()));
}
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"project-sort.mpp");
System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Resource>>> resources = project->get_Resources()->ToList();
resources->Sort(System::MakeObject<SortResourcesByName::RscNameComparer>());
{
auto rsc_enumerator = (resources)->GetEnumerator();
decltype(rsc_enumerator->get_Current()) rsc;
while (rsc_enumerator->MoveNext() && (rsc = rsc_enumerator->get_Current(), true))
{
System::Console::WriteLine(rsc);
}
}
int32_t SortTasksByName::TaskNameComparer::Compare(System::SharedPtr<Task> const &x, System::SharedPtr<Task> const &y) ASPOSE_CONST
{
if (System::String::IsNullOrEmpty(x->Get(Tsk::Name())))
{
return 1;
}
if (System::String::IsNullOrEmpty(y->Get(Tsk::Name())))
{
return -1;
}
return x->Get(Tsk::Name()).CompareTo(y->Get(Tsk::Name()));
}
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"project-sort.mpp");
System::SharedPtr<ChildTasksCollector> coll = System::MakeObject<ChildTasksCollector>();
TaskUtils::Apply(project->get_RootTask(), coll, 0);
System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Task>>> tasks = coll->get_Tasks();
tasks->Sort(System::MakeObject<SortTasksByName::TaskNameComparer>());
{
auto task_enumerator = (tasks)->GetEnumerator();
decltype(task_enumerator->get_Current()) task;
while (task_enumerator->MoveNext() && (task = task_enumerator->get_Current(), true))
{
System::Console::WriteLine(task);
}
}
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"project.mpp");
// Define outline code and its outline mask
System::SharedPtr<OutlineCodeDefinition> code1 = System::MakeObject<OutlineCodeDefinition>();
code1->set_Alias(u"New task outline code1");
code1->set_FieldId(System::Convert::ToString(((int32_t)Aspose::Tasks::ExtendedAttributeTask::OutlineCode1)));
code1->set_FieldName(u"Outline Code1");
System::SharedPtr<OutlineMask> mask = System::MakeObject<OutlineMask>();
mask->set_Separator(u"+");
mask->set_Level(1);
mask->set_Type(Aspose::Tasks::MaskType::Numbers);
code1->get_Masks()->Add(mask);
// Add outline value
System::SharedPtr<OutlineValue> value = System::MakeObject<OutlineValue>();
value->set_Description(u"Value description");
value->set_ValueId(1);
value->set_Value(u"123456");
value->set_Type(Aspose::Tasks::OutlineValueType::Number);
code1->get_Values()->Add(value);
// Add outline code to project
project->get_OutlineCodes()->Add(code1);
// Define outline code and its outline mask
System::SharedPtr<OutlineCodeDefinition> code2 = System::MakeObject<OutlineCodeDefinition>();
code2->set_Alias(u"New rsc outline code2");
code2->set_FieldId(System::Convert::ToString(((int32_t)Aspose::Tasks::ExtendedAttributeResource::OutlineCode2)));
code2->set_FieldName(u"Outline Code2");
System::SharedPtr<OutlineMask> mask2 = System::MakeObject<OutlineMask>();
mask2->set_Separator(u"/");
mask2->set_Level(1);
mask2->set_Type(Aspose::Tasks::MaskType::Numbers);
code2->get_Masks()->Add(mask2);
// Add outline value
System::SharedPtr<OutlineValue> value2 = System::MakeObject<OutlineValue>();
value2->set_Description(u"Value2 description");
value2->set_ValueId(2);
value2->set_Value(u"987654");
value2->set_Type(Aspose::Tasks::OutlineValueType::Number);
code2->get_Values()->Add(value2);
// Add outline code to project
project->get_OutlineCodes()->Add(code2);
// Save project as MPP
project->Save(dataDir + u"Updated_project_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project1.mpp");
// Add working times to project calendar
System::SharedPtr<WorkingTime> wt = System::MakeObject<WorkingTime>();
wt->set_FromTime(System::DateTime(2010, 1, 1, 19, 0, 0));
wt->set_ToTime(System::DateTime(2010, 1, 1, 20, 0, 0));
System::SharedPtr<WeekDay> day = project->Get<System::SharedPtr<Calendar>>(Prj::Calendar())->get_WeekDays()->ToList()->idx_get(1);
day->get_WorkingTimes()->Add(wt);
// Change calendar name
project->Get<System::SharedPtr<Calendar>>(Prj::Calendar())->set_Name(u"CHANGED NAME!");
// Add tasks and set task meta data
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task 1");
task->Set<TimeUnitType>(Tsk::DurationFormat(), Aspose::Tasks::TimeUnitType::Day);
task->Set<Duration>(Tsk::Duration(), project->GetDuration(3));
task->Set<System::String>(Tsk::Contact(), u"Rsc 1");
task->Set<bool>(Tsk::IsMarked(), true);
task->Set<bool>(Tsk::IgnoreWarnings(), true);
System::SharedPtr<Task> task2 = project->get_RootTask()->get_Children()->Add(u"Task 2");
task2->Set<TimeUnitType>(Tsk::DurationFormat(), Aspose::Tasks::TimeUnitType::Day);
task2->Set<System::String>(Tsk::Contact(), u"Rsc 2");
// Link tasks
project->get_TaskLinks()->Add(task, task2, Aspose::Tasks::TaskLinkType::FinishToStart, project->GetDuration(-1, Aspose::Tasks::TimeUnitType::Day));
// Set project start date
project->Set(Prj::StartDate(), System::DateTime(2013, 8, 13, 9, 0, 0));
// Add resource and set resource meta data
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc 1");
rsc1->Set<ResourceType>(Rsc::Type(), Aspose::Tasks::ResourceType::Work);
rsc1->Set<System::String>(Rsc::Initials(), u"WR");
rsc1->Set<CostAccrualType>(Rsc::AccrueAt(), Aspose::Tasks::CostAccrualType::Prorated);
rsc1->Set<double>(Rsc::MaxUnits(), 1.0);
rsc1->Set<System::String>(Rsc::Code(), u"Code 1");
rsc1->Set<System::String>(Rsc::Group(), u"Workers");
rsc1->Set<System::String>(Rsc::EMailAddress(), u"1@gmail.com");
rsc1->Set<System::String>(Rsc::WindowsUserAccount(), u"user_acc1");
rsc1->Set<NullableBool>(Rsc::IsGeneric(), NullableBool(true));
rsc1->Set<CostAccrualType>(Rsc::AccrueAt(), Aspose::Tasks::CostAccrualType::End);
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(10));
rsc1->Set<RateFormatType>(Rsc::StandardRateFormat(), Aspose::Tasks::RateFormatType::Day);
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(15));
rsc1->Set<RateFormatType>(Rsc::OvertimeRateFormat(), Aspose::Tasks::RateFormatType::Hour);
rsc1->Set<bool>(Rsc::IsTeamAssignmentPool(), true);
rsc1->Set<System::String>(Rsc::CostCenter(), u"Cost Center 1");
// Create resource assignment and set resource assignment meta data
System::SharedPtr<ResourceAssignment> assn = project->get_ResourceAssignments()->Add(task, rsc1);
assn->Set<int32_t>(Asn::Uid(), 1);
assn->Set<Duration>(Asn::Work(), task->Get<Duration>(Tsk::Duration()));
assn->Set<Duration>(Asn::RemainingWork(), assn->Get<Duration>(Asn::Work()));
assn->Set<Duration>(Asn::RegularWork(), assn->Get<Duration>(Asn::Work()));
task->Set<Duration>(Tsk::Work(), assn->Get<Duration>(Asn::Work()));
rsc1->Set<Duration>(Rsc::Work(), task->Get<Duration>(Tsk::Work()));
assn->Set(Asn::Start(), task->Get<System::DateTime>(Tsk::Start()));
assn->Set(Asn::Finish(), task->Get<System::DateTime>(Tsk::Finish()));
// Add extended attribute for project and task
System::SharedPtr<ExtendedAttributeDefinition> attr = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::CustomFieldType::Flag, Aspose::Tasks::ExtendedAttributeTask::Flag1, u"My Flag Field");
project->get_ExtendedAttributes()->Add(attr);
System::SharedPtr<ExtendedAttribute> taskAttr = attr->CreateExtendedAttribute();
taskAttr->set_FlagValue(true);
task2->get_ExtendedAttributes()->Add(taskAttr);
// Save project as MPP
project->Save(dataDir + u"WriteMetaData_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
{
System::SharedPtr<System::IO::FileStream> fs = System::MakeObject<System::IO::FileStream>(dataDir + u"project_test.mpp", System::IO::FileMode::Open);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ fs});
// ------------------------------------------
try
{
// Create project instance
System::SharedPtr<Project> prj = System::MakeObject<Project>(fs);
// Remove an exception
System::SharedPtr<Aspose::Tasks::Calendar> cal = prj->get_Calendars()->ToList()->idx_get(0);
if (cal->get_Exceptions()->get_Count() > 1)
{
System::SharedPtr<CalendarException> exc = cal->get_Exceptions()->ToList()->idx_get(0);
cal->get_Exceptions()->Remove(exc);
}
// Add an exception
System::SharedPtr<CalendarException> calExc = System::MakeObject<CalendarException>();
calExc->set_FromDate(System::DateTime(2009, 1, 1));
calExc->set_ToDate(System::DateTime(2009, 1, 3));
cal->get_Exceptions()->Add(calExc);
// Display exceptions
{
auto calExc1_enumerator = (cal->get_Exceptions())->GetEnumerator();
decltype(calExc1_enumerator->get_Current()) calExc1;
while (calExc1_enumerator->MoveNext() && (calExc1 = calExc1_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(u"From") + calExc1->get_FromDate().ToShortDateString());
System::Console::WriteLine(System::String(u"To") + calExc1->get_ToDate().ToShortDateString());
}
}
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create a project instance
System::SharedPtr<Project> prj = System::MakeObject<Project>();
// Define Calendar
System::SharedPtr<Aspose::Tasks::Calendar> cal = prj->get_Calendars()->Add(u"Calendar1");
// Define week days exception for a holiday
System::SharedPtr<CalendarException> except = System::MakeObject<CalendarException>();
except->set_EnteredByOccurrences(false);
except->set_FromDate(System::DateTime(2009, 12, 24, 0, 0, 0));
except->set_ToDate(System::DateTime(2009, 12, 31, 23, 59, 0));
except->set_Type(Aspose::Tasks::CalendarExceptionType::Daily);
except->set_DayWorking(false);
cal->get_Exceptions()->Add(except);
// Save the Project
prj->Save(dataDir + u"Project_DefineWeekDayException_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
// Define exception and specify occurences
System::SharedPtr<CalendarException> except = System::MakeObject<CalendarException>();
except->set_EnteredByOccurrences(true);
except->set_Occurrences(5);
except->set_Type(Aspose::Tasks::CalendarExceptionType::YearlyByDay);
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"project_RetrieveExceptions_test.mpp");
// Access calendars
{
auto cal_enumerator = (project1->get_Calendars())->GetEnumerator();
decltype(cal_enumerator->get_Current()) cal;
while (cal_enumerator->MoveNext() && (cal = cal_enumerator->get_Current(), true))
{
// Access calendar exceptions
auto calExc_enumerator = (cal->get_Exceptions())->GetEnumerator();
decltype(calExc_enumerator->get_Current()) calExc;
while (calExc_enumerator->MoveNext() && (calExc = calExc_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(u"From: ") + calExc->get_FromDate().ToShortDateString());
System::Console::WriteLine(System::String(u"To: ") + calExc->get_ToDate().ToShortDateString());
}
}
}
// Load an existing project
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CalculateWorkHours.mpp");
// Access Task By Id
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
// Access Calendar and it's start and end dates
System::SharedPtr<Aspose::Tasks::Calendar> taskCalendar = task->Get<System::SharedPtr<Calendar>>(Tsk::Calendar());
System::DateTime startDate = task->Get<System::DateTime>(Tsk::Start());
System::DateTime endDate = task->Get<System::DateTime>(Tsk::Finish());
System::DateTime tempDate = startDate;
// Access resource and their calendar
System::SharedPtr<Resource> resource = project->get_Resources()->GetByUid(1);
System::SharedPtr<Aspose::Tasks::Calendar> resourceCalendar = resource->Get<System::SharedPtr<Calendar>>(Rsc::Calendar());
System::TimeSpan timeSpan;
// Get Duration in Minutes
double durationInMins = 0;
while (tempDate < endDate)
{
if (taskCalendar->IsDayWorking(tempDate) && resourceCalendar->IsDayWorking(tempDate))
{
timeSpan = taskCalendar->GetWorkingHours(tempDate);
durationInMins = durationInMins + timeSpan.get_TotalMinutes();
}
tempDate = tempDate.AddDays(1);
}
tempDate = startDate;
// Get Duration in Hours
double durationInHours = 0;
while (tempDate < endDate)
{
if (taskCalendar->IsDayWorking(tempDate) && resourceCalendar->IsDayWorking(tempDate))
{
timeSpan = taskCalendar->GetWorkingHours(tempDate);
durationInHours = durationInHours + timeSpan.get_TotalHours();
}
tempDate = tempDate.AddDays(1);
}
tempDate = startDate;
// Get Duration in Days
double durationInDays = 0;
while (tempDate < endDate)
{
if (taskCalendar->IsDayWorking(tempDate) && resourceCalendar->IsDayWorking(tempDate))
{
timeSpan = taskCalendar->GetWorkingHours(tempDate);
if (timeSpan.get_TotalHours() > 0)
{
durationInDays = durationInDays + timeSpan.get_TotalDays() * (24 / (timeSpan.get_TotalHours()));
}
}
tempDate = tempDate.AddDays(1);
}
System::Console::WriteLine(System::String(u"Duration in Minutes = ") + durationInMins);
System::Console::WriteLine(System::String(u"Duration in Hours = ") + durationInHours);
System::Console::WriteLine(System::String(u"Duration in Days = ") + durationInDays);
// Create a project instance
System::SharedPtr<Project> project = System::MakeObject<Project>();
// New calendar can be added to a project's calendar collection using the collection's Add method.
System::SharedPtr<Aspose::Tasks::Calendar> cal1 = project->get_Calendars()->Add(u"New Info");
System::SharedPtr<Aspose::Tasks::Calendar> cal2 = project->get_Calendars()->Add(u"no name");
System::SharedPtr<Aspose::Tasks::Calendar> cal3 = project->get_Calendars()->Add(u"cal3");
// Save the Project
System::String dataDir = Examples::CPP::RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
project->Save(dataDir + u"CreatingCalendar_out.Xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
// This example shows how Aspose.Tasks API can be used to define a new Calendar, add week days to it and define working times for days
// Create a project instance
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Define Calendar
System::SharedPtr<Aspose::Tasks::Calendar> cal = 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<WeekDay>(Aspose::Tasks::DayType::Saturday));
cal->get_WeekDays()->Add(System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Sunday));
// Set friday as short working day
System::SharedPtr<WeekDay> myWeekDay = System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Friday);
// Sets working time. Only time part of DateTime is important
System::SharedPtr<WorkingTime> wt1 = System::MakeObject<WorkingTime>();
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::SharedPtr<WorkingTime> wt2 = System::MakeObject<WorkingTime>();
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.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
// Create a project instance
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Define Calendar and make it standard
System::SharedPtr<Aspose::Tasks::Calendar> cal1 = project->get_Calendars()->Add(u"My Cal");
Aspose::Tasks::Calendar::MakeStandardCalendar(cal1);
// Save the Project
System::String dataDir = Examples::CPP::RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
project->Save(dataDir + u"Project_MakeStandardCalendar_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ReplaceCalendar.mpp");
// Add a new calendar to the project's calendars collection
project->get_Calendars()->Add(u"New cal1", project->Get<System::SharedPtr<Calendar>>(Prj::Calendar()));
// Now traverse through project calendars and replace the already added calendar with a new one
System::SharedPtr<CalendarCollection> calColl = project->get_Calendars();
{
auto c_enumerator = (calColl)->GetEnumerator();
decltype(c_enumerator->get_Current()) c;
while (c_enumerator->MoveNext() && (c = c_enumerator->get_Current(), true))
{
if (c->get_Name() == u"New cal1")
{
calColl->Remove(c);
calColl->Add(u"New cal2", project->Get<System::SharedPtr<Calendar>>(Prj::Calendar()));
break;
}
}
}
// Create project
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project5.mpp");
// Access project calendars
System::SharedPtr<CalendarCollection> calColl = project->get_Calendars();
calColl->Remove(calColl->GetByName(u"TestCalendar"));
// Add new calendar
System::SharedPtr<Calendar> newCalendar = calColl->Add(u"TestCalendar");
project->Save(dataDir + u"ReplaceCalendar_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
System::String resultFile = u"result_WriteUpdatedCalendarDataToMPP_out.mpp";
System::String newFile = u"project_update_test.mpp";
System::String dataDir = Examples::CPP::RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
try
{
// Create project instance and access calendar
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + newFile);
System::SharedPtr<Calendar> cal = project->get_Calendars()->GetByUid(3);
// Update the calendar information
Calendar::MakeStandardCalendar(cal);
cal->set_Name(u"Test calendar");
System::SharedPtr<CalendarException> exc = System::MakeObject<CalendarException>();
exc->set_FromDate(System::DateTime::get_Now());
exc->set_ToDate(System::DateTime::get_Now().AddDays(2));
exc->set_DayWorking(true);
System::SharedPtr<WorkingTime> wt1 = System::MakeObject<WorkingTime>();
wt1->set_FromTime(System::DateTime(10, 1, 1, 9, 0, 0));
wt1->set_ToTime(System::DateTime(10, 1, 1, 13, 0, 0));
System::SharedPtr<WorkingTime> wt2 = System::MakeObject<WorkingTime>();
wt2->set_FromTime(System::DateTime(10, 1, 1, 14, 0, 0));
wt2->set_ToTime(System::DateTime(10, 1, 1, 19, 0, 0));
System::SharedPtr<WorkingTime> wt3 = System::MakeObject<WorkingTime>();
wt3->set_FromTime(System::DateTime(10, 1, 1, 20, 0, 0));
wt3->set_ToTime(System::DateTime(10, 1, 1, 21, 0, 0));
exc->get_WorkingTimes()->Add(wt1);
exc->get_WorkingTimes()->Add(wt2);
exc->get_WorkingTimes()->Add(wt3);
cal->get_Exceptions()->Add(exc);
System::SharedPtr<CalendarException> exc2 = System::MakeObject<CalendarException>();
exc2->set_FromDate(System::DateTime::get_Now().AddDays(7));
exc2->set_ToDate(exc2->get_FromDate());
exc2->set_DayWorking(false);
cal->get_Exceptions()->Add(exc2);
project->Set<System::SharedPtr<Calendar>>(Prj::Calendar(), cal);
// Save project
project->Save(dataDir + resultFile, Aspose::Tasks::Saving::SaveFileFormat::MPP);
}
catch (System::Exception& ex)
{
System::Console::WriteLine(ex->get_Message() + u"\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.");
}
// Load an existing project
System::String dataDir = Examples::CPP::RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project_GeneralCalendarProperties.xml");
{
auto cal_enumerator = (project->get_Calendars())->GetEnumerator();
decltype(cal_enumerator->get_Current()) cal;
while (cal_enumerator->MoveNext() && (cal = cal_enumerator->get_Current(), true))
{
if (cal->get_Name() != nullptr)
{
System::Console::WriteLine(System::String(u"UID : ") + System::Convert::ToString(cal->get_Uid()) + u" Name: " + cal->get_Name());
// Show if it is has a base calendar
System::Console::Write(u"Base Calendar : ");
if (cal->get_IsBaseCalendar())
{
System::Console::WriteLine(u"Self");
}
else
{
System::Console::WriteLine(cal->get_BaseCalendar()->get_Name());
}
// Get Time in hours on each working day
{
auto wd_enumerator = (cal->get_WeekDays())->GetEnumerator();
decltype(wd_enumerator->get_Current()) wd;
while (wd_enumerator->MoveNext() && (wd = wd_enumerator->get_Current(), true))
{
System::TimeSpan ts = wd->GetWorkingTime();
System::Console::WriteLine(System::String(u"Day Type: ") + System::ObjectExt::ToString(wd->get_DayType()) + u" Hours: " + System::ObjectExt::ToString(ts));
}
}
}
}
}
System::String dataDir = Examples::CPP::RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create project instance and access calendar and work weeks collection
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ReadWorkWeeksInformation.mpp");
System::SharedPtr<Calendar> calendar = project->get_Calendars()->GetByUid(3);
System::SharedPtr<WorkWeekCollection> collection = calendar->get_WorkWeeks();
{
auto workWeek_enumerator = (collection)->GetEnumerator();
decltype(workWeek_enumerator->get_Current()) workWeek;
while (workWeek_enumerator->MoveNext() && (workWeek = workWeek_enumerator->get_Current(), true))
{
// Display work week name, from and to dates
System::String Name = workWeek->get_Name();
System::DateTime fromDate = workWeek->get_FromDate();
System::DateTime toDate = workWeek->get_ToDate();
// This data is all about "Details." button you can set special working times for special WeekDay or even make it nonworking
System::SharedPtr<WeekDayCollection> weekDays = workWeek->get_WeekDays();
{
auto day_enumerator = (weekDays)->GetEnumerator();
decltype(day_enumerator->get_Current()) day;
while (day_enumerator->MoveNext() && (day = day_enumerator->get_Current(), true))
{
// You can further traverse through working times and display these
System::SharedPtr<WorkingTimeCollection> workingTimes = day->get_WorkingTimes();
}
}
}
}
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create a project instance
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"RetrieveCalendarInfo.mpp");
// Retrieve Calendars Information
System::SharedPtr<CalendarCollection> alCals = project->get_Calendars();
{
auto cal_enumerator = (alCals)->GetEnumerator();
decltype(cal_enumerator->get_Current()) cal;
while (cal_enumerator->MoveNext() && (cal = cal_enumerator->get_Current(), true))
{
if (cal->get_Name() != nullptr)
{
System::Console::WriteLine(System::String(u"Calendar UID : ") + cal->get_Uid());
System::Console::WriteLine(System::String(u"Calendar Name : ") + cal->get_Name());
System::SharedPtr<WeekDayCollection> alDays = cal->get_WeekDays();
{
auto wd_enumerator = (alDays)->GetEnumerator();
decltype(wd_enumerator->get_Current()) wd;
while (wd_enumerator->MoveNext() && (wd = wd_enumerator->get_Current(), true))
{
System::TimeSpan ts = wd->GetWorkingTime();
if (wd->get_DayWorking())
{
System::Console::WriteLine(System::ObjectExt::ToString(wd->get_DayType()) + u":");
System::Console::WriteLine(System::ObjectExt::ToString(ts));
}
}
}
}
}
}
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"project.mpp");
System::Console::WriteLine(project1->Get<System::String>(Prj::CurrencyCode()));
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"project.mpp");
System::Console::WriteLine(project1->Get<int32_t>(Prj::CurrencyDigits()));
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"project.mpp");
System::Console::WriteLine(project1->Get<System::String>(Prj::CurrencySymbol()));
// Create new project and set currency code
System::SharedPtr<Project> project1 = System::MakeObject<Project>();
project1->Set<System::String>(Prj::CurrencyCode(), u"USD");
// Create new project and set currency digits
System::SharedPtr<Project> project1 = System::MakeObject<Project>();
project1->Set<int32_t>(Prj::CurrencyDigits(), 2);
// Create new project and set currency symbol
System::SharedPtr<Project> project1 = System::MakeObject<Project>();
project1->Set<System::String>(Prj::CurrencySymbol(), u"$$");
// Create new project and extended attribute definition
System::SharedPtr<Project> project = System::MakeObject<Project>();
System::SharedPtr<ExtendedAttributeDefinition> attribute = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::CustomFieldType::Cost, Aspose::Tasks::ExtendedAttributeTask::Cost1, u"");
attribute->set_Formula(u"[Cost]-[Actual Cost]");
project->get_ExtendedAttributes()->Add(attribute);
// Add task
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task");
// Create extended attribute
System::SharedPtr<ExtendedAttribute> extendedAttribute = attribute->CreateExtendedAttribute();
task->get_ExtendedAttributes()->Add(extendedAttribute);
// Display if extended attributes are read only or not
System::Console::WriteLine(extendedAttribute->get_ValueReadOnly() == true ? System::String(u"Value is Read only") : System::String(u"Value is not read only"));
extendedAttribute->set_NumericValue(-System::Decimal(1000000));
System::Console::WriteLine(extendedAttribute->get_NumericValue() == -System::Decimal(1000000) ? System::String(u"Formula values are read-only") : System::String(u"Values are not read-only"));
System::SharedPtr<Project> project = CreateTestProject();
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
System::SharedPtr<ExtendedAttributeDefinition> numberDefinition = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Number1, nullptr);
project->get_ExtendedAttributes()->Add(numberDefinition);
System::SharedPtr<ExtendedAttribute> numberAttribute = numberDefinition->CreateExtendedAttribute();
task->get_ExtendedAttributes()->Add(numberAttribute);
// Set ProjDateDiff formula and print extended attribute value
numberDefinition->set_Formula(u"ProjDateDiff(\"03/23/2015\",\"03/18/2015\")");
System::Console::WriteLine(numberAttribute->get_NumericValue());
numberDefinition->set_Formula(u"ProjDateDiff(\"03/23/2015\",\"03/25/2015\")");
System::Console::WriteLine(numberAttribute->get_NumericValue());
System::SharedPtr<ExtendedAttributeDefinition> dateDefinition = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Date1, nullptr);
project->get_ExtendedAttributes()->Add(dateDefinition);
System::SharedPtr<ExtendedAttribute> dateAttribute = dateDefinition->CreateExtendedAttribute();
task->get_ExtendedAttributes()->Add(dateAttribute);
System::SharedPtr<ExtendedAttributeDefinition> durationDefinition = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Duration4, u"Custom duration field");
project->get_ExtendedAttributes()->Add(durationDefinition);
System::SharedPtr<ExtendedAttribute> durationAttribute = durationDefinition->CreateExtendedAttribute();
task->get_ExtendedAttributes()->Add(durationAttribute);
System::SharedPtr<ExtendedAttributeDefinition> textDefinition = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Text5, u"Custom text field");
project->get_ExtendedAttributes()->Add(textDefinition);
System::SharedPtr<ExtendedAttribute> textAttribute = textDefinition->CreateExtendedAttribute();
task->get_ExtendedAttributes()->Add(textAttribute);
// Set ProjDateSub formula and print extended attribute value
dateDefinition->set_Formula(u"ProjDateSub(\"3/19/2015\", \"1d\")");
System::Console::WriteLine(System::ObjectExt::Box<System::DateTime>(dateAttribute->get_DateValue()));
// We can set ProjDurConv formula to duration-valued attribute as well as to text-valued attribute.
// Set ProjDurConv formula to duration-valued extended attribute and print its value.
durationDefinition->set_Formula(u"ProjDurConv([Duration], pjHours)");
System::Console::WriteLine(System::ObjectExt::Box<Duration>(durationAttribute->get_DurationValue()));
// Set ProjDurConv formula to text-valued extended attribute and print its value.
textDefinition->set_Formula(u"ProjDurConv([Duration], pjHours)");
System::Console::WriteLine(textAttribute->get_TextValue());
textDefinition->set_Formula(u"ProjDurConv([Duration], pjWeeks)");
System::Console::WriteLine(textAttribute->get_TextValue());
// Set Second formula and print entended attribute value
numberDefinition->set_Formula(u"Second(\"4/21/2015 2:53:41 AM\")");
System::Console::WriteLine(numberAttribute->get_NumericValue());
// Set Weekday formula and print entended attribute value
numberDefinition->set_Formula(u"Weekday(\"24/3/2015\", 1)");
System::Console::WriteLine(numberAttribute->get_NumericValue());
numberDefinition->set_Formula(u"Weekday(\"24/3/2015\", 2)");
System::Console::WriteLine(numberAttribute->get_NumericValue());
numberDefinition->set_Formula(u"Weekday(\"24/3/2015\", 3)");
System::Console::WriteLine(numberAttribute->get_NumericValue());
void CalculateGeneralFunctions::EvaluateChoose()
{
System::SharedPtr<Project> project = CreateTestProjectWithCustomField();
// Set Formula
project->get_ExtendedAttributes()->idx_get(0)->set_Formula(u"Choose(3, \"This is a\", \"right\", \"choice\")");
// Print extended attribute value
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_TextValue());
}
void CalculateGeneralFunctions::EvaluateIsNumeric()
{
System::ArrayPtr<System::String> numericFormulas = System::MakeArray<System::String>({u"IsNumeric('AAA')", u"IsNUmeric(1)", u"IsNumeric(1<0)", u"IsNumeric(\"1.1\")", u"IsNumeric(Choose((2 + Sgn(2^-3)), 123, \"one two three\"))"});
System::SharedPtr<Project> project = CreateTestProjectWithCustomField();
{
for (System::String numericFormula : numericFormulas)
{
// Set Formula
project->get_ExtendedAttributes()->idx_get(0)->set_Formula(numericFormula);
// Print extended attribute value
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_TextValue());
}
}
}
void CalculateGeneralFunctions::EvaluateSwitch()
{
System::SharedPtr<Project> project = CreateTestProjectWithCustomField();
// Set Formula
project->get_ExtendedAttributes()->idx_get(0)->set_Formula(u"Switch( 0 < 1, \"0 is lesser than 1\", 0 > 1, \"0 is greater than 1\")");
// Print extended attribute value
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_TextValue());
}
System::SharedPtr<Project> CalculateGeneralFunctions::CreateTestProjectWithCustomField()
{
System::SharedPtr<Project> project = System::MakeObject<Project>();
System::SharedPtr<ExtendedAttributeDefinition> attr = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::CustomFieldType::Text, Aspose::Tasks::ExtendedAttributeTask::Text1, u"Custom Field");
project->get_ExtendedAttributes()->Add(attr);
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<ExtendedAttribute> a = attr->CreateExtendedAttribute();
task->get_ExtendedAttributes()->Add(a);
return project;
}
void CalculateMathExpressions::EvaluateSine()
{
System::SharedPtr<Project> project = CreateTestProjectWithCustomField();
// Set formula Sin(pi/2)
project->get_ExtendedAttributes()->idx_get(0)->set_Formula(u"Sin(3.1415926/2)");
// Print Calculated value
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
System::Console::WriteLine(u"Sin(pi/2): {0}", System::ObjectExt::Box<System::Decimal>(task->get_ExtendedAttributes()->idx_get(0)->get_NumericValue()));
}
System::SharedPtr<Project> CalculateMathExpressions::CreateTestProjectWithCustomField()
{
System::SharedPtr<Project> project = System::MakeObject<Project>();
System::SharedPtr<ExtendedAttributeDefinition> attr = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::CustomFieldType::Number, Aspose::Tasks::ExtendedAttributeTask::Number1, u"Sine");
project->get_ExtendedAttributes()->Add(attr);
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<ExtendedAttribute> a = attr->CreateExtendedAttribute();
task->get_ExtendedAttributes()->Add(a);
return project;
}
void CalculateTextFunctions::EvaluateStrConv()
{
System::SharedPtr<Project> project = CreateTestProjectWithCustomField();
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
// Set formulas and print extended attribute value
project->get_ExtendedAttributes()->idx_get(0)->set_Formula(u"StrConv(\"sTring and sTRINg\",3)");
System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_TextValue());
project->get_ExtendedAttributes()->idx_get(0)->set_Formula(u"StrConv(\"sTring and sTRINg\",1)");
System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_TextValue());
project->get_ExtendedAttributes()->idx_get(0)->set_Formula(u"StrConv(\"sTring and sTRINg\",2)");
System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_TextValue());
}
void CalculateTextFunctions::EvaluateStringFunction()
{
System::SharedPtr<Project> project = CreateTestProjectWithCustomField();
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
// Set formulas and print extended attribute value
project->get_ExtendedAttributes()->idx_get(0)->set_Formula(u"String(5, 40)");
System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_TextValue());
project->get_ExtendedAttributes()->idx_get(0)->set_Formula(u"String(5, \"A\")");
System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_TextValue());
project->get_ExtendedAttributes()->idx_get(0)->set_Formula(u"String(-5, \"A\")");
// #Error
System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_TextValue());
}
System::SharedPtr<Project> CalculateTextFunctions::CreateTestProjectWithCustomField()
{
System::SharedPtr<Project> project = System::MakeObject<Project>();
System::SharedPtr<ExtendedAttributeDefinition> attr = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::CustomFieldType::Text, Aspose::Tasks::ExtendedAttributeTask::Text1, u"Custom Field");
project->get_ExtendedAttributes()->Add(attr);
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<ExtendedAttribute> a = attr->CreateExtendedAttribute();
task->get_ExtendedAttributes()->Add(a);
return project;
}
System::SharedPtr<Project> project = CreateTestProjectWithCustomField();
// Set formula for extended attribute
project->get_ExtendedAttributes()->idx_get(0)->set_Formula(u"[Critical]-[Marked]+4+[Active]-Not [Active]");
// Print value of extened attribute
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
System::Console::WriteLine(System::String(u"Formula with boolean values: ") + task->get_ExtendedAttributes()->idx_get(0)->get_TextValue());
System::SharedPtr<Project> project = CreateTestProjectWithCustomFieldWithoutResource();
// Set formula
project->get_ExtendedAttributes()->idx_get(0)->set_Formula(u"\"Total tasks: \" & [Task Count] & \" Total resources: \" & [Resource Count]");
// Print if formula value is computed correctly
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
System::Console::WriteLine(u"Check Total tasks: 1 Total resources: 0 - {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task->get_ExtendedAttributes()->idx_get(0)->get_TextValue(), u"Total tasks: 1 Total resources: 0")));
// The path to the documents directory.
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ReadFormulas.mpp");
// Attached test mpp
// Read extended attribute formula
System::SharedPtr<ExtendedAttributeDefinition> attr = project1->get_ExtendedAttributes()->idx_get(0);
System::Console::WriteLine(System::String(u"Attribute Formula: ") + attr->get_Formula());
System::SharedPtr<Project> project = CreateTestProjectWithCustomField();
// Set arithmetic formula for extended attribute
System::SharedPtr<ExtendedAttributeDefinition> attr = project->get_ExtendedAttributes()->idx_get(0);
attr->set_Alias(u"Arithmetic Expression");
attr->set_Formula(u"(1+3*(2+ -5)+8/2)^3");
// Display extended attribute value
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_NumericValue());
System::SharedPtr<Project> project = CreateTestProjectWithCustomField();
// Set formula
System::SharedPtr<ExtendedAttributeDefinition> attr = project->get_ExtendedAttributes()->idx_get(0);
attr->set_Alias(u"Task number fields");
attr->set_Formula(u"([Outline Level] + [Priority] + [% Complete])/2");
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
// Print extended attribute value before and after updating task percent complete
System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_NumericValue());
task->Set<int32_t>(Tsk::PercentComplete(), 50);
System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_NumericValue());
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = CreateTestProjectWithCustomField();
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
// Set formula for extended attribute
System::SharedPtr<ExtendedAttributeDefinition> extendedAttributeDefinition1 = project->get_ExtendedAttributes()->idx_get(0);
extendedAttributeDefinition1->set_Alias(u"Days from finish to deadline");
extendedAttributeDefinition1->set_Formula(u"[Deadline] - [Finish]");
// Set Task Deadline and save project
System::SharedPtr<Task> task1 = project->get_RootTask()->get_Children()->GetById(1);
task->Set(Tsk::Deadline(), System::DateTime(2015, 3, 20, 17, 0, 0));
project->Save(dataDir + u"project_UsingTasksAndResourceFields_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project1.mpp");
project->Set<NullableBool>(Prj::NewTasksAreManual(), NullableBool::to_NullableBool(false));
// Create new custom field (Task Text1) with formula which will double task cost
System::SharedPtr<ExtendedAttributeDefinition> attr = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::CustomFieldType::Text, Aspose::Tasks::ExtendedAttributeTask::Text1, u"Custom");
attr->set_Alias(u"Double Costs");
attr->set_Formula(u"[Cost]*2");
project->get_ExtendedAttributes()->Add(attr);
// Add a task
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task");
// Set task cost
task->Set<System::Decimal>(Tsk::Cost(), static_cast<System::Decimal>(100));
// Save project
project->Save(dataDir + u"WriteFormulasInExtendedAttributesToMPP_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"AddImageToPageHeaderFooter.mpp");
project->get_RootTask()->get_Children()->Add(u"Task1");
System::SharedPtr<PageInfo> pageInfo = project->get_DefaultView()->get_PageInfo();
{
System::SharedPtr<System::Drawing::Image> image = System::Drawing::Image::FromFile(dataDir + u"Image1.png");
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ image});
// ------------------------------------------
try
{
pageInfo->get_Header()->set_CenteredImage(image);
pageInfo->get_Legend()->set_LeftImage(image);
pageInfo->get_Legend()->set_LeftText(System::String::Empty);
System::SharedPtr<MPPSaveOptions> saveOptions = System::MakeObject<MPPSaveOptions>();
saveOptions->set_WriteViewData(true);
project->Save(dataDir + u"AddImageToPageHeaderFooter_out.mpp", saveOptions);
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
// Create empty project
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Save project as MPP
project->Save(dataDir + u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// Create a project instance
System::SharedPtr<Project> newProject = System::MakeObject<Project>();
// Create a file stream
{
System::SharedPtr<System::IO::FileStream> projectStream = System::MakeObject<System::IO::FileStream>(dataDir + u"EmptyProjectSaveStream_out.xml", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ projectStream});
// ------------------------------------------
try
{
// Write the stream into XML format
newProject->Save(projectStream, Aspose::Tasks::Saving::SaveFileFormat::XML);
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
// Create empty project
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Save project as xml
project->Save(dataDir + u"EmptyProjectSaveXML_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
System::String sharepointDomainAddress = u"https://contoso.sharepoint.com";
System::String userName = u"admin@contoso.onmicrosoft.com";
System::String password = u"MyPassword";
System::SharedPtr<ProjectServerCredentials> credentials = System::MakeObject<ProjectServerCredentials>(sharepointDomainAddress, userName, password);
System::SharedPtr<Project> project = System::MakeObject<Project>(u"sample.mpp");
System::SharedPtr<ProjectServerManager> manager = System::MakeObject<ProjectServerManager>(credentials);
manager->CreateNewProject(project);
void IgnoreInvalidCharactersDuringloadingProject::Run()
{
// Open modified xml stream
{
System::SharedPtr<System::IO::MemoryStream> stream = System::MakeObject<System::IO::MemoryStream>(System::Text::Encoding::get_UTF8()->GetBytes(GetModifiedXml()));
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ stream});
// ------------------------------------------
try
{
System::SharedPtr<Project> project = System::MakeObject<Project>(stream, static_cast<ParseErrorCallback>(CustomDurationHandler));
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
}
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"PasswordProtectedProject.mpp", System::String(u"password"));
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Read project xml into file stream
{
System::SharedPtr<System::IO::Stream> filesStream = System::MakeObject<System::IO::FileStream>(dataDir + u"ReadProjectFileFromStream.xml", System::IO::FileMode::Open);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ filesStream});
// ------------------------------------------
try
{
// Create project using file stream
System::SharedPtr<Project> project = System::MakeObject<Project>(filesStream);
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Read existing project template file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ReadProjectFiles.mpp");
System::String sharepointDomainAddress = u"https://contoso.sharepoint.com";
System::String userName = u"admin@contoso.onmicrosoft.com";
System::String password = u"MyPassword";
System::SharedPtr<ProjectServerCredentials> credentials = System::MakeObject<ProjectServerCredentials>(sharepointDomainAddress, userName, password);
System::SharedPtr<ProjectServerManager> manager = System::MakeObject<ProjectServerManager>(credentials);
System::SharedPtr<System::Collections::Generic::IEnumerable<System::SharedPtr<ProjectInfo>>> list = manager->GetProjectList();
for (const auto& p : System::IterateOver(list))
{
System::Console::WriteLine(u"Name : " + p->get_Name());
System::Console::WriteLine(u"CreatedDate : " + p->get_CreatedDate().ToString());
System::Console::WriteLine(u"Name : " + p->get_LastSavedDate().ToString());
}
// Specify Encodings
{
System::SharedPtr<System::IO::StreamReader> streamReader = System::MakeObject<System::IO::StreamReader>(dataDir + u"Project.mpx", System::Text::Encoding::GetEncoding(u"ISO-8859-1"));
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ streamReader});
// ------------------------------------------
try
{
auto project = System::MakeObject<Project>(streamReader->get_BaseStream());
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Read the input Project file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"GetNumberOfPages.mpp");
// Get number of pages, Timescale.Months, Timescale.ThirdsOfMonths
int32_t iPages = project->GetPageCount();
iPages = project->GetPageCount(Aspose::Tasks::Visualization::Timescale::Months);
iPages = project->GetPageCount(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths);
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Read the source Project
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"GetNumberOfPagesForViews.mpp");
// Get number of pages, Months and ThirdsOfMonths
System::Console::WriteLine(System::String::Format(u"Number of Pages = '{0}'",project->GetPageCount(Aspose::Tasks::Visualization::PresentationFormat::ResourceUsage, Aspose::Tasks::Visualization::Timescale::Days)));
System::Console::WriteLine(System::String::Format(u"Number of Pages = '{0}'",project->GetPageCount(Aspose::Tasks::Visualization::PresentationFormat::ResourceUsage, Aspose::Tasks::Visualization::Timescale::Months)));
System::Console::WriteLine(System::String::Format(u"Number of Pages = '{0}'",project->GetPageCount(Aspose::Tasks::Visualization::PresentationFormat::ResourceUsage, Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths)));
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"GetNumberOfPages.mpp");
auto options = [&]{ auto tmp_0 = System::MakeObject<ImageSaveOptions>(Aspose::Tasks::Saving::SaveFileFormat::PNG); tmp_0->set_SaveToSeparateFiles(true); tmp_0->set_PageSize(Aspose::Tasks::Visualization::PageSize::A3); tmp_0->set_Timescale(Aspose::Tasks::Visualization::Timescale::Months); tmp_0->set_StartDate(project->Get<System::DateTime>(Prj::StartDate()) - System::TimeSpan::FromDays(10)); tmp_0->set_EndDate(project->Get<System::DateTime>(Prj::FinishDate()) + System::TimeSpan::FromDays(30)); return tmp_0; }();
int32_t pageCount = project->GetPageCount(Aspose::Tasks::Visualization::PageSize::A3, Aspose::Tasks::Visualization::Timescale::Months, project->Get<System::DateTime>(Prj::StartDate()) - System::TimeSpan::FromDays(10), project->Get<System::DateTime>(Prj::FinishDate()) + System::TimeSpan::FromDays(30));
System::Console::WriteLine(pageCount);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project1.mpp");
// Save project in desired format
project->Save(dataDir + u"ExportProjectDataToPrimaveraMPXFormat_out.xml", Aspose::Tasks::Saving::SaveFileFormat::MPX);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project1.mpp");
// Save project in desired format
project->Save(dataDir + u"ExportProjectDataToXERFormat_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::PrimaveraXER);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project1.mpp");
// Save project in desired format
project->Save(dataDir + u"ExportProjectDataToXMLFormat_out.xml", Aspose::Tasks::Saving::SaveFileFormat::PrimaveraP6XML);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Primavera1.mpx");
System::SharedPtr<ProjectFileInfo> info = Project::GetProjectFileInfo(dataDir + u"primavera1.mpx");
System::Console::WriteLine(System::ObjectExt::Box<FileFormat>(info->get_ProjectFileFormat()));
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project.xml");
System::SharedPtr<ProjectFileInfo> info = Project::GetProjectFileInfo(dataDir + u"Project.xml");
System::Console::WriteLine(System::ObjectExt::Box<FileFormat>(info->get_ProjectFileFormat()));
System::SharedPtr<PrimaveraXmlReader> reader = System::MakeObject<PrimaveraXmlReader>(dataDir + u"Project.xml");
System::SharedPtr<System::Collections::Generic::List<int32_t>> listOpProjectUids = reader->GetProjectUids();
System::SharedPtr<PrimaveraXmlReadingOptions> options = System::MakeObject<PrimaveraXmlReadingOptions>();
options->set_ProjectUid(4557);
// Returns project with special Uid
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project.xml", options);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"project.xml");
// Specify xml save options
System::SharedPtr<PrimaveraXmlSaveOptions> options = System::MakeObject<PrimaveraXmlSaveOptions>();
options->set_SaveRootTask(false);
project->Save(u"UsingPrimaveraXMLSaveOptions_out.xml", options);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"CalculateCriticalPath.mpp");
project->set_CalculationMode(Aspose::Tasks::CalculationMode::Automatic);
System::SharedPtr<Task> subtask1 = project->get_RootTask()->get_Children()->Add(u"1");
System::SharedPtr<Task> subtask2 = project->get_RootTask()->get_Children()->Add(u"2");
System::SharedPtr<Task> subtask3 = project->get_RootTask()->get_Children()->Add(u"3");
project->get_TaskLinks()->Add(subtask1, subtask2, Aspose::Tasks::TaskLinkType::FinishToStart);
// Display the critical path now
{
auto task_enumerator = (project->get_CriticalPath())->GetEnumerator();
decltype(task_enumerator->get_Current()) task;
while (task_enumerator->MoveNext() && (task = task_enumerator->get_Current(), true))
{
System::Console::WriteLine(task->Get(Tsk::Name()));
}
}
System::SharedPtr<System::Collections::Generic::IDictionary<System::String, System::String>> fileFormatExt = System::MakeObject<System::Collections::Generic::Dictionary<System::String, System::String>>();
fileFormatExt->Add(u"RTF", u"_rtfFile_out.rtf");
fileFormatExt->Add(u"MSWordDoc", u"_wordFile_out.docx");
fileFormatExt->Add(u"ExcelML12", u"_excelFile_out.xlsx");
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Embedded.mpp");
{
auto oleObject_enumerator = (project->get_OleObjects())->GetEnumerator();
decltype(oleObject_enumerator->get_Current()) oleObject;
while (oleObject_enumerator->MoveNext() && (oleObject = oleObject_enumerator->get_Current(), true))
{
if (!System::String::IsNullOrEmpty(oleObject->get_FileFormat()) && fileFormatExt->ContainsKey(oleObject->get_FileFormat()))
{
System::String path = dataDir + u"EmbeddedContent_" + fileFormatExt->idx_get(oleObject->get_FileFormat());
{
System::SharedPtr<System::IO::FileStream> fileStream = System::MakeObject<System::IO::FileStream>(path, System::IO::FileMode::Create);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ fileStream});
// ------------------------------------------
try
{
fileStream->Write(oleObject->get_Content(), 0, oleObject->get_Content()->get_Length());
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
}
}
}
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ExtractEmbeddedObjects.mpp");
System::SharedPtr<OleObject> ole = project->get_OleObjects()->ToList()->idx_get(0);
// We have to check this property because it can be null if the embedded object was created inside the ms project application Or, alternatively, you can use this check: if (ole.FileFormat == "Package")
if (!System::String::IsNullOrEmpty(ole->get_FullPath()))
{
{
System::SharedPtr<System::IO::FileStream> fileStream = System::MakeObject<System::IO::FileStream>(dataDir, System::IO::FileMode::Create);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ fileStream});
// ------------------------------------------
try
{
fileStream->Write(ole->get_Content(), 0, ole->get_Content()->get_Length());
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
}
try
{
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"PrintTaskWritingException.mpp");
System::Console::Write(u"This 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.");
project->Save(dataDir + u"project_out.MPP", Aspose::Tasks::Saving::SaveFileFormat::MPP);
}
catch (TasksWritingException& ex)
{
System::Console::WriteLine(ex->get_LogText());
}
catch (System::NotSupportedException& ex)
{
System::Console::WriteLine(ex->get_Message() + u"\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.");
}
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project2003.mpp");
System::SharedPtr<Filter> filter = project->get_TaskFilters()->ToList()->idx_get(1);
System::Console::WriteLine(filter->get_Criteria()->get_CriteriaRows()->get_Count());
System::Console::WriteLine(System::ObjectExt::ToString(filter->get_Criteria()->get_Operation()));
System::SharedPtr<FilterCriteria> criteria1 = filter->get_Criteria()->get_CriteriaRows()->idx_get(0);
System::Console::WriteLine(System::ObjectExt::ToString(criteria1->get_Test()));
System::Console::WriteLine(System::ObjectExt::ToString(criteria1->get_Field()));
System::Console::WriteLine(System::ObjectExt::ToString(criteria1->get_Values()[0]));
System::SharedPtr<FilterCriteria> criteria2 = filter->get_Criteria()->get_CriteriaRows()->idx_get(1);
System::Console::WriteLine(System::ObjectExt::ToString(criteria2->get_Operation()));
System::Console::WriteLine(criteria2->get_CriteriaRows()->get_Count());
System::SharedPtr<FilterCriteria> criteria21 = criteria2->get_CriteriaRows()->idx_get(0);
System::Console::WriteLine(System::ObjectExt::ToString(criteria21->get_Test()));
System::Console::WriteLine(System::ObjectExt::ToString(criteria21->get_Field()));
System::Console::WriteLine(System::ObjectExt::ToString(criteria21->get_Values()[0]));
System::SharedPtr<FilterCriteria> criteria22 = criteria2->get_CriteriaRows()->idx_get(1);
System::Console::WriteLine(System::ObjectExt::ToString(criteria22->get_Test()));
System::Console::WriteLine(System::ObjectExt::ToString(criteria22->get_Field()));
System::Console::WriteLine(System::ObjectExt::ToString(criteria22->get_Values()[0]));
System::Console::WriteLine(filter->get_Criteria());
// Instantiate project and access task filters
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ReadFilterDefinitionData.mpp");
System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Filter>>> taskFilters = project->get_TaskFilters()->ToList();
System::Console::WriteLine(System::String(u"Task Filters Count: ") + taskFilters->get_Count());
System::Console::WriteLine(System::String(u"All Tasks: ") + taskFilters->idx_get(0)->get_Name());
System::Console::WriteLine(System::String(u"Task Item: ") + System::ObjectExt::ToString(taskFilters->idx_get(0)->get_FilterType()));
System::Console::WriteLine(System::String(u"Task Filters Show In Menu: ") + taskFilters->idx_get(0)->get_ShowInMenu());
System::Console::WriteLine(System::String(u"Task filter ShowRelatedSummaryRows: ") + taskFilters->idx_get(0)->get_ShowRelatedSummaryRows());
// Access resource filters
System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Filter>>> rscFilters = project->get_ResourceFilters()->ToList();
System::Console::WriteLine(System::String(u"Project.ResourceFilters count: ") + rscFilters->get_Count());
System::Console::WriteLine(System::String(u"Resource Filter Item Type: Item.ResourceType: ") + System::ObjectExt::ToString(rscFilters->idx_get(0)->get_FilterType()));
System::Console::WriteLine(System::String(u"Resource filter ShowInMenu") + rscFilters->idx_get(0)->get_ShowInMenu());
System::Console::WriteLine(System::String(u"Resource filter ShowRelatedSummaryRows: ") + rscFilters->idx_get(0)->get_ShowRelatedSummaryRows());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ReadGroupDefinitionData.mpp");
System::Console::WriteLine(System::String(u"Task Groups Count: ") + project->get_TaskGroups()->get_Count());
System::SharedPtr<Group> taskGroup = project->get_TaskGroups()->ToList()->idx_get(1);
System::Console::WriteLine(u"Group Name:", System::ObjectExt::Box<System::String>(taskGroup->get_Name()));
System::Console::WriteLine(System::String(u"Group Criteria count: ") + taskGroup->get_GroupCriteria()->get_Count());
System::Console::WriteLine(u"\n************* Retrieving Task Group's Criterion information *************");
System::SharedPtr<GroupCriterion> criterion = taskGroup->get_GroupCriteria()->ToList()->idx_get(0);
System::Console::WriteLine(System::String(u"Criterion Field: ") + System::ObjectExt::ToString(criterion->get_Field()));
System::Console::WriteLine(System::String(u"Criterion GroupOn: ") + System::ObjectExt::ToString(criterion->get_GroupOn()));
System::Console::WriteLine(System::String(u"Criterion Cell Color: ") + criterion->get_CellColor());
System::Console::WriteLine(System::String(u"Criterion Pattern: ") + System::ObjectExt::ToString(criterion->get_Pattern()));
if (taskGroup == criterion->get_ParentGroup())
{
System::Console::WriteLine(u"Parent Group is equval to task Group.");
}
System::Console::WriteLine(u"\n*********** Retreivnig Criterion's Font Information ***********");
System::Console::WriteLine(System::String(u"Font Name: ") + criterion->get_Font()->get_Name());
System::Console::WriteLine(System::String(u"Font Size: ") + criterion->get_Font()->get_Size());
System::Console::WriteLine(System::String(u"Font Style: ") + System::ObjectExt::ToString(criterion->get_Font()->get_Style()));
System::Console::WriteLine(System::String(u"Ascending/Dscending: ") + criterion->get_Ascending());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ReadTableData.mpp");
// Access table
System::SharedPtr<Table> task1 = project->get_Tables()->ToList()->idx_get(0);
System::Console::WriteLine(System::String(u"Table Fields Count") + task1->get_TableFields()->get_Count());
// Display all table fields information
{
auto tableField_enumerator = (task1->get_TableFields())->GetEnumerator();
decltype(tableField_enumerator->get_Current()) tableField;
while (tableField_enumerator->MoveNext() && (tableField = tableField_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(u"Field width: ") + tableField->get_Width());
System::Console::WriteLine(System::String(u"Field Title: ") + tableField->get_Title());
System::Console::WriteLine(System::String(u"Field Title Alignment: ") + System::ObjectExt::ToString(tableField->get_AlignTitle()));
System::Console::WriteLine(System::String(u"Field Align Data: ") + System::ObjectExt::ToString(tableField->get_AlignData()));
}
}
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Read an existing project
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"MPPFileUpdate.mpp");
// Create a new task
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task1");
task->Set(Tsk::Start(), System::DateTime(2012, 8, 1));
task->Set(Tsk::Finish(), System::DateTime(2012, 8, 5));
// Save the project as MPP project file
project->Save(dataDir + u"AfterLinking_out.Mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
void ReadHeaderFooterInfo::Run()
{
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create project and project info instances
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Blank2010.mpp");
System::SharedPtr<PageInfo> info = project->get_DefaultView()->get_PageInfo();
System::Console::WriteLine(u"Page data cannot be null : {0} ", System::ObjectExt::Box<bool>(!System::ObjectExt::Equals(info, nullptr)));
if (info != nullptr)
{
AssertHeaderFooterCorrect(info);
AssertPageSettingsCorrect(info);
AssertPageViewSettingsCorrect(info);
AssertMarginsCorrect(info);
AssertLegendCorrect(info);
}
}
void ReadHeaderFooterInfo::AssertHeaderFooterCorrect(System::SharedPtr<Aspose::Tasks::Visualization::PageInfo> info)
{
System::Console::WriteLine(u"Header left text Equals LEFT HEADER : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(info->get_Header()->get_LeftText(), u"LEFT HEADER")));
System::Console::WriteLine(u"Header center text Equals CENTER HEADER : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(info->get_Header()->get_CenteredText(), u"CENTER HEADER")));
System::Console::WriteLine(u"Header right text Equals RIGHT HEADER : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(info->get_Header()->get_RightText(), u"RIGHT HEADER")));
System::Console::WriteLine(u"Footer left text Equals LEFT FOOTER : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(info->get_Footer()->get_LeftText(), u"LEFT FOOTER")));
System::Console::WriteLine(u"Footer center text Equals CENTER FOOTER : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(info->get_Footer()->get_CenteredText(), u"CENTER FOOTER")));
System::Console::WriteLine(u"Footer right text Equals RIGHT FOOTER : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(info->get_Footer()->get_RightText(), u"RIGHT FOOTER")));
}
void ReadHeaderFooterInfo::AssertPageSettingsCorrect(System::SharedPtr<Aspose::Tasks::Visualization::PageInfo> info)
{
System::Console::WriteLine(u"Portrait Orientation is Portrait : {0} ", System::ObjectExt::Box<bool>(System::Equals(info->get_PageSettings()->get_IsPortrait(), true)));
System::Console::WriteLine(u"AdjustToPercentOfNormalSize is enabled : {0} ", System::ObjectExt::Box<bool>(System::Equals(info->get_PageSettings()->get_AdjustToPercentOfNormalSize(), true)));
System::Console::WriteLine(u"PercentOfNormalSize Equals 150 : {0} ", System::ObjectExt::Box<bool>(System::Equals(info->get_PageSettings()->get_PercentOfNormalSize(), 150)));
System::Console::WriteLine(u"PagesInWidth Equals 3 : {0} ", System::ObjectExt::Box<bool>(System::Equals(info->get_PageSettings()->get_PagesInWidth(), 3)));
System::Console::WriteLine(u"PagesInHeight Equals 7 : {0} ", System::ObjectExt::Box<bool>(System::Equals(info->get_PageSettings()->get_PagesInHeight(), 7)));
System::Console::WriteLine(u"PaperSize Equals PaperA4 : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(info->get_PageSettings()->get_PaperSize(), Aspose::Tasks::Visualization::PrinterPaperSize::PaperA4)));
System::Console::WriteLine(u"FirstPageNumber : {0} ", System::ObjectExt::Box<int16_t>(info->get_PageSettings()->get_FirstPageNumber()));
}
void ReadHeaderFooterInfo::AssertPageViewSettingsCorrect(System::SharedPtr<Aspose::Tasks::Visualization::PageInfo> info)
{
System::Console::WriteLine(u"PrintAllSheetColumns is set to false : {0} ", System::ObjectExt::Box<bool>(System::Equals(info->get_PageViewSettings()->get_PrintAllSheetColumns(), false)));
System::Console::WriteLine(u"PrintFirstColumnsCountOnAllPages is set to true : {0} ", System::ObjectExt::Box<bool>(System::Equals(info->get_PageViewSettings()->get_PrintFirstColumnsCountOnAllPages(), true)));
System::Console::WriteLine(u"FirstColumnsCount Equals 3 : {0} ", System::ObjectExt::Box<bool>(System::Equals(info->get_PageViewSettings()->get_FirstColumnsCount(), 3)));
System::Console::WriteLine(u"PrintNotes is set to true : {0} ", System::ObjectExt::Box<bool>(System::Equals(info->get_PageViewSettings()->get_PrintNotes(), true)));
System::Console::WriteLine(u"PrintBlankPages is set to false : {0} ", System::ObjectExt::Box<bool>(System::Equals(info->get_PageViewSettings()->get_PrintBlankPages(), false)));
System::Console::WriteLine(u"FitTimescaleToEndOfPage is set to true : {0} ", System::ObjectExt::Box<bool>(System::Equals(info->get_PageViewSettings()->get_FitTimescaleToEndOfPage(), true)));
}
void ReadHeaderFooterInfo::AssertMarginsCorrect(System::SharedPtr<Aspose::Tasks::Visualization::PageInfo> info)
{
System::Console::WriteLine(u"Margins.Left Equals 1 : {0} ", System::ObjectExt::Box<bool>((info->get_Margins()->get_Left() - 1 <= 1e-5) ? true : false));
System::Console::WriteLine(u"Margins.Top Equals 1.1 : {0} ", System::ObjectExt::Box<bool>((info->get_Margins()->get_Top() - 1.1 <= 1e-5) ? true : false));
System::Console::WriteLine(u"Margins.Right Equals 1.2 : {0} ", System::ObjectExt::Box<bool>((info->get_Margins()->get_Right() - 1.2 <= 1e-5) ? true : false));
System::Console::WriteLine(u"Margins.Bottom Equals 1.2 : {0} ", System::ObjectExt::Box<bool>((info->get_Margins()->get_Bottom() - 1.3 <= 1e-5) ? true : false));
System::Console::WriteLine(u"Margin.Borders Equals Border.AroundEveryPage : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(info->get_Margins()->get_Borders(), Aspose::Tasks::Visualization::Border::AroundEveryPage)));
}
void ReadHeaderFooterInfo::AssertLegendCorrect(System::SharedPtr<Aspose::Tasks::Visualization::PageInfo> info)
{
System::Console::WriteLine(u"Legend left text Equals LEFT LEGEND : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(info->get_Legend()->get_LeftText(), u"LEFT LEGEND")));
System::Console::WriteLine(u"Legend center text Equals CENTER LEGEND : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(info->get_Legend()->get_CenteredText(), u"CENTER LEGEND")));
System::Console::WriteLine(u"Legend right text Equals RIGHT LEGEND : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(info->get_Legend()->get_RightText(), u"RIGHT LEGEND")));
System::Console::WriteLine(u"LegendOn Equals Legend.OnEveryPage : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(info->get_Legend()->get_LegendOn(), Aspose::Tasks::Visualization::Legend::OnEveryPage)));
System::Console::WriteLine(u"Legend Width Equals 5 : {0} ", System::ObjectExt::Box<bool>((info->get_Legend()->get_Width() - 5 <= 1e-5) ? true : false));
}
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project2.mpp");
project->Set<NullableBool>(Prj::ScheduleFromStart(), NullableBool::to_NullableBool(false));
project->Set(Prj::FinishDate(), System::DateTime(2020, 1, 1));
// Now all tasks dates (Start, Finish, EarlyStart, EarlyFinish, LateStart, LateFinish) are calculated. To get the critical path we need to calculate slacks (can be invoked in separate thread, but only after calculation of all early/late dates)
project->Recalculate();
System::SharedPtr<TaskCollection> criticalPath = project->get_CriticalPath();
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project2.mpp");
project->Set<NullableBool>(Prj::ScheduleFromStart(), NullableBool::to_NullableBool(true));
project->Set(Prj::StartDate(), System::DateTime(2014, 1, 1));
// Now all tasks dates (Start, Finish, EarlyStart, EarlyFinish, LateStart, LateFinish) are calculated. To get the critical path we need to calculate slacks (can be invoked in separate thread, but only after calculation of all early/late dates)
project->Recalculate();
System::SharedPtr<TaskCollection> criticalPath = project->get_CriticalPath();
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project2.mpp");
project->Set<NullableBool>(Prj::ScheduleFromStart(), NullableBool::to_NullableBool(false));
project->Set(Prj::FinishDate(), System::DateTime(2020, 1, 1));
// Now all tasks dates (Start, Finish, EarlyStart, EarlyFinish, LateStart, LateFinish) are calculated. To get the critical path we need to calculate slacks (can be invoked in separate thread, but only after calculation of all early/late dates)
project->Recalculate();
System::SharedPtr<TaskCollection> criticalPath = project->get_CriticalPath();
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create a new project and set start date
System::SharedPtr<Project> project = System::MakeObject<Project>();
project->Set(Prj::StartDate(), System::DateTime(2014, 1, 27, 8, 0, 0));
// Add new tasks
System::SharedPtr<Task> task1 = project->get_RootTask()->get_Children()->Add(u"Task 1");
System::SharedPtr<Task> task2 = project->get_RootTask()->get_Children()->Add(u"Task 2");
task2->Set<Duration>(Tsk::Duration(), task2->get_ParentProject()->GetDuration(16, Aspose::Tasks::TimeUnitType::Hour));
System::SharedPtr<Task> task3 = project->get_RootTask()->get_Children()->Add(u"Task 3");
task3->Set<Duration>(Tsk::Duration(), task2->get_ParentProject()->GetDuration(24, Aspose::Tasks::TimeUnitType::Hour));
System::SharedPtr<Task> task4 = project->get_RootTask()->get_Children()->Add(u"Task 4");
task4->Set<Duration>(Tsk::Duration(), task2->get_ParentProject()->GetDuration(16, Aspose::Tasks::TimeUnitType::Hour));
System::SharedPtr<Task> task5 = project->get_RootTask()->get_Children()->Add(u"Task 5");
task5->Set<Duration>(Tsk::Duration(), task2->get_ParentProject()->GetDuration(16, Aspose::Tasks::TimeUnitType::Hour));
// Add links between tasks
System::SharedPtr<TaskLink> link12 = project->get_TaskLinks()->Add(task1, task2, Aspose::Tasks::TaskLinkType::FinishToStart);
System::SharedPtr<TaskLink> link23 = project->get_TaskLinks()->Add(task2, task3, Aspose::Tasks::TaskLinkType::FinishToStart);
// One day lag
link23->set_LinkLag(4800);
System::SharedPtr<TaskLink> link34 = project->get_TaskLinks()->Add(task3, task4, Aspose::Tasks::TaskLinkType::FinishToStart);
System::SharedPtr<TaskLink> link45 = project->get_TaskLinks()->Add(task4, task5, Aspose::Tasks::TaskLinkType::FinishToStart);
// Add new tasks
System::SharedPtr<Task> task6 = project->get_RootTask()->get_Children()->Add(u"Task 6");
System::SharedPtr<Task> task7 = project->get_RootTask()->get_Children()->Add(u"Task 7");
task7->Set<Duration>(Tsk::Duration(), task7->get_ParentProject()->GetDuration(24, Aspose::Tasks::TimeUnitType::Hour));
System::SharedPtr<Task> task8 = project->get_RootTask()->get_Children()->Add(u"Task 8");
task8->Set<Duration>(Tsk::Duration(), task2->get_ParentProject()->GetDuration(16, Aspose::Tasks::TimeUnitType::Hour));
System::SharedPtr<Task> task9 = project->get_RootTask()->get_Children()->Add(u"Task 9");
task9->Set<Duration>(Tsk::Duration(), task2->get_ParentProject()->GetDuration(16, Aspose::Tasks::TimeUnitType::Hour));
System::SharedPtr<Task> task10 = project->get_RootTask()->get_Children()->Add(u"Task 10");
// Add links between tasks
System::SharedPtr<TaskLink> link67 = project->get_TaskLinks()->Add(task6, task7, Aspose::Tasks::TaskLinkType::FinishToStart);
System::SharedPtr<TaskLink> link78 = project->get_TaskLinks()->Add(task7, task8, Aspose::Tasks::TaskLinkType::FinishToStart);
System::SharedPtr<TaskLink> link89 = project->get_TaskLinks()->Add(task8, task9, Aspose::Tasks::TaskLinkType::FinishToStart);
System::SharedPtr<TaskLink> link910 = project->get_TaskLinks()->Add(task9, task10, Aspose::Tasks::TaskLinkType::FinishToStart);
task6->Set<NullableBool>(Tsk::IsManual(), NullableBool::to_NullableBool(true));
task7->Set<NullableBool>(Tsk::IsManual(), NullableBool::to_NullableBool(true));
task8->Set<NullableBool>(Tsk::IsManual(), NullableBool::to_NullableBool(true));
task9->Set<NullableBool>(Tsk::IsManual(), NullableBool::to_NullableBool(true));
task10->Set<NullableBool>(Tsk::IsManual(), NullableBool::to_NullableBool(true));
// Save project before and after updating work as completed
project->Save(dataDir + u"RescheduleUncompletedWork_not updated_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
project->UpdateProjectWorkAsComplete(System::DateTime(2014, 1, 28, 17, 0, 0), false);
project->Save(dataDir + u"RescheduleUncompletedWork_updated_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
// Save project after rescheduling uncompleted work
project->RescheduleUncompletedWorkToStartAfter(System::DateTime(2014, 2, 7, 8, 0, 0));
project->Save(dataDir + u"RescheduleUncompletedWork_rescheduled_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
System::SharedPtr<Project> project = System::MakeObject<Project>();
System::Console::WriteLine(System::ObjectExt::Box<System::DateTime>(project->Get<System::DateTime>(Prj::StartDate())));
System::Console::WriteLine(System::ObjectExt::ToString(project->get_CalculationMode()));
project->set_CalculationMode(Aspose::Tasks::CalculationMode::None);
System::Console::WriteLine(System::ObjectExt::ToString(project->get_CalculationMode()));
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task1");
task->Set(Tsk::Start(), System::DateTime(2012, 8, 1));
task->Set(Tsk::Finish(), System::DateTime(2012, 8, 5));
System::Console::WriteLine(u"*************** Before Recalculate *****************");
System::Console::WriteLine(System::ObjectExt::Box<System::DateTime>(task->Get<System::DateTime>(Tsk::Start())));
System::Console::WriteLine(System::ObjectExt::Box<System::DateTime>(task->Get<System::DateTime>(Tsk::Finish())));
project->Recalculate();
System::Console::WriteLine(u"*************** After Recalculate *****************");
System::Console::WriteLine(System::ObjectExt::Box<System::DateTime>(task->Get<System::DateTime>(Tsk::Start())));
System::Console::WriteLine(System::ObjectExt::Box<System::DateTime>(task->Get<System::DateTime>(Tsk::Finish())));
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Blank2010.mpp");
System::SharedPtr<ExtendedAttributeDefinition> myTextAttributeDefinition = project1->get_ExtendedAttributes()->GetById((int32_t)Aspose::Tasks::ExtendedAttributeTask::Text1);
// If the Custom field doesn't exist in Project, create it
if (myTextAttributeDefinition == nullptr)
{
myTextAttributeDefinition = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Text1, u"My text field");
project1->get_ExtendedAttributes()->Add(myTextAttributeDefinition);
}
// Generate Extended Attribute from definition
System::SharedPtr<ExtendedAttribute> text1TaskAttribute = myTextAttributeDefinition->CreateExtendedAttribute();
text1TaskAttribute->set_TextValue(u"Text attribute value");
// Add extended attribute to task
System::SharedPtr<Task> tsk = project1->get_RootTask()->get_Children()->Add(u"Task 1");
tsk->get_ExtendedAttributes()->Add(text1TaskAttribute);
project1->Save(dataDir + u"CreateExtendedAttributes_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ExtendedAttributes.mpp");
// Create extended attribute definition
System::SharedPtr<ExtendedAttributeDefinition> attributeDefinition = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::CustomFieldType::Start, Aspose::Tasks::ExtendedAttributeTask::Start7, u"Start 7");
project->get_ExtendedAttributes()->Add(attributeDefinition);
// Get zero index task
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
// Add extended attribute
System::SharedPtr<ExtendedAttribute> attribute = attributeDefinition->CreateExtendedAttribute();
attribute->set_DateValue(System::DateTime::get_Now());
// Also the following short syntax can be used: ExtendedAttribute attribute = attributeDefinition.CreateExtendedAttribute(DateTime.Now);
task->get_ExtendedAttributes()->Add(attribute);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"WriteUpdatedExtendedAttributeDefinitions.mpp");
// C# preprocessor directive: #region task attributes
// Add new text3 extended attribute with lookup and one lookup value
System::SharedPtr<ExtendedAttributeDefinition> taskTextAttributeDefinition = ExtendedAttributeDefinition::CreateLookupTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Text3, u"New text3 attribute");
taskTextAttributeDefinition->set_ElementType(Aspose::Tasks::ElementType::Task);
project->get_ExtendedAttributes()->Add(taskTextAttributeDefinition);
System::SharedPtr<Value> textVal = System::MakeObject<Value>();
textVal->set_Id(1);
textVal->set_Description(u"Text value descr");
textVal->set_Val(u"Text value1");
taskTextAttributeDefinition->AddLookupValue(textVal);
// Add new cost1 extended attribute with lookup and two cost values
System::SharedPtr<ExtendedAttributeDefinition> taskCostAttributeDefinition = ExtendedAttributeDefinition::CreateLookupTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Cost1, u"New cost1 attribute");
project->get_ExtendedAttributes()->Add(taskCostAttributeDefinition);
System::SharedPtr<Value> costVal1 = System::MakeObject<Value>();
costVal1->set_Id(2);
costVal1->set_Description(u"Cost value 1 descr");
costVal1->set_Val(u"99900");
System::SharedPtr<Value> costVal2 = System::MakeObject<Value>();
costVal2->set_Id(3);
costVal2->set_Description(u"Cost value 2 descr");
costVal2->set_Val(u"11100");
taskCostAttributeDefinition->AddLookupValue(costVal1);
taskCostAttributeDefinition->AddLookupValue(costVal2);
// Add new task and assign attribute lookup value.
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"New task");
System::SharedPtr<ExtendedAttribute> taskAttr = taskCostAttributeDefinition->CreateExtendedAttribute(costVal1);
task->get_ExtendedAttributes()->Add(taskAttr);
System::SharedPtr<ExtendedAttributeDefinition> taskStartAttributeDefinition = ExtendedAttributeDefinition::CreateLookupTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Start7, u"New start 7 attribute");
System::SharedPtr<Value> startVal = System::MakeObject<Value>();
startVal->set_Id(4);
startVal->set_DateTimeValue(System::DateTime::get_Now());
startVal->set_Description(u"Start 7 value description");
taskStartAttributeDefinition->AddLookupValue(startVal);
project->get_ExtendedAttributes()->Add(taskStartAttributeDefinition);
System::SharedPtr<ExtendedAttributeDefinition> taskFinishAttributeDefinition = ExtendedAttributeDefinition::CreateLookupTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Finish4, u"New finish 4 attribute");
System::SharedPtr<Value> finishVal = System::MakeObject<Value>();
finishVal->set_Id(5);
finishVal->set_DateTimeValue(System::DateTime::get_Now());
finishVal->set_Description(u"Finish 4 value description");
taskFinishAttributeDefinition->get_ValueList()->Add(finishVal);
project->get_ExtendedAttributes()->Add(taskFinishAttributeDefinition);
System::SharedPtr<ExtendedAttributeDefinition> numberAttributeDefinition = ExtendedAttributeDefinition::CreateLookupTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Number20, u"New number attribute");
System::SharedPtr<Value> val1 = System::MakeObject<Value>();
val1->set_Id(6);
val1->set_Val(u"1");
val1->set_Description(u"Number 1 value");
System::SharedPtr<Value> val2 = System::MakeObject<Value>();
val2->set_Id(7);
val2->set_Val(u"2");
val2->set_Description(u"Number 2 value");
System::SharedPtr<Value> val3 = System::MakeObject<Value>();
val2->set_Id(8);
val3->set_Val(u"3");
val3->set_Description(u"Number 3 value");
numberAttributeDefinition->AddLookupValue(val1);
numberAttributeDefinition->AddLookupValue(val2);
numberAttributeDefinition->AddLookupValue(val3);
project->get_ExtendedAttributes()->Add(numberAttributeDefinition);
// C# preprocessor directive: #endregion
System::SharedPtr<ExtendedAttributeDefinition> rscStartAttributeDefinition = ExtendedAttributeDefinition::CreateLookupResourceDefinition(Aspose::Tasks::ExtendedAttributeResource::Start5, u"New start5 attribute");
System::SharedPtr<Value> startVal2 = System::MakeObject<Value>();
startVal2->set_Id(9);
startVal2->set_DateTimeValue(System::DateTime::get_Now());
startVal2->set_Description(u"this is start5 value descr");
rscStartAttributeDefinition->AddLookupValue(startVal2);
project->get_ExtendedAttributes()->Add(rscStartAttributeDefinition);
// Define a duration attribute without lookup.
System::SharedPtr<ExtendedAttributeDefinition> taskDurationAttributeDefinition = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Duration1, u"New Duration");
project->get_ExtendedAttributes()->Add(taskDurationAttributeDefinition);
// Add new task and assign duration value to the previously defined duration attribute.
System::SharedPtr<Task> timeTask = project->get_RootTask()->get_Children()->Add(u"New task");
System::SharedPtr<ExtendedAttribute> durationExtendedAttribute = taskDurationAttributeDefinition->CreateExtendedAttribute();
durationExtendedAttribute->set_DurationValue(project->GetDuration(3.0, Aspose::Tasks::TimeUnitType::Hour));
timeTask->get_ExtendedAttributes()->Add(durationExtendedAttribute);
System::SharedPtr<MPPSaveOptions> mppSaveOptions = System::MakeObject<MPPSaveOptions>();
mppSaveOptions->set_WriteViewData(true);
// Save the project as MPP project file
project->Save(dataDir + u"WriteUpdatedExtendedAttributeDefinitions_out.mpp", mppSaveOptions);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"OutlineValues2010.mpp");
System::SharedPtr<OutlineCodeDefinition> textOutline = System::MakeObject<OutlineCodeDefinition>();
textOutline->set_FieldId(System::Convert::ToString((int)Aspose::Tasks::ExtendedAttributeTask::OutlineCode7));
textOutline->set_Alias(u"My Outline Code");
project->get_OutlineCodes()->Add(textOutline);
System::SharedPtr<OutlineMask> mask = System::MakeObject<OutlineMask>();
mask->set_Type(Aspose::Tasks::MaskType::Characters);
textOutline->get_Masks()->Add(mask);
System::SharedPtr<OutlineValue> textValue = System::MakeObject<OutlineValue>();
textValue->set_Value(u"Text value 1");
textValue->set_ValueId(1);
textValue->set_Type(Aspose::Tasks::OutlineValueType::Text);
textValue->set_Description(u"Text value descr 1");
textOutline->get_Values()->Add(textValue);
project->Save(dataDir + u"MultipleOutlineValues.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"OutlineCodes.mpp");
{
auto ocd_enumerator = (project->get_OutlineCodes())->GetEnumerator();
decltype(ocd_enumerator->get_Current()) ocd;
while (ocd_enumerator->MoveNext() && (ocd = ocd_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(u"Alias = ") + ocd->get_Alias());
if (ocd->get_AllLevelsRequired())
{
System::Console::WriteLine(u"It contains property: must have all levels");
}
else
{
System::Console::WriteLine(u"It does not contain property: must have all levels");
}
if (ocd->get_Enterprise())
{
System::Console::WriteLine(u"It is an enterprise custom outline code.");
}
else
{
System::Console::WriteLine(u"It is not an enterprise custom outline code.");
}
System::Console::WriteLine(System::String(u"Reference to another custom field for which this outline code definition is an alias is = ") + ocd->get_EnterpriseOutlineCodeAlias());
System::Console::WriteLine(System::String(u"Field Id = ") + ocd->get_FieldId());
System::Console::WriteLine(System::String(u"Field Name = ") + ocd->get_FieldName());
System::Console::WriteLine(System::String(u"Phonetic Alias = ") + ocd->get_PhoneticAlias());
System::Console::WriteLine(System::String(u"Guid = ") + ocd->get_Guid());
// Display outline code masks
{
auto outlineMask_enumerator = (ocd->get_Masks())->GetEnumerator();
decltype(outlineMask_enumerator->get_Current()) outlineMask;
while (outlineMask_enumerator->MoveNext() && (outlineMask = outlineMask_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(u"Level of a mask = ") + outlineMask->get_Level());
System::Console::WriteLine(System::String(u"Mask = ") + System::ObjectExt::ToString(outlineMask));
}
}
// Display out line code values
{
auto outlineMask1_enumerator = (ocd->get_Values())->GetEnumerator();
decltype(outlineMask1_enumerator->get_Current()) outlineMask1;
while (outlineMask1_enumerator->MoveNext() && (outlineMask1 = outlineMask1_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(u"Description of outline value = ") + outlineMask1->get_Description());
System::Console::WriteLine(System::String(u"Value Id = ") + outlineMask1->get_ValueId());
System::Console::WriteLine(System::String(u"Value = ") + outlineMask1->get_Value());
System::Console::WriteLine(System::String(u"Type = ") + System::ObjectExt::ToString(outlineMask1->get_Type()));
}
}
}
}
// Create empty project and set calculation mode to Automatic
System::SharedPtr<Project> project = System::MakeObject<Project>();
project->set_CalculationMode(Aspose::Tasks::CalculationMode::Automatic);
// Set project start date and add new tasks
project->Set(Prj::StartDate(), System::DateTime(2015, 4, 15));
System::SharedPtr<Task> task1 = project->get_RootTask()->get_Children()->Add(u"Task 1");
System::SharedPtr<Task> task2 = project->get_RootTask()->get_Children()->Add(u"Task 2");
// Link tasks
System::SharedPtr<TaskLink> link = project->get_TaskLinks()->Add(task1, task2, Aspose::Tasks::TaskLinkType::FinishToStart);
// Verify dates have been recalculated
System::Console::WriteLine(u"Task1 Start + 1 Equals Task2 Start : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task1->Get<System::DateTime>(Tsk::Start()).AddDays(1), task2->Get<System::DateTime>(Tsk::Start()))));
System::Console::WriteLine(u"Task1 Finish + 1 Equals Task2 Finish : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task1->Get<System::DateTime>(Tsk::Finish()).AddDays(1), task2->Get<System::DateTime>(Tsk::Finish()))));
System::Console::WriteLine(u"RootTask Finish Equals Task2 Finish : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task2->Get<System::DateTime>(Tsk::Finish()), project->get_RootTask()->Get<System::DateTime>(Tsk::Finish()))));
System::Console::WriteLine(u"Project Finish Date Equals Task2 Finish : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task2->Get<System::DateTime>(Tsk::Finish()), project->Get<System::DateTime>(Prj::FinishDate()))));
// Create empty project and set calculation mode to Manual
System::SharedPtr<Project> project = System::MakeObject<Project>();
project->set_CalculationMode(Aspose::Tasks::CalculationMode::Manual);
// Set project start date and add new tasks
project->Set(Prj::StartDate(), System::DateTime(2015, 4, 15));
System::SharedPtr<Task> task1 = project->get_RootTask()->get_Children()->Add(u"Task 1");
System::SharedPtr<Task> task2 = project->get_RootTask()->get_Children()->Add(u"Task 2");
// The necessary properties are set in manual mode
System::Console::WriteLine(u"Task1.Id Equals 1 : {0} ", System::ObjectExt::Box<bool>(System::Equals(task1->Get<int32_t>(Tsk::Id()), 1)));
System::Console::WriteLine(u"Task1 OutlineLevel Equals 1 : {0} ", System::ObjectExt::Box<bool>(System::Equals(task1->Get<int32_t>(Tsk::OutlineLevel()), 1)));
System::Console::WriteLine(u"Task1 Start Equals 15/04/2015 08:00 AM : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task1->Get<System::DateTime>(Tsk::Start()), System::DateTime(2015, 4, 15, 8, 0, 0))));
System::Console::WriteLine(u"Task1 Finish Equals 15/04/2015 05:00 PM : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task1->Get<System::DateTime>(Tsk::Finish()), System::DateTime(2015, 4, 15, 17, 0, 0))));
System::Console::WriteLine(u"Task1 Duration Equals 1 day : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(System::ObjectExt::ToString(task1->Get<Duration>(Tsk::Duration())), u"1 day")));
System::Console::WriteLine(u"Task2 Start Equals 15/04/2015 08:00 AM : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task2->Get<System::DateTime>(Tsk::Start()), System::DateTime(2015, 4, 15, 8, 0, 0))));
System::Console::WriteLine(u"Task2 Finish Equals 15/04/2015 05:00 PM : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task2->Get<System::DateTime>(Tsk::Finish()), System::DateTime(2015, 4, 15, 17, 0, 0))));
System::Console::WriteLine(u"Task2 Duration Equals 1 day : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(System::ObjectExt::ToString(task2->Get<Duration>(Tsk::Duration())), u"1 day")));
// When we link two tasks together their dates are not recalculated in manual mode
System::SharedPtr<TaskLink> link = project->get_TaskLinks()->Add(task1, task2, Aspose::Tasks::TaskLinkType::FinishToStart);
// Task 2 Start has not been changed
System::Console::WriteLine(u"Task1 Start Equals Task2 Start : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task1->Get<System::DateTime>(Tsk::Start()), task2->Get<System::DateTime>(Tsk::Start()))));
System::Console::WriteLine(u"Task1 Finish Equals Task2 Finish : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task1->Get<System::DateTime>(Tsk::Finish()), task2->Get<System::DateTime>(Tsk::Finish()))));
// Create empty project and set calculation mode to None
System::SharedPtr<Project> project = System::MakeObject<Project>();
project->set_CalculationMode(Aspose::Tasks::CalculationMode::None);
// Add a new task
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task");
// Note that even ids were not calculated
System::Console::WriteLine(u"Task.Id Equals 0 : {0} ", System::ObjectExt::Box<bool>(System::Equals(task->Get<int32_t>(Tsk::Id()), 0)));
System::Console::WriteLine(u"Task.OutlineLevel Equals 0 : {0} ", System::ObjectExt::Box<bool>(System::Equals(task->Get<int32_t>(Tsk::OutlineLevel()), 0)));
System::Console::WriteLine(u"Task Start Equals DateTime.MinValue : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task->Get<System::DateTime>(Tsk::Start()), System::DateTime::MinValue)));
System::Console::WriteLine(u"Task Finish Equals DateTime.MinValue : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task->Get<System::DateTime>(Tsk::Finish()), System::DateTime::MinValue)));
System::Console::WriteLine(u"Task Duration Equals 0 mins : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(System::ObjectExt::ToString(task->Get<Duration>(Tsk::Duration())), u"0 mins")));
// Set duration property
task->Set<Duration>(Tsk::Duration(), project->GetDuration(2, Aspose::Tasks::TimeUnitType::Day));
System::Console::WriteLine(u"Task Duration Equals 2 days : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(System::ObjectExt::ToString(task->Get<Duration>(Tsk::Duration())), u"2 days")));
System::Console::WriteLine(u"Task Start Equals DateTime.MinValue : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task->Get<System::DateTime>(Tsk::Start()), System::DateTime::MinValue)));
System::Console::WriteLine(u"Task Finish Equals DateTime.MinValue : {0} ", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task->Get<System::DateTime>(Tsk::Finish()), System::DateTime::MinValue)));
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Read project from template file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"DetermineProjectVersion.mpp");
// Display project version
System::Console::WriteLine(System::String(u"Project Version : ") + System::Convert::ToString(project->Get<int32_t>(Prj::SaveVersion())));
System::Console::WriteLine(System::String(u"Last Saved : ") + project->Get<System::DateTime>(Prj::LastSaved()).ToShortDateString());
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create project instance
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ReadCurrencyProperties.mpp");
// Display currency properties
System::Console::WriteLine(System::String(u"Currency Code : ") + System::ObjectExt::ToString(project->Get<System::String>(Prj::CurrencyCode())));
System::Console::WriteLine(System::String(u"<br>Currency Digits : ") + System::Convert::ToString(project->Get<int32_t>(Prj::CurrencyDigits())));
System::Console::WriteLine(System::String(u"<br>Currency Symbol : ") + System::ObjectExt::ToString(project->Get<System::String>(Prj::CurrencySymbol())));
System::Console::WriteLine(System::String(u"Currency Symbol Position") + System::ObjectExt::ToString(project->Get<CurrencySymbolPositionType>(Prj::CurrencySymbolPosition())));
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create project
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"DefaultProperties.mpp");
// Display default properties
System::Console::WriteLine(System::String(u"New Task Default Start: ") + project->Get<System::DateTime>(Prj::DefaultStartTime()).ToShortDateString());
System::Console::WriteLine(System::String(u"New Task Default Type: ") + System::ObjectExt::ToString(project->Get<TaskType>(Prj::DefaultTaskType())));
System::Console::WriteLine(System::String(u"Resouce Default Standard Rate: ") + System::Convert::ToString(project->Get<double>(Prj::DefaultStandardRate())));
System::Console::WriteLine(System::String(u"Resource Default Overtime Rate: ") + System::Convert::ToString(project->Get<double>(Prj::DefaultOvertimeRate())));
System::Console::WriteLine(System::String(u"Default Task EV Method: ") + System::ObjectExt::ToString(project->Get<EarnedValueMethodType>(Prj::DefaultTaskEVMethod())));
System::Console::WriteLine(System::String(u"Default Cost Accrual: ") + System::ObjectExt::ToString(project->Get<CostAccrualType>(Prj::DefaultFixedCostAccrual())));
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create a project instance
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ReadFiscalYearProperties.mpp");
// Display fiscal year properties
System::Console::WriteLine(System::String(u"Fiscal Year Start Date : ") + System::ObjectExt::ToString(project->Get<Month>(Prj::FyStartDate())));
System::Console::WriteLine(System::String(u"Fiscal Year Numbering : ") + System::ObjectExt::ToString(project->Get<NullableBool>(Prj::FiscalYearStart())));
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create a project reader instance
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ReadProjectInfo.mpp");
// Built-in properties are available directly:
System::Console::WriteLine(u"Author: " + project->get_BuiltInProps()->get_Author());
System::Console::WriteLine(u"Category: " + project->get_BuiltInProps()->get_Category());
System::Console::WriteLine(u"Comments: " + project->get_BuiltInProps()->get_Comments());
System::Console::WriteLine(u"Company: " + project->get_BuiltInProps()->get_Company());
System::Console::WriteLine(u"HyperlinkBase: " + project->get_BuiltInProps()->get_HyperlinkBase());
System::Console::WriteLine(u"IsReadOnly: " + project->get_BuiltInProps()->get_IsReadOnly());
System::Console::WriteLine(u"Keywords: " + project->get_BuiltInProps()->get_Keywords());
System::Console::WriteLine(u"Manager: " + project->get_BuiltInProps()->get_Manager());
System::Console::WriteLine(u"Subject: " + project->get_BuiltInProps()->get_Subject());
System::Console::WriteLine(u"Title: " + project->get_BuiltInProps()->get_Title());
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create a project reader instance
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ReadProjectInfo.mpp");
// Display project information
if (NullableBool::to_Boolean(project->Get<NullableBool>(Prj::ScheduleFromStart())))
{
System::Console::WriteLine(System::String(u"Project Finish Date : ") + project->Get<System::DateTime>(Prj::StartDate()).ToShortDateString());
}
else
{
System::Console::WriteLine(System::String(u"Project Finish Date : ") + project->Get<System::DateTime>(Prj::FinishDate()).ToShortDateString());
}
System::Console::WriteLine(project->Get<System::String>(Prj::Author()));
System::Console::WriteLine(project->Get<System::String>(Prj::LastAuthor()));
System::Console::WriteLine(project->Get<int32_t>(Prj::Revision()));
System::Console::WriteLine(project->Get<System::String>(Prj::Keywords()));
System::Console::WriteLine(project->Get<System::String>(Prj::Comments()));
System::Console::WriteLine(u"The program has run successfully");
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create project instance
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ReadWeekdayProperties.mpp");
// Display week days properties
System::Console::WriteLine(System::String(u"Week Start Date : ") + System::ObjectExt::ToString(project->Get<DayType>(Prj::WeekStartDay())));
System::Console::WriteLine(System::String(u"Days Per Month : ") + System::Convert::ToString(project->Get<int32_t>(Prj::DaysPerMonth())));
System::Console::WriteLine(System::String(u"Minutes Per Day : ") + System::Convert::ToString(project->Get<int32_t>(Prj::MinutesPerDay())));
System::Console::WriteLine(System::String(u"Minutes Per Week : ") + System::Convert::ToString(project->Get<int32_t>(Prj::MinutesPerWeek())));
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create a project instance Set new task property and Save the project as XML project file
System::SharedPtr<Project> project = System::MakeObject<Project>();
project->Set<TaskStartDateType>(Prj::NewTaskStartDate(), Aspose::Tasks::TaskStartDateType::CurrentDate);
project->Save(dataDir + u"SetAttributesForNewTasks_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
// Display Status.
System::Console::WriteLine(u"New Task created with start date successfully.");
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create a project instance
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"WriteCurrencyProperties.mpp");
// Set currency properties
project->Set<System::String>(Prj::CurrencyCode(), u"AUD");
project->Set<int32_t>(Prj::CurrencyDigits(), 2);
project->Set<System::String>(Prj::CurrencySymbol(), u"$");
project->Set<CurrencySymbolPositionType>(Prj::CurrencySymbolPosition(), Aspose::Tasks::CurrencySymbolPositionType::After);
// Save the project as XML project file
project->Save(dataDir + u"WriteCurrencyProperties_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create a project instance and Set default properties
System::SharedPtr<Project> project = System::MakeObject<Project>();
project->Set<NullableBool>(Prj::ScheduleFromStart(), NullableBool::to_NullableBool(true));
project->Set(Prj::StartDate(), System::DateTime::get_Now());
project->Set(Prj::DefaultStartTime(), project->Get<System::DateTime>(Prj::StartDate()));
project->Set<TaskType>(Prj::DefaultTaskType(), Aspose::Tasks::TaskType::FixedDuration);
project->Set<double>(Prj::DefaultStandardRate(), 15.0);
project->Set<double>(Prj::DefaultOvertimeRate(), 12.0);
project->Set<EarnedValueMethodType>(Prj::DefaultTaskEVMethod(), Aspose::Tasks::EarnedValueMethodType::PercentComplete);
project->Set<CostAccrualType>(Prj::DefaultFixedCostAccrual(), Aspose::Tasks::CostAccrualType::Prorated);
// Save the project to XML format
project->Save(dataDir + u"WriteDefaultProperties_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create a project instance
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"WriteFiscalYearProperties.mpp");
// Set fiscal year properties
project->Set<Month>(Prj::FyStartDate(), Aspose::Tasks::Month::July);
project->Set<NullableBool>(Prj::FiscalYearStart(), NullableBool::to_NullableBool(true));
project->Save(dataDir + u"WriteFiscalYearProperties_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Instantiate Project class
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"WriteMPPProjectSummary.mpp");
// Set project summary
project->Set<System::String>(Prj::Author(), u"Author");
project->Set<System::String>(Prj::LastAuthor(), u"Last Author");
project->Set<int32_t>(Prj::Revision(), 15);
project->Set<System::String>(Prj::Keywords(), u"MSP Aspose");
project->Set<System::String>(Prj::Comments(), u"Comments");
project->Save(dataDir + u"WriteMPPProjectSummary_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
try
{
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create project from template file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"WriteProjectInfo.mpp");
// Set project information
project->Set<System::String>(Prj::Author(), u"Author");
project->Set<System::String>(Prj::LastAuthor(), u"Last Author");
project->Set<int32_t>(Prj::Revision(), 15);
project->Set<System::String>(Prj::Keywords(), u"MSP Aspose");
project->Set<System::String>(Prj::Comments(), u"Comments");
project->Save(dataDir + u"WriteProjectInfo_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
}
catch (System::Exception& ex)
{
System::Console::WriteLine(ex->get_Message() + u"\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.");
}
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create a project instance
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"WriteWeekdayProperties.mpp");
// Set week days properties
project->Set<DayType>(Prj::WeekStartDay(), Aspose::Tasks::DayType::Monday);
project->Set<int32_t>(Prj::DaysPerMonth(), 24);
project->Set<int32_t>(Prj::MinutesPerDay(), 540);
project->Set<int32_t>(Prj::MinutesPerWeek(), 3240);
project->Save(dataDir + u"WriteWeekdayProperties_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project5.mpp");
// Create a new project task
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"New Activity");
// Define new custom attribute
System::SharedPtr<ExtendedAttributeDefinition> text1Definition = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Text1, nullptr);
project->get_ExtendedAttributes()->Add(text1Definition);
// Add custom text attribute to created task.
task->get_ExtendedAttributes()->Add(text1Definition->CreateExtendedAttribute(System::String(u"Activity attribute")));
// Customize table by adding text attribute field
System::SharedPtr<TableField> attrField = System::MakeObject<TableField>();
attrField->set_Field(Aspose::Tasks::Field::TaskText1);
attrField->set_Width(20);
attrField->set_Title(u"Custom attribute");
attrField->set_AlignTitle(System::Drawing::StringAlignment::Center);
attrField->set_AlignData(System::Drawing::StringAlignment::Center);
System::SharedPtr<Table> table = project->get_Tables()->ToList()->idx_get(0);
table->get_TableFields()->Insert(3, attrField);
project->Save(dataDir + u"ConfigureGantChart_out.mpp", [&]{ auto tmp_0 = System::MakeObject<MPPSaveOptions>(); tmp_0->set_WriteViewData(true); return tmp_0; }());
}
catch (System::Exception& ex)
{
System::Console::WriteLine(ex->get_Message() + u"\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.");
}
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project5.mpp");
// Create a new project task
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"New Activity");
// Define new custom attribute
System::SharedPtr<ExtendedAttributeDefinition> text1Definition = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Text1, nullptr);
project->get_ExtendedAttributes()->Add(text1Definition);
// Add custom text attribute to created task.
task->get_ExtendedAttributes()->Add(text1Definition->CreateExtendedAttribute(System::String(u"Activity attribute")));
// Customize table by adding text attribute field
System::SharedPtr<TableField> attrField = System::MakeObject<TableField>();
attrField->set_Field(Aspose::Tasks::Field::TaskText1);
attrField->set_Width(20);
attrField->set_Title(u"Custom attribute");
attrField->set_AlignTitle(System::Drawing::StringAlignment::Center);
attrField->set_AlignData(System::Drawing::StringAlignment::Center);
System::SharedPtr<Table> table = project->get_Tables()->ToList()->idx_get(0);
table->get_TableFields()->Insert(3, attrField);
// Save project as MPP
project->Save(dataDir + u"ConfigureTheGantChartViewShowSelectedColumnFields_out.mpp", [&]{ auto tmp_0 = System::MakeObject<MPPSaveOptions>(); tmp_0->set_WriteViewData(true); return tmp_0; }());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project5.mpp");
// Add task links
project->get_TaskLinks()->Add(project->get_RootTask()->get_Children()->Add(u"Task 1"), project->get_RootTask()->get_Children()->Add(u"Task 2"));
System::SharedPtr<GanttChartView> view = System::DynamicCast<Aspose::Tasks::GanttChartView>(project->get_DefaultView());
// This code is added for better visualization
view->get_MiddleTimescaleTier()->set_Unit(Aspose::Tasks::Visualization::TimescaleUnit::Months);
project->Set(Prj::TimescaleStart(), System::DateTime(2012, 8, 6));
// Customize middle tier dates
// CSPORTCPP: [WARNING] Using local variables. Make sure that local function ptr does not leave the current scope.
std::function<System::String(System::DateTime date)> _local_func_0 = [](System::DateTime date)
{
return System::MakeArray<System::String>({u"Янв.", u"Фев.", u"Мар.", u"Апр.", u"Май", u"Июнь", u"Июль", u"Авг.", u"Сен.", u"Окт.", u"Ноя.", u"Дек."})->idx_get(date.get_Month() - 1);
};
view->get_MiddleTimescaleTier()->set_DateTimeConverter(_local_func_0);
project->Save(dataDir + u"CustomizeTimescaleTierLabels_out.pdf", Aspose::Tasks::Saving::SaveFileFormat::PDF);
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ReadSpecificGantChartViewData.mpp");
System::SharedPtr<GanttChartView> view = System::DynamicCast_noexcept<Aspose::Tasks::GanttChartView>(project->get_Views()->ToList()->idx_get(0));
System::Console::WriteLine(System::String(u"Is Bar Rounding: ") + view->get_BarRounding());
System::Console::WriteLine(System::String(u"Show Bar Splits? : ") + view->get_ShowBarSplits());
System::Console::WriteLine(System::String(u"Show Drawings? : ") + view->get_ShowDrawings());
System::Console::WriteLine(System::String(u"Roll Up Gantt Bars? ") + view->get_RollUpGanttBars());
System::Console::WriteLine(System::String(u"Hide Rollup Bars When Summary Expa0nded: ") + view->get_HideRollupBarsWhenSummaryExpanded());
System::Console::WriteLine(System::String(u"Bar Size: ") + System::ObjectExt::ToString(view->get_BarSize()));
System::Console::WriteLine(System::String(u"Bar Style: ") + view->get_BarStyles()->get_Count());
System::Console::WriteLine(u"\n************************ RETREIVING BAR STYLES INFORMATION FROM THE VIEW *********************");
int32_t i = 0;
{
auto barStyle_enumerator = (view->get_BarStyles())->GetEnumerator();
decltype(barStyle_enumerator->get_Current()) barStyle;
while (barStyle_enumerator->MoveNext() && (barStyle = barStyle_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(u"Name: ") + barStyle->get_Name());
System::Console::WriteLine(System::String(u"ShowForCategories: ") + System::ObjectExt::ToString(barStyle->get_ShowForCategories()));
System::Console::WriteLine(System::String(u"ShowForTaskUid: ") + System::ObjectExt::ToString(barStyle->get_ShowForTaskUid()));
System::Console::WriteLine(System::String(u"Row: ") + barStyle->get_Row());
System::Console::WriteLine(System::String(u"From: ") + System::ObjectExt::ToString(barStyle->get_From()));
System::Console::WriteLine(System::String(u"To: ") + System::ObjectExt::ToString(barStyle->get_To()));
System::Console::WriteLine(System::String(u"MiddleShape: ") + System::ObjectExt::ToString(barStyle->get_MiddleShape()));
System::Console::WriteLine(System::String(u"MiddleShapeColor: ") + barStyle->get_MiddleShapeColor());
System::Console::WriteLine(System::String(u"StartShape: ") + System::ObjectExt::ToString(barStyle->get_StartShape()));
System::Console::WriteLine(System::String(u"EndShape: ") + System::ObjectExt::ToString(barStyle->get_EndShape()));
System::Console::WriteLine(System::String(u"EndShapeColor: ") + barStyle->get_EndShapeColor());
i++;
}
}
System::Console::WriteLine(System::String(u"Grid Lines Count: ") + view->get_Gridlines()->get_Count());
System::SharedPtr<Gridlines> gridlines = view->get_Gridlines()->idx_get(0);
System::Console::WriteLine(u"\n************************ RETREIVING GRID LINES PROPERTIES *********************");
System::Console::WriteLine(System::String(u"GridLine Type: ") + System::ObjectExt::ToString(gridlines->get_Type()));
System::Console::WriteLine(System::String(u"Gridlines Internval: ") + gridlines->get_Interval());
System::Console::WriteLine(System::String(u"Gridlines Color: ") + gridlines->get_NormalColor());
System::Console::WriteLine(System::String(u"Gridlines NormalPattern: ") + System::ObjectExt::ToString(gridlines->get_NormalPattern()));
System::Console::WriteLine(System::String(u"Gridlines IntervalPattern: ") + System::ObjectExt::ToString(gridlines->get_IntervalPattern()));
System::Console::WriteLine(System::String(u"Gridlines IntervalColor: ") + gridlines->get_IntervalColor());
System::Console::WriteLine(u"\n************************ RETREIVING PROGRESS LINES PROPERTIES *********************");
System::Console::WriteLine(u"ProgressLInes.BeginAtDate: ", System::ObjectExt::Box<System::DateTime>(view->get_ProgressLines()->get_BeginAtDate()));
System::Console::WriteLine(System::String(u"ProgressLines.isBaselinePlan: ") + view->get_ProgressLines()->get_IsBaselinePlan());
System::Console::WriteLine(System::String(u"ProgressLines.DisplaySelected: ") + view->get_ProgressLines()->get_DisplaySelected());
System::Console::WriteLine(System::String(u"ProgressLines.SelectedDates.Count: ") + view->get_ProgressLines()->get_SelectedDates()->get_Count());
System::Console::WriteLine(System::String(u"ProgressLines.SelectedDates[0]: ") + view->get_ProgressLines()->get_SelectedDates()->idx_get(0));
System::Console::WriteLine(System::String(u"ProgressLines.SelectedDates[1]: ") + view->get_ProgressLines()->get_SelectedDates()->idx_get(1));
System::Console::WriteLine(System::String(u"ProgressLines.SelectedDates[2]: ") + view->get_ProgressLines()->get_SelectedDates()->idx_get(2));
System::Console::WriteLine(System::String(u"ProgressLines.DisplayAtRecurringIntervals: ") + view->get_ProgressLines()->get_DisplayAtRecurringIntervals());
System::Console::WriteLine(System::String(u"ProgressLines.RecurringInterval.Interval: ") + System::ObjectExt::ToString(Aspose::Tasks::Visualization::Interval::Weekly), System::ObjectExt::Box<Interval>(view->get_ProgressLines()->get_RecurringInterval()->get_Interval()));
System::Console::WriteLine(System::String(u"ProgressLines.RecurringInterval.WeeklyDays.Count") + view->get_ProgressLines()->get_RecurringInterval()->get_WeeklyDays()->get_Count());
System::Console::WriteLine(System::String(u"Recurring Interval.WeeklyDays: ") + view->get_ProgressLines()->get_RecurringInterval()->get_WeeklyDays());
System::Console::WriteLine(System::String(u"Recurring Interval.DayType.Saturday: ") + view->get_ProgressLines()->get_RecurringInterval()->get_WeeklyDays());
System::Console::WriteLine(System::String(u"Recurring Interval.DayType.Sunday: ") + view->get_ProgressLines()->get_RecurringInterval()->get_WeeklyDays());
System::Console::WriteLine(System::String(u"ProgressLines.ShowDate: ") + view->get_ProgressLines()->get_ShowDate());
System::Console::WriteLine(System::String(u"ProgressLines.ProgressPointShape: ") + System::ObjectExt::ToString(view->get_ProgressLines()->get_ProgressPointShape()));
System::Console::WriteLine(System::String(u"ProgressLines.ProgressPointColor: ") + view->get_ProgressLines()->get_ProgressPointColor());
System::Console::WriteLine(System::String(u"ProgressLines.LineColor: ") + System::Drawing::Color::get_Red(), System::ObjectExt::Box<System::Drawing::Color>(view->get_ProgressLines()->get_LineColor()));
System::Console::WriteLine(System::String(u"ProgressLines.LinePattern: ") + System::ObjectExt::ToString(Aspose::Tasks::Visualization::LinePattern::Solid), System::ObjectExt::Box<LinePattern>(view->get_ProgressLines()->get_LinePattern()));
System::Console::WriteLine(System::String(u"ProgressLines.OtherProgressPointShape: ") + System::ObjectExt::ToString(view->get_ProgressLines()->get_OtherProgressPointShape()));
System::Console::WriteLine(System::String(u"ProgressLines.OtherProgressPointColor: ") + System::ObjectExt::ToString(view->get_ProgressLines()->get_OtherProgressPointColor()));
System::Console::WriteLine(System::String(u"ProgressLines.OtherLineColor: ") + view->get_ProgressLines()->get_OtherLineColor());
System::Console::WriteLine(u"\n************************ BOTTOM TIMESCALE IFORMATION ******************");
System::Console::WriteLine(System::String(u"BottomTimescaleTier.Count:") + view->get_BottomTimescaleTier()->get_Count());
System::Console::WriteLine(System::String(u"BottomTimescaleTier.Unit:") + System::ObjectExt::ToString(Aspose::Tasks::Visualization::TimescaleUnit::Days), System::ObjectExt::Box<System::String>(System::ObjectExt::ToString(view->get_BottomTimescaleTier()->get_Unit())));
System::Console::WriteLine(System::String(u"BottomTimescaleTier.UsesFiscalYear: ") + view->get_BottomTimescaleTier()->get_UsesFiscalYear());
System::Console::WriteLine(System::String(u"BottomTimescaleTier.Alignment: ") + System::ObjectExt::ToString(System::Drawing::StringAlignment::Center), System::ObjectExt::Box<System::String>(System::ObjectExt::ToString(view->get_BottomTimescaleTier()->get_Alignment())));
System::Console::WriteLine(System::String(u"BottomTimescaleTier.ShowTicks: ") + System::Convert::ToString(view->get_BottomTimescaleTier()->get_ShowTicks()));
System::Console::WriteLine(System::String(u"BottomTimescaleTier.Label:") + System::ObjectExt::ToString(Aspose::Tasks::Visualization::DateLabel::DayDi), System::ObjectExt::Box<DateLabel>(view->get_BottomTimescaleTier()->get_Label()));
System::Console::WriteLine(u"\n************************ MIDDLE TIMESCALE IFORMATION ******************");
System::Console::WriteLine(System::String(u"MiddleTimescaleTier.Count:") + view->get_MiddleTimescaleTier()->get_Count());
System::Console::WriteLine(System::String(u"MiddleTimescaleTier.Unit:") + System::ObjectExt::ToString(Aspose::Tasks::Visualization::TimescaleUnit::Days), System::ObjectExt::Box<System::String>(System::ObjectExt::ToString(view->get_MiddleTimescaleTier()->get_Unit())));
System::Console::WriteLine(System::String(u"MiddleTimescaleTier.UsesFiscalYear: ") + view->get_MiddleTimescaleTier()->get_UsesFiscalYear());
System::Console::WriteLine(System::String(u"MiddleTimescaleTier.Alignment: ") + System::ObjectExt::ToString(System::Drawing::StringAlignment::Center), System::ObjectExt::Box<System::String>(System::ObjectExt::ToString(view->get_MiddleTimescaleTier()->get_Alignment())));
System::Console::WriteLine(System::String(u"MiddleTimescaleTier.ShowTicks: ") + System::Convert::ToString(view->get_MiddleTimescaleTier()->get_ShowTicks()));
System::Console::WriteLine(System::String(u"MiddleTimescaleTier.Label:") + System::ObjectExt::ToString(Aspose::Tasks::Visualization::DateLabel::DayDi), System::ObjectExt::Box<DateLabel>(view->get_MiddleTimescaleTier()->get_Label()));
System::Console::WriteLine(u"\n************************ TOP TIMESCALE IFORMATION ******************");
System::Console::WriteLine(System::String(u"TopTimescaleTier.Unit:") + System::ObjectExt::ToString(Aspose::Tasks::Visualization::TimescaleUnit::Days), System::ObjectExt::Box<System::String>(System::ObjectExt::ToString(view->get_TopTimescaleTier()->get_Unit())));
System::Console::WriteLine(System::String(u"TopTimescaleTier.UsesFiscalYear: ") + view->get_TopTimescaleTier()->get_UsesFiscalYear());
System::Console::WriteLine(System::String(u"TopTimescaleTier.Alignment: ") + System::ObjectExt::ToString(System::Drawing::StringAlignment::Center), System::ObjectExt::Box<System::String>(System::ObjectExt::ToString(view->get_TopTimescaleTier()->get_Alignment())));
System::Console::WriteLine(System::String(u"TopTimescaleTier.ShowTicks: ") + System::Convert::ToString(view->get_TopTimescaleTier()->get_ShowTicks()));
System::Console::WriteLine(u"TopTimescaleTier.Label: ", System::ObjectExt::Box<System::String>(System::ObjectExt::ToString(view->get_TopTimescaleTier()->get_Label())));
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Init Gantt Chart View
System::SharedPtr<GanttChartView> view = System::MakeObject<GanttChartView>();
// Set Time Scale count
view->get_BottomTimescaleTier()->set_Count(2);
view->get_BottomTimescaleTier()->set_ShowTicks(false);
view->get_MiddleTimescaleTier()->set_Count(2);
view->get_MiddleTimescaleTier()->set_ShowTicks(false);
// Add Gantt Chart View to project
project->get_Views()->Add(view);
// Add some test data to project
System::SharedPtr<Task> task1 = project->get_RootTask()->get_Children()->Add(u"Task 1");
System::SharedPtr<Task> task2 = project->get_RootTask()->get_Children()->Add(u"Task 2");
task1->Set<Duration>(Tsk::Duration(), task1->get_ParentProject()->GetDuration(24, Aspose::Tasks::TimeUnitType::Hour));
task2->Set<Duration>(Tsk::Duration(), task1->get_ParentProject()->GetDuration(40, Aspose::Tasks::TimeUnitType::Hour));
project->Save(dataDir + u"SetTimeScaleCount_out.pdf", Aspose::Tasks::Saving::SaveFileFormat::PDF);
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Project5.mpp");
// Create a new project task
auto ganttChartView = System::DynamicCast_noexcept<Aspose::Tasks::GanttChartView>(project->get_Views()->ToList()->idx_get(0));
if (ganttChartView != nullptr)
{
ganttChartView->get_TableTextStyles()->Clear();
ganttChartView->get_TableTextStyles()->Add([&]{ auto tmp_0 = System::MakeObject<TableTextStyle>(1); tmp_0->set_Color(System::Drawing::Color::get_Red()); tmp_0->set_Field(Aspose::Tasks::Field::TaskName); return tmp_0; }());
ganttChartView->get_TableTextStyles()->Add([&]{ auto tmp_1 = System::MakeObject<TableTextStyle>(1); tmp_1->set_Color(System::Drawing::Color::get_Gray()); tmp_1->set_Field(Aspose::Tasks::Field::TaskDurationText); return tmp_1; }());
ganttChartView->get_TableTextStyles()->Add([&]{ auto tmp_2 = System::MakeObject<TableTextStyle>(2); tmp_2->set_Color(System::Drawing::Color::get_Blue()); tmp_2->set_FontStyle(System::Drawing::FontStyle::Bold | System::Drawing::FontStyle::Italic | System::Drawing::FontStyle::Underline); return tmp_2; }());
}
// Create new project
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Blank2010.mpp");
// Assign resource "1 TRG: Trade Group" to the "TASK 1" by creating a ResourceAssignment object.
System::SharedPtr<Resource> resource = project->get_Resources()->GetById(1);
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
System::SharedPtr<ResourceAssignment> assignment = project->get_ResourceAssignments()->Add(task, resource);
// Create custom attribute definition with lookup.
System::SharedPtr<ExtendedAttributeDefinition> resCostAttr = ExtendedAttributeDefinition::CreateLookupResourceDefinition(Aspose::Tasks::CustomFieldType::Cost, Aspose::Tasks::ExtendedAttributeResource::Cost5, u"My lookup resource cost");
project->get_ExtendedAttributes()->Add(resCostAttr);
auto value1 = [&]{ auto tmp_0 = System::MakeObject<Value>(); tmp_0->set_NumericValue(1500); tmp_0->set_Description(u"Val 1"); tmp_0->set_Id(1); tmp_0->set_Val(u"1500"); return tmp_0; }();
resCostAttr->AddLookupValue(value1);
resCostAttr->AddLookupValue([&]{ auto tmp_1 = System::MakeObject<Value>(); tmp_1->set_NumericValue(2500); tmp_1->set_Description(u"Val 2"); tmp_1->set_Id(2); return tmp_1; }());
// This value can be seen in "Resource usage" view of MS Project.
auto attributeValue = resCostAttr->CreateExtendedAttribute(value1);
assignment->get_ExtendedAttributes()->Add(attributeValue);
// Create custom attribute definition with lookup.
System::SharedPtr<ExtendedAttributeDefinition> taskCostAttr = ExtendedAttributeDefinition::CreateLookupTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Cost4, u"My lookup task cost");
project->get_ExtendedAttributes()->Add(taskCostAttr);
auto taskLookupValue1 = [&]{ auto tmp_2 = System::MakeObject<Value>(); tmp_2->set_NumericValue(18); tmp_2->set_Description(u"Task val 1"); tmp_2->set_Id(3); tmp_2->set_Val(u"18"); return tmp_2; }();
taskCostAttr->AddLookupValue(taskLookupValue1);
resCostAttr->AddLookupValue([&]{ auto tmp_3 = System::MakeObject<Value>(); tmp_3->set_NumericValue(30); tmp_3->set_Description(u"Task val 2"); tmp_3->set_Id(4); return tmp_3; }());
// This value can be seen in "Task usage" view of MS Project.
assignment->get_ExtendedAttributes()->Add(taskCostAttr->CreateExtendedAttribute(taskLookupValue1));
project->Save(dataDir + u"AddExtendedAttributesToRAWithLookUp_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// Create new project
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Blank2010.mpp");
// Add new task and resource
System::SharedPtr<Task> task1 = project->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc");
// Assign the resource to the desired task
System::SharedPtr<ResourceAssignment> assignment = project->get_ResourceAssignments()->Add(task1, rsc1);
// Custom attributes which is visible in "Resource Usage" view can be created with ExtendedAttributeDefinition.CreateResourceDefinition method.
{
System::SharedPtr<ExtendedAttributeDefinition> resCostAttributeDefinition = ExtendedAttributeDefinition::CreateResourceDefinition(Aspose::Tasks::CustomFieldType::Cost, Aspose::Tasks::ExtendedAttributeResource::Cost5, u"My cost");
project->get_ExtendedAttributes()->Add(resCostAttributeDefinition);
auto value = resCostAttributeDefinition->CreateExtendedAttribute();
// The type of the attribute is "Cost", so we need to use "NumericValue" property.
value->set_NumericValue(1500);
assignment->get_ExtendedAttributes()->Add(value);
}
// Custom attributes which is visible in "Task Usage" view can be created with ExtendedAttributeDefinition.CreateTaskDefinition method
{
System::SharedPtr<ExtendedAttributeDefinition> taskCostAttributeDefinition = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::CustomFieldType::Cost, Aspose::Tasks::ExtendedAttributeTask::Cost5, u"My cost for task");
project->get_ExtendedAttributes()->Add(taskCostAttributeDefinition);
auto value = taskCostAttributeDefinition->CreateExtendedAttribute();
// The type of the attribute is "Cost", so we need to use "NumericValue" property.
value->set_NumericValue(2300);
assignment->get_ExtendedAttributes()->Add(value);
}
project->Save(dataDir + u"AddExtendedAttributesToResourceAssignment_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// Create empty project
System::SharedPtr<Project> project1 = System::MakeObject<Project>();
// Add new task and resource
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");
// Assign the resource desired task
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1);
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceAssignmentTimephasedData.mpp");
// Get the first task of the Project
System::SharedPtr<Task> task = project1->get_RootTask()->get_Children()->GetById(1);
// Get the First Resource Assignment of the Project
System::SharedPtr<ResourceAssignment> firstRA = project1->get_ResourceAssignments()->ToList()->idx_get(0);
// Flat contour is default contour
System::Console::WriteLine(u"Flat contour");
auto tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
{
auto td_enumerator = (tdList)->GetEnumerator();
decltype(td_enumerator->get_Current()) td;
while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
{
System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
}
}
// Change contour
firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::Turtle);
System::Console::WriteLine(u"Turtle contour");
tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
{
auto td_enumerator = (tdList)->GetEnumerator();
decltype(td_enumerator->get_Current()) td;
while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
{
System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
}
}
// Change contour
firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::BackLoaded);
System::Console::WriteLine(u"BackLoaded contour");
tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
{
auto td_enumerator = (tdList)->GetEnumerator();
decltype(td_enumerator->get_Current()) td;
while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
{
System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
}
}
// Change contour
firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::FrontLoaded);
System::Console::WriteLine(u"FrontLoaded contour");
tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
{
auto td_enumerator = (tdList)->GetEnumerator();
decltype(td_enumerator->get_Current()) td;
while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
{
System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
}
}
// Change contour
firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::Bell);
System::Console::WriteLine(u"Bell contour");
tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
{
auto td_enumerator = (tdList)->GetEnumerator();
decltype(td_enumerator->get_Current()) td;
while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
{
System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
}
}
// Change contour
firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::EarlyPeak);
System::Console::WriteLine(u"EarlyPeak contour");
tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
{
auto td_enumerator = (tdList)->GetEnumerator();
decltype(td_enumerator->get_Current()) td;
while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
{
System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
}
}
// Change contour
firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::LatePeak);
System::Console::WriteLine(u"LatePeak contour");
tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
{
auto td_enumerator = (tdList)->GetEnumerator();
decltype(td_enumerator->get_Current()) td;
while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
{
System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
}
}
// Change contour
firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::DoublePeak);
System::Console::WriteLine(u"DoublePeak contour");
tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
{
auto td_enumerator = (tdList)->GetEnumerator();
decltype(td_enumerator->get_Current()) td;
while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
{
System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
}
}
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"GetGeneralResourceAssignmentProperties.mpp");
// Print general resource assignment properties
{
auto ra_enumerator = (project1->get_ResourceAssignments())->GetEnumerator();
decltype(ra_enumerator->get_Current()) ra;
while (ra_enumerator->MoveNext() && (ra = ra_enumerator->get_Current(), true))
{
System::Console::WriteLine(ra->Get<int32_t>(Asn::Uid()));
System::Console::WriteLine(ra->Get<System::DateTime>(Asn::Start()).ToShortDateString());
System::Console::WriteLine(ra->Get<System::DateTime>(Asn::Finish()).ToShortDateString());
}
}
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceAssignmentBudget.mpp");
// Print assignment budget cost and budget work
{
auto ra_enumerator = (project1->get_ResourceAssignments())->GetEnumerator();
decltype(ra_enumerator->get_Current()) ra;
while (ra_enumerator->MoveNext() && (ra = ra_enumerator->get_Current(), true))
{
System::Console::WriteLine(ra->Get<System::Decimal>(Asn::BudgetCost()));
System::Console::WriteLine(System::ObjectExt::ToString(ra->Get<Duration>(Asn::BudgetWork())));
}
}
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceAssignmentCosts.mpp");
// Print resource assignment costs
{
auto ra_enumerator = (project1->get_ResourceAssignments())->GetEnumerator();
decltype(ra_enumerator->get_Current()) ra;
while (ra_enumerator->MoveNext() && (ra = ra_enumerator->get_Current(), true))
{
System::Console::WriteLine(ra->Get<System::Decimal>(Asn::Cost()));
System::Console::WriteLine(ra->Get<double>(Asn::ACWP()));
System::Console::WriteLine(ra->Get<double>(Asn::BCWP()));
System::Console::WriteLine(ra->Get<double>(Asn::BCWS()));
}
}
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceAssignmentOvertimes.mpp");
// Print assignment overtimes
{
auto ra_enumerator = (project1->get_ResourceAssignments())->GetEnumerator();
decltype(ra_enumerator->get_Current()) ra;
while (ra_enumerator->MoveNext() && (ra = ra_enumerator->get_Current(), true))
{
System::Console::WriteLine(ra->Get<System::Decimal>(Asn::OvertimeCost()));
System::Console::WriteLine(System::ObjectExt::ToString(ra->Get<Duration>(Asn::OvertimeWork())));
System::Console::WriteLine(ra->Get<System::Decimal>(Asn::RemainingCost()));
System::Console::WriteLine(ra->Get<System::Decimal>(Asn::RemainingOvertimeCost()));
System::Console::WriteLine(System::ObjectExt::ToString(ra->Get<Duration>(Asn::RemainingOvertimeWork())));
System::Console::WriteLine(System::ObjectExt::ToString(ra->Get<Duration>(Asn::RemainingOvertimeWork())));
}
}
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceAssignmentPercentWorkComplete.mpp");
// Print assignment percent completion
{
auto ra_enumerator = (project1->get_ResourceAssignments())->GetEnumerator();
decltype(ra_enumerator->get_Current()) ra;
while (ra_enumerator->MoveNext() && (ra = ra_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::Convert::ToString(ra->Get<int32_t>(Asn::PercentWorkComplete())));
}
}
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceAssignmentStopResumeDates.mpp");
// Print resource assignment's stop and resume dates
{
auto ra_enumerator = (project1->get_ResourceAssignments())->GetEnumerator();
decltype(ra_enumerator->get_Current()) ra;
while (ra_enumerator->MoveNext() && (ra = ra_enumerator->get_Current(), true))
{
if (ra->Get<System::DateTime>(Asn::Stop()).ToShortDateString() == u"1/1/2000")
{
System::Console::WriteLine(u"NA");
}
else
{
System::Console::WriteLine(ra->Get<System::DateTime>(Asn::Stop()).ToShortDateString());
}
if (ra->Get<System::DateTime>(Asn::Resume()).ToShortDateString() == u"1/1/2000")
{
System::Console::WriteLine(u"NA");
}
else
{
System::Console::WriteLine(ra->Get<System::DateTime>(Asn::Resume()).ToShortDateString());
}
}
}
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceAssignmentVariance.mpp");
// Print assignment variances
{
auto ra_enumerator = (project1->get_ResourceAssignments())->GetEnumerator();
decltype(ra_enumerator->get_Current()) ra;
while (ra_enumerator->MoveNext() && (ra = ra_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::ObjectExt::Box<Duration>(ra->Get<Duration>(Asn::WorkVariance())));
System::Console::WriteLine(ra->Get<double>(Asn::CostVariance()));
System::Console::WriteLine(System::ObjectExt::Box<Duration>(ra->Get<Duration>(Asn::StartVariance())));
System::Console::WriteLine(System::ObjectExt::Box<Duration>(ra->Get<Duration>(Asn::FinishVariance())));
}
}
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"New project 2013.mpp");
auto task = project->get_RootTask()->get_Children()->Add(u"t1");
auto materialResource = project->get_Resources()->Add(u"materialResource");
materialResource->Set<ResourceType>(Rsc::Type(), Aspose::Tasks::ResourceType::Material);
auto nonMaterialResource = project->get_Resources()->Add(u"nonMaterialResource");
nonMaterialResource->Set<ResourceType>(Rsc::Type(), Aspose::Tasks::ResourceType::Work);
auto materialResourceAssignment = project->get_ResourceAssignments()->Add(task, materialResource);
materialResourceAssignment->Set<RateScaleType>(Asn::RateScale(), Aspose::Tasks::RateScaleType::Week);
materialResourceAssignment->Set<int32_t>(Asn::Uid(), 1);
auto nonMaterialResourceAssignment = project->get_ResourceAssignments()->Add(task, nonMaterialResource);
nonMaterialResourceAssignment->Set<RateScaleType>(Asn::RateScale(), Aspose::Tasks::RateScaleType::Week);
nonMaterialResourceAssignment->Set<int32_t>(Asn::Uid(), 2);
project->Save(dataDir + u"output.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
auto resavedProject = System::MakeObject<Project>(dataDir + u"output.mpp");
auto resavedMaterialResourceAssignment = resavedProject->get_ResourceAssignments()->GetByUid(1);
System::Console::WriteLine(System::ObjectExt::Box<RateScaleType>(resavedMaterialResourceAssignment->Get<RateScaleType>(Asn::RateScale())));
// only material resource assignments can have non-zero rate scale value.
auto resavedNonMaterialResourceAssignment = resavedProject->get_ResourceAssignments()->GetByUid(2);
// Create empty project
System::SharedPtr<Project> project1 = System::MakeObject<Project>();
// Add new task and resource
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(10));
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(15));
// Assign the resource desired task
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1);
// Create project instance and access first task and resource
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"UpdateResourceAssignment.mpp");
System::SharedPtr<Task> task = project1->get_RootTask()->get_Children()->GetById(1);
System::SharedPtr<Resource> rsc = project1->get_Resources()->GetById(1);
// Create resource assignment
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task, rsc);
assn->Set<System::String>(Asn::Notes(), u"Newly added assignment");
// Save project as MPP
project1->Save(dataDir + u"UpdateResourceAssignment_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create project instance
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Add resources
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc");
// Save project as XML
project->Save(dataDir + u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceCalendar.mpp");
// Display base calendar name for all resources
{
auto res_enumerator = (project1->get_Resources())->GetEnumerator();
decltype(res_enumerator->get_Current()) res;
while (res_enumerator->MoveNext() && (res = res_enumerator->get_Current(), true))
{
if (res->Get<System::String>(Rsc::Name()) != nullptr)
{
System::Console::WriteLine(res->Get<System::SharedPtr<Calendar>>(Rsc::Calendar())->get_BaseCalendar()->get_Name());
}
}
}
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceCosts.mpp");
// Display all resources costs
{
auto res_enumerator = (project1->get_Resources())->GetEnumerator();
decltype(res_enumerator->get_Current()) res;
while (res_enumerator->MoveNext() && (res = res_enumerator->get_Current(), true))
{
if (res->Get<System::String>(Rsc::Name()) != nullptr)
{
System::Console::WriteLine(res->Get<System::Decimal>(Rsc::Cost()));
System::Console::WriteLine(res->Get<double>(Rsc::ACWP()));
System::Console::WriteLine(res->Get<double>(Rsc::BCWS()));
System::Console::WriteLine(res->Get<double>(Rsc::BCWP()));
}
}
}
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceOvertime.mpp");
// Display overtime related parameters for all resources
{
auto res_enumerator = (project1->get_Resources())->GetEnumerator();
decltype(res_enumerator->get_Current()) res;
while (res_enumerator->MoveNext() && (res = res_enumerator->get_Current(), true))
{
if (res->Get<System::String>(Rsc::Name()) != nullptr)
{
System::Console::WriteLine(res->Get<System::Decimal>(Rsc::OvertimeCost()));
System::Console::WriteLine(System::ObjectExt::ToString(res->Get<Duration>(Rsc::OvertimeWork())));
System::Console::WriteLine(System::ObjectExt::ToString(res->Get<RateFormatType>(Rsc::OvertimeRateFormat())));
}
}
}
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourcePercentWorkComplete.mpp");
// Display work percentage completion for all resources
{
auto res_enumerator = (project1->get_Resources())->GetEnumerator();
decltype(res_enumerator->get_Current()) res;
while (res_enumerator->MoveNext() && (res = res_enumerator->get_Current(), true))
{
if (res->Get<System::String>(Rsc::Name()) != nullptr)
{
System::Console::WriteLine(res->Get<int32_t>(Rsc::PercentWorkComplete()));
}
}
}
// Read the input Project file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"WorkVariance.mpp");
Key<System::SharedPtr<Resource>, AsnKey> asnRsc = Asn::Resource();
{
auto ra_enumerator = (project->get_ResourceAssignments())->GetEnumerator();
decltype(ra_enumerator->get_Current()) ra;
while (ra_enumerator->MoveNext() && (ra = ra_enumerator->get_Current(), true))
{
System::SharedPtr<Resource> rsc;
// C# preprocessor directive: #if !__cplusplus
// C# preprocessor directive: #endif
rsc = ra->Get(asnRsc);
double d = rsc->Get<double>(Rsc::WorkVariance());
System::Console::WriteLine(d);
}
}
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceTimephasedData.mpp");
// Get the Resource by its ID
System::SharedPtr<Resource> resource = project1->get_Resources()->GetByUid(1);
// Print Timephased data of ResourceWork
System::Console::WriteLine(u"Timephased data of ResourceWork");
{
auto td_enumerator = (resource->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate())))->GetEnumerator();
decltype(td_enumerator->get_Current()) td;
while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
{
System::Console::Write(System::String(u"Start: ") + td->get_Start().ToShortDateString());
System::Console::Write(System::String(u" Work: ") + td->get_Value() + System::Environment::get_NewLine());
}
}
// Print Timephased data of ResourceCost
System::Console::WriteLine(u"Timephased data of ResourceCost");
{
auto td_enumerator = (resource->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()), Aspose::Tasks::TimephasedDataType::ResourceCost))->GetEnumerator();
decltype(td_enumerator->get_Current()) td;
while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
{
System::Console::Write(System::String(u"Start: ") + td->get_Start().ToShortDateString());
System::Console::Write(System::String(u" Cost: ") + td->get_Value() + System::Environment::get_NewLine());
}
}
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceSheetView.mpp");
// Set the Presentation Format to Resource Sheet
PresentationFormat format = Aspose::Tasks::Visualization::PresentationFormat::ResourceSheet;
// Define rendering options
System::SharedPtr<SaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_PresentationFormat(format);
project1->Save(dataDir + u"ResourceSheetView_out.pdf", options);
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceUsageView.mpp");
// Define the SaveOptions with required TimeScale settings as Days
System::SharedPtr<SaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::Days);
// Set the Presentation format to ResourceUsage
options->set_PresentationFormat(Aspose::Tasks::Visualization::PresentationFormat::ResourceUsage);
// Save the Project
System::String outputFile = u"result_ResourceUsageView_days_out.pdf";
project1->Save(dataDir + outputFile, options);
// Set the Tiemscale settings to ThirdsOfMonths and save the Project
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths);
outputFile = u"result_ResourceUsageView_thirdsOfMonths_out.pdf";
project1->Save(dataDir + outputFile, options);
// Set the Timescale settings to Months and save the Project
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::Months);
outputFile = u"result_ResourceUsageView_months_out.pdf";
project1->Save(dataDir + outputFile, options);
void ResourcePrefixForNestedResources::Run()
{
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
{
System::SharedPtr<System::IO::FileStream> fs = System::MakeObject<System::IO::FileStream>(dataDir + u"Project1.mpp", System::IO::FileMode::Open);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ fs});
// ------------------------------------------
try
{
System::SharedPtr<Project> project = System::MakeObject<Project>(fs);
System::SharedPtr<HtmlSaveOptions> options = GetSaveOptions(1);
{
System::SharedPtr<System::IO::FileStream> stream = System::MakeObject<System::IO::FileStream>(dataDir + u"document.html", System::IO::FileMode::Create);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ stream});
// ------------------------------------------
try
{
project->Save(stream, options);
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
}
catch(...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
}
}
#if defined(__MSVC__)
#pragma warning( pop )
#elif defined(__GNUC__)
#pragma GCC diagnostic pop
#endif
void ResourcePrefixForNestedResources::CssSaving(System::SharedPtr<CssSavingArgs> args)
{
System::SharedPtr<System::IO::FileStream> stream = System::MakeObject<System::IO::FileStream>(dataDir() + u"css/" + args->get_FileName(), System::IO::FileMode::Create);
args->set_Stream(stream);
args->set_KeepStreamOpen(false);
args->set_Uri(dataDir() + u"css/" + args->get_FileName());
}
void ResourcePrefixForNestedResources::FontSaving(System::SharedPtr<FontSavingArgs> args)
{
System::SharedPtr<System::IO::FileStream> stream = System::MakeObject<System::IO::FileStream>(dataDir() + u"fonts/" + args->get_FileName(), System::IO::FileMode::Create);
args->set_Stream(stream);
args->set_KeepStreamOpen(false);
args->set_Uri(dataDir() + u"fonts/" + args->get_FileName());
}
void ResourcePrefixForNestedResources::ImageSaving(System::SharedPtr<ImageSavingArgs> args)
{
if (args->get_FileName().EndsWith(u"png"))
{
System::SharedPtr<System::IO::FileStream> stream1 = System::MakeObject<System::IO::FileStream>(dataDir() + u"resources/nestedResources/" + args->get_FileName(), System::IO::FileMode::Create);
args->set_Stream(stream1);
args->set_KeepStreamOpen(false);
args->set_Uri(dataDir() + u"resources/" + args->get_FileName());
//args->set_NestedUri(dataDir() + u"nestedResources/" + args->get_FileName());
}
else
{
System::SharedPtr<System::IO::FileStream> stream2 = System::MakeObject<System::IO::FileStream>(dataDir() + u"resources/" + args->get_FileName(), System::IO::FileMode::Create);
args->set_Stream(stream2);
args->set_KeepStreamOpen(false);
args->set_Uri(dataDir() + u"resources/" + args->get_FileName());
}
}
System::SharedPtr<Aspose::Tasks::Saving::HtmlSaveOptions> ResourcePrefixForNestedResources::GetSaveOptions(int32_t pageNumber)
{
auto saveOptions = [&]{ auto tmp_0 = System::MakeObject<HtmlSaveOptions>(); tmp_0->set_Pages(System::MakeObject<System::Collections::Generic::List<int32_t>>()); tmp_0->set_IncludeProjectNameInPageHeader(false); tmp_0->set_IncludeProjectNameInTitle(false); tmp_0->set_PageSize(Aspose::Tasks::Visualization::PageSize::A3); tmp_0->set_Timescale(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths); tmp_0->set_ReduceFooterGap(true); tmp_0->set_FontFaceTypes(Aspose::Tasks::FontFaceType::Ttf); tmp_0->set_ExportCss(Aspose::Tasks::ResourceExportType::AsFile); tmp_0->set_ExportFonts(Aspose::Tasks::ResourceExportType::AsFile); tmp_0->set_ExportImages(Aspose::Tasks::ResourceExportType::AsFile); return tmp_0; }();
System::SharedPtr<ResourcePrefixForNestedResources> program = System::MakeObject<ResourcePrefixForNestedResources>();
saveOptions->set_FontSavingCallback(program);
saveOptions->set_CssSavingCallback(program);
saveOptions->set_ImageSavingCallback(program);
saveOptions->get_Pages()->Clear();
saveOptions->get_Pages()->Add(pageNumber);
if (!System::IO::Directory::Exists(dataDir() + u"fonts"))
{
System::IO::Directory::CreateDirectory_(dataDir() + u"fonts");
}
if (!System::IO::Directory::Exists(dataDir() + u"resources"))
{
System::IO::Directory::CreateDirectory_(dataDir() + u"resources");
}
if (!System::IO::Directory::Exists(dataDir() + u"nestedResources"))
{
System::IO::Directory::CreateDirectory_(dataDir() + u"resources/nestedResources");
}
if (!System::IO::Directory::Exists(dataDir() + u"css"))
{
System::IO::Directory::CreateDirectory_(dataDir() + u"css");
}
return saveOptions;
}
class ResourcePrefixForNestedResources : public Aspose::Tasks::ICssSavingCallback, public Aspose::Tasks::IFontSavingCallback, public Aspose::Tasks::IImageSavingCallback
{
typedef ResourcePrefixForNestedResources ThisType;
typedef Aspose::Tasks::ICssSavingCallback BaseType;
typedef Aspose::Tasks::IFontSavingCallback BaseType1;
typedef Aspose::Tasks::IImageSavingCallback BaseType2;
typedef ::System::BaseTypesInfo<BaseType, BaseType1, BaseType2> ThisTypeBaseTypesInfo;
RTTI_INFO_DECL();
public:
static System::String dataDir();
static void Run();
void CssSaving(System::SharedPtr<CssSavingArgs> args);
void FontSaving(System::SharedPtr<FontSavingArgs> args);
void ImageSaving(System::SharedPtr<ImageSavingArgs> args);
private:
static System::SharedPtr<Aspose::Tasks::Saving::HtmlSaveOptions> GetSaveOptions(int32_t pageNumber);
};
// Add resources
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc");
// Set resource properties, Resource properties are represented by static class Rsc
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(15));
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(20));
// Create project instance and add resource
System::SharedPtr<Project> project = System::MakeObject<Project>();
System::SharedPtr<Resource> res = project->get_Resources()->Add(u"Resource1");
// Add standard calendar and assign to resource
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"Resource1");
res->Set<System::SharedPtr<Calendar>>(Rsc::Calendar(), cal);
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceExtendedAttributes.mpp");
// Define extended attribute
System::SharedPtr<ExtendedAttributeDefinition> myNumber1 = project1->get_ExtendedAttributes()->GetById((int32_t)Aspose::Tasks::ExtendedAttributeTask::Number1);
if (myNumber1 == nullptr)
{
myNumber1 = ExtendedAttributeDefinition::CreateResourceDefinition(Aspose::Tasks::ExtendedAttributeResource::Number1, u"Age");
project1->get_ExtendedAttributes()->Add(myNumber1);
}
// Create extended attribute and set its value
System::SharedPtr<ExtendedAttribute> number1Resource = myNumber1->CreateExtendedAttribute();
number1Resource->set_NumericValue(System::Decimal("30.5345"));
// Add a new resource and its extended attribute
System::SharedPtr<Resource> rsc = project1->get_Resources()->Add(u"R1");
rsc->get_ExtendedAttributes()->Add(number1Resource);
// Save project as MPP
project1->Save(dataDir + u"ResourceExtendedAttributes_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"UpdateResourceData.mpp");
// Add resource and set some properties
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(30));
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(45));
rsc1->Set<System::String>(Rsc::Group(), u"Workgroup1");
// Save the Project
project1->Save(dataDir + u"UpdateResourceData_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// Create project instance
System::SharedPtr<Project> project1 = System::MakeObject<Project>();
// Creating TaskBaseline:
System::SharedPtr<Task> task = project1->get_RootTask()->get_Children()->Add(u"Task");
// Set baseline for specified tasks and entire project
project1->SetBaseline(Aspose::Tasks::BaselineType::Baseline, System::MakeArray<System::SharedPtr<Aspose::Tasks::Task>>({task}));
project1->SetBaseline(Aspose::Tasks::BaselineType::Baseline);
// Create project instance
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Creating TaskBaseline
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task");
project->SetBaseline(Aspose::Tasks::BaselineType::Baseline);
// Display task baseline duration
System::SharedPtr<TaskBaseline> baseline = task->get_Baselines()->ToList()->idx_get(0);
System::Console::WriteLine(u"Baseline duration is 1 day: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(System::ObjectExt::ToString(baseline->get_Duration()), u"1 day")));
System::Console::WriteLine(u"BaselineStart is same as Task Start: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(baseline->get_Start(), task->Get<System::DateTime>(Tsk::Start()))));
System::Console::WriteLine(u"BaselineFinish is same as Task Finish: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(baseline->get_Finish(), task->Get<System::DateTime>(Tsk::Finish()))));
// Create project instance
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Creating TaskBaseline
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task");
project->SetBaseline(Aspose::Tasks::BaselineType::Baseline);
// Display task baseline schedule
System::SharedPtr<TaskBaseline> baseline = task->get_Baselines()->ToList()->idx_get(0);
System::Console::WriteLine(u"Baseline duration is 1 day: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(System::ObjectExt::ToString(baseline->get_Duration()), u"1 day")));
System::Console::WriteLine(u"BaselineStart is same as Task Start: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(baseline->get_Start(), task->Get<System::DateTime>(Tsk::Start()))));
System::Console::WriteLine(u"BaselineFinish is same as Task Finish: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(baseline->get_Finish(), task->Get<System::DateTime>(Tsk::Finish()))));
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create new project
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"Blank2010.mpp");
// C# preprocessor directive: #region Adding Plain Text Attribute
//Create an Extended Attribute Definition of Text1 type
auto taskExtendedAttributeText1Definition = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::CustomFieldType::Text, Aspose::Tasks::ExtendedAttributeTask::Text1, u"Task City Name");
//Add it to the project's Extended Attributes collection
project->get_ExtendedAttributes()->Add(taskExtendedAttributeText1Definition);
//Add a task to the project
auto task = project->get_RootTask()->get_Children()->Add(u"Task 1");
//Create an Extended Attribute from the Attribute Definition
auto taskExtendedAttributeText1 = taskExtendedAttributeText1Definition->CreateExtendedAttribute();
//Assign a value to the generated Extended Attribute. The type of the attribute is "Text", the "TextValue" property should be used.
taskExtendedAttributeText1->set_TextValue(u"London");
//Add the Extended Attribute to task
task->get_ExtendedAttributes()->Add(taskExtendedAttributeText1);
project->Save(dataDir + u"PlainTextExtendedAttribute_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// C# preprocessor directive: #endregion
// C# preprocessor directive: #region Adding Text Attribute with Lookup option
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Blank2010.mpp");
//Create an Extended Attribute Definition of Text2 type
auto taskExtendedAttributeText2Definition = ExtendedAttributeDefinition::CreateLookupTaskDefinition(Aspose::Tasks::CustomFieldType::Text, Aspose::Tasks::ExtendedAttributeTask::Text2, u"Task Towns Name");
//Add lookup values for the extended attribute definition
taskExtendedAttributeText2Definition->AddLookupValue([&]{ auto tmp_0 = System::MakeObject<Value>(); tmp_0->set_Id(1); tmp_0->set_StringValue(u"Town1"); tmp_0->set_Description(u"This is Town1"); return tmp_0; }());
taskExtendedAttributeText2Definition->AddLookupValue([&]{ auto tmp_1 = System::MakeObject<Value>(); tmp_1->set_Id(2); tmp_1->set_StringValue(u"Town2"); tmp_1->set_Description(u"This is Town2"); return tmp_1; }());
//Add it to the porject's Extended Attributes collection
project1->get_ExtendedAttributes()->Add(taskExtendedAttributeText2Definition);
//Add a task to the project
auto task2 = project1->get_RootTask()->get_Children()->Add(u"Task 2");
//Crate an Extended Attribute from the Text2 Lookup Definition for Id 1
auto taskExtendedAttributeText2 = taskExtendedAttributeText2Definition->CreateExtendedAttribute(taskExtendedAttributeText2Definition->get_ValueList()->idx_get(1));
//Add the Extended Attribute to task
task2->get_ExtendedAttributes()->Add(taskExtendedAttributeText2);
project1->Save(dataDir + u"TextExtendedAttributeWithLookup_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// C# preprocessor directive: #endregion
// C# preprocessor directive: #region Adding Duration Attribute with Lookup option
System::SharedPtr<Project> project2 = System::MakeObject<Project>(dataDir + u"Blank2010.mpp");
//Create an Extended Attribute Definition of Duration2 type
auto taskExtendedAttributeDuration2Definition = ExtendedAttributeDefinition::CreateLookupTaskDefinition(Aspose::Tasks::CustomFieldType::Duration, Aspose::Tasks::ExtendedAttributeTask::Duration2, u"Some duration");
//Add lookup values for extended attribute definition
taskExtendedAttributeDuration2Definition->AddLookupValue([&]{ auto tmp_2 = System::MakeObject<Value>(); tmp_2->set_Id(2); tmp_2->set_Duration(project2->GetDuration(4, Aspose::Tasks::TimeUnitType::Hour)); tmp_2->set_Description(u"4 hours"); return tmp_2; }());
taskExtendedAttributeDuration2Definition->AddLookupValue([&]{ auto tmp_3 = System::MakeObject<Value>(); tmp_3->set_Id(3); tmp_3->set_Duration(project2->GetDuration(1, Aspose::Tasks::TimeUnitType::Day)); tmp_3->set_Description(u"1 day"); return tmp_3; }());
taskExtendedAttributeDuration2Definition->AddLookupValue([&]{ auto tmp_4 = System::MakeObject<Value>(); tmp_4->set_Id(4); tmp_4->set_Duration(project2->GetDuration(1, Aspose::Tasks::TimeUnitType::Hour)); tmp_4->set_Description(u"1 hour"); return tmp_4; }());
taskExtendedAttributeDuration2Definition->AddLookupValue([&]{ auto tmp_5 = System::MakeObject<Value>(); tmp_5->set_Id(7); tmp_5->set_Duration(project2->GetDuration(10, Aspose::Tasks::TimeUnitType::Day)); tmp_5->set_Description(u"10 days"); return tmp_5; }());
//Add the definition to the project's Extended Attributes collection
project2->get_ExtendedAttributes()->Add(taskExtendedAttributeDuration2Definition);
//Add a task to the project
auto task3 = project2->get_RootTask()->get_Children()->Add(u"Task 3");
//Create an Extended Attribute from the Duration2 Lookup Definition for Id 3
auto taskExtendedAttributeDuration2 = taskExtendedAttributeDuration2Definition->CreateExtendedAttribute(taskExtendedAttributeDuration2Definition->get_ValueList()->idx_get(3));
//Add the Extended Attribute to task
task3->get_ExtendedAttributes()->Add(taskExtendedAttributeDuration2);
project2->Save(dataDir + u"DurationExtendedAttributeWithLookup_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// C# preprocessor directive: #endregion
// C# preprocessor directive: #region Adding Date-Time with Lookup option
System::SharedPtr<Project> project3 = System::MakeObject<Project>(dataDir + u"Blank2010.mpp");
//Create an Extended Attribute Definition of Finish2 Type
auto taskExtendedAttributeFinish2Definition = ExtendedAttributeDefinition::CreateLookupTaskDefinition(Aspose::Tasks::CustomFieldType::Finish, Aspose::Tasks::ExtendedAttributeTask::Finish2, u"Some finish");
//Add lookup values for extended attribute defintion
taskExtendedAttributeFinish2Definition->AddLookupValue([&]{ auto tmp_6 = System::MakeObject<Value>(); tmp_6->set_Id(2); tmp_6->set_DateTimeValue(System::DateTime(1984, 1, 1, 00, 00, 1)); tmp_6->set_Description(u"This is Value2"); return tmp_6; }());
taskExtendedAttributeFinish2Definition->AddLookupValue([&]{ auto tmp_7 = System::MakeObject<Value>(); tmp_7->set_Id(3); tmp_7->set_DateTimeValue(System::DateTime(1994, 1, 1, 00, 1, 1)); tmp_7->set_Description(u"This is Value3"); return tmp_7; }());
taskExtendedAttributeFinish2Definition->AddLookupValue([&]{ auto tmp_8 = System::MakeObject<Value>(); tmp_8->set_Id(4); tmp_8->set_DateTimeValue(System::DateTime(2009, 12, 31, 00, 00, 00)); tmp_8->set_Description(u"This is Value4"); return tmp_8; }());
taskExtendedAttributeFinish2Definition->AddLookupValue([&]{ auto tmp_9 = System::MakeObject<Value>(); tmp_9->set_Id(7); tmp_9->set_DateTimeValue(System::DateTime::get_Now()); tmp_9->set_Description(u"This is Value6"); return tmp_9; }());
//Add the definition to the project's Extended Attributes collection
project3->get_ExtendedAttributes()->Add(taskExtendedAttributeFinish2Definition);
//Add a task to the project
auto task4 = project3->get_RootTask()->get_Children()->Add(u"Task 4");
//Create an Extneded Attribute from the Finish2 Lookup Definition for Id 3
auto taskExtendedAttributeFinish2 = taskExtendedAttributeFinish2Definition->CreateExtendedAttribute(taskExtendedAttributeFinish2Definition->get_ValueList()->idx_get(3));
//Add the Extended Attribute to task
task4->get_ExtendedAttributes()->Add(taskExtendedAttributeFinish2);
// Save the Project
project3->Save(dataDir + u"FinishExtendedAttributeWithLookup_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// C# preprocessor directive: #endregion
System::SharedPtr<Project> proj = System::MakeObject<Project>();
proj->set_WBSCodeDefinition(System::MakeObject<WBSCodeDefinition>());
proj->get_WBSCodeDefinition()->set_GenerateWBSCode(true);
proj->get_WBSCodeDefinition()->set_VerifyUniqueness(true);
proj->get_WBSCodeDefinition()->set_CodePrefix(u"CRS-");
System::SharedPtr<WBSCodeMask> mask = System::MakeObject<WBSCodeMask>();
mask->set_Length(2);
mask->set_Separator(u"-");
mask->set_Sequence(Aspose::Tasks::WBSSequence::OrderedNumbers);
proj->get_WBSCodeDefinition()->get_CodeMaskCollection()->Add(mask);
mask = System::MakeObject<WBSCodeMask>();
mask->set_Length(1);
mask->set_Separator(u"-");
mask->set_Sequence(Aspose::Tasks::WBSSequence::OrderedUppercaseLetters);
proj->get_WBSCodeDefinition()->get_CodeMaskCollection()->Add(mask);
System::SharedPtr<Task> tsk = proj->get_RootTask()->get_Children()->Add(u"Task 1");
System::SharedPtr<Task> child = tsk->get_Children()->Add(u"Task 2");
proj->Recalculate();
proj->Save(dataDir + u"AddWBSCodes_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
// Read project
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::String projectName = u"SplitTaskFinishDate.mpp";
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + projectName);
// Find a split task
System::SharedPtr<Task> splitTask = project->get_RootTask()->get_Children()->GetByUid(4);
// Find the project calendar
System::SharedPtr<Calendar> calendar = project->Get<System::SharedPtr<Calendar>>(Prj::Calendar());
// Calculate task's finish date with different durations
System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get<System::DateTime>(Tsk::Start()).ToShortDateString() + u"\n+ Duration 8 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(8, 0, 0)));
System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get<System::DateTime>(Tsk::Start()).ToShortDateString() + u"\n+ Duration 16 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(16, 0, 0)));
System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get<System::DateTime>(Tsk::Start()).ToShortDateString() + u"\n+ Duration 24 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(24, 0, 0)));
System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get<System::DateTime>(Tsk::Start()).ToShortDateString() + u"\n+ Duration 28 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(28, 0, 0)));
System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get<System::DateTime>(Tsk::Start()).ToShortDateString() + u"\n+ Duration 32 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(32, 0, 0)));
System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get<System::DateTime>(Tsk::Start()).ToShortDateString() + u"\n+ Duration 46 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(46, 0, 0)));
System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get<System::DateTime>(Tsk::Start()).ToShortDateString() + u"\n+ Duration 61 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(61, 0, 0)));
System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get<System::DateTime>(Tsk::Start()).ToShortDateString() + u"\n+ Duration 75 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(75, 0, 0)));
System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get<System::DateTime>(Tsk::Start()).ToShortDateString() + u"\n+ Duration 80 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(80, 0, 0)));
System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get<System::DateTime>(Tsk::Start()).ToShortDateString() + u"\n+ Duration 120 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(120, 0, 0)));
System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get<System::DateTime>(Tsk::Start()).ToShortDateString() + u"\n+ Duration 150 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(150, 0, 0)));
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"TaskDurations.mpp");
// Get a task to calculate its duration in different formats
System::SharedPtr<Task> task = project1->get_RootTask()->get_Children()->GetById(1);
// Get the duration in Minutes, Days, Hours, Weeks and Months
double mins = task->Get<Duration>(Tsk::Duration()).Convert(Aspose::Tasks::TimeUnitType::Minute).ToDouble();
System::Console::WriteLine(u"Duration in Mins: {0}", System::ObjectExt::Box<double>(mins));
double days = task->Get<Duration>(Tsk::Duration()).Convert(Aspose::Tasks::TimeUnitType::Day).ToDouble();
System::Console::WriteLine(u"Duration in Days: {0}", System::ObjectExt::Box<double>(days));
double hours = task->Get<Duration>(Tsk::Duration()).Convert(Aspose::Tasks::TimeUnitType::Hour).ToDouble();
System::Console::WriteLine(u"Duration in Hours: {0}", System::ObjectExt::Box<double>(hours));
double weeks = task->Get<Duration>(Tsk::Duration()).Convert(Aspose::Tasks::TimeUnitType::Week).ToDouble();
System::Console::WriteLine(u"Duration in Weeks: {0}", System::ObjectExt::Box<double>(weeks));
double months = task->Get<Duration>(Tsk::Duration()).Convert(Aspose::Tasks::TimeUnitType::Month).ToDouble();
System::Console::WriteLine(u"Duration in Months: {0}", System::ObjectExt::Box<double>(months));
System::SharedPtr<Project> project = System::MakeObject<Project>();
System::Console::WriteLine(u"Project Calculation mode is Automatic: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(project->get_CalculationMode(), Aspose::Tasks::CalculationMode::Automatic)));
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task");
task->Set<Duration>(Tsk::Duration(), project->GetDuration(2));
task->Set<int32_t>(Tsk::PercentComplete(), 50);
// Create project instance
auto project = System::MakeObject<Project>(dataDir + u"Blank2010.mpp");
auto parameters = [&]{ auto tmp_0 = System::MakeObject<RecurringTaskParameters>(); tmp_0->set_TaskName(u"Recurring task"); tmp_0->set_Duration(project->GetDuration(1, Aspose::Tasks::TimeUnitType::Day)); tmp_0->set_RecurrencePattern([&]{ auto tmp_1 = System::MakeObject<WeeklyRecurrencePattern>(); tmp_1->set_Repetition([&]{ auto tmp_2 = System::MakeObject<WeeklyRepetition>(); tmp_2->set_RepetitionInterval(2); tmp_2->set_WeekDays(Aspose::Tasks::WeekdayType::Sunday | Aspose::Tasks::WeekdayType::Monday | Aspose::Tasks::WeekdayType::Friday); return tmp_2; }()); tmp_1->set_RecurrenceRange([&]{ auto tmp_3 = System::MakeObject<EndByRecurrenceRange>(); tmp_3->set_Start(System::DateTime(2018, 7, 1, 8, 0, 0)); tmp_3->set_Finish(System::DateTime(2018, 7, 20, 17, 0, 0)); return tmp_3; }()); return tmp_1; }()); return tmp_0; }();
project->get_RootTask()->get_Children()->Add(parameters);
// Create new project
System::SharedPtr<Project> splitTaskProject = System::MakeObject<Project>();
// Get a standard calendar
System::SharedPtr<Calendar> calendar = splitTaskProject->Get<System::SharedPtr<Calendar>>(Prj::Calendar());
// Set project's calendar settings
splitTaskProject->Set(Prj::StartDate(), System::DateTime(2000, 3, 15, 8, 0, 0));
splitTaskProject->Set(Prj::FinishDate(), System::DateTime(2000, 4, 21, 17, 0, 0));
// Add a new task to root task
System::SharedPtr<Task> rootTask = splitTaskProject->get_RootTask();
rootTask->Set<System::String>(Tsk::Name(), u"Root");
System::SharedPtr<Task> taskToSplit = rootTask->get_Children()->Add(u"Task1");
taskToSplit->Set<Duration>(Tsk::Duration(), splitTaskProject->GetDuration(3));
// Create a new resource assignment and generate timephased data
System::SharedPtr<ResourceAssignment> splitResourceAssignment = splitTaskProject->get_ResourceAssignments()->Add(taskToSplit, nullptr);
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(System::DateTime(2000, 3, 16, 8, 0, 0), System::DateTime(2000, 3, 16, 17, 0, 0), calendar);
splitResourceAssignment->SplitTask(System::DateTime(2000, 3, 18, 8, 0, 0), System::DateTime(2000, 3, 18, 17, 0, 0), calendar);
splitResourceAssignment->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::Contoured);
// Save the Project
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
splitTaskProject->Save(dataDir + u"CreateSplitTasks_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"SubProjectTask.mpp");
// Add task
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task 1");
// Setting new subproject link
task->Set<System::String>(Tsk::SubprojectName(), dataDir + u"subProject.mpp");
// Save project
project->Save(dataDir + u"SubProjectTask_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// Create project instance
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Add task, sub task and save project
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Summary1");
System::SharedPtr<Task> subtask = task->get_Children()->Add(u"Subtask1");
project->Save(dataDir + u"CreateTasks_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
// Read project from file stream
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<System::IO::FileStream> fs = System::MakeObject<System::IO::FileStream>(dataDir + u"CriticalEffortDrivenTasks.mpp", System::IO::FileMode::Open);
System::SharedPtr<Project> prj = System::MakeObject<Project>(fs);
fs->Close();
// Create a ChildTasksCollector instance
System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
// Collect all the tasks from RootTask using TaskUtils
TaskUtils::Apply(prj->get_RootTask(), collector, 0);
// Parse through all the collected tasks
{
auto tsk1_enumerator = (collector->get_Tasks())->GetEnumerator();
decltype(tsk1_enumerator->get_Current()) tsk1;
while (tsk1_enumerator->MoveNext() && (tsk1 = tsk1_enumerator->get_Current(), true))
{
System::String strED = tsk1->Get<NullableBool>(Tsk::IsEffortDriven()).get_Value() ? System::String(u"EffortDriven") : System::String(u"Non-EffortDriven");
System::String strCrit = tsk1->Get<NullableBool>(Tsk::IsCritical()).get_Value() ? System::String(u"Critical") : System::String(u"Non-Critical");
System::Console::WriteLine(tsk1->Get(Tsk::Name()) + u" : " + strED);
System::Console::WriteLine(tsk1->Get(Tsk::Name()) + u" : " + strCrit);
}
}
// Read project from file stream
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<System::IO::FileStream> fs = System::MakeObject<System::IO::FileStream>(dataDir + u"EstimatedMilestoneTasks.mpp", System::IO::FileMode::Open);
System::SharedPtr<Project> prj = System::MakeObject<Project>(fs);
fs->Close();
// Create a ChildTasksCollector instance
System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
// Collect all the tasks from RootTask using TaskUtils
TaskUtils::Apply(prj->get_RootTask(), collector, 0);
// Parse through all the collected tasks
{
auto tsk1_enumerator = (collector->get_Tasks())->GetEnumerator();
decltype(tsk1_enumerator->get_Current()) tsk1;
while (tsk1_enumerator->MoveNext() && (tsk1 = tsk1_enumerator->get_Current(), true))
{
System::String strEst = tsk1->Get<NullableBool>(Tsk::IsEstimated()).get_Value() ? System::String(u"Estimated") : System::String(u"Non-Estimated");
System::String strMileStone = tsk1->Get<NullableBool>(Tsk::IsMilestone()).get_Value() ? System::String(u"Milestone") : System::String(u"Non-Milestone");
System::Console::WriteLine(tsk1->Get(Tsk::Name()) + u" : " + strEst);
System::Console::WriteLine(tsk1->Get(Tsk::Name()) + u" : " + strMileStone);
}
}
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Loading project file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"MoveTask.mpp");
// Move tasks with id 2 to the end of the collection
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(2);
task->MoveToSibling(-1);
// Saving File To Disk
project->Save(dataDir + u"MoveTaskAtTheEnd_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Loading project file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"MoveTask.mpp");
// Set CalculationMode
project->set_CalculationMode(Aspose::Tasks::CalculationMode::Automatic);
// Get Tasks by Ids
System::SharedPtr<Task> t6 = project->get_RootTask()->get_Children()->GetByUid(6);
System::SharedPtr<Task> t3 = project->get_RootTask()->get_Children()->GetByUid(3);
// Adding Task 6 to another parent
t3->get_Children()->Add(t6);
// Saving File To Disk
project->Save(dataDir + u"MoveTaskUnderAnotherParent_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Loading project file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"MoveTask.mpp");
// Move tasks with id 5 before task with id 3
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(5);
task->MoveToSibling(3);
// Saving File To Disk
project->Save(dataDir + u"MoveTaskUnderSameParent_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create Project instance
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ActualTaskProperties.mpp");
// Create a ChildTasksCollector instance
System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
// Collect all the tasks from RootTask using TaskUtils
TaskUtils::Apply(project->get_RootTask(), collector, 0);
// Parse through all the collected tasks
{
auto task_enumerator = (collector->get_Tasks())->GetEnumerator();
decltype(task_enumerator->get_Current()) task;
while (task_enumerator->MoveNext() && (task = task_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(u"Task Name : ") + task->Get(Tsk::Name()));
System::Console::WriteLine(System::String(u"Actual Start: ") + task->Get<System::DateTime>(Tsk::ActualStart()).ToLongDateString());
System::Console::WriteLine(System::String(u"Actual Finish: ") + task->Get<System::DateTime>(Tsk::ActualFinish()).ToLongDateString());
System::Console::WriteLine(System::String(u"Actual Duration: ") + System::Convert::ToString(task->Get<Duration>(Tsk::ActualDuration()).get_TimeSpan().get_Hours()));
System::Console::WriteLine(System::String(u"Actual Cost: ") + System::Convert::ToString(task->Get<System::Decimal>(Tsk::ActualCost())));
System::Console::WriteLine(u"---------------------------------------------");
}
}
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"BudgetWorkAndCost.mpp");
// Display budget work and budget cost for project summary task
System::SharedPtr<Task> projSummary = project1->get_RootTask();
System::Console::WriteLine(System::String(u"projSummary.BudgetWork = ") + System::ObjectExt::ToString(projSummary->Get<Duration>(Tsk::BudgetWork())));
System::Console::WriteLine(System::String(u"projSummary.BudgetCost = ") + System::Convert::ToString(projSummary->Get<System::Decimal>(Tsk::BudgetCost())));
// Display resource budget work
System::SharedPtr<Resource> rsc = project1->get_Resources()->GetByUid(6);
System::Console::WriteLine(System::String(u"Resource BudgetWork = ") + System::ObjectExt::ToString(rsc->Get<Duration>(Rsc::BudgetWork())));
// Display resource budget cost
rsc = project1->get_Resources()->GetByUid(7);
System::Console::WriteLine(System::String(u"Resource BudgetCost = ") + System::Convert::ToString(rsc->Get<System::Decimal>(Rsc::BudgetCost())));
// Display assignment budget work and budget cost
{
auto assn_enumerator = (projSummary->get_Assignments())->GetEnumerator();
decltype(assn_enumerator->get_Current()) assn;
while (assn_enumerator->MoveNext() && (assn = assn_enumerator->get_Current(), true))
{
// C# preprocessor directive: #if !__cplusplus
// C# preprocessor directive: #endif
auto resource = assn->Get(Asn::Resource());
if (static_cast<ResourceType>(resource->Get(Rsc::Type())) == Aspose::Tasks::ResourceType::Work)
{
System::Console::WriteLine(System::String(u"Assignment BudgetWork = ") + System::ObjectExt::ToString(assn->Get<Duration>(Asn::BudgetWork())));
}
else
{
System::Console::WriteLine(System::String(u"Assignment BudgetCost = ") + System::Convert::ToString(assn->Get<System::Decimal>(Asn::BudgetCost())));
}
}
}
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ParentChildTasks.mpp");
// Create a ChildTasksCollector instance
System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
// Collect all the tasks from RootTask using TaskUtils
TaskUtils::Apply(project1->get_RootTask(), collector, 0);
// Parse through all the collected tasks
{
auto tsk1_enumerator = (collector->get_Tasks())->GetEnumerator();
decltype(tsk1_enumerator->get_Current()) tsk1;
while (tsk1_enumerator->MoveNext() && (tsk1 = tsk1_enumerator->get_Current(), true))
{
System::Console::WriteLine(tsk1->Get(Tsk::Name()));
}
}
// Read project from file stream
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<System::IO::FileStream> fs = System::MakeObject<System::IO::FileStream>(dataDir + u"StopResumeDates.mpp", System::IO::FileMode::Open);
System::SharedPtr<Project> prj = System::MakeObject<Project>(fs);
fs->Close();
// Create a ChildTasksCollector instance
System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
// Collect all the tasks from RootTask using TaskUtils
TaskUtils::Apply(prj->get_RootTask(), collector, 0);
// Check Stop and Resume dates for all tasks
{
auto tsk1_enumerator = (collector->get_Tasks())->GetEnumerator();
decltype(tsk1_enumerator->get_Current()) tsk1;
while (tsk1_enumerator->MoveNext() && (tsk1 = tsk1_enumerator->get_Current(), true))
{
if (tsk1->Get<System::DateTime>(Tsk::Stop()).ToShortDateString() == u"1/1/2000")
{
System::Console::WriteLine(u"Stop: NA");
}
else
{
System::Console::WriteLine(System::String(u"Stop: ") + tsk1->Get<System::DateTime>(Tsk::Stop()).ToShortDateString());
}
if (tsk1->Get<System::DateTime>(Tsk::Resume()).ToShortDateString() == u"1/1/2000")
{
System::Console::WriteLine(u"Resume: NA");
}
else
{
System::Console::WriteLine(System::String(u"Resume: ") + tsk1->Get<System::DateTime>(Tsk::Resume()).ToShortDateString());
}
}
}
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create project instance
System::SharedPtr<Project> prj = System::MakeObject<Project>(dataDir + u"ReadTaskCalendar.mpp");
// Declare ChildTasksCollector class object
System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
// Use TaskUtils to get all children tasks in RootTask
TaskUtils::Apply(prj->get_RootTask(), collector, 0);
// Parse all the recursive children
{
auto tsk_enumerator = (collector->get_Tasks())->GetEnumerator();
decltype(tsk_enumerator->get_Current()) tsk;
while (tsk_enumerator->MoveNext() && (tsk = tsk_enumerator->get_Current(), true))
{
System::SharedPtr<Calendar> tskCal = tsk->Get<System::SharedPtr<Calendar>>(Tsk::Calendar());
System::Console::WriteLine(u"Task calendar name: {0}", System::ObjectExt::Box<System::String>(tskCal == nullptr ? u"None" : tskCal->get_Name()));
}
}
// Create new project
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Add task and set cost
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task");
task->Set<System::Decimal>(Tsk::Cost(), static_cast<System::Decimal>(800));
// Display cost related properties of task
System::Console::WriteLine(task->Get<System::Decimal>(Tsk::RemainingCost()));
System::Console::WriteLine(task->Get<double>(Tsk::FixedCost()));
System::Console::WriteLine(task->Get<double>(Tsk::CostVariance()));
System::Console::WriteLine(project->get_RootTask()->Get<System::Decimal>(Tsk::Cost()));
System::Console::WriteLine(project->get_RootTask()->Get<double>(Tsk::FixedCost()));
System::Console::WriteLine(project->get_RootTask()->Get<System::Decimal>(Tsk::RemainingCost()));
System::Console::WriteLine(project->get_RootTask()->Get<double>(Tsk::CostVariance()));
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ReadTaskExtendedAttributes.mpp");
// Read extended attributes for tasks
{
auto tsk_enumerator = (project1->get_RootTask()->get_Children())->GetEnumerator();
decltype(tsk_enumerator->get_Current()) tsk;
while (tsk_enumerator->MoveNext() && (tsk = tsk_enumerator->get_Current(), true))
{
auto ea_enumerator = (tsk->get_ExtendedAttributes())->GetEnumerator();
decltype(ea_enumerator->get_Current()) ea;
while (ea_enumerator->MoveNext() && (ea = ea_enumerator->get_Current(), true))
{
System::Console::WriteLine(ea->get_FieldId());
System::Console::WriteLine(ea->get_ValueGuid());
switch (ea->get_AttributeDefinition()->get_CfType())
{
case Aspose::Tasks::CustomFieldType::Date:
case Aspose::Tasks::CustomFieldType::Start:
case Aspose::Tasks::CustomFieldType::Finish:
System::Console::WriteLine(System::ObjectExt::Box<System::DateTime>(ea->get_DateValue()));
break;
case Aspose::Tasks::CustomFieldType::Text:
System::Console::WriteLine(ea->get_TextValue());
break;
case Aspose::Tasks::CustomFieldType::Duration:
System::Console::WriteLine(System::ObjectExt::ToString(ea->get_DurationValue()));
break;
case Aspose::Tasks::CustomFieldType::Cost:
case Aspose::Tasks::CustomFieldType::Number:
System::Console::WriteLine(ea->get_NumericValue());
break;
case Aspose::Tasks::CustomFieldType::Flag:
System::Console::WriteLine(ea->get_FlagValue());
break;
default:
break;
}
}
}
}
// Read project from file stream
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<System::IO::FileStream> fs = System::MakeObject<System::IO::FileStream>(dataDir + u"TaskOutlineProperties.mpp", System::IO::FileMode::Open);
System::SharedPtr<Project> prj = System::MakeObject<Project>(fs);
fs->Close();
// Create a ChildTasksCollector instance
System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
// Collect all the tasks from RootTask using TaskUtils
TaskUtils::Apply(prj->get_RootTask(), collector, 0);
// Parse through all the collected tasks
{
auto tsk1_enumerator = (collector->get_Tasks())->GetEnumerator();
decltype(tsk1_enumerator->get_Current()) tsk1;
while (tsk1_enumerator->MoveNext() && (tsk1 = tsk1_enumerator->get_Current(), true))
{
System::Console::WriteLine(tsk1->Get(Tsk::Name()) + u" - Outline Level : " + tsk1->Get<int32_t>(Tsk::OutlineLevel()));
System::Console::WriteLine(tsk1->Get(Tsk::Name()) + u" - Outline Number : " + tsk1->Get(Tsk::OutlineNumber()));
}
}
// Read project from file stream
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<System::IO::FileStream> fs = System::MakeObject<System::IO::FileStream>(dataDir + u"TaskOvertimes.mpp", System::IO::FileMode::Open);
System::SharedPtr<Project> project1 = System::MakeObject<Project>(fs);
fs->Close();
// Read overtime and percentage completion for tasks
{
auto tsk1_enumerator = (project1->get_RootTask()->get_Children())->GetEnumerator();
decltype(tsk1_enumerator->get_Current()) tsk1;
while (tsk1_enumerator->MoveNext() && (tsk1 = tsk1_enumerator->get_Current(), true))
{
System::Console::WriteLine(tsk1->Get<System::Decimal>(Tsk::OvertimeCost()));
System::Console::WriteLine(System::ObjectExt::ToString(tsk1->Get<Duration>(Tsk::OvertimeWork())));
System::Console::WriteLine(tsk1->Get<int32_t>(Tsk::PercentComplete()));
System::Console::WriteLine(System::Convert::ToString(tsk1->Get<int32_t>(Tsk::PercentWorkComplete())));
System::Console::WriteLine(System::Convert::ToString(tsk1->Get<int32_t>(Tsk::PhysicalPercentComplete())));
// Set percent complete
tsk1->Set<int32_t>(Tsk::PercentComplete(), 100);
}
}
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"TaskPercentageCompletion.mpp");
// Access tasks and display percentage completion
auto tasks = project1->get_RootTask()->get_Children();
{
auto tsk1_enumerator = (tasks)->GetEnumerator();
decltype(tsk1_enumerator->get_Current()) tsk1;
while (tsk1_enumerator->MoveNext() && (tsk1 = tsk1_enumerator->get_Current(), true))
{
System::Console::WriteLine(tsk1->Get<int32_t>(Tsk::PercentComplete()));
System::Console::WriteLine(System::Convert::ToString(tsk1->Get<int32_t>(Tsk::PercentWorkComplete())));
System::Console::WriteLine(System::Convert::ToString(tsk1->Get<int32_t>(Tsk::PhysicalPercentComplete())));
}
}
// Read project from file stream
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<System::IO::FileStream> fs = System::MakeObject<System::IO::FileStream>(dataDir + u"TaskPriority.mpp", System::IO::FileMode::Open);
System::SharedPtr<Project> prj = System::MakeObject<Project>(fs);
fs->Close();
// Create a ChildTasksCollector instance
System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
// Collect all the tasks from RootTask using TaskUtils
TaskUtils::Apply(prj->get_RootTask(), collector, 0);
// Display Priorities for all tasks
{
auto tsk1_enumerator = (collector->get_Tasks())->GetEnumerator();
decltype(tsk1_enumerator->get_Current()) tsk1;
while (tsk1_enumerator->MoveNext() && (tsk1 = tsk1_enumerator->get_Current(), true))
{
System::Console::WriteLine(tsk1->Get(Tsk::Name()) + u" - Priority : " + System::Convert::ToString(tsk1->Get<int32_t>(Tsk::Priority())));
}
}
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create project instance
System::SharedPtr<Project> prj = System::MakeObject<Project>(dataDir + u"ReadTaskProperties.mpp");
// Create a ChildTasksCollector instance
System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
// Collect all the tasks from RootTask using TaskUtils
TaskUtils::Apply(prj->get_RootTask(), collector, 0);
// Parse through all the collected tasks
{
auto tsk_enumerator = (collector->get_Tasks())->GetEnumerator();
decltype(tsk_enumerator->get_Current()) tsk;
while (tsk_enumerator->MoveNext() && (tsk = tsk_enumerator->get_Current(), true))
{
System::Console::WriteLine(u"Task Id: {0}", System::ObjectExt::Box<int32_t>(tsk->Get<int32_t>(Tsk::Id())));
System::Console::WriteLine(u"Task Uid: {0}", System::ObjectExt::Box<int32_t>(tsk->Get<int32_t>(Tsk::Uid())));
System::Console::WriteLine(u"Task Name: {0}", System::ObjectExt::Box<System::String>(tsk->Get(Tsk::Name())));
System::Console::WriteLine(u"Task Start: {0}", System::ObjectExt::Box<System::DateTime>(tsk->Get<System::DateTime>(Tsk::Start())));
System::Console::WriteLine(u"Task Finish: {0}", System::ObjectExt::Box<System::DateTime>(tsk->Get<System::DateTime>(Tsk::Finish())));
}
}
// Read project
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"TaskWBS.mpp");
// Create a ChildTasksCollector instance
System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
// Collect all the tasks from RootTask using TaskUtils
TaskUtils::Apply(project1->get_RootTask(), collector, 0);
// Parse through all the collected tasks
{
auto tsk_enumerator = (collector->get_Tasks())->GetEnumerator();
decltype(tsk_enumerator->get_Current()) tsk;
while (tsk_enumerator->MoveNext() && (tsk = tsk_enumerator->get_Current(), true))
{
System::Console::WriteLine(tsk->Get(Tsk::WBS()));
System::Console::WriteLine(tsk->Get(Tsk::WBSLevel()));
// Set custom WBS
tsk->Set<System::String>(Tsk::WBS(), System::String(u"custom wbs") + tsk->Get(Tsk::WBS()));
}
}
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ReadWriteTimephasedData.mpp");
// Set project properties
project1->Set(Prj::StartDate(), System::DateTime(2013, 10, 30, 9, 0, 0));
project1->Set<NullableBool>(Prj::NewTasksAreManual(), NullableBool::to_NullableBool(false));
// Add task and resources
System::SharedPtr<Task> task = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc = project1->get_Resources()->Add(u"Rsc");
// Set resource rates and task duration
rsc->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(10));
rsc->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(15));
task->Set<Duration>(Tsk::Duration(), project1->GetDuration(6));
// Create resource assignment
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task, rsc);
assn->Set(Asn::Stop(), System::DateTime::MinValue);
assn->Set(Asn::Resume(), System::DateTime::MinValue);
// Set Backloaded contour, it increases task duration from 6 to 10 days
assn->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::BackLoaded);
project1->SetBaseline(Aspose::Tasks::BaselineType::Baseline);
task->Set<int32_t>(Tsk::PercentComplete(), 50);
// Read timephased data
System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<TimephasedData>>> td = assn->GetTimephasedData(assn->Get<System::DateTime>(Asn::Start()), assn->Get<System::DateTime>(Asn::Finish()), Aspose::Tasks::TimephasedDataType::AssignmentRemainingWork)->ToList();
System::Console::WriteLine(td->get_Count());
{
auto timePhasedValue_enumerator = (td)->GetEnumerator();
decltype(timePhasedValue_enumerator->get_Current()) timePhasedValue;
while (timePhasedValue_enumerator->MoveNext() && (timePhasedValue = timePhasedValue_enumerator->get_Current(), true))
{
System::Console::WriteLine(timePhasedValue->get_Value());
}
}
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"TaskSheetView.mpp");
// Set presentation format Task Sheet and save project as PDF
System::SharedPtr<SaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_PresentationFormat(Aspose::Tasks::Visualization::PresentationFormat::TaskSheet);
project1->Save(dataDir + u"TaskSheetView_out.pdf", options);
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"TaskUsageView.mpp");
// Define the SaveOptions with required TimeScale settings as Days
System::SharedPtr<SaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::Days);
// Set the Presentation format to ResourceUsage
options->set_PresentationFormat(Aspose::Tasks::Visualization::PresentationFormat::TaskUsage);
// Save the Project
System::String outputProject = u"project_TaskUsageView_result_days_out.pdf";
project1->Save(dataDir + outputProject, options);
// Set the Tiemscale settings to ThirdsOfMonths
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths);
// Save the Project
outputProject = u"project_TaskUsageView_result_thirdsOfMonths_out.pdf";
project1->Save(dataDir + outputProject, options);
// Set the Timescale settings to Months
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::Months);
// Save the project
outputProject = u"project_TaskUsageView_result_months_out.pdf";
project1->Save(dataDir + outputProject, options);
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"TaskUsageViewWithDetails.mpp");
// Get Default view
System::SharedPtr<UsageView> view = System::DynamicCast_noexcept<Aspose::Tasks::TaskUsageView>(project1->get_DefaultView());
// Details header column will not be displayed
view->set_DisplayDetailsHeaderColumn(false);
view->set_RepeatDetailsHeaderOnAllRows(false);
view->set_AlignDetailsData(System::Drawing::StringAlignment::Near);
project1->Save(dataDir + u"task usage1_out.pdf", Aspose::Tasks::Saving::SaveFileFormat::PDF);
// Display details header column
view->set_DisplayDetailsHeaderColumn(true);
// Repeat details header on all assignments rows
view->set_RepeatDetailsHeaderOnAllRows(true);
view->set_AlignDetailsData(System::Drawing::StringAlignment::Far);
project1->Save(dataDir + u"task usage2_out.pdf", Aspose::Tasks::Saving::SaveFileFormat::PDF);
auto project = System::MakeObject<Project>(dataDir + u"RenumberExample.mpp");
auto tasks = project->get_RootTask()->SelectAllChildTasks();
System::Console::WriteLine(u"WBS codes before: ");
// output: ""; "1"; "2"; "4"
{
auto task_enumerator = (tasks)->GetEnumerator();
decltype(task_enumerator->get_Current()) task;
while (task_enumerator->MoveNext() && (task = task_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(u"\"") + task->Get(Tsk::WBS()) + u"\"" + u"; ");
}
}
// project.RenumberWBSCode(); // this overload could have used too
project->RenumberWBSCode([&]{ int32_t init_0[] = {1, 2, 3}; auto list_0 = System::MakeObject<System::Collections::Generic::List<int32_t>>(); list_0->AddInitializer(3, init_0); return list_0; }());
System::Console::WriteLine(u"\nWBS codes after: ");
// output: ""; "1"; "2"; "3"
{
auto task_enumerator = (tasks)->GetEnumerator();
decltype(task_enumerator->get_Current()) task;
while (task_enumerator->MoveNext() && (task = task_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(u"\"") + task->Get(Tsk::WBS()) + u"\"" + u"; ");
}
}
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
auto project = System::MakeObject<Project>(dataDir + u"schedule-conflict.mpp");
auto task = project->get_RootTask()->get_Children()->GetById(1);
System::Console::WriteLine(task->Get<bool>(Tsk::Warning()));
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::String newProject = u"UpdateTaskData.mpp";
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + newProject);
// Set project start date
project->Set(Prj::StartDate(), System::DateTime(2012, 7, 29, 8, 0, 0));
// Add summary task and set its properties
System::SharedPtr<Task> summary = project->get_RootTask()->get_Children()->Add(u"Summary task");
System::SharedPtr<Task> task1 = summary->get_Children()->Add(u"First task");
task1->Set<Duration>(Tsk::Duration(), project->GetDuration(3));
task1->Set(Tsk::Deadline(), task1->Get<System::DateTime>(Tsk::Start()).AddDays(10));
task1->Set<System::String>(Tsk::NotesText(), u"The first task.");
task1->Set<TimeUnitType>(Tsk::DurationFormat(), Aspose::Tasks::TimeUnitType::MinuteEstimated);
task1->Set<ConstraintType>(Tsk::ConstraintType(), Aspose::Tasks::ConstraintType::FinishNoLaterThan);
task1->Set(Tsk::ConstraintDate(), task1->Get<System::DateTime>(Tsk::Deadline()).AddDays(-1));
// Create 10 new sub tasks for summary task
for (int32_t i = 0; i < 10; i++)
{
System::SharedPtr<Task> subTask = summary->get_Children()->Add(System::String::Format(u"Task{0}",i + 2));
subTask->Set<Duration>(Tsk::Duration(), task1->Get<Duration>(Tsk::Duration()).Add(project->GetDuration(i + 1)));
subTask->Set<TimeUnitType>(Tsk::DurationFormat(), Aspose::Tasks::TimeUnitType::Day);
subTask->Set(Tsk::Deadline(), task1->Get<System::DateTime>(Tsk::Deadline()).AddDays(i + 1));
}
// Save the Project
project->Save(dataDir + u"project_UpdateTaskData_updated_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
// Create project instance
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ViewSplitTasks.mpp");
// Access task
System::SharedPtr<Task> splitTask = project1->get_RootTask()->get_Children()->GetById(4);
// Display split parts of task
System::SharedPtr<SplitPartCollection> collection = splitTask->get_SplitParts();
{
auto splitPart_enumerator = (collection)->GetEnumerator();
decltype(splitPart_enumerator->get_Current()) splitPart;
while (splitPart_enumerator->MoveNext() && (splitPart = splitPart_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(u"Index: ") + splitPart->get_Index() + u"\nStart: " + splitPart->get_Start() + u"\nFinish: " + splitPart->get_Finish() + u"\n");
}
}
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"Project2.mpp");
// Create a ChildTasksCollector instance
System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
// Collect all the tasks from RootTask using TaskUtils
TaskUtils::Apply(project1->get_RootTask(), collector, 0);
// Parse through all the collected tasks
{
auto tsk1_enumerator = (collector->get_Tasks())->GetEnumerator();
decltype(tsk1_enumerator->get_Current()) tsk1;
while (tsk1_enumerator->MoveNext() && (tsk1 = tsk1_enumerator->get_Current(), true))
{
if (tsk1->Get<System::DateTime>(Tsk::ConstraintDate()).ToShortDateString() == u"1/1/2000")
{
System::Console::WriteLine(u"NA");
}
else
{
System::Console::WriteLine(tsk1->Get<System::DateTime>(Tsk::ConstraintDate()).ToShortDateString());
}
System::Console::WriteLine(System::ObjectExt::ToString(tsk1->Get<ConstraintType>(Tsk::ConstraintType())));
}
}
// Set constraint As Late As Possible for task with Id 11
System::SharedPtr<Task> wallBoard = project1->get_RootTask()->get_Children()->GetById(11);
wallBoard->Set<ConstraintType>(Tsk::ConstraintType(), Aspose::Tasks::ConstraintType::AsLateAsPossible);
// Save project as pdf
System::SharedPtr<SaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_StartDate(project1->Get<System::DateTime>(Prj::StartDate()));
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths);
project1->Save(dataDir + u"project_AsLateAsPossible_out.pdf", options);
// Set constraint Finish No Earlier Than on task with Id 2
System::SharedPtr<Task> first = project1->get_RootTask()->get_Children()->GetById(2);
first->Set<ConstraintType>(Tsk::ConstraintType(), Aspose::Tasks::ConstraintType::FinishNoEarlierThan);
first->Set(Tsk::ConstraintDate(), System::DateTime(2016, 12, 1, 18, 0, 0));
// Save project as pdf
System::SharedPtr<SaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_StartDate(project1->Get<System::DateTime>(Prj::StartDate()));
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths);
project1->Save(dataDir + u"project_FinishNoEarlierThan_out.pdf", options);
// Set constraint Must Finish On for task with Id 15
System::SharedPtr<Task> interiorFixtures = project1->get_RootTask()->get_Children()->GetById(15);
interiorFixtures->Set<ConstraintType>(Tsk::ConstraintType(), Aspose::Tasks::ConstraintType::MustFinishOn);
interiorFixtures->Set(Tsk::ConstraintDate(), System::DateTime(2017, 3, 1, 18, 0, 0));
// Save project as pdf
System::SharedPtr<SaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_StartDate(project1->Get<System::DateTime>(Prj::StartDate()));
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths);
project1->Save(dataDir + u"project_MustFinishOn_out.pdf", options);
// Set constraint Must Start On for task with Id 5
System::SharedPtr<Task> roof = project1->get_RootTask()->get_Children()->GetById(5);
roof->Set<ConstraintType>(Tsk::ConstraintType(), Aspose::Tasks::ConstraintType::MustStartOn);
roof->Set(Tsk::ConstraintDate(), System::DateTime(2017, 1, 1, 9, 0, 0));
// Save project as pdf
System::SharedPtr<SaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_StartDate(project1->Get<System::DateTime>(Prj::StartDate()));
options->set_Timescale(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths);
project1->Save(dataDir + u"project_MustStartOn_out.pdf", options);
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
// Create project instance
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ConstraintStartNoEarlierThan.mpp");
// Set constraint Start No Earlier Than on task with Id 1
System::SharedPtr<Task> summary = project->get_RootTask()->get_Children()->GetById(1);
summary->Set<ConstraintType>(Tsk::ConstraintType(), Aspose::Tasks::ConstraintType::StartNoEarlierThan);
summary->Set(Tsk::ConstraintDate(), System::DateTime(2016, 12, 1, 9, 0, 0));
// Save project as pdf
System::SharedPtr<SaveOptions> o = System::MakeObject<PdfSaveOptions>();
o->set_StartDate(project->Get<System::DateTime>(Prj::StartDate()));
o->set_Timescale(Aspose::Tasks::Visualization::Timescale::ThirdsOfMonths);
project->Save(dataDir + u"project_StartNoEarlierThan_out.pdf", o);
// Create project instance
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Add task
System::SharedPtr<Task> tsk1 = project->get_RootTask()->get_Children()->Add(u"Task1");
// Create calendar and assign to task
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"TaskCal1");
tsk1->Set<System::SharedPtr<Calendar>>(Tsk::Calendar(), cal);
// Create a new project and add a new task
System::SharedPtr<Project> project = System::MakeObject<Project>();
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task");
// Task duration in days (default time unit)
Duration duration = task->Get<Duration>(Tsk::Duration());
System::Console::WriteLine(u"Duration equals 1 day: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(System::ObjectExt::ToString(duration), u"1 day")));
// Convert to hours time unit
duration = duration.Convert(Aspose::Tasks::TimeUnitType::Hour);
System::Console::WriteLine(u"Duration equals 8 hrs: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(System::ObjectExt::ToString(duration), u"8 hrs")));
// Get wrapped TimeSpan instance
System::Console::WriteLine(u"Duration TimeSpan equals to TimeSpan of 8 hrs: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(duration.get_TimeSpan(), System::TimeSpan::FromHours(8))));
// Increase task duration to 1 week and display if duration is updated successfully
task->Set<Duration>(Tsk::Duration(), project->GetDuration(1, Aspose::Tasks::TimeUnitType::Week));
System::Console::WriteLine(u"Duration equals 1 wk: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(System::ObjectExt::ToString(task->Get<Duration>(Tsk::Duration())), u"1 wk")));
// Decrease task duration and display if duration is updated successfully
task->Set<Duration>(Tsk::Duration(), task->Get<Duration>(Tsk::Duration()).Subtract(0.5));
System::Console::WriteLine(u"Duration equals 0.5 wks: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(System::ObjectExt::ToString(task->Get<Duration>(Tsk::Duration())), u"0.5 wks")));
// Create project instance
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Add task and set task properties
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task1");
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<Project> project = System::MakeObject<Project>(dataDir + u"VbaProject1.mpp");
System::SharedPtr<VbaProject> vbaProject = project->get_VbaProject();
System::SharedPtr<IVbaModule> vbaModule = vbaProject->get_Modules()->ToList()->idx_get(0);
System::Console::WriteLine(System::String(u"Attributes Count: ") + vbaModule->get_Attributes()->get_Count());
System::Console::WriteLine(System::String(u"VB_Name: ") + vbaModule->get_Attributes()->ToList()->idx_get(0)->get_Key());
System::Console::WriteLine(System::String(u"Module1: ") + vbaModule->get_Attributes()->ToList()->idx_get(0)->get_Value());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"VbaProject1.mpp");
System::SharedPtr<VbaProject> vbaProject = project->get_VbaProject();
System::Console::WriteLine(System::String(u"Total Modules Count: ") + vbaProject->get_Modules()->get_Count());
System::SharedPtr<IVbaModule> vbaModule = vbaProject->get_Modules()->ToList()->idx_get(0);
System::Console::WriteLine(System::String(u"Module Name: ") + vbaModule->get_Name());
System::Console::WriteLine(System::String(u"Source Code: ") + vbaModule->get_SourceCode());
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"VbaProject1.mpp");
System::SharedPtr<VbaProject> vbaProject = project->get_VbaProject();
System::SharedPtr<VbaReferenceCollection> references = vbaProject->get_References();
System::Console::WriteLine(u"Reference count ", System::ObjectExt::Box<int32_t>(references->get_Count()));
System::SharedPtr<VbaReference> reference = vbaProject->get_References()->ToList()->idx_get(0);
System::Console::WriteLine(System::String(u"Identifier: ") + reference->get_LibIdentifier());
System::Console::WriteLine(System::String(u"Name: ") + reference->get_Name());
reference = vbaProject->get_References()->ToList()->idx_get(1);
System::Console::WriteLine(System::String(u"Identifier: ") + reference->get_LibIdentifier());
System::Console::WriteLine(System::String(u"Name: ") + reference->get_Name());
reference = vbaProject->get_References()->ToList()->idx_get(2);
System::Console::WriteLine(System::String(u"Identifier: ") + reference->get_LibIdentifier());
System::Console::WriteLine(System::String(u"Name: ") + reference->get_Name());
// Loading project file
System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"VbaProject1.mpp");
System::SharedPtr<VbaProject> vbaProject = project->get_VbaProject();
System::Console::WriteLine(System::String(u"VbaProject.Name ") + vbaProject->get_Name());
System::Console::WriteLine(System::String(u"VbaProject.Description ") + vbaProject->get_Description());
System::Console::WriteLine(System::String(u"VbaProject.CompilationArguments") + vbaProject->get_CompilationArguments());
System::Console::WriteLine(System::String(u"VbaProject.HelpContextId") + vbaProject->get_HelpContextId());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment