|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| 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 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 131 messages |
|
| Posté le 11 octobre 2025 - 22:16 |
Cédric_34 a écrit :
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 .... 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 
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 ! |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|