PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → COMMENT SAISIR LA DATE DE COMMENCEMENT DE WD_GANTT ?
COMMENT SAISIR LA DATE DE COMMENCEMENT DE WD_GANTT ?
Débuté par Franck MENABREA, 11 oct. 2025 12:35 - 5 réponses
Membre enregistré
131 messages
Posté le 11 octobre 2025 - 12:35
bonjour,

à partir du modèle de WD_gantt,
j'aimerai pouvoir saisir la date du Jour 1 (avec un SAI_date) et à partir de cette date construire le diagramme de Gantt

comment fait-on ?
(dommage que WD_GANTT n'offre pas cette possibilité...
c'est sûrement très simple...
Merci de votre aide....
Cordialement
Franck M
Membre enregistré
1 007 messages
Posté le 11 octobre 2025 - 16:33
Bonjour,

La réponse est dans la documentation :

https://doc.pcsoft.fr/fr-FR/?1000030004#NOTE2_6

Paragraphe :

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

Cdlt
Membre enregistré
131 messages
Posté le 11 octobre 2025 - 22:16
Cédric_34 a écrit :
Bonjour,

La réponse est dans la documentation :

https://doc.pcsoft.fr/fr-FR/?1000030004#NOTE2_6

Paragraphe :

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

Cdlt


Bonjour ....
j'ai bien vu l'info : 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())

et du coup dans les procédures wd_gantt je l'inscris où cette commande ??
je souhaite commencer le diagramme de gantt à date SAI_début (et toutes les autres tâches sont recalculées après)
=======

PROCÉDURE AvantCréation(tgCréée est une TâcheGantt)

// Création en cours
gbCréationFAA = Vrai

// Paramètres par défaut d'une tâche
tgCréée.Avancement = 0
tgCréée.CouleurAvancement = COULEUR_AVANCEMENT
tgCréée.CouleurFond = COULEUR_FOND
tgCréée.ID = DonneIdentifiant()
tgCréée.Titre = "Nouvelle tâche "+tgCréée.ID

// Ouvre la fenêtre d'édition
SI Ouvre(FEN_Tâche, tgCréée) ALORS

// Ajoute la nouvelle ligne
soit nIndice = TableAjouteLigne(TABLE_Gantt, tgCréée.ID, tgCréée.Titre, tgCréée.DateDébut, tgCréée.DuréeEnJour, tgCréée.Avancement)
// Positionne la tâche créée dans cette ligne
tgCréée..Ligne = nIndice
// Met à jour les informations de la tâche
COL_Titre[tgCréée.Ligne] = tgCréée.Titre
COL_DateDébut[tgCréée.Ligne] = tgCréée.DateDébut
COL_Durée[tgCréée.Ligne] = tgCréée.DuréeEnJour
COL_Avancement[tgCréée.Ligne] = tgCréée.Avancement

// Si la tâche est cumulative
SI tgCréée.Cumulative ALORS PasseTâcheEnCumulative(tgCréée.Ligne)
// Si la tâche est un jalon
SI tgCréée.Jalon ALORS PasseTâcheEnJalon(tgCréée.Ligne)
// Si c'est une tâche simple
SI tgCréée.Cumulative = Faux _ET_ tgCréée.Jalon = Faux ALORS PasseTâcheEnStandard(tgCréée.Ligne)

// Réorganise les tâches si besoin
SI COL_Gantt..RéorganisationAutomatique ALORS GanttOrganiseTâche(COL_Gantt)

// Lance le calcul des tâches cumulatives parents
CalculTâchesParents(tgCréée.Ligne)
// Met à jour les informations du diagramme de Gantt
AfficheInfosGénéral()

SINON
// Annule la création
RENVOYER Faux
FIN

RENVOYER Vrai
PROCÉDURE EntréeEnSaisie(tgEditée est une TâcheGantt)

// Si une création était en cours, ne passe pas par l'édition
SI gbCréationFAA ALORS
// La création n'est plus en cours
gbCréationFAA = Faux
// Sélectionne la ligne
TableSelectPlus(TABLE_Gantt, tgEditée.Ligne)
// Annule l'édition
RENVOYER Faux
FIN

