DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Champs, fenêtres et pages / Champs : Types disponibles / Champ Diagramme de Gantt
  • Présentation
  • Manipuler le champ Diagramme de Gantt par programmation
  • Ajouter une tâche
  • Ajouter un lien
  • Organiser les tâches
  • Remplir une colonne de type Diagramme de Gantt avec les données présentes dans un fichier de données HFSQL
  • Récupérer une liste de tâches
  • Afficher le Diagramme de Gantt à partir d'une date spécifique
  • Supprimer une tâche
  • Supprimer un lien
  • Utilisation du menu contextuel (FAA)
  • Utilisation avancée des événements associés à une colonne de type Diagramme de Gantt
  • Utilisation avancée des événements avec procédure
  • Gestion des jours fériés, des congés et des heures ouvrables
  • Gestion des jours fériés
  • Gestion des congés
  • Gestion des heures ouvrables
  • Propriétés spécifiques aux colonnes de type Diagramme de Gantt
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Manipuler un champ Diagramme de Gantt par programmation
Présentation
Pour manipuler un champ Diagramme de Gantt par programmation, WINDEV propose :
Cette page d'aide détaille comment manipuler un champ Diagramme de Gantt par programmation :
Manipuler le champ Diagramme de Gantt par programmation

Ajouter une tâche

Pour ajouter une tâche dans une colonne de type Diagramme de Gantt :
  1. Définissez et remplissez une variable de type TâcheGantt.
  2. Ajoutez la tâche grâce à la fonction GanttAjouteTâche.
Exemple :
NouvelleTâche est une TâcheGantt
 
// Paramètre la tâche
NouvelleTâche.ID = DonneIdentifiant()
NouvelleTâche.Ligne = 1
NouvelleTâche.Avancement = 50
NouvelleTâche.DateDébut = DateDuJour()
NouvelleTâche.DuréeEnJour = 1
NouvelleTâche.Titre = "Nouvelle tâche"
 
// Ajoute la tâche
GanttAjouteTâche(COL_Gantt, NouvelleTâche)
Conseil : Si les tâches sont mémorisées dans un fichier de données, nommez les rubriques avec les mêmes noms que les membres de la variable TâcheGantt. Vous pourrez alors utiliser la fonction FichierVersMémoire pour remplir la variable en une seule ligne de code :
// Remplit la variable à partir des rubriques du fichier de données
FichierVersMémoire(NouvelleTâche, TâchePourGantt)

Ajouter un lien

L'ajout d'un lien entre deux tâches dans une colonne de type Diagramme de Gantt est réalisé grâce à la fonction GanttAjouteLien. Cette fonction accepte deux syntaxes :
  • syntaxe permettant de lier 2 tâches identifiées par leur identifiant :
    t1 est une TâcheGantt
    t1.ID = "T1"
    t2 est une TâcheGantt
    t2.ID = "T2"
    GanttAjouteLien(COL_Gantt, t1, t2)
  • syntaxe manipulant une variable de type LienGantt.
    // Création d'un lien via une variable de type LienGantt
    Lien est un LienGantt
    Lien.IDSource = "T1"
    Lien.IDDestination = "T2"
    GanttAjouteLien(COL_Gantt, Lien)
Remarque : Par défaut, le lien créé est de type "Fin à début". Le type de lien créé peut être configuré dans la variable de type LienGantt ou dans la fonction GanttAjouteLien. Les liens disponibles sont :
  • Lien de type "Début à Début" : La tâche destination ne peut pas commencer avant que la tâche source ne soit commencée.
  • Lien de type "Début à Fin" : La tâche destination ne peut pas se terminer avant que la tâche source ne soit commencée (cas rare).
  • Lien de type "Fin à Début" (cas par défaut) : La tâche destination ne peut pas commencer avant que la tâche source ne soit terminée.
  • Lien de type "Fin à Fin" : La tâche destination ne peut pas se terminer avant que la tâche source ne soit terminée.

Organiser les tâches

Par défaut, les colonnes de type Diagramme de Gantt sont paramétrées pour réorganiser automatiquement les tâches en fonction de leurs liens : si l'utilisateur déplace une tâche dans le temps, toutes les tâches qui en dépendent seront automatiquement déplacées.
Pour désactiver ce paramètre et organiser librement les tâches :
  1. Affichez la fenêtre de description du champ.
  2. Dans l'onglet "Détail", décochez l'option "Réorganiser les autres tâches après modification par l'utilisateur".
  3. Utilisez la fonction GanttOrganiseTâche pour forcer une réorganisation ponctuelle des tâches.

Remplir une colonne de type Diagramme de Gantt avec les données présentes dans un fichier de données HFSQL

