|
| Trier ressources champ Planning par programmation |
| Iniciado por Alouije, 03,jun. 2019 16:11 - 4 respuestas |
| |
| | | |
|
| |
Miembro registrado 5 mensajes |
|
| Publicado el 03,junio 2019 - 16:11 |
Bonjour à tous,
Je remplis un champ Planning par programmation en fonction de salariés et de tâches à effectuer, ci-dessous le code :
PROCÉDURE AffichePlanning() // Variables tmpRDV est un RendezVous
// Réinitialise PlanningSupprimeTout(PLN_PRINCIPALE)
POUR TOUT TACHE HFiltre(Salarié,IDSalarié,TACHE.IDSalarié) HLitPremier(Salarié) PlanningAjouteRessource(PLN_PRINCIPALE,Salarié.NomPrénom + gLien(TACHE.IDSalarié)) HFiltre(Commande,IDCommande,TACHE.IDCommande) HLitPremier(Commande)
HFiltre(TypeTache,IDTypeTache,TACHE.IDTypeTache) HLitPremier(TypeTache) // Ajout de la plage tmpRDV.ID = TACHE.IDTACHE tmpRDV.Ressource = TACHE.IDSalarié tmpRDV.Titre = TACHE.LIBTACHE tmpRDV.DateDébut = TACHE.DATEDEBUT tmpRDV.DateFin = TACHE.DATEFIN tmpRDV.Catégorie = TypeTache.TypeTache tmpRDV.Contenu = TACHE.CONTENUTACHE tmpRDV.Bulle = TACHE.LIBTACHE tmpRDV.CouleurFond = TypeTache.COULTYPE tmpRDV.Note = TACHE.IDTACHE tmpRDV.JournéeEntière = TACHE.JOURENTIER PlanningAjouteRendezVous(PLN_PRINCIPALE,tmpRDV) FIN
HDésactiveFiltre(TypeTache) HDésactiveFiltre(Commande) HDésactiveFiltre(TACHE) HDésactiveFiltre(Salarié)
Ce que je souhaite c'est trier les salariés (ressources) par nom. j'ai l'impression que par défaut il utilise idsalarié.
Merci beaucoup pour votre aide...
Alouije |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 116 mensajes |
|
| Publicado el 04,junio 2019 - 07:36 |
Bonjour,
Les ressources sont affichées dans l'ordre où elles sont ajoutées.
Dans ton cas tu parcours le fichier Salarié sur la rubrique IDSalarié.
Donc si tu veux que l'ordre des ressources de ton planning soit le nom des agents il faut parcourir le fichier sur la rubrique NomPrénom.
Bon courage |
| |
| |
| | | |
|
| | |
| |
| Publicado el 04,junio 2019 - 11:50 |
Alouije avait soumis l'idée :
Bonjour à tous,
Je remplis un champ Planning par programmation en fonction de salariés et de tâches à effectuer, ci-dessous le code :
PROCÉDURE AffichePlanning() // Variables tmpRDV est un RendezVous
// Réinitialise PlanningSupprimeTout(PLN_PRINCIPALE)
POUR TOUT TACHE
HFiltre(Salarié,IDSalarié,TACHE.IDSalarié) HLitPremier(Salarié) PlanningAjouteRessource(PLN_PRINCIPALE,Salarié.NomPrénom + gLien(TACHE.IDSalarié))
HFiltre(Commande,IDCommande,TACHE.IDCommande) HLitPremier(Commande)
HFiltre(TypeTache,IDTypeTache,TACHE.IDTypeTache) HLitPremier(TypeTache)
// Ajout de la plage tmpRDV.ID = TACHE.IDTACHE tmpRDV.Ressource = TACHE.IDSalarié tmpRDV.Titre = TACHE.LIBTACHE tmpRDV.DateDébut = TACHE.DATEDEBUT tmpRDV.DateFin = TACHE.DATEFIN tmpRDV.Catégorie = TypeTache.TypeTache tmpRDV.Contenu = TACHE.CONTENUTACHE tmpRDV.Bulle = TACHE.LIBTACHE tmpRDV.CouleurFond = TypeTache.COULTYPE tmpRDV.Note = TACHE.IDTACHE tmpRDV.JournéeEntière = TACHE.JOURENTIER
PlanningAjouteRendezVous(PLN_PRINCIPALE,tmpRDV)
FIN
HDésactiveFiltre(TypeTache) HDésactiveFiltre(Commande) HDésactiveFiltre(TACHE) HDésactiveFiltre(Salarié)
Ce que je souhaite c'est trier les salariés (ressources) par nom. j'ai l'impression que par défaut il utilise idsalarié.
Merci beaucoup pour votre aide...
Alouije
bonjour,
pour commencer les exemples d'utilisation des fonctions contenues dans l'aide ne sont pas là juste pour faire joli !!!
HFiltre(...) HLitPremier(...) ==> SI PAS HEnDehors(...) ALORS <== très important
ensuite vous parcourez des tâches pour ajouter des salariés en effectuant un filtre selon leur ID, votre parcours des tâches se fait sans même effectuer de tri, si vous avez 2 tâches pour un même salarié (1er et 10ème enreg du fichier par exemple) vous allez vous retrouvez avec 2 ressources identique au lieu d'une seule enfin il me semble à moins que que vous vouliez 2 ressources
étant donné que vous allez récupérer des infos dans plusieurs fichiers et que vous voulez un tri spécifique je pense qu'un requête serait plus adapté
ou alors je n'ai pas tout compris et j'ai répondu à côté de votre demande
-- Cordialement JeAn-PhI |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 5 mensajes |
|
| Publicado el 04,junio 2019 - 20:33 |
Il faudrait que je fasse un requête sur les taches c'est bien ça ?
Effectivement l'appli n'affiche pas les 2 ressources mais dans le code il y a un sens interdit avec un message qui décrit bien que la ressource existe déjà.
jérémy |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.362 mensajes |
|
| Publicado el 05,junio 2019 - 12:49 |
Bonjour, C'est en effet la solution la plus simple. Elle devrait ressembler plus ou moins à cela :
SELECT Tache.PK_Tache AS PK_Tache, Tache.NDX_NomTache AS NDX_NomTache, TypeTache.NDX_TypeDeTache AS NDX_TypeDeTache, Commande.AK_NoCommande AS AK_NoCommande, ( ( Salarie.NDX_PrenomSalarie + ' ') + Salarie.NDX_NomSalarie ) AS PrenomNom, Tache.FK_TypeTache AS FK_TypeTache //On inclura ici les rubriques nécessaires au RDV FROM Commande, Tache, Salarie, TypeTache WHERE TypeTache.PK_TypeTache = Tache.FK_TypeTache AND Salarie.PK_Salarie = Tache.FK_Salarie AND Commande.PK_Commande = Tache.FK_Commande AND ( Tache.FK_Commande = {pCommande} AND Tache.FK_Salarie = {pSalarie} AND Tache.FK_TypeTache = {pTypeTache} ) ORDER BY PrenomNom ASC
De plus, les filtres deviennent inutiles, il suffit de passer les enregistrements recherchés en paramètre
-- Il y a peut être plus simple, mais, ça tourneMensaje modificado, 05,junio 2019 - 12:49 |
| |
| |
| | | |
|
| | | | |
| | |
|