过滤任务并检索名称

时间:2014-02-08 01:06:13

标签: c#

这是我在网站上的第一个问题,虽然我已经得到了很多帮助。

我要做的是打开MSProject(.MPP)文档并查看所有任务名称,然后只检索具有指定名称的文档。

我在这个网站NerdyHearn上找到了一些似乎符合我需求的代码,但由于某些原因我只能检索绝对第一个任务的名称? 因为这行代码在我看来很奇怪:

    foreach (Microsoft.Office.Interop.MSProject.Task task in proj.Tasks)
    {
    }

循环是对的吗?我尝试过不同的.MPP文件,甚至创建了自己的文件,但它仍然只检索第一个文件。

如果有人可以帮我设计一个过滤器,以便在检索任务名称时使用,那就太棒了!

我还试图找到Microsoft.Office.Interop.MSProject的文档,但我似乎无法找到它。

1 个答案:

答案 0 :(得分:1)

发布代码块,以便您查看我拥有的内容。如果可以,请发布一个文件,也许是别的而不是子任务,因为我在某些地方有4个等级,所有的任务都按预期出现。

using Microsoft.Office.Interop.MSProject;
using System;
using System.Reflection;
namespace PProject
{
    public class Program
    {
         public static void Main()
         {

             Application projApp = new Application();
             projApp.FileOpenEx(@"C:\Tickets.mpp", true, Missing.Value, 
             Missing.Value, Missing.Value, Missing.Value, Missing.Value, 
             Missing.Value, Missing.Value, Missing.Value, Missing.Value,
             PjPoolOpen.pjDoNotOpenPool, Missing.Value, Missing.Value, 
             Missing.Value, Missing.Value, Missing.Value);

             Project proj = projApp.ActiveProject;

             // Enumerate the tasks
             foreach (Task task in proj.Tasks)
             {
                 string name = task.Name;

                 Console.WriteLine(task.Name);
             }

             // Make sure to clean up and close the file
             projApp.FileCloseAll(PjSaveType.pjDoNotSave);
             }
     }
 }