|
| Débuté par dpdousset, 29 déc. 2004 16:27 - 20 réponses |
| |
| | | |
|
| |
| Posté le 29 décembre 2004 - 16:27 |
Bonjour à tous,
Voici mon prob (je débute et excusez moi si ma question est nul).
J'ai une table Personnel qui s'affiche dans un élément Table. Je désire filtrer mes salariés selon si il sont en activité - sortie ou tous les salariés.
J'ai mis sur ma forme un selecteur avec 3 boutons et j'ai mis le code suivant :
SELON Sélecteur1 CAS 1 Table = Personnel.HorsEffectif = Vrai CAS 2 Table = Personnel.HorsEffectif= Faux CAS 3 Table = Personnel.HorsEffectif= "" FIN Mais cela ne fonctionne pas.
Si quelqu'un pouvait m'aider SVP
Merci
Pascal |
| |
| |
| | | |
|
| | |
| |
| Posté le 29 décembre 2004 - 16:35 |
Pascal Dousset a formulé ce mercredi :
Bonjour à tous,
Voici mon prob (je débute et excusez moi si ma question est nul).
J'ai une table Personnel qui s'affiche dans un élément Table. Je désire filtrer mes salariés selon si il sont en activité - sortie ou tous les salariés.
J'ai mis sur ma forme un selecteur avec 3 boutons et j'ai mis le code suivant :
SELON Sélecteur1 CAS 1 Table = Personnel.HorsEffectif = Vrai CAS 2 Table = Personnel.HorsEffectif= Faux CAS 3 Table = Personnel.HorsEffectif= "" FIN Mais cela ne fonctionne pas.
Si quelqu'un pouvait m'aider SVP
Merci
Pascal
Bonjour, Quelle action veux tu effectuer par ces instructions? Table = Personnel.HorsEffectif = Vrai CAS 2 Table = Personnel.HorsEffectif= Faux CAS 3 Table = Personnel.HorsEffectif= "" Parce que ce n'est pas des affectations valide
-- Pascal |
| |
| |
| | | |
|
| | |
| |
| Posté le 29 décembre 2004 - 17:47 |
Je désire affiché selon ma selection soit les salarié en activités, soit les salariés qui sont parties soit l'ensemble de ma base personnel.
J'ai essayé ça aussi
SELON Sélecteur1 CAS 1 Table..Filtre = Personnel.HorsEffectif = Vrai //Affiche les salariés en activités CAS 2 Table..Filtre = Personnel.HorsEffectif= Faux // Affiche les salariés sorties CAS 3 Table..Filtre = Personnel.HorsEffectif= "" // Affiche l'ensemble des salariés
Pascal |
| |
| |
| | | |
|
| | |
| |
| Posté le 29 décembre 2004 - 18:10 |
Il se trouve que Pascal Dousset a formulé :
Je désire affiché selon ma selection soit les salarié en activités, soit les salariés qui sont parties soit l'ensemble de ma base personnel.
J'ai essayé ça aussi
SELON Sélecteur1 CAS 1 Table..Filtre = Personnel.HorsEffectif = Vrai //Affiche les salariés en activités CAS 2 Table..Filtre = Personnel.HorsEffectif= Faux // Affiche les salariés sorties CAS 3 Table..Filtre = Personnel.HorsEffectif= "" // Affiche l'ensemble des salariés
Pascal
Si c'est une table fichier il faut faire SELON Sélecteur1 CAS 1 //Table..Filtre = Personnel.HorsEffectif = Vrai //Affiche les salariés en activités HFiltre(Personnel,MaCleParcours,BorneMini,BorneMaxi,"HorsEffectif = 1") CAS 2 //Table..Filtre = Personnel.HorsEffectif= Faux // Affiche les salariés sorties HFiltre(Personnel,MaCleParcours,BorneMini,BorneMaxi,"HorsEffectif = 0") CAS 3 //Table..Filtre = Personnel.HorsEffectif= "" // Affiche l'ensemble des salariés HDesactiveFiltre(Personnel) FIN executetraitement(TABLE,trtInit)
-- Pascal |
| |
| |
| | | |
|
| | |
| |
| Posté le 29 décembre 2004 - 18:15 |
Bonjour,
Tu dois créer un filtre suivant l'optio sélectionnée sur ton sélecteur: Pour tes personnes en activités essaies ça: Tablesupprimetout(Table) hfiltre("PERSONNEL","ETAT=HorsEffectif") HlitPremier("PERSONNEL") TANTQUE pas HEnDehors() Tableajoute(Table,<champ1>+TAB+<champ2>+TAB+...+TAB+<champn>) HlitSuivant("PERSONNEL") Fin
Pour chaque cas de ton sélecteur tu dois remplir ta table suivant le critère du filtre. Donc ça va te faire 2 filtres à faire car ta dernière option affiche l'ensemble de ton fichier. Voilà.
Tiens-moi au courant.
Bon Dev. Nico. |
| |
| |
| | | |
|
| | |
| |
| Posté le 29 décembre 2004 - 19:01 |
Merci Pascal pour ta réponse, mais cela ne fonctionne pas quand je clique sur mon selecteur ma table efface (pas supprime) les enregistrements.
En revanche tu me mets "BorneMini,BorneMaxi" la je n'ai pas de données à mettre donc je les ai effacés!!!!!!
Je test dés maintenant la solution suivante.
Pascal |
| |
| |
| | | |
|
| | |
| |
| Posté le 29 décembre 2004 - 19:02 |
Je test la réponse de Ocin
Pour info ma table est une table HF.
Pascal |
| |
| |
| | | |
|
| | |
| |
| Posté le 29 décembre 2004 - 19:09 |
Ocin en regardant ton texte, je ne comprend pas ou j'indique que si dans ma table personnel le champ Horseffectif a la valeur vrai ou faux j'affiche tel ou tel liste de salariés???
Pascal |
| |
| |
| | | |
|
| | |
| |
| Posté le 29 décembre 2004 - 19:45 |
Pascal Dousset a émis l'idée suivante :
Merci Pascal pour ta réponse, mais cela ne fonctionne pas quand je clique sur mon selecteur ma table efface (pas supprime) les enregistrements.
En revanche tu me mets "BorneMini,BorneMaxi" la je n'ai pas de données à mettre donc je les ai effacés!!!!!!
Je test dés maintenant la solution suivante.
Pascal
Erreur de ma part il faut utiliser TableAffiche pour rafraichir la table. J'ai fait le test sur un fichier d'un de mes programmes. Le fichier est CONTRATS et la clé de parcours NUDEV qui est alpha de 9 caractères.
Dans le code de modification du sélecteur j'ai mis le code suivant: SELON MoiMême CAS 1 : HFiltre(CONTRAT,NUDEV,"","zzzzzzzzz","ACCEPTE='1'") CAS 2 : HFiltre(CONTRAT,NUDEV,"","zzzzzzzzz","ACCEPTE<>'1'") CAS 3 : HDésactiveFiltre(CONTRAT)
FIN TableAffiche(Table_CONTRAT,taInit)
Le champ ACCEPTE est un champ texte c'est pour ça que j'ai 1 entre des apostrophes. Les valeurs "" et "zzzzzzzz" sont les bornes mini et maxi de parcours de mon fichier.
dans l'init du sélecteur je mets la valeur initiale et j'exécute le code de modif pour que les enregistrements affichés correspondent à l&a position du sélecteur. Bonne soirée.
-- Pascal |
| |
| |
| | | |
|
| | |
| |
| Posté le 29 décembre 2004 - 19:53 |
Excuses moi mais je n'avais pas saisi que Horseffectif était une rubrique de ton fichier, alors essaies cela:
Tablesupprimetout(Table) hfiltre("PERSONNEL","HorsEffectif=Vrai") HlitPremier("PERSONNEL") TANTQUE pas HEnDehors() Tableajoute(Table,<champ1>+TAB+<champ2>+TAB+...+TAB+&l t;champn>) HlitSuivant("PERSONNEL") Fin
Un conseil, mets ta table en remplissage par programmation c'est assez simple à gérer avec code d'initialisation que tu appelles à chaque interaction sur la table.
Bon dev. Nico. |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 décembre 2004 - 10:48 |
Remplace "" par caract(0) et "zzzzzzzz" par caract(255), et vrai et faux par 1 et 0, et tu verras que ça marche.
IDPersonnel est un entier, pas une chaine. |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 décembre 2004 - 10:48 |
Remplace "" par caract(0) et "zzzzzzzz" par caract(255), et vrai et faux par 1 et 0, et tu verras que ça marche.
IDPersonnel est un entier, pas une chaine. |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 décembre 2004 - 11:30 |
Bonjour,
Dés mon arrivée ce matin j'ai testé les deux solution de vos code (Pascal et Nico) malheureusement cela ne marche pas.
Je m'explique lorsque je selectionne Actif la table ce vide, lorsque je selectionne sortie la table ce vide également enfin dans le code de Pascal, lorsque je clique sur TOUS j'ai l'ensemble de mes enregistrement (normal puisque l'on désactive le filtre), en revanche pour Nico à chaque selection ma table ce vide.
PAscal |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 décembre 2004 - 11:54 |
Pascal Dousset avait soumis l'idée :
Bonjour,
Dés mon arrivée ce matin j'ai testé les deux solution de vos code (Pascal et Nico) malheureusement cela ne marche pas.
Je m'explique lorsque je selectionne Actif la table ce vide, lorsque je selectionne sortie la table ce vide également enfin dans le code de Pascal, lorsque je clique sur TOUS j'ai l'ensemble de mes enregistrement (normal puisque l'on désactive le filtre), en revanche pour Nico à chaque selection ma table ce vide.
PAscal
Bonjour, il faut faire attention dans la condition de sélection au type de données stockées dans HorsEffectif. Si c'est un numérique ou un booleen il faut mettre "HorsEffectif = 0". Si c'est un type caractère ou texte il faut mettre "HorsEffectif = '1' ". c'est la raison pour laquelle tu n'as rien lorsque tu fais une sélection autre que tous.
-- Pascal |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 décembre 2004 - 12:37 |
Bonjour,
Cela je l'ai bien compris (j'ai une case à cocher, donc du bouleen) doncj'ai mon code qui ressemble à cela.
SELON MoiMême CAS 1 : HFiltre(Personnel,IDPersonnel,"","zzzzzzzzz","HorsEffectif='Vrai'") CAS 2 : HFiltre(Personnel,IDPersonnel,"","zzzzzzzzz","HorsEffectif='Faux'") CAS 3 : HDésactiveFiltre(Personnel) FIN TableAffiche(Table,taInit)
Pascal |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 décembre 2004 - 12:46 |
Bonjour,
C'est ce que je t'ai dit, mes solutions sont utilisables uniquement sur des tables remplies par programmation. Par contre ce qui est étrange c'est que la solution donnée par Pascal devrait fonctionner sur des tables fichier. Bizarre, je vais testé tout cela...
Nico |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 décembre 2004 - 12:53 |
Pascal Dousset avait écrit le 30/12/2004 :
Bonjour,
Cela je l'ai bien compris (j'ai une case à cocher, donc du bouleen) doncj'ai mon code qui ressemble à cela.
SELON MoiMême CAS 1 : HFiltre(Personnel,IDPersonnel,"","zzzzzzzzz","HorsEffectif='Vrai'") CAS 2 : HFiltre(Personnel,IDPersonnel,"","zzzzzzzzz","HorsEffectif='Faux'") CAS 3 : HDésactiveFiltre(Personnel) FIN TableAffiche(Table,taInit)
Pascal
il faut faire CAS 1 : HFiltre(Personnel,IDPersonnel,"","zzzzzzzzz","HorsEffectif = 1 ") CAS 2 : HFiltre(Personnel,IDPersonnel,"","zzzzzzzzz","HorsEffectif = 0 ")
-- Pascal |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 décembre 2004 - 16:11 |
A nouveau moi, désolé Pascal mais cela ne fonctionne pas ma table ce vide.
Sous Delphi je faisais
TblPerso.Filter:='Actif = Faux'; TblPerso.Filtered := True;
Actif étant le nom de ma case à cocher
Ne faut il pas activer le filtre à quelque part????
Pascal |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 décembre 2004 - 16:59 |
Dans son message précédent, Pascal Dousset a écrit :
A nouveau moi, désolé Pascal mais cela ne fonctionne pas ma table ce vide.
Sous Delphi je faisais
TblPerso.Filter:='Actif = Faux'; TblPerso.Filtered := True;
Actif étant le nom de ma case à cocher
Ne faut il pas activer le filtre à quelque part????
Pascal
Curieux. J'ai fait un test et cela marchait. Dans la description de la table, sous l'onglet contenu, j'avais l'option 'Utiliser la foncton HFiltre pour parcourir le fichier' qui était cochée. Est-ce ton cas? Si non tu peux éventuellement m'envoyer en privé la fenetre et le fichier (avec le .wdd) afin que je regarde.
Voilà.. pour l'adresse ne conserver que le prénom avant l'arobace
-- Pascal |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 décembre 2004 - 17:47 |
| Pascal tu as oublié de me mettre ton adresse |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 décembre 2004 - 18:07 |
Pascal Dousset a pensé très fort : > Pascal tu as oublié de me mettre ton adresse
Elle est dans l'entete si tu as lecteur de news. N0.pascal.SPAM@efpe.biz ^^
-- Pascal |
| |
| |
| | | |
|
| | | | |
| | |
|