// Ouvre la fenêtre d'édition de la tâche
EditeTâche(tgEditée)

RENVOYER Faux
PROCÉDURE SortieDeSaisie(tgModifiée est une TâcheGantt)

PROCÉDURE Sélection(tgSélectionnée est une TâcheGantt)

// Mémorise la tâche comme tâche de référence
gTâcheGanttReference = tgSélectionnée

PROCÉDURE Déplacement(tgDéplacée est une TâcheGantt)

// Si la tâche est cumulative
SI tgDéplacée.Cumulative ALORS

// Repositionne la tâche
tgDéplacée.DateDébut = gTâcheGanttReference.DateDébut
tgDéplacée.Ligne = gTâcheGanttReference.Ligne
// Message pour avertir l'utilisateur sans le bloquer
ToastAffiche("Action impossible"+RC+"Les tâches cumulatives sont calculées automatiquement : vous ne pouvez pas les modifier", toastCourt, cvMilieu, chCentre, RougePastel)

SINON

// Si la ligne est différente
SI tgDéplacée.Ligne <> gTâcheGanttReference.Ligne ALORS
// Repositionne la tâche
tgDéplacée.Ligne = gTâcheGanttReference.Ligne
// Message pour avertir l'utilisateur sans le bloquer
ToastAffiche("Attention"+RC+"Il n'est pas possible de déplacer une tâche sur une autre ligne", toastCourt, cvMilieu, chCentre, RougePastel)
FIN

// Modifie le début dans la table
COL_DateDébut[tgDéplacée.Ligne] = tgDéplacée.DateDébut
// Lance le calcul des tâches cumulatives parents
CalculTâchesParents(tgDéplacée.Ligne)
// Met à jour toutes les tâches si nécessaire
MetAJourTâchesSuiteRéorganisationAuto()
// Met à jour les informations du diagramme de Gantt
AfficheInfosGénéral()

FIN

PROCÉDURE Redimensionnement(tgRedimensionnée est une TâcheGantt)

// Si la tâche est cumulative
SI tgRedimensionnée.Cumulative ALORS

// Repositionne la tâche
tgRedimensionnée.DateDébut = gTâcheGanttReference.DateDébut
// Rétablit la durée de la tâche
tgRedimensionnée.DuréeEnJour = gTâcheGanttReference.DuréeEnJour
// Message pour avertir l'utilisateur sans le bloquer
ToastAffiche("Action impossible"+RC+"Les tâches cumulatives sont calculées automatiquement : vous ne pouvez pas les modifier", toastCourt, cvMilieu, chCentre, RougePastel)

SINON

// Modifie la durée et le début dans la table
COL_Durée[tgRedimensionnée.Ligne] = tgRedimensionnée.DuréeEnJour
COL_DateDébut[tgRedimensionnée.Ligne] = tgRedimensionnée.DateDébut
// Lance le calcul des tâches cumulatives parents
CalculTâchesParents(tgRedimensionnée.Ligne)
// Met à jour toutes les tâches si nécessaire
MetAJourTâchesSuiteRéorganisationAuto()
// Met à jour les informations du diagramme de Gantt
AfficheInfosGénéral()

FIN
PROCÉDURE Suppression(tgSupprimée est une TâcheGantt)

RENVOYER SupprimeTâche(tgSupprimée)

PROCÉDURE AprèsLiaisonTâchePréalable (lgLien est un LienGantt)

cTâcheSource est une TâcheGantt
cTâcheDestination est une TâcheGantt


// Récupère les tâches impliquées dans la liaison
cTâcheSource <- GanttRécupèreTâche(COL_Gantt, lgLien.IDSource)
cTâcheDestination <- GanttRécupèreTâche(COL_Gantt, lgLien.IDDestination)

// Si une des tâches est cumulative
SI cTâcheDestination.Cumulative _OU_ cTâcheSource.Cumulative ALORS

// Supprime la liaison
GanttSupprimeLien(COL_Gantt, lgLien.IDSource, lgLien.IDDestination)
// Repositionne la tâche destination (qui a pu être modifiée)
cTâcheDestination.DateDébut = gTâcheGanttReference.DateDébut
// Message pour avertir l'utilisateur sans le bloquer
ToastAffiche("Action impossible"+RC+"Les tâches cumulatives ne peuvent être liées", toastCourt, cvMilieu, chCentre, RougePastel)

SINON

// Modifie la date de début dans la table
COL_DateDébut[cTâcheDestination.Ligne] = cTâcheDestination.DateDébut
// Lance le calcul des tâches cumulatives parents
CalculTâchesParents(cTâcheDestination.Ligne)
// Met à jour toutes les tâches si nécessaire
MetAJourTâchesSuiteRéorganisationAuto()
// Met à jour les informations du diagramme de Gantt
AfficheInfosGénéral()

FIN

PROCÉDURE ModificationAvancement(tgTâcheModifiée est une TâcheGantt)

// Si la tâche est cumulative
SI tgTâcheModifiée.Cumulative ALORS

// Rétablit l'avancement de la tâche
tgTâcheModifiée.Avancement = gTâcheGanttReference.Avancement
// Message pour avertir l'utilisateur sans le bloquer
ToastAffiche("Action impossible"+RC+"Les tâches cumulatives sont calculées automatiquement : vous ne pouvez pas les modifier", toastCourt, cvMilieu, chCentre, RougePastel)

SINON

// Modifie l'avancement dans la table
COL_Avancement[tgTâcheModifiée.Ligne] = tgTâcheModifiée.Avancement
// Lance le calcul des tâches cumulatives parents
CalculTâchesParents(tgTâcheModifiée.Ligne)
// Met à jour les informations du diagramme de Gantt
AfficheInfosGénéral()

FIN


Cordialement
Franck M
Membre enregistré
131 messages
Posté le 11 octobre 2025 - 22:16
Cédric_34 a écrit :
Bonjour,

La réponse est dans la documentation :

https://doc.pcsoft.fr/fr-FR/?1000030004#NOTE2_6

Paragraphe :

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

Cdlt


Bonjour ....
j'ai bien vu l'info : 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())

et du coup dans les procédures wd_gantt je l'inscris où cette commande ??
je souhaite commencer le diagramme de gantt à date SAI_début (et toutes les autres tâches sont recalculées après)
=======

PROCÉDURE AvantCréation(tgCréée est une TâcheGantt)

// Création en cours
gbCréationFAA = Vrai

// Paramètres par défaut d'une tâche
tgCréée.Avancement = 0
tgCréée.CouleurAvancement = COULEUR_AVANCEMENT
tgCréée.CouleurFond = COULEUR_FOND
tgCréée.ID = DonneIdentifiant()
tgCréée.Titre = "Nouvelle tâche "+tgCréée.ID

// Ouvre la fenêtre d'édition
SI Ouvre(FEN_Tâche, tgCréée) ALORS

// Ajoute la nouvelle ligne
soit nIndice = TableAjouteLigne(TABLE_Gantt, tgCréée.ID, tgCréée.Titre, tgCréée.DateDébut, tgCréée.DuréeEnJour, tgCréée.Avancement)
// Positionne la tâche créée dans cette ligne
tgCréée..Ligne = nIndice
// Met à jour les informations de la tâche
COL_Titre[tgCréée.Ligne] = tgCréée.Titre
COL_DateDébut[tgCréée.Ligne] = tgCréée.DateDébut
COL_Durée[tgCréée.Ligne] = tgCréée.DuréeEnJour
COL_Avancement[tgCréée.Ligne] = tgCréée.Avancement

// Si la tâche est cumulative
SI tgCréée.Cumulative ALORS PasseTâcheEnCumulative(tgCréée.Ligne)
// Si la tâche est un jalon
SI tgCréée.Jalon ALORS PasseTâcheEnJalon(tgCréée.Ligne)
// Si c'est une tâche simple
SI tgCréée.Cumulative = Faux _ET_ tgCréée.Jalon = Faux ALORS PasseTâcheEnStandard(tgCréée.Ligne)

