Python에서 MS 프로젝트 계산 모드 구현

Microsoft Project에서는 자동, 수동, 없음의 세 가지 계산 모드를 제공합니다. 각 모드는 프로젝트 업데이트 및 재계산 방법에 대한 다양한 수준의 제어를 제공합니다. 이 기사에서는 Python에서 프로그래밍 방식으로 MS 프로젝트 계산 모드를 구현하는 방법을 학습합니다. 수동 일정에서 자동 일정으로 마이그레이션하거나 프로젝트 마감일을 관리하는 데 유연성이 필요한 경우 이 문서에서는 그러한 전환에 필요한 정보와 리소스를 제공합니다. 시작하자!

이 문서에서는 다음 주제를 다룹니다.

  1. 프로그래밍 방식으로 프로젝트를 계산하는 Python API
  2. 수동 프로젝트 계산
  3. 자동 프로젝트 계산
  4. 프로젝트 계산 모드 없음

프로그래밍 방식으로 프로젝트를 계산하는 Python API

Aspose.Tasks for Python API를 사용하여 MS 프로젝트 계산 모드를 구현하겠습니다. 종속 속성의 값을 계산하기 위해 다음 계산 모드를 제공합니다.

  • 없음 – 이 모드는 필요한 속성만 설정하고 프로젝트 날짜와 비용을 다시 계산하지 않습니다.
  • 수동 – 이 모드는 프로젝트 날짜와 비용을 다시 계산하지 않고 종속 개체 속성만 설정합니다.
  • 자동 – 이 모드는 프로젝트 날짜와 비용 속성을 자동으로 다시 계산합니다.

콘솔에서 다음 pip 명령을 사용하여 패키지를 다운로드하거나 PyPI에서 API를 설치하세요.

pip install aspose-tasks

Python에서 수동으로 MS 프로젝트 계산

계산 모드를 수동으로 설정하고 아래 단계에 따라 이를 확인할 수 있습니다.

  1. Project 클래스의 인스턴스를 만듭니다.
  2. 계산 모드를 MANUAL로 설정합니다.
  3. 프로젝트 시작 날짜를 지정합니다.
  4. 작업 1, 작업 2 등 새 작업을 추가합니다.
  5. 작업 속성을 읽습니다.
  6. 그런 다음 TaskLinks 클래스의 개체를 초기화하고 작업을 연결합니다.
  7. 마지막으로 Task 2의 시작일과 종료일을 확인합니다.

다음 코드 샘플은 Python에서 프로젝트를 수동으로 계산하는 방법을 보여줍니다.

# 이 코드 예제는 Python에서 수동 계산 모드를 사용하여 MS 프로젝트를 계산하는 방법을 보여줍니다.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# 프로젝트 인스턴스 생성
project = tasks.Project()

# 계산 모드를 수동으로 설정
project.calculation_mode = tasks.CalculationMode.MANUAL

# 프로젝트 시작일 설정
project.start_date = datetime(2015, 4, 15)

# 새 작업 추가
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# 필요한 속성은 수동 모드에서 설정됩니다.
print("Task1.Id Equals 1 : ", task1.id == 1)
print("Task1 OutlineLevel Equals 1 : ", task1.outline_level == 1)
print("Task1 Start Equals 15/04/2015 08:00 AM : ", task1.start) == datetime(2015, 4, 15, 8, 0, 0)
print("Task1 Finish Equals 15/04/2015 05:00 PM : ", task1.finish) == datetime(2015, 4, 15, 17, 0, 0)
print("Task1 Duration Equals 1 day : ", str(task1.duration) == "1 day")
print("Task2 Start Equals 15/04/2015 08:00 AM : ", task2.start == datetime(2015, 4, 15, 8, 0, 0))
print("Task2 Finish Equals 15/04/2015 05:00 PM : ", task2.finish == datetime(2015, 4, 15, 17, 0, 0))
print("Task2 Duration Equals 1 day : ", str(task2.duration) == "1 day")

# 두 작업을 함께 연결하면 해당 날짜가 수동 모드에서 다시 계산되지 않습니다.
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# 작업 2 날짜는 변경되지 않습니다.
print("Task1 Start Equals Task2 Start : ", task1.start == task2.start)
print("Task1 Finish Equals Task2 Finish : ", task1.finish == task2.finish)
Task1.Id Equals 1 :  True
Task1 OutlineLevel Equals 1 :  True
Task1 Start Equals 15/04/2015 08:00 AM :  2015-04-15 08:00:00
Task1 Finish Equals 15/04/2015 05:00 PM :  2015-04-15 17:00:00
Task1 Duration Equals 1 day :  True
Task2 Start Equals 15/04/2015 08:00 AM :  True
Task2 Finish Equals 15/04/2015 05:00 PM :  True
Task2 Duration Equals 1 day :  True
Task1 Start Equals Task2 Start :  True
Task1 Finish Equals Task2 Finish :  True

