Как добавить расширенные атрибуты к назначениям ресурсов

Как и задачи и ресурсы, расширенные атрибуты также могут быть добавлены в назначения ресурсов. Aspose.Tasks для .NET API позволяет добавлять расширенные атрибуты к назначениям ресурсов. Расширенные атрибуты могут быть добавлены в назначения ресурсов как простые, так и атрибуты поиска.

Добавление расширенных атрибутов к назначению ресурсов

 1// Create new project
 2Project project = new Project("New Project.mpp");
 3
 4// Add new task and resource
 5Task task = project.RootTask.Children.Add("Task");
 6Resource resource = project.Resources.Add("Rsc");
 7
 8// Assign the resource to the desired task
 9ResourceAssignment assignment = project.ResourceAssignments.Add(task, resource);
10
11// Custom attributes which is visible in "Resource Usage" view can be created with ExtendedAttributeDefinition.CreateResourceDefinition method.
12{
13    ExtendedAttributeDefinition resCostAttributeDefinition = ExtendedAttributeDefinition.CreateResourceDefinition(
14        CustomFieldType.Cost,
15        ExtendedAttributeResource.Cost5,
16        "My cost");
17
18    project.ExtendedAttributes.Add(resCostAttributeDefinition);
19
20    var value = resCostAttributeDefinition.CreateExtendedAttribute();
21
22    // The type of the attribute is "Cost", so we need to use "NumericValue" property.
23    value.NumericValue = 1500;
24
25    assignment.ExtendedAttributes.Add(value);
26}
27
28// Custom attributes which is visible in "Task Usage" view can be created with ExtendedAttributeDefinition.CreateTaskDefinition method
29{
30    ExtendedAttributeDefinition taskCostAttributeDefinition = ExtendedAttributeDefinition.CreateTaskDefinition(
31        CustomFieldType.Cost,
32        ExtendedAttributeTask.Cost5,
33        "My cost for task");
34
35    project.ExtendedAttributes.Add(taskCostAttributeDefinition);
36
37    var value = taskCostAttributeDefinition.CreateExtendedAttribute();
38
39    // The type of the attribute is "Cost", so we need to use "NumericValue" property.
40    value.NumericValue = 2300;
41
42    assignment.ExtendedAttributes.Add(value);
43}
44
45project.Save("AddExtendedAttributesToResourceAssignment_out.mpp", SaveFileFormat.MPP);

Adding Lookup Extended Attributes to Resource Assignment

 1// Create new project
 2Project project = new Project("New Project.mpp");
 3
 4// Assign resource "1 TRG: Trade Group" to the "TASK 1" by creating a ResourceAssignment object.
 5Resource resource = project.Resources.GetById(1);
 6Task task = project.RootTask.Children.GetById(1);
 7
 8ResourceAssignment assignment = project.ResourceAssignments.Add(task, resource);
 9
10// Create custom attribute definition with lookup.
11ExtendedAttributeDefinition resCostAttr = ExtendedAttributeDefinition.CreateLookupResourceDefinition(
12    CustomFieldType.Cost,
13    ExtendedAttributeResource.Cost5,
14    "My lookup resource cost");
15project.ExtendedAttributes.Add(resCostAttr);
16
17var value1 = new Value { NumberValue = 1500, Description = "Val 1", Id = 1, Val = "1500" };
18
19resCostAttr.AddLookupValue(value1);
20
21resCostAttr.AddLookupValue(new Value { NumberValue = 2500, Description = "Val 2", Id = 2 });
22
23// This value can be seen in "Resource usage" view of MS Project.
24var attributeValue = resCostAttr.CreateExtendedAttribute(value1);
25assignment.ExtendedAttributes.Add(attributeValue);
26
27// Create custom attribute definition with lookup.
28ExtendedAttributeDefinition taskCostAttr = ExtendedAttributeDefinition.CreateLookupTaskDefinition(
29    ExtendedAttributeTask.Cost4,
30    "My lookup task cost");
31
32project.ExtendedAttributes.Add(taskCostAttr);
33
34var taskLookupValue1 = new Value { NumberValue = 18, Description = "Task val 1", Id = 3, Val = "18" };
35taskCostAttr.AddLookupValue(taskLookupValue1);
36
37resCostAttr.AddLookupValue(new Value { NumberValue = 30, Description = "Task val 2", Id = 4 });
38
39// This value can be seen in "Task usage" view of MS Project.
40assignment.ExtendedAttributes.Add(taskCostAttr.CreateExtendedAttribute(taskLookupValue1));
41
42project.Save("AddExtendedAttributesToRAWithLookUp_out.mpp", SaveFileFormat.MPP);
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.