// Réorganise les tâches si besoin
SI COL_Gantt..RéorganisationAutomatique ALORS GanttOrganiseTâche(COL_Gantt)

// Lance le calcul des tâches cumulatives parents
CalculTâchesParents(tgCréée.Ligne)
// Met à jour les informations du diagramme de Gantt
AfficheInfosGénéral()

SINON
// Annule la création
RENVOYER Faux
FIN

RENVOYER Vrai
PROCÉDURE EntréeEnSaisie(tgEditée est une TâcheGantt)

// Si une création était en cours, ne passe pas par l'édition
SI gbCréationFAA ALORS
// La création n'est plus en cours
gbCréationFAA = Faux
// Sélectionne la ligne
TableSelectPlus(TABLE_Gantt, tgEditée.Ligne)
// Annule l'édition
RENVOYER Faux
FIN

// Ouvre la fenêtre d'édition de la tâche
EditeTâche(tgEditée)

RENVOYER Faux
PROCÉDURE SortieDeSaisie(tgModifiée est une TâcheGantt)

PROCÉDURE Sélection(tgSélectionnée est une TâcheGantt)

// Mémorise la tâche comme tâche de référence
gTâcheGanttReference = tgSélectionnée

PROCÉDURE Déplacement(tgDéplacée est une TâcheGantt)

// Si la tâche est cumulative
SI tgDéplacée.Cumulative ALORS

// Repositionne la tâche
tgDéplacée.DateDébut = gTâcheGanttReference.DateDébut
tgDéplacée.Ligne = gTâcheGanttReference.Ligne
// Message pour avertir l'utilisateur sans le bloquer
ToastAffiche("Action impossible"+RC+"Les tâches cumulatives sont calculées automatiquement : vous ne pouvez pas les modifier", toastCourt, cvMilieu, chCentre, RougePastel)

SINON

// Si la ligne est différente
SI tgDéplacée.Ligne <> gTâcheGanttReference.Ligne ALORS
// Repositionne la tâche
tgDéplacée.Ligne = gTâcheGanttReference.Ligne
// Message pour avertir l'utilisateur sans le bloquer
ToastAffiche("Attention"+RC+"Il n'est pas possible de déplacer une tâche sur une autre ligne", toastCourt, cvMilieu, chCentre, RougePastel)
FIN

// Modifie le début dans la table
COL_DateDébut[tgDéplacée.Ligne] = tgDéplacée.DateDébut
// Lance le calcul des tâches cumulatives parents
CalculTâchesParents(tgDéplacée.Ligne)
// Met à jour toutes les tâches si nécessaire
MetAJourTâchesSuiteRéorganisationAuto()
// Met à jour les informations du diagramme de Gantt
AfficheInfosGénéral()

FIN

PROCÉDURE Redimensionnement(tgRedimensionnée est une TâcheGantt)

// Si la tâche est cumulative
SI tgRedimensionnée.Cumulative ALORS

// Repositionne la tâche
tgRedimensionnée.DateDébut = gTâcheGanttReference.DateDébut
// Rétablit la durée de la tâche
tgRedimensionnée.DuréeEnJour = gTâcheGanttReference.DuréeEnJour
// Message pour avertir l'utilisateur sans le bloquer
ToastAffiche("Action impossible"+RC+"Les tâches cumulatives sont calculées automatiquement : vous ne pouvez pas les modifier", toastCourt, cvMilieu, chCentre, RougePastel)

SINON

// Modifie la durée et le début dans la table
COL_Durée[tgRedimensionnée.Ligne] = tgRedimensionnée.DuréeEnJour
COL_DateDébut[tgRedimensionnée.Ligne] = tgRedimensionnée.DateDébut
// Lance le calcul des tâches cumulatives parents
CalculTâchesParents(tgRedimensionnée.Ligne)
// Met à jour toutes les tâches si nécessaire
MetAJourTâchesSuiteRéorganisationAuto()
// Met à jour les informations du diagramme de Gantt
AfficheInfosGénéral()

