2014-01-16 3 views
0

민첩한 관리 시스템에서 Microsoft Project 2010으로 프로젝트 정보 (사례, 리소스 등)를 내보내고이를 수행하기 위해 MPXJ 및 C#을 사용하는 현지 개발 팀을위한 유틸리티를 작성 중입니다. 예제를 사용하여 MS Project로 성공적으로 가져 오는 MPX 또는 MSPDI 출력 파일을 생성하는 코드를 조합하는 것은 매우 간단했습니다. , 작업의 WBS 레벨 값MPXJ 내보내기 작업 순서가 MS Project 2010을 혼란스럽게 함

Project -> TaskA -> TaskASubtask1 
       -> TaskASubtask2 
     -> TaskB -> TaskBSubtask1 
       -> TaskBSubtask2 -> TaskBSubSubtask1 

을 나는 순진하게도 임의의 순서로 자식 작업을 추가 할 때 (입력 스트림이 잘 정렬되지 않습니다) : 그러나 ... 우리가 원하는 형식은 멀티 레벨은 다음과 같이이다 올바른 모양이지만 가져 오기 후 작업은 생성 된 파일의 바로 이전 작업 아래에 위치합니다.

파일을 올바로 주문하는 것이 4.3.0에서 수정 된 버그였습니다 (기억하기 때문에). 그래서 "올바른"순서로 작업을 추가 할 필요가 없다고 생각했습니다. MpxCreate.cs 예제를 사용하고 "out of order"태스크 생성을 이동하면 MS Project에서 예상했던 것처럼 태스크 계층이 표시되지 않은 것과 동일한 동작을 보았습니다.

(두 번째 작업은 다음 작업 아래에 중첩되는 하위) MS 프로젝트에서 "주문 프리젠 테이션 중의"에이 간단한 코드 결과 :

Task task1 = file.AddTask(); 
task1.Name = "Summary Task"; 

Task task2 = task1.AddTask(); 
task2.Name = "First Sub Task"; 

Task task4 = file.AddTask(); 
task4.Name = "Next Task"; 

Task task3 = task1.AddTask(); 
task3.Name = "Second Sub Task"; 

해야하는이 작품? 또는 각 계층 구조가 한꺼번에 채워지도록 작업 생성 순서를 변경해야합니까?

나는 계속해서 놀아 보겠다. 그러나 나는 어떤 통찰력이라도 환영한다.

덕분에, 오웬 메모리에서

답변

0

, 나는 당신이, 순서는 MS 프로젝트에서 올바른하게 될 작업을 추가 한 후에는

file.synchronizeTaskIDToHierarchy(); 

를 호출하는 경우 생각합니다. 이 방법에 대한 자바 독에서

는 :

마이크로 소프트 프로젝트는 ID 값에 표시되는 작업의 순서를 기지입니다. 이 메서드는 MPXJ에 표시된 작업의 계층 구조를 사용하고이 구조가 Microsoft Project에서 예상대로 표시되도록 ID 값의 번호를 다시 매 깁니다. 이것은 일반적으로 계층 구조 작업이 MPXJ에서 프로그래밍 방식으로 작성된 경우를 처리하는 데 사용됩니다.

+0

아, 이것은 정확히 내가 누락 된 것 같습니다 (뭔가 있어야한다고 생각했습니다). 이것을 짧은 예제로 시도해 보도록하겠습니다. – osmedd