Microsoft Project üç hesaplama modu sunar: otomatik, manuel ve hiçbiri. Her mod, projenin nasıl güncelleneceği ve yeniden hesaplanacağı konusunda farklı düzeyde kontrol sunar. Bu yazımızda Python’da MS Project hesaplama modlarının programlı olarak nasıl uygulanacağını öğreneceğiz. İster manuel planlamadan otomatik planlamaya geçiş yapıyor olun ister projenizin son tarihlerini yönetme konusunda esnekliğe ihtiyacınız olsun, bu makale size böyle bir geçiş için gereken bilgi ve kaynakları sağlayacaktır. Başlayalım!
Bu makale aşağıdaki konuları kapsamaktadır:
- Projeyi Programlı Olarak Hesaplamak için Python API’si
- Manuel Proje Hesaplaması
- Otomatik Proje Hesaplama
- Proje Hesaplama Modu Yok
Projeyi Programlı Olarak Hesaplamak için Python API’si
MS projesini hesaplama modları uygulamak için Aspose.Tasks for Python API’sini kullanacağız. Bağımlı özelliklerin değerlerini hesaplamak için aşağıdaki hesaplama modlarını sağlar:
- Yok – Bu mod yalnızca gerekli özellikleri ayarlar ve proje tarihlerini ve maliyetlerini yeniden hesaplamaz.
- Manuel – Bu mod, proje tarihlerini ve maliyetlerini yeniden hesaplamadan yalnızca bağımlı nesne özelliklerini ayarlar.
- Otomatik – Bu mod, proje tarihlerini ve maliyet özelliklerini otomatik olarak yeniden hesaplar.
Lütfen konsolda aşağıdaki pip komutunu kullanarak paketi indirin veya PyPI’den API’yi yükleyin:
pip install aspose-tasks
Python’da MS Project’i Manuel Olarak Hesaplayın
Hesaplama modunu manuel olarak ayarlayabilir ve aşağıdaki adımları izleyerek doğrulayabiliriz:
- Project sınıfının bir örneğini oluşturun.
- Hesaplama modunu MANUEL olarak ayarlayın.
- Proje başlangıç tarihini belirtin.
- Yeni görevler ekleyin, örneğin Görev 1 ve Görev 2.
- Görev özelliklerini okuyun.
- Bundan sonra, TaskLinks sınıfının bir nesnesini başlatın ve görevleri bağlayın.
- Son olarak Görev 2’nin başlangıç ve bitiş tarihini doğrulayın.
Aşağıdaki kod örneği Python’da bir projenin manuel olarak nasıl hesaplanacağını gösterir.
# Bu kod örneği, Python'da manuel hesaplama modunu kullanarak MS projesinin nasıl hesaplanacağını gösterir.
import aspose.tasks as tasks
from datetime import datetime, timedelta
# Projenin bir örneğini oluşturun
project = tasks.Project()
# Hesaplama modunu Manuel olarak ayarlayın
project.calculation_mode = tasks.CalculationMode.MANUAL
# Proje başlangıç tarihini ayarla
project.start_date = datetime(2015, 4, 15)
# Yeni görevler ekle
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")
# Gerekli özellikler manuel modda ayarlanır
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")
# İki görevi birbirine bağlayın, tarihleri manuel modda yeniden hesaplanmayacaktır
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)
# Görev 2 tarihlerinde değişiklik yok
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’da Otomatik Proje Hesaplama
Benzer şekilde MS projesini de daha önce bahsettiğimiz adımları takip ederek otomatik hesaplama modunu kullanarak hesaplayabiliriz. Ancak 2. adımda hesaplama modunu otomatik olarak ayarlamamız yeterli.
Aşağıdaki kod örneği, Python’da otomatik hesaplama modunu kullanarak MS projesinin nasıl hesaplanacağını gösterir.
# Bu kod örneği, Python'da otomatik hesaplama modunu kullanarak MS projesinin nasıl hesaplanacağını gösterir.
import aspose.tasks as tasks
from datetime import datetime, timedelta
# Projenin bir örneğini oluşturun
project = tasks.Project()
# Hesaplama modunu Otomatik olarak ayarlayın
project.calculation_mode = tasks.CalculationMode.AUTOMATIC
# Proje başlangıç tarihini ayarla
project.start_date = datetime(2015, 4, 15)
# Yeni görevler ekle
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")
# Görevleri bağlayın
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)
# Yeniden hesaplanan tarihleri doğrulayın
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’da Proje Hesaplama Modu Yok
Hesaplama modunu NONE olarak ayarlayabilir ve aşağıdaki adımları izleyerek doğrulayabiliriz:
- Project sınıfının bir örneğini oluşturun.
- Hesaplama modunu Yok olarak ayarlayın.
- Proje başlangıç tarihini belirtin.
- Yeni bir görev ekleyin, örneğin Görev 1.
- Görev özelliklerini okuyun.
- Bundan sonra görev süresini gün olarak ayarlayın.
- Son olarak Görevin başlangıç ve bitiş tarihini doğrulayın.
Aşağıdaki kod örneği, Python kullanarak MS proje hesaplama modunun nasıl yok olarak ayarlanacağını gösterir.
# Bu kod örneği, Python'da MS projesi hesaplama modunun NONE olarak nasıl ayarlanacağını gösterir.
import aspose.tasks as tasks
from datetime import datetime, timedelta
# Projenin bir örneğini oluşturun
project = tasks.Project()
# Hesaplama modunu Yok olarak ayarlayın
project.calculation_mode = tasks.CalculationMode.NONE
# Yeni bir görev ekle
task = project.root_task.children.add("Task")
# Kimliklerin bile hesaplanmadığını unutmayın
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")
# Süre özelliğini ayarla
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
Ücretsiz Lisans Alın
Kütüphaneyi değerlendirme sınırlamaları olmadan denemek için ücretsiz bir geçici lisans alabilirsiniz.
Python’da Proje Hesaplama – Öğrenme Kaynakları
Hesaplama modlarını uygulamanın ve MS proje takvimini ve süresini yeniden hesaplamanın yanı sıra, aşağıdaki kaynakları kullanarak kitaplığın diğer çeşitli özelliklerini keşfedebilirsiniz:
- Geliştirici kılavuzu
- Ücretsiz çevrimiçi uygulamalar
- API referansı
- Nasıl yapılır kılavuzları ve makaleler
Çözüm
Bu yazımızda Python’da proje hesaplama modlarının programlı olarak nasıl ayarlanacağını öğrendik. Ayrıca her hesaplama modunda bağımlı özelliklerin değerlerinin nasıl hesaplandığını da gördük. Aspose.Tasks for Python’u .NET aracılığıyla kullanarak bu işlevselliği Python uygulamalarınıza kolayca dahil edebilirsiniz. Herhangi bir belirsizlik durumunda lütfen ücretsiz destek forumumuz aracılığıyla bizimle iletişime geçmekten çekinmeyin.