Les enregistrements sont stockés dans un fichier de données HFSQL. Le remplissage initial du champ Diagramme de Gantt peut être réalisé par un parcours du fichier de données via la syntaxe POUR TOUT et par l'ajout de chaque tâche via la fonction GanttAjouteTâche.
// Variable de type TâcheGantt
MaTâche est une TâcheGantt
 
// Parcours des tâches mémorisées en base
POUR TOUT Tâche
// Remplit les informations de la variable
MaTâche.ID = Tâche.Identifiant
MaTâche.Avancement = Tâche.Avancement
MaTâche.DateDébut = Tâche.Date
MaTâche.DuréeEnJour = Tâche.DuréeTâche
MaTâche.Titre = Tâche.Titre
// Ajoute la tâche
GanttAjouteTâche(COL_Gantt, MaTâche)
FIN

Récupérer une liste de tâches

La fonction GanttListeTâche permet de récupérer :
  • la liste de toutes les tâches de la colonne de type Diagramme de Gantt :
    // Liste toutes les tâches
    tabListe est un tableau de TâcheGantt
     
    // Récupère la liste des tâches
    tabListe = GanttListeTâche(COL_Gantt)
     
    InfoConstruit("Les tâches ont bien été récupérées : le tableau contient %1 tâche(s).", ...
    tabListe.Occurrence)
  • la liste des tâches comprises entre deux dates :
    // Liste les tâches à partir de la date du jour
    tabListe est un tableau de TâcheGantt
     
    // Récupère la liste des tâches
    tabListe = GanttListeTâche(COL_Gantt, DateSys())
  • la tâche actuellement sélectionnée ou survolée :
    // Récupère la tâche sélectionnée
    tabListe est un tableau de TâcheGantt
     
    // Récupère la liste des tâches
    tabListe = GanttListeTâche(COL_Gantt, ganttTâcheSélectionnée)
     
    InfoConstruit("La tâche récupérée : %1.", tabListe[1].Titre)

Afficher le Diagramme de Gantt à partir d'une date spécifique

Pour afficher le Diagramme de Gantt à partir d'une date et d'une heure spécifiques, utilisez la fonction GanttPositionDateHeure.
GanttPositionDateHeure(COL_Gantt, DateSys())

Supprimer une tâche

La fonction GanttSupprimeTâche permet de supprimer une tâche.
Par exemple :
// Bouton "Supprime"
SI OuiNon("Voulez-vous supprimer cette tâche ?") ALORS
GanttSupprimeTâche(COL_Gantt1)
FIN

Supprimer un lien

La fonction GanttSupprimeLien permet de supprimer un lien.
Par exemple :
// Supprime les liens de la tâche T2
GanttSupprimeLien(COL_Gantt, "T2")
La fonction GanttSupprimeTout permet de supprimer toutes les tâches et les liens d'une colonne de type Diagramme de Gantt.
Utilisation du menu contextuel (FAA)
Le champ Colonne de type Diagramme de Gantt est associé par défaut à un menu contextuel (FAA). Via le menu contextuel, il est possible de :
  • Ajouter, supprimer ou modifier une tâche.
  • Lier la tâche sélectionnée à une tâche préalable.
  • Supprimer tous les préalables d'une tâche.
  • Imprimer le contenu du Diagramme de Gantt. Cette option est disponible uniquement si un état de type "Diagramme de Gantt" a été créé.
Pour sauvegarder les opérations réalisées, il est nécessaire d'utiliser les événements de la colonne.
Dans l'événement concerné, il suffit de récupérer la tâche ou le lien en cours d'utilisation et de faire le traitement correspondant.
Exemple : Pour mémoriser une tâche que l'utilisateur ajoute via le menu contextuel dans un fichier de données "Tâche", il suffit de saisir dans l'événement "Entrée en saisie d'une tâche" :
PROCÉDURE EntréeEnSaisie(tgEditée est une TâcheGantt)
 
// Mémorisation des données
Tache.Titre = tgEditée.Titre
Tache.DateDébut = tgEditée.DateDébut
Tache.DateFin = tgEditée.DateFin
...
HAjoute(Tache)
Le même type de code peut être mis en place pour les différents événements de la colonne de type Diagramme de Gantt. En effet, pour chaque événement du champ qui manipule une tâche ou un lien, une procédure a été déclarée automatiquement par le champ Colonne.
Ces procédures reçoivent en paramètre une variable de type TâcheGantt ou LienGantt concernée par l'événement.
Utilisation avancée des événements associés à une colonne de type Diagramme de Gantt

Utilisation avancée des événements avec procédure

Il est également possible de proposer à l'utilisateur de définir plus précisément les caractéristiques de sa tâche lors d'un ajout ou d'une modification.
Il suffit pour cela de créer une fenêtre avec les informations à remplir.
Dans le code, il suffit d'ouvrir la fenêtre par exemple dans l'événement "Entrée en saisie d'une tâche". Pour bloquer la saisie directe par le menu contextuel de la colonne, l'événement doit alors renvoyer Faux.
Ce principe peut être appliqué à tous les événements appelés par le menu contextuel de la colonne.
Exemple :
PROCÉDURE EntréeEnSaisie(tgEditée est une TâcheGantt)
 
