IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Supprimer tous les rendez-vous d'un champ planning / ou par ID


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 16
    Points : 19
    Points
    19
    Par défaut Supprimer tous les rendez-vous d'un champ planning / ou par ID
    Bonsoir,

    je rencontre un problème plutôt bête. Je n'arrive pas a vider tout les rendez-vous d'une ressource d'un champs planning.

    J'affecte bien un ID unique sur chaque Rendez-vous mais impossible de supprimer un Rendez-vous par son ID quand j'utilise la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PlanningSupprimeRendezVous(Planning1,indice)
    Windev supprime le Rendez-vous numéro "indice" et non le Rendez-vous où l'ID = indice

    Si quelqu'un a une piste ou une solution ?
    Une fonction de parcours type "POUR TOUT RDV de PLANNING ... ?

    Merci.

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Bonjour,

    En effet PlanningSupprimeRendezVous(..) supprime le rendez-vous avec l'indice donné par l'identifiant.

    Si tu remplis ton champ par programmation, tu pourrais stocker les indices de chaque rendez-vous au moment de l'insertion dans un tableau associatif (ex : monTableau[indiceRDV] = IDRDV) par exemple.
    Je n'utilise pas encore le champ planning, il y a peut-être un truc tout bête mais je n'ai pas vu.

  3. #3
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Pour supprimer tous les RDV d'un planning, il y a la fonction PlanningSupprimeTout.

  4. #4
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    argh oui j'ai mal lu. Je me suis fait avoir par cette histoire d'ID

  5. #5
    Membre à l'essai
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    Bonjour Merci pour ces retours.

    Pour supprimer tous les RDV d'un planning, il y a la fonction PlanningSupprimeTout.
    Le probleme c'est que quand j'utilise PlanningSupprimeTout je supprime toute mes ressource et je voudrais effacer les RDV que d'une ressource.
    J'ai évidemment j'ai testé le PlanningSupprimeRessource qui pourait presque faire l'affaire mais le probleme c'est des que je recreer cette ressource pour mettre a jour le planning les anciens RDV sont deja la




    Si tu remplis ton champ par programmation, tu pourrais stocker les indices de chaque rendez-vous au moment de l'insertion dans un tableau associatif (ex : monTableau[indiceRDV] = IDRDV) par exemple.
    Je n'utilise pas encore le champ planning, il y a peut-être un truc tout bête mais je n'ai pas vu.
    J'ai testé avec Tableau bizarre ou Tableau associatif mais dans tout les car c'est le bazar car quand tu supprime avec la commande PlanningSupprimeRendezvous il te demande l'indice et non l'ID et quand tu supprime le 4 par exemple l'Ex 5 devient le 4 ... il doit y avoir une réindexation.

    du coup pour le moment je suis toujours dans le flou :s ...

  6. #6
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Citation Envoyé par lagorcejb Voir le message
    c'est le bazar car quand tu supprime avec la commande PlanningSupprimeRendezvous il te demande l'indice et non l'ID et quand tu supprime le 4 par exemple l'Ex 5 devient le 4 ...
    Actuellement vous parcourez le tableau de l'indice 1 au dernier pour faire la suppression.
    Si vous faites l'inverse (partir de la fin du tableau vers l'élément 1), il n'y aura plus ce problème de renumérotation.

    Eventuellement, postez votre code pour qu'on soit certains de parler de la même chose.

  7. #7
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Moui, commencer par la fin pourquoi pas mais le hic arrivera lorsqu'il voudra supprimer le rdv indicé 6 qui sera devenu le 5, car l'ancien 5 aura était supprimé... je me suis fait comprendre ^^ ?
    En regardant l'aide, j'avoue que je suis un peu déçu sur le manque de fonction de recherche dans ce type de champ, sachant qu'on y manipule des variables de type RendezVous.

    Si on revient sur le sujet, la suppression de tous les rendez-vous d'une ressource.
    La suppression de la ressource est une idée, mais je ne comprends pas le coup du 'les anciens RDV sont délà là'.
    Comment remplis-tu ton champ, par programmation, lié à un fichier ?

  8. #8
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Citation Envoyé par Lo² Voir le message
    Moui, commencer par la fin pourquoi pas mais le hic arrivera lorsqu'il voudra supprimer le rdv indicé 6 qui sera devenu le 5, car l'ancien 5 aura était supprimé... je me suis fait comprendre ^^ ?
    Si on commence par la fin, c'est qu'on ne peut pas supprimer le 5 avant le 6 donc le 6 ne peut pas prendre la place du 5 avant d'être supprimé... Là, même moi je ne me comprend pas.

    Mais faire un parcourt de la fin vers le début pour une suppression, c'est quelques chose de fréquent.
    Si j'ai un tableau de 10 chiffres (valeur de 1 à 10) et que je veut supprimer les valeur 4 et 6 je fais ce genre de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tnLstValeur est un Tableau de 10 entiers = [...]
    POUR nInd=10 A 1 PAS -1
       SI nInd _DANS_ (6, 4) ALORS TableauSupprime(tnLstValeur, nInd)
    FIN
    Ce qui est équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tnLstValeur est un Tableau de 10 entiers = [...]
    TableauSupprime(tnLstValeur, 6)
    TableauSupprime(tnLstValeur, 4)
    mais différent de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tnLstValeur est un Tableau de 10 entiers = [...]
    TableauSupprime(tnLstValeur, 4)
    TableauSupprime(tnLstValeur, 6) --> La mon tableau ne contient plus que 9 valeur donc le 6 est l'ancien 7

  9. #9
    Membre à l'essai
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    La suppression de la ressource est une idée, mais je ne comprends pas le coup du 'les anciens RDV sont délà là'.
    Comment remplis-tu ton champ, par programmation, lié à un fichier ?
    Alors ... en gros le but c'est de faire un petit soft pour faire de la Synchro entre deux type d'agenda.

    Outlook et agenda Web par API.

    je voulais afficher les deux plannings en mode ressource et pouvoir double cliquer sur un RDV de Outlook pour pouvoir le balancer sur le Web et vis et versa.

    J'arrive a récupérer et afficher les deux agenda dans les bonne ressource (pour le moment par deux bouton).

    Ex pour Outlook :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    PlanningSupprimeRessource(Planning1,"Outlook")
     
    outlook est un objet OLE dynamique = allouer un objet OLE "outlook.application"
    Calendrier est un objet OLE dynamique
    Dossier est un objet OLE dynamique
    DossierFiltre est un objet OLE dynamique
     
    DateFiltreStart est une DateHeure = Planning1..DébutEtendueTotale
    DateFiltreEnd est une DateHeure = Planning1..FinEtendueTotale
     
    Calendrier = outlook>>GetNamespace("MAPI");
     
    Dossier = Calendrier>>GetDefaultFolder(9)
     
    Dossier>>Items>>Sort("[Start]")
    DossierFiltre = Dossier>>Items>>Restrict("[Start] >= '" + DateFiltreStart..Jour + "/" + DateFiltreStart..Mois + "/" + DateFiltreStart..Année + " 00:01 AM' AND [End] <= '" + DateFiltreEnd..Jour + "/" + DateFiltreEnd..Mois + "/" + DateFiltreEnd..Année + " 12:00 PM'")
    DossierFiltre>>IncludeRecurrences("False")
    DossierFiltre>>Sort("[Start]")
    nbEvement est un entier = DossierFiltre>>count
     
    RendezVousTemp est un RendezVous
    DateStart est une DateHeure
    DateEnd est une DateHeure
     
    POUR IntEvent = 1 A nbEvement
     
    	DateStart = DossierFiltre>>item[IntEvent]>>Start
    	DateEnd = DossierFiltre>>item[IntEvent]>>End
     
    	RendezVousTemp..Titre = DossierFiltre>>item[IntEvent]>>Subject
    	RendezVousTemp..Contenu = DossierFiltre>>item[IntEvent]>>Body
    	RendezVousTemp..DateDébut = DateStart
    	RendezVousTemp..DateFin = DateEnd
    	RendezVousTemp..Ressource = "Outlook"
    	RendezVousTemp..ID = UIDTableau
    	RendezVousTemp..Catégorie = catBleu
     
    	PlanningAjouteRendezVous(Planning1, RendezVousTemp)
    	UIDTableau++
    FIN
     
     
    libérer outlook
    libérer Calendrier
    dans ce cas je récupère que le mois en cours d'affichage sur le planning. Si je change de mois et que je relance la fonction il va bien rajouter les Rendez-vous du deuxième mois. Mais si je reviens sur le premier mois et que je veux par exemple mettre a jour l'affichage et que je clic la il va dupliquer dans le champs planning tout les Rendez-Vous. c'est pour ca que je voulais supprimer tout les rendez vous de la ressource avant d'en recharger d'autre.

    quand j'utilise la fonction PlanningSupprimeRessource pour effacer tout les RDV de cette ressource et qu'apres je lance la fonction PlanningAjouteRessource la ressource ce recréer mais les RDV qui était dedans avant la suppression réapparaissent. seul la fonction PlanningSupprimeTout efface bien les RDV meme apres re-Ajout. Mais il efface aussi du coup le deuxieme planning .

    DSL C'est pas super facile a expliquer.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    Mais faire un parcourt de la fin vers le début pour une suppression, c'est quelques chose de fréquent.
    Oups j'avais pas vu cette partie ... Je vais tester c'est effectivement pas con du tout !

    Edit : Non en fait c'est pas bon car si je charge le deuxième agenda forcement quand je vais effacer le premier le indice du deuxième vont plus être bon dans le Tableau temporaire.
    En fait le vrai problème c'est que j'arrive pas a attaquer un RDV par programmation. d’après les Docs on ne peut que par l'indice. Qui lui est hélas dynamique.

    Donc quand je rajoute des Rdv je greffe un ID unique mais il ne sert a rien puisque je peux pas appeler par l'ID.

    Peut être y a-t-il un moyen d'attaquer un RDV en programmation en passant pas le Planning.
    Ex : Planning1[] ou Planning1..Rendezvous[40] ... mais j'ai rien trouvé de fonctionnel.

  11. #11
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 26
    Points : 65
    Points
    65
    Par défaut
    Bonjour,

    j'ai été confronté au même problème et pour le résoudre j'ai utilisé une solution qui a déjà été évoquée ci dessus à savoir l'utilisation d'un tableau associatif qui fait la liaison entre l'indice et l'ID du rendez-vous.

    Pour que ce tableau associatif reste à jour il faut le mettre à jour à chaque fois que l'on ajoute ou supprime un rendez-vous. L'idéal (à mon avis) est de la faire en surchargeant les procédures WLangage permettant d'ajouter et de supprimer les rendez-vous (PlanningAjouteRendezVous et PlanningSupprimeRendezVous) de cette manière on peut toujours compter sur le tableau associatif pour faire le "mapping" entre l'ID et le mapping.

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut suppression de tous les RDV
    Bonjour pour supprimer tous les rendez vous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    infordv est tableau de RendezVous= (PlanningListeRendezVous(monplanning))
    rdv_sup est un RendezVous
    POUR TOUT rdv_sup DE infordv
    	PlanningSupprimeRendezVous(PLN_monplanning,1)  / a chaque fois qu'on supprime 1, le 2 devient 1 etc...
    FIN

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/12/2011, 09h53
  2. Supprimer tous les champs d'une table
    Par Frog74 dans le forum VBA Access
    Réponses: 4
    Dernier message: 20/05/2008, 14h13
  3. Supprimer tous les espaces vides à la fin des champs.
    Par godjojo dans le forum Requêtes
    Réponses: 8
    Dernier message: 15/12/2007, 21h04
  4. supprimer tous les "a" d'un champs
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/01/2007, 21h32
  5. Réponses: 2
    Dernier message: 04/10/2005, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo