Microsoft Project에서는 자동, 수동, 없음의 세 가지 계산 모드를 제공합니다. 각 모드는 프로젝트 업데이트 및 재계산 방법에 대한 다양한 수준의 제어를 제공합니다. 이 기사에서는 Python에서 프로그래밍 방식으로 MS 프로젝트 계산 모드를 구현하는 방법을 학습합니다. 수동 일정에서 자동 일정으로 마이그레이션하거나 프로젝트 마감일을 관리하는 데 유연성이 필요한 경우 이 문서에서는 그러한 전환에 필요한 정보와 리소스를 제공합니다. 시작하자!
이 문서에서는 다음 주제를 다룹니다.
프로그래밍 방식으로 프로젝트를 계산하는 Python API
Aspose.Tasks for Python API를 사용하여 MS 프로젝트 계산 모드를 구현하겠습니다. 종속 속성의 값을 계산하기 위해 다음 계산 모드를 제공합니다.
- 없음 – 이 모드는 필요한 속성만 설정하고 프로젝트 날짜와 비용을 다시 계산하지 않습니다.
- 수동 – 이 모드는 프로젝트 날짜와 비용을 다시 계산하지 않고 종속 개체 속성만 설정합니다.
- 자동 – 이 모드는 프로젝트 날짜와 비용 속성을 자동으로 다시 계산합니다.
콘솔에서 다음 pip 명령을 사용하여 패키지를 다운로드하거나 PyPI에서 API를 설치하세요.
pip install aspose-tasks
Python에서 수동으로 MS 프로젝트 계산
계산 모드를 수동으로 설정하고 아래 단계에 따라 이를 확인할 수 있습니다.
- Project 클래스의 인스턴스를 만듭니다.
- 계산 모드를 MANUAL로 설정합니다.
- 프로젝트 시작 날짜를 지정합니다.
- 작업 1, 작업 2 등 새 작업을 추가합니다.
- 작업 속성을 읽습니다.
- 그런 다음 TaskLinks 클래스의 개체를 초기화하고 작업을 연결합니다.
- 마지막으로 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으로 설정하고 아래 단계에 따라 이를 확인할 수 있습니다.
- Project 클래스의 인스턴스를 만듭니다.
- 계산 모드를 없음으로 설정합니다.
- 프로젝트 시작 날짜를 지정합니다.
- 새 작업(예: 작업 1)을 추가합니다.
- 작업 속성을 읽습니다.
- 그 후에는 작업 기간을 일 단위로 설정하세요.
- 마지막으로 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 애플리케이션에 쉽게 포함할 수 있습니다. 모호한 점이 있으면 언제든지 무료 지원 포럼에 문의해 주세요.