// Ouvre la fenêtre de saisie d'une tâche
// avec la tâche sélectionné (en mode Création ou Modification)
Ouvre(FEN_SaisieTâche, tgEditée)
 
// Renvoie FAUX pour bloquer la saisie directe dans la colonne
RENVOYER Faux
Gestion des jours fériés, des congés et des heures ouvrables

Gestion des jours fériés

La gestion des jours fériés est réalisée par programmation. Le WLangage met à votre disposition plusieurs fonctions débutant par JourFériéXXX.
Pour définir les jours fériés affichés dans les champs Agenda, Planning, Calendrier et colonne de type Diagramme de Gantt, il faut utiliser la fonction JourFériéAjoute. Cette fonction permet de définir la liste des jours fériés à utiliser. Cette fonction permet de personnaliser les jours fériés en fonction du pays et de la réglementation locale. Cette fonction doit être utilisée au début de l'application car elle a un effet global sur l'application.
Les jours fériés seront colorés en vert dans le Diagramme de Gantt.
Exemple :
// Suppression de tous les jours fériés
JourFériéSupprimeTout()
// Initialisation des 11 jours fériés communs aux départements français et DOM/TOM
JourFériéAjoute("0101") // 1er Janvier
JourFériéAjoute(jfLundiDePâques) // Lundi de Pâques
JourFériéAjoute("0501") // 1er Mai
JourFériéAjoute("0508") // 8 Mai
JourFériéAjoute(jfJeudiDeLAscension) // Jeudi de l'Ascension
JourFériéAjoute(jfLundiDePentecôte) // Lundi de Pentecôte
JourFériéAjoute("0714") // 14 Juillet
JourFériéAjoute("0815") // 15 Août (Assomption)
JourFériéAjoute("1101") // Toussaint
JourFériéAjoute("1111") // 11 Novembre
JourFériéAjoute("1225") // Noël

// Ajout de 2 jours fériés supplémentaires pour la Moselle et l'Alsace
JourFériéAjoute("1226" + RC + jfVendrediSaint)

Gestion des congés

Pour gérer les congés dans un diagramme de Gantt pour une ligne donnée, il suffit d'utiliser la fonction GanttAjouteCongé. Dans ce cas :
  • La nouvelle période de congés est considéré comme non ouvrable pour la ligne.
  • La durée des tâches est ajustée selon la période de congés spécifiée.
Exemple :
// Congés pour la ligne 4
GanttAjouteCongé(COL_Gantt, 4, "20140204", "20140204")

Gestion des heures ouvrables

Par défaut, les heures ouvrables sont définies lors de la description du champ Diagramme de Gantt sous l'éditeur de fenêtres. Il est possible de modifier ces heures ouvrables pour l'intégralité du champ grâce aux propriétés HeureOuvrableDébut et HeureOuvrableFin.
La fonction GanttHeureOuvrable permet de personnaliser les heures ouvrables pour une ligne donnée.
Exemple :
// Pour la ligne 2, les heures ouvrables vont de 9h30 à 12h puis de 13h à 18h30
GanttHeureOuvrable(COL_Gantt, 2, "0930", "1200", "1300", "1830")
// Pour la ligne 3, les heures ouvrables vont de 10h00 à 17h00
GanttHeureOuvrable(COL_Gantt, 3, "1000", "1700")
Remarques :
  • Cette fonction affecte le dessin du diagramme de Gantt si les heures sont affichées dans le diagramme de Gantt.
  • Cette fonction affecte le calcul de la durée des tâches si celles-ci sont spécifiées en heures.
Propriétés spécifiques aux colonnes de type Diagramme de Gantt
Les propriétés suivantes sont spécifiques à la gestion d'un Diagramme de Gantt par programmation.
AfficheLienLa propriété AfficheLien permet de connaître ou de modifier le mode d'affichage des liens dans une colonne de type Diagramme de Gantt.
DéplacementTâcheLa propriété DéplacementTâche permet de connaître et de modifier le mode de déplacement des tâches par l'utilisateur dans une colonne de type Diagramme de Gantt.
RéorganisationAutomatiqueLa propriété RéorganisationAutomatique permet de connaître et de modifier le mode de réorganisation automatique des tâches dans une colonne de type "Diagramme de Gantt".
Pour connaître la liste complète des propriétés du WLangage pouvant être utilisées avec une colonne de type Diagramme de Gantt, consultez Propriétés associées aux colonnes de type Diagramme de Gantt.
Version minimum requise
  • Version 19
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 22/05/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale