Retour sommaire : Direct Planning - Formules - Voir aussi :

Un opérateur peut il commencer à travailler sur une tâche ?

Ce code génère une couleur

Dim w_Tache as Interfaces.Tache
' Récupère la tâche précédente dans la gamme
w_Tache = Tache.Gamme_Tache_Precedente()

' S’il y a bien une tâche précédente
If w_Tache isNot Nothing andalso w_Tache.estValide then
    if w_Tache.Tache_Terminee Then
        ' Tâche précédente terminée --> vert ; on peut commencer a travailler sur cette tâche
        couleur =     Color.FromArgb(89,255,89)
    else
        if w_Tache.Tache_Commencee then
            ' Tâche précédente terminée --> bleu ; on va sans doute bientot pouvoir commencer a travailler sur cette tâche
            couleur =    Color.FromArgb(117,255,255)
        else
            ' Aucune tache amont de l'OF n'est commencée --> rouge ; on ne peut pas travailler sur cette tâche
            couleur =   Color.FromArgb(255,117,117)
            
            ' On parcours les tâches en amont à la recherche d'au moins une tâche commencée
            Dim Encore as Boolean = true
            while Encore
                w_Tache = w_Tache.Gamme_Tache_Precedente()
                If not(w_Tache isNot Nothing andalso w_Tache.estValide) then
                    exit while
                end if
                
                if w_Tache.tache_Commencee then
                     ' Au moins une tâche mont de l'OF qui est commencée --> rose ; on ne peut pas travailler de suite sur cette tâche mais l'OF est commencé
                     couleur =   Color.FromArgb(255,117,255)
                    exit while
                end if
            end while            
            
        end if
    end if
else
    ' première tâche de l'OF : on peut commencer à travailler sur cette tâche
    couleur = Color.FromArgb(89,255,89)
End if