Python의 자동 프로젝트 계산

마찬가지로 앞서 언급한 단계에 따라 자동 계산 모드를 사용하여 MS 프로젝트를 계산할 수 있습니다. 그러나 2단계에서 계산 모드를 자동으로 설정하기만 하면 됩니다.

다음 코드 샘플은 Python의 자동 계산 모드를 사용하여 MS 프로젝트를 계산하는 방법을 보여줍니다.

# 이 코드 예제는 Python의 자동 계산 모드를 사용하여 MS 프로젝트를 계산하는 방법을 보여줍니다.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# 프로젝트 인스턴스 생성
project = tasks.Project()

# 계산 모드를 자동으로 설정
project.calculation_mode = tasks.CalculationMode.AUTOMATIC

# 프로젝트 시작일 설정
project.start_date = datetime(2015, 4, 15)

# 새 작업 추가
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# 작업 연결
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# 다시 계산된 날짜 확인
print("Task1 Start + 1 Equals Task2 Start : ", (task1.start + timedelta(days=1)) == task2.start)
print("Task1 Finish + 1 Equals Task2 Finish : ", (task1.finish + timedelta(days=1)) == task2.finish)
print("RootTask Finish Equals Task2 Finish : ", task2.finish == project.root_task.finish)
print("Project Finish Date Equals Task2 Finish : ", task2.finish == project.finish_date)
Task1 Start + 1 Equals Task2 Start :  True
Task1 Finish + 1 Equals Task2 Finish :  True
RootTask Finish Equals Task2 Finish :  True
Project Finish Date Equals Task2 Finish :  False

Python에는 프로젝트 계산 모드가 없습니다.

계산 모드를 NONE으로 설정하고 아래 단계에 따라 이를 확인할 수 있습니다.

  1. Project 클래스의 인스턴스를 만듭니다.
  2. 계산 모드를 없음으로 설정합니다.
  3. 프로젝트 시작 날짜를 지정합니다.
  4. 새 작업(예: 작업 1)을 추가합니다.
  5. 작업 속성을 읽습니다.
  6. 그 후에는 작업 기간을 일 단위로 설정하세요.
  7. 마지막으로 Task의 시작 날짜와 종료 날짜를 확인합니다.

다음 코드 샘플은 Python을 사용하여 MS 프로젝트 계산 모드를 없음으로 설정하는 방법을 보여줍니다.

# 이 코드 예제는 Python에서 MS 프로젝트 계산 모드를 NONE으로 설정하는 방법을 보여줍니다.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# 프로젝트 인스턴스 생성
project = tasks.Project()

# 계산 모드를 없음으로 설정
project.calculation_mode = tasks.CalculationMode.NONE

# 새 작업 추가
task = project.root_task.children.add("Task")

# ID도 계산되지 않았습니다.
print("Task.Id Equals 0 : ", task.id == 0)
print("Task.OutlineLevel Equals 0 : ", task.outline_level == 0)
print("Task Start Equals DateTime.MinValue : ", task.start == datetime.min)
print("Task Finish Equals DateTime.MinValue : ", task.finish == datetime.min)
print("Task Duration Equals 0 mins : ", str(task.duration) == "0 mins")

# 기간 속성 설정
task.duration = project.get_duration(2.0, tasks.TimeUnitType.DAY)
print("Task Duration Equals 2 days : ", str(task.duration) == "2 days")
print("Task Start Equals DateTime.MinValue  : ", task.start == datetime.min)
print("Task Finish Equals DateTime.MinValue  : ", task.finish == datetime.min)
Task.Id Equals 0 :  True
Task.OutlineLevel Equals 0 :  False
Task Start Equals DateTime.MinValue :  True
Task Finish Equals DateTime.MinValue :  True
Task Duration Equals 0 mins :  True
Task Duration Equals 2 days :  True
Task Start Equals DateTime.MinValue  :  True
Task Finish Equals DateTime.MinValue  :  True

무료 라이센스 받기

무료 임시 라이선스를 받아 평가 제한 없이 라이브러리를 사용해 볼 수 있습니다.

Python으로 프로젝트 계산 – 학습 리소스

계산 모드를 구현하고 MS 프로젝트 일정 및 기간을 다시 계산하는 것 외에도 아래 리소스를 사용하여 라이브러리의 다양한 다른 기능을 탐색할 수 있습니다.

결론

이 기사에서는 Python에서 프로그래밍 방식으로 프로젝트 계산 모드를 설정하는 방법을 배웠습니다. 또한 각 계산 모드에서 종속 속성 값이 어떻게 계산되는지 살펴보았습니다. .NET을 통해 Python용 Aspose.Tasks를 활용하면 이러한 기능을 Python 애플리케이션에 쉽게 포함할 수 있습니다. 모호한 점이 있으면 언제든지 무료 지원 포럼에 문의해 주세요.

또한보십시오