C++ ile MS Proje Dosyaları Oluşturma

MS Project, yöneticilerin projelerini verimli bir şekilde yönetmelerine yardımcı olan, yaygın olarak kullanılan bir proje yönetimi yazılımıdır. Görevlerin oluşturulmasına, kaynakların eklenmesine, görevlerin kaynaklara tahsis edilmesine, ilerlemenin izlenmesine ve bütçe ile ilgili işlemlerin yönetilmesine olanak tanır. Bu makalede, proje yönetimi aktivitelerini MS Project olmadan C++ uygulamalarınıza nasıl ekleyeceğinizi öğreneceksiniz. Kod örneklerinin yardımıyla, MS Project dosyalarını (.mpp/.xml) oluşturmayı, C++ kullanarak programlı olarak görevler, kaynaklar ve takvimler eklemeyi öğreneceksiniz. Ayrıca, bir projede kaynaklara görevlerin atanması da gösterilecektir.

C++ MS Proje Dosyası İşleme API’sı

Aspose.Tasks for C++, MS Project dosyalarını program aracılığıyla oluşturmanıza, değiştirmenize, dışa aktarmanıza ve dönüştürmenize olanak tanıyan bir C++ proje yönetimi API’sidir. API, MS Project olmadan projeler, görevler, kaynaklar, takvimler oluşturmanız ve diğer proje yönetimi etkinliklerini gerçekleştirmeniz için size eksiksiz bir özellikler seti sağlar. API paketinin tamamını buradan indirebilir veya NuGet kullanarak yükleyebilirsiniz.

C++ kullanarak MS Proje Dosyaları (.mpp) oluşturun

Öncelikle boş bir proje oluşturarak başlayalım. Aspose.Tasks for C++ kullanarak sıfırdan bir MS Project (.mpp) dosyası oluşturma adımları aşağıdadır.

Aşağıdaki kod örneği, C++ kullanarak bir MS Project’in .mpp dosyasının nasıl oluşturulacağını gösterir.

// proje oluştur
System::SharedPtr<Project> project = System::MakeObject<Project>();

// Proje bilgilerini ayarla
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");

// Projeyi .mpp dosyası olarak kaydet
project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

C++ kullanarak Projeye Görevler Ekleme

Bir proje oluşturduktan sonra, projeye görevler eklemeye devam edebilirsiniz. Görevleri eklemek için yeni bir proje oluşturabilir veya mevcut bir MS Project dosyasını yükleyebilirsiniz. Aşağıda, bir projeye görevler veya alt görevler oluşturma ve ekleme adımları yer almaktadır.

Aşağıdaki kod örneği, C++ kullanarak bir projeye görevlerin nasıl oluşturulacağını ve ekleneceğini gösterir.

// Proje örneği oluştur
System::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp");

// Görev, alt görev ekleyin ve projeyi kaydedin
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Summary1");
task->Set(Tsk::Start(), project->get_RootTask()->Get<System::DateTime>(Tsk::Start()).AddDays(1));
task->Set<System::String>(Tsk::Name(), u"new name");
System::SharedPtr<Task> subtask = task->get_Children()->Add(u"Subtask1");

// Projeyi kaydet
project->Save(dataDir + u"CreateTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

Görevlerle ilgili genişletilmiş özellikler hakkında Daha fazlasını okuyun.

C++ kullanarak Projeye Kaynak Ekleme

Kaynaklar, projeyi tamamlaması beklenen varlıklardır. Genellikle, insanlardan bir projenin kaynakları olarak bahsedilir. Aşağıda, bir projeye kaynak oluşturma ve ekleme adımları yer almaktadır.

Aşağıdaki kod örneği, C++ kullanarak bir projeye nasıl kaynak ekleneceğini gösterir.

// Proje örneği oluştur
System::SharedPtr<Project> project = System::MakeObject<Project>();  

// Kaynak ekle
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc");    

// Kaynak özelliklerini ayarlayın, Kaynak özellikleri statik sınıf Rsc ile temsil edilir
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(15));
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(20));  

// Projeyi XML olarak kaydet
project->Save(u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);

Kaynaklarla ilgili genişletilmiş özellikler hakkında daha fazlasını okuyun.

C++ kullanarak Proje Görevini Kaynağa Ata

Görevleri ve kaynakları oluşturduktan sonraki adım, her görevi, tamamlanmasından sorumlu olan bir kaynağa atamaktır. Bir kaynağa görev atama adımları aşağıdadır.

Aşağıdaki kod örneği, C++ kullanarak bir projede bir kaynağa görev atamayı gösterir.

// Boş proje oluştur
System::SharedPtr<Project> project1 = System::MakeObject<Project>();    

// Yeni görev ve kaynak ekle
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");  

// Kaynak istenen görevi atayın
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1);

C++ kullanarak Project’te Takvimler Ekleme

Takvimler, MS Project içinde proje için bir program oluşturmak için kullanılır. Aspose.Tasks for C++, bir proje için takvim oluşturmayı çok basit hale getirdi. Takvim oluşturma, hafta içi gün ekleme ve çalışma saatini belirleme adımları aşağıdadır.

Takvimde hafta içi bir günün çalışma saatini de ayarlayabilirsiniz. Bunun için iş günlerini ekledikten sonra aşağıdaki adımları takip edebilirsiniz.

Aşağıdaki kod örneği, C++ kullanarak bir projede nasıl takvim oluşturulacağını gösterir.

// Bir proje örneği oluşturun
System::SharedPtr<Project> project = System::MakeObject<Project>();    

// Takvimi Tanımla
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"Calendar1");    

// Varsayılan zamanlamalarla pazartesiden perşembeye çalışma günleri ekleyin
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));  

// Cuma gününü kısa çalışma günü olarak ayarla
System::SharedPtr<WeekDay> myWeekDay = System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Friday);  

// Çalışma süresini ayarlar. DateTime'ın yalnızca zaman kısmı önemlidir
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);   

// Projeyi Kaydet
System::String dataDir = Examples::CPP::RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
project->Save(u"Project_DefineCalendarWeekdays_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

Takvimlerle ilgili genişletilmiş özellikler hakkında daha fazlasını okuyun.

Çözüm

Bu makalede, MS Project dosyalarının nasıl oluşturulacağını ve C++ kullanılarak .mpp veya .xml olarak nasıl kaydedileceğini öğrendiniz. Ayrıca, bir proje içinde programlı olarak görevleri, kaynakları, kaynak atamalarını ve takvimleri nasıl ekleyeceğinizi öğrendiniz. Aspose.Tasks for C++‘ın genişletilmiş özellikleri için dokümantasyonu da keşfederek uygulamalarınızdaki proje yönetimi yeteneklerini daha da geliştirebilirsiniz.

Ayrıca bakınız