Comment travailler avec les codes de contour dans les projets

Les codes de contour personnalisés sont des balises que vous définissez pour les tâches ou les ressources qui fournissent une structure de projet différente des codes WBS ou des numéros de contour. Aspose.Tasks pour C ++ vous permet de récupérer ces codes de contour et leurs propriétés, telles que Alias, AllLevelSrequired, Enterprise, EnterpriseoutLinecodealias, FieldId, FieldName, Phonétics, Guid, Masks and Values.

Les codes de lecture des contours

La classe de projet expose OutlineCodes qui est une collection d’articles OutlinecodeDefinition. L’OutlinecodeDefinition fournit tous les détails comme indiqué dans l’exemple de code suivant.

Les lignes de code suivantes récupèrent les informations de code de contour d’un projet.

 1System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"OutlineCodes.mpp");
 2    
 3    
 4{
 5    auto ocd_enumerator = (project->get_OutlineCodes())->GetEnumerator();
 6    decltype(ocd_enumerator->get_Current()) ocd;
 7    while (ocd_enumerator->MoveNext() && (ocd = ocd_enumerator->get_Current(), true))
 8    {
 9        System::Console::WriteLine(System::String(u"Alias = ") + ocd->get_Alias());
10        if (ocd->get_AllLevelsRequired())
11        {
12            System::Console::WriteLine(u"It contains property: must have all levels");
13        }
14        else
15        {
16            System::Console::WriteLine(u"It does not contain property: must have all levels");
17        }
18        if (ocd->get_Enterprise())
19        {
20            System::Console::WriteLine(u"It is an enterprise custom outline code.");
21        }
22        else
23        {
24            System::Console::WriteLine(u"It is not an enterprise custom outline code.");
25        }
26        
27        System::Console::WriteLine(System::String(u"Reference to another custom field for which this outline code definition is an alias is = ") + ocd->get_EnterpriseOutlineCodeAlias());
28        System::Console::WriteLine(System::String(u"Field Id = ") + ocd->get_FieldId());
29        System::Console::WriteLine(System::String(u"Field Name = ") + ocd->get_FieldName());
30        System::Console::WriteLine(System::String(u"Phonetic Alias = ") + ocd->get_PhoneticAlias());
31        System::Console::WriteLine(System::String(u"Guid = ") + ocd->get_Guid());
32        
33        // Display outline code masks
34        
35        {
36            auto outlineMask_enumerator = (ocd->get_Masks())->GetEnumerator();
37            decltype(outlineMask_enumerator->get_Current()) outlineMask;
38            while (outlineMask_enumerator->MoveNext() && (outlineMask = outlineMask_enumerator->get_Current(), true))
39            {
40                System::Console::WriteLine(System::String(u"Level of a mask = ") + outlineMask->get_Level());
41                System::Console::WriteLine(System::String(u"Mask = ") + System::ObjectExt::ToString(outlineMask));
42            }
43        }
44        
45        // Display out line code values
46        
47        {
48            auto outlineMask1_enumerator = (ocd->get_Values())->GetEnumerator();
49            decltype(outlineMask1_enumerator->get_Current()) outlineMask1;
50            while (outlineMask1_enumerator->MoveNext() && (outlineMask1 = outlineMask1_enumerator->get_Current(), true))
51            {
52                System::Console::WriteLine(System::String(u"Description of outline value = ") + outlineMask1->get_Description());
53                System::Console::WriteLine(System::String(u"Value Id = ") + outlineMask1->get_ValueId());
54                System::Console::WriteLine(System::String(u"Value = ") + outlineMask1->get_Value());
55                System::Console::WriteLine(System::String(u"Type = ") + System::ObjectExt::ToString(outlineMask1->get_Type()));
56            }
57        }
58    }
59}

Check Outline Code Id Uniqueness

While working with OutlineCode, Aspose.Tasks shall check the uniqueness of the Outline Code Id and duplicate Ids will be replaced with unique values.

 1System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"OutlineValues2010.mpp");
 2    
 3System::SharedPtr<OutlineCodeDefinition> textOutline = System::MakeObject<OutlineCodeDefinition>();
 4textOutline->set_FieldId(System::Convert::ToString((int)Aspose::Tasks::ExtendedAttributeTask::OutlineCode7));
 5textOutline->set_Alias(u"My Outline Code");
 6    
 7project->get_OutlineCodes()->Add(textOutline);
 8    
 9System::SharedPtr<OutlineMask> mask = System::MakeObject<OutlineMask>();
10mask->set_Type(Aspose::Tasks::MaskType::Characters);
11textOutline->get_Masks()->Add(mask);
12    
13System::SharedPtr<OutlineValue> textValue = System::MakeObject<OutlineValue>();
14textValue->set_Value(u"Text value 1");
15textValue->set_ValueId(1);
16textValue->set_Type(Aspose::Tasks::OutlineValueType::Text);
17textValue->set_Description(u"Text value descr 1");
18textOutline->get_Values()->Add(textValue);
19    
20project->Save(dataDir + u"MultipleOutlineValues.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.