Implementa le modalità di calcolo di MS Project in Python

Microsoft Project offre tre modalità di calcolo: automatizzata, manuale e nessuna. Ciascuna modalità offre un diverso livello di controllo sul modo in cui il progetto viene aggiornato e ricalcolato. In questo articolo impareremo come implementare le modalità di calcolo di MS Project a livello di codice in Python. Se stai passando dalla pianificazione manuale a quella automatizzata o se hai bisogno di flessibilità nella gestione delle scadenze del progetto, questo articolo ti fornirà le informazioni e le risorse necessarie per tale transizione. Iniziamo!

Questo articolo tratta i seguenti argomenti:

  1. API Python per calcolare il progetto a livello di codice
  2. Calcolo manuale del progetto
  3. Calcolo automatico del progetto
  4. Nessuna modalità di calcolo del progetto

API Python per calcolare il progetto a livello di codice

Utilizzeremo l’API Aspose.Tasks for Python per implementare il progetto MS modalità di calcolo. Fornisce le seguenti modalità di calcolo per calcolare i valori delle proprietà dipendenti:

  • Nessuno: questa modalità imposta solo le proprietà necessarie e non ricalcola le date e i costi del progetto.
  • Manuale: questa modalità imposta solo le proprietà degli oggetti dipendenti senza ricalcolare le date e i costi del progetto.
  • Automatico: questa modalità ricalcola automaticamente le date del progetto e le proprietà dei costi.

Per favore scarica il pacchetto o installa l’API da PyPI utilizzando il seguente comando pip nella console:

pip install aspose-tasks

Calcola MS Project manualmente in Python

Possiamo impostare la modalità di calcolo su manuale e verificarla seguendo i passaggi seguenti:

  1. Crea un’istanza della classe Project.
  2. Impostare la modalità di calcolo su MANUALE.
  3. Specificare la data di inizio del progetto.
  4. Aggiungi nuove attività, ad esempio Attività 1 e Attività 2.
  5. Leggi le proprietà dell’attività.
  6. Successivamente, inizializza un oggetto della classe TaskLinks e collega le attività.
  7. Infine, verifica la data di inizio e di fine dell’Attività 2.

L’esempio di codice seguente mostra come calcolare manualmente un progetto in Python.

# Questo esempio di codice illustra come calcolare il progetto MS utilizzando la modalità di calcolo manuale in Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Creare un'istanza del progetto
project = tasks.Project()

# Impostare la modalità di calcolo su Manuale
project.calculation_mode = tasks.CalculationMode.MANUAL

# Imposta la data di inizio del progetto
project.start_date = datetime(2015, 4, 15)

# Aggiungi nuove attività
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# Le proprietà necessarie vengono impostate in modalità manuale
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")

# Collega due attività insieme e le loro date non verranno ricalcolate in modalità manuale
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# Nessun cambiamento nelle date dell'Attività 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

Calcolo automatico del progetto in Python

Allo stesso modo, possiamo calcolare il progetto MS utilizzando la modalità di calcolo automatico seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo solo impostare la modalità di calcolo su automatica nel passaggio 2.

L’esempio di codice seguente mostra come calcolare il progetto MS utilizzando la modalità di calcolo automatico in Python.

# Questo esempio di codice illustra come calcolare il progetto MS utilizzando la modalità di calcolo automatico in Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Creare un'istanza del progetto
project = tasks.Project()

# Imposta la modalità di calcolo su Automatica
project.calculation_mode = tasks.CalculationMode.AUTOMATIC

# Imposta la data di inizio del progetto
project.start_date = datetime(2015, 4, 15)

# Aggiungi nuove attività
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# Collegare le attività
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# Verificare le date ricalcolate
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

Nessuna modalità di calcolo del progetto in Python

Possiamo impostare la modalità di calcolo su NESSUNA e verificarla seguendo i passaggi indicati di seguito:

  1. Crea un’istanza della classe Project.
  2. Impostare la modalità di calcolo su Nessuna.
  3. Specificare la data di inizio del progetto.
  4. Aggiungi una nuova attività, ad esempio Attività 1.
  5. Leggi le proprietà dell’attività.
  6. Successivamente, imposta la durata dell’attività in giorni.
  7. Infine, verifica la data di inizio e di fine dell’attività.

L’esempio di codice seguente mostra come impostare la modalità di calcolo del progetto MS su nessuna utilizzando Python.

# Questo esempio di codice dimostra come impostare la modalità di calcolo del progetto MS su NONE in Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Creare un'istanza del progetto
project = tasks.Project()

# Imposta la modalità di calcolo su Nessuna
project.calculation_mode = tasks.CalculationMode.NONE

# Aggiungi una nuova attività
task = project.root_task.children.add("Task")

# Tieni presente che anche gli ID non sono stati calcolati
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")

# Imposta la proprietà della durata
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

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per provare la libreria senza limitazioni di valutazione.

Calcola progetto in Python – Risorse didattiche

Oltre a implementare le modalità di calcolo e a ricalcolare la pianificazione e la durata del progetto MS, puoi esplorare varie altre funzionalità della libreria utilizzando le risorse seguenti:

Conclusione

In questo articolo, abbiamo imparato come impostare le modalità di calcolo del progetto a livello di codice in Python. Abbiamo anche visto come vengono calcolati i valori delle proprietà dipendenti in ciascuna modalità di calcolo. Sfruttando Aspose.Tasks for Python tramite .NET, puoi facilmente incorporare tali funzionalità nelle tue applicazioni Python. In caso di ambiguità, non esitate a contattarci al nostro forum di supporto gratuito.

Guarda anche