答案1
资源使用情况视图中显示的任务信息实际上是任务信息。
显示的 Text2 字段来自作业。让事情变得更加复杂的是,在分配级别有两组“自定义”字段——一组用于任务,一组用于资源。
使用宏,您可以将任务级数据复制到分配级数据。
Sub UpdateAssignmentInfo()
Dim asn As Assignment
' transfer data to show in the Resource Usage view
Dim res As Resource
For Each res In ActiveProject.Resources
For Each asn In res.Assignments
asn.Text2 = asn.Task.Text2
Next asn
Next res
' transfer data to show in the Task Usage view
Dim tsk As Task
For Each tsk In ActiveProject.Tasks
For Each asn In tsk.Assignments
' use only ONE of the following:
' to show the task's value use
asn.Text2 = tsk.Text2
' to show the resource's value use
asn.Text2 = asn.Resource.Text2
Next asn
Next tsk
End Sub
这第一圈在此代码中将任务级数据复制到分配的资源字段(例如,您在资源使用情况视图中看到的字段)。
这第二循环将数据复制到任务分配的任务字段(例如任务使用情况视图中显示的字段)。根据需要,选择其中一行asn.Text2 = ...
并删除/注释掉另一行。第一个会复制任务信息,而第二个会显示来自资源本身的 Text2 数据(例如来自资源表视图)。
答案2
所以我发现,分配给任务的字段与分配给资源的字段不同,即使它们具有相同的名称。例如,资源的 Text2 不等于任务的 Text2。
因此,在两个集合之间进行复制的唯一方法是使用 VBA。如下所示:
Public Sub copy_task_location_to_resource_location()
For r = 1 To ActiveProject.Resources.Count
'iterate through resources
ActiveProject.Resources(r).Text1 = ""
ActiveProject.Resources(r).Text2 = ""
ActiveProject.Resources(r).Text3 = ""
ActiveProject.Resources(r).Text4 = ""
For a = 1 To ActiveProject.Resources(r).Assignments.Count
'iterate through assignments
'match up with correct task
For t = 1 To ActiveProject.Tasks.Count
If ActiveProject.Tasks(t) = ActiveProject.Resources(r).Assignments(a).Task Then
'copy fields over
ActiveProject.Resources(r).Assignments(a).Text3 = ActiveProject.Tasks(t).Text2
ActiveProject.Resources(r).Assignments(a).Text2 = Month(ActiveProject.Tasks(t).Start) & "/" & Day(ActiveProject.Tasks(t).Start)
ActiveProject.Resources(r).Assignments(a).Text1 = Format(ActiveProject.Tasks(t).Start, "H:mm am/pm")
ActiveProject.Resources(r).Assignments(a).Text4 = Format(ActiveProject.Tasks(t).Finish, "H:mm am/pm")
ActiveProject.Resources(r).Assignments(a).Notes = ActiveProject.Tasks(t).Notes
Exit For
End If
Next
Next
Next
End Sub
我循环遍历可用的资源,然后遍历这些资源的分配,然后找到分配的任务。一旦我找到该链接,我就可以复制我想要的任何数据。以上只是示例。
结果
结果是我可以输入我的任务,并分配任务资源、日期、注释和位置:
输入后,我现在可以通过两种方式查看结果。我可以按人查看每个人需要做什么:
时间和日期格式非常容易阅读,而且条理清晰
我也可以通过任务进行类似的查看:
这使得项目规划器看上去非常漂亮,并且易于修改。