我正在尝试循环浏览每个资源名称,并打印出使用该资源的整个项目的单页概述(这样我的人员就有了他们需要做什么的个性化任务列表)。
我可以提取分配给项目的各种资源的值,并使用以下方式控制视图:
ResourceName = ActiveProject.Resources(i).Name
ViewApplyEx Name:="&Gantt Chart", ApplyTo:=0
我可以使用以下方式访问过滤器:
FilterApply Name:="Using Resource..."
我无法设置我想要的资源值。
我尝试设置 Value1:= "SoAndSo",但是我设置值的弹出窗口没有关闭。
我在尝试打印窗口时遇到类似的问题。
我可以进入打印窗口,但无法按下注册按钮以便打印机获得作业。
这是我关于外部循环(资源)和内部循环(分配)的评论的实现,它有效地创建了资源待办事项列表。包括您需要的任何资源/分配字段。我建议您在运行宏之前将时间刻度数据一直拉到右侧,这样它就不会出现在打印输出中。准备打印时,删除打印语句中的“预览”选项。
Dim r As Resource
Dim a As Assignment
For Each r In ActiveProject.Resources
r.Flag1 = True
For Each a In r.Assignments
a.Flag1 = True
Next a
FilterEdit Name:="ResAss", taskfilter:=False, create:=True, overwriteexisting:=True, FieldName:="Flag1", _
test:="equals", Value:="yes", ShowInMenu:=False, showsummarytasks:=False
FilterApply Name:="ResAss"
r.Flag1 = False
For Each a In r.Assignments
a.Flag1 = False
Next a
FilePrint preview:=True
FilterClear
Next r
End Sub
该宏循环遍历资源,设置过滤器,然后打印。使用FilterEdit可以轻松创建新的临时过滤器,然后使用OrganizerDeleteItem将其删除。另外,FilePrint方法至少需要一个参数,否则,如果没有参数,则会出现对话框。
Sub PrintTasksForEachResource()
Dim r As Resource
For Each r In ActiveProject.Resources
FilterEdit Name:="tempRes", TaskFilter:=True, Create:=True _
, OverwriteExisting:=True, FieldName:="Resource Names" _
, Test:="contains", Value:=r.Name _
, ShowSummaryTasks:=True
FilterApply "tempRes"
FilePrint Color:=True
Next r
FilterClear
OrganizerDeleteItem pjFilters, ActiveProject.Name, "tempres"
End Sub