Cómo trabajar con códigos de esquema en proyectos

Los códigos de esquema personalizados son etiquetas que define para tareas o recursos que proporcionan una estructura de proyecto que es diferente de los códigos WBS o los números de esquema. Aspose.Tasks para C ++ le permite recuperar estos códigos de esquema y sus propiedades, como alias, AllLevelSquired, Enterprise, EnterpriseoutLinecodealias, Fieldid, FieldName, Phonicalias, GUID, Masks and Values.

Lectura de códigos de esquema

La clase del proyecto expone Outlinecodes, que es una colección de elementos OutlinEcodeDeFinition. OutLineCodeDefinition proporciona todos los detalles como se muestra en el siguiente código de muestra.

Las siguientes líneas de código recuperan la información del código de esquema de un proyecto.

 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.