2014-02-08 4 views
5

이것은 이미 많은 도움을 받았지만 사이트의 첫 번째 질문입니다.작업을 필터링하고 이름을 검색합니다.

내가 할 일은 MSProject (.MPP) 문서를 열고 모든 작업 이름을 살펴본 다음 지정된 이름으로 된 문서 만 검색하는 것입니다.

나는이 사이트에서 약간의 코드를 발견했다. 내 요구에 맞는 것 같지만, 절대적인 첫 번째 작업의 이름 만 검색 할 수 있습니까?

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

루프 권리가 : 여기에 코드 줄 이후 나에게 이상한 것 같다 ? 다른 .MPP 파일을 사용해 보았지만 내 파일을 만들었지 만 여전히 첫 번째 파일 만 검색합니다.

누군가가 내가 좋아할만한 작업 이름을 검색 할 때 사용할 필터를 디자인하도록 도울 수 있다면!

또한 Microsoft.Office.Interop.MSProject에 대한 설명서를 찾으려고했지만 실제로 찾지 못했습니다.

+0

아마 작업 클래스는 하위의 컬렉션을 가지고 있으며, 당신이 뭔가에있을 수 있습니다 생각이 – ivowiblo

+0

찾고있는 작업이있다, 나는 task.Name이, 잘못 사용하여 예를 들어 당신이 콘솔을 작성하는 경우 생각 .WriteLine (proj.NumberOfTasks); 오른쪽에 '89'가 표시됩니다. 이제는 실제로 이름을 출력하는 몇 가지 방법 만 필요합니다. Microsoft Project에서 후속 작업자를 수동으로 추가 한 다음 Console.WriteLine (task.SuccessorTasks);을 작성하면 다른 작업을 인쇄 할 수 있습니다. 하지만 우리는 너무 멀리 추적해야 할 것입니다 .. – NickeNyfiken

+0

그것은 나를 위해 작동하지만 아주 간단한 파일을 시도했습니다. 문제를 일으키는 mpp 파일 중 하나를 공유 할 수 있습니까? –

답변

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); 
      } 
    } 
} 
관련 문제