FIN
PROCÉDURE Suppression(tgSupprimée est une TâcheGantt)

RENVOYER SupprimeTâche(tgSupprimée)

PROCÉDURE AprèsLiaisonTâchePréalable (lgLien est un LienGantt)

cTâcheSource est une TâcheGantt
cTâcheDestination est une TâcheGantt


// Récupère les tâches impliquées dans la liaison
cTâcheSource <- GanttRécupèreTâche(COL_Gantt, lgLien.IDSource)
cTâcheDestination <- GanttRécupèreTâche(COL_Gantt, lgLien.IDDestination)

// Si une des tâches est cumulative
SI cTâcheDestination.Cumulative _OU_ cTâcheSource.Cumulative ALORS

// Supprime la liaison
GanttSupprimeLien(COL_Gantt, lgLien.IDSource, lgLien.IDDestination)
// Repositionne la tâche destination (qui a pu être modifiée)
cTâcheDestination.DateDébut = gTâcheGanttReference.DateDébut
// Message pour avertir l'utilisateur sans le bloquer
ToastAffiche("Action impossible"+RC+"Les tâches cumulatives ne peuvent être liées", toastCourt, cvMilieu, chCentre, RougePastel)

SINON

// Modifie la date de début dans la table
COL_DateDébut[cTâcheDestination.Ligne] = cTâcheDestination.DateDébut
// Lance le calcul des tâches cumulatives parents
CalculTâchesParents(cTâcheDestination.Ligne)
// Met à jour toutes les tâches si nécessaire
MetAJourTâchesSuiteRéorganisationAuto()
// Met à jour les informations du diagramme de Gantt
AfficheInfosGénéral()

FIN

PROCÉDURE ModificationAvancement(tgTâcheModifiée est une TâcheGantt)

// Si la tâche est cumulative
SI tgTâcheModifiée.Cumulative ALORS

// Rétablit l'avancement de la tâche
tgTâcheModifiée.Avancement = gTâcheGanttReference.Avancement
// Message pour avertir l'utilisateur sans le bloquer
ToastAffiche("Action impossible"+RC+"Les tâches cumulatives sont calculées automatiquement : vous ne pouvez pas les modifier", toastCourt, cvMilieu, chCentre, RougePastel)

SINON

// Modifie l'avancement dans la table
COL_Avancement[tgTâcheModifiée.Ligne] = tgTâcheModifiée.Avancement
// Lance le calcul des tâches cumulatives parents
CalculTâchesParents(tgTâcheModifiée.Ligne)
// Met à jour les informations du diagramme de Gantt
AfficheInfosGénéral()

FIN


Cordialement
Franck M
Membre enregistré
131 messages
Posté le 13 octobre 2025 - 16:44
solution trouvée !!!
je viens de tester l'ia chatgpt et python (avec quelques programmes qui vont avec !!!)
c'est impressionnant et le rendu est époustouflant !!! 10 fois plus rapide que windev et 100 fois plus efficace !!! et tellement moins cher !!!
Bon courage pour ceux qui vont utiliser le saas !!!
Cordialement
Franck M
Membre enregistré
334 messages
Posté le 16 octobre 2025 - 16:22
Franck MENABREA a écrit :
solution trouvée !!!
je viens de tester l'ia chatgpt et python (avec quelques programmes qui vont avec !!!)
c'est impressionnant et le rendu est époustouflant !!! 10 fois plus rapide que windev et 100 fois plus efficace !!! et tellement moins cher !!!
Bon courageA pour ceux qui vont utiliser le saas !!!
Cordialement
Franck M


Pareil, en Delphi ou Lazarus, parfait pour le multiplateformes aussi :merci:

Toute solution qui te font perdre l’accés à ton code source est à fuir…

--
———————————————————————————————————

Sans la liberté de blâmer, il n'est point d'éloge flatteur; il n'y a que les petits hommes, qui redoutent les petits écrits !