PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Construction Clé composée  et filtre sur cette clé
Construction Clé composée et filtre sur cette clé
Started by mlion, Sep., 15 2004 8:37 PM - 3 replies
Posted on September, 15 2004 - 8:37 PM
Bonjour,

J'ai défini dans une table (fichier HF) une clé composée de la manière suivante
cle_comp est constituée de
code_usine sur 3 caractères
code _place numérique
code_libelle sur 13 caractères
type sur 1 caractère

Cette clé contient des doublons.

Je crée une table et cherche à faire à filtrer les enregistrements sur cette clè sans succès !
Dans ma table fichier j'ai plusieurs enregistrements avec pour cle_comp "ABC" 2 "5004250" et "p"
Voici mon code de filtre:
t1 est une chaîne = HConstruitValClé(NomenclaturesPF,Cle_Comp,"ABC",2,"5004250"+"P")+hValMin
t2 est une chaîne = HConstruitValClé(NomenclaturesPF,Cle_Comp,"ABC",2,"5004250"+"P")+hValMax
HFiltre(NomenclaturesPF,Cle_Nomenclature,t1,t2)


PS : si je créé une autre clé composée que sur des zones chaines de caractères mon filtre fonctionne ....


Merci de votre aide.

Michel.
Posted on September, 16 2004 - 1:26 AM
"Michel LION" <mlion@tele2.fr> écrivait news:41486f26@news.pcsoft.fr:

Dans ma table fichier j'ai plusieurs enregistrements avec pour
cle_comp "ABC" 2 "5004250" et "p" Voici mon code de filtre:
t1 est une chaŒne =
HConstruitValCl‚(NomenclaturesPF,Cle_Comp,"ABC",2,"5004250"+"P")+hValMi
n t2 est une chaŒne =
HConstruitValCl‚(NomenclaturesPF,Cle_Comp,"ABC",2,"5004250"+"P")+hValMa
x HFiltre(NomenclaturesPF,Cle_Nomenclature,t1,t2)


Salut,

Dans HConstruitValClé tu utilise une clé (Cle_Comp) et dans HFiltre une
autre (Cle_Nomenclature) !!

Dans ton cas on peut écrire plus simplement :
HFiltreCommencePar(NomenclaturesPF,Cle_Nomenclature,...
"ABC",2,"5004250P")


Note : on est d'accord que la dernières composante de la clé composée n'est
pas du tout indiqué et que l'avant dernière est partielle ?

--
En esperant t'avoir aidé.
ted
Posted on September, 16 2004 - 11:20 AM
En effet j'ai fait une petite erreur de copier/coller et le code réel est :

Voici mon code de filtre:
t1 est une chaîne = HConstruitValClé(NomenclaturesPF,Cle_Comp,"ABC",2,"5004
250"+"P")+hValMin
t2 est une chaîne = HConstruitValClé(NomenclaturesPF,Cle_Comp,"ABC",2,"5004
250"+"P")+hValMax
HFiltre(NomenclaturesPF,Cle_Comp,t1,t2)


Il ne marche pas pour autant !

PS : je ne veux pas hfiltrecommence par mais un filtre (avec une seule sélection de clé) que sur ma clé composée "ABC,2,5004250,P"

Merci.

Michel.
Posted on September, 17 2004 - 12:16 AM
"Michel LION" <mlion@tele2.fr> écrivait news:41493e17@news.pcsoft.fr:


En effet j'ai fait une petite erreur de copier/coller et le code réel
est :

Voici mon code de filtre:
t1 est une chaîne =
HConstruitValClé(NomenclaturesPF,Cle_Comp,"ABC",2,"5004
250"+"P")+hValMin t2 est une chaîne =
HConstruitValClé(NomenclaturesPF,Cle_Comp,"ABC",2,"5004
250"+"P")+hValMax HFiltre(NomenclaturesPF,Cle_Comp,t1,t2)


Il ne marche pas pour autant !

PS : je ne veux pas hfiltrecommence par mais un filtre (avec une
seule sélection de clé) que sur ma clé composée "ABC,2,5004250,P"

Merci.

Michel.


Salut,

tu n'as pas réondu à ma question:
"Note : on est d'accord que la dernières composante de la clé composée
n'est pas du tout indiqué et que l'avant dernière est partielle ?"

Mais d'apprès ce que je lis ici "P" fait parti de la denière composante
et pas de l'anat dernière, c'est ça ?

dans ce cas il faut écrire :
HConstruitValClé(NomenclaturesPF,Cle_Comp,"ABC",2,"5004250","P")
et pas
HConstruitValClé(NomenclaturesPF,Cle_Comp,"ABC",2,"5004250"+"P")

(Pour ceux qui n'auraient pas vu la différence : + est transfomé en ,
devant "P")

Note aussi que je ne comprends pas pourquoi tu ne veux pas
hfiltrecommence alors que dans ton code tu ajoute HvalMin sur la borne
min et hValMax sur la borne max !
Si tu veux faire une recherche à l'identique tu as HFiltreIdentique qui
est aussi plus simple d'utilisation :
HFiltreIdentique(NomenclaturesPF,Cle_Comp,"ABC",2,"5004250","P")

Autre solution encore : Une vue ou une requête avec un crtière sur chacun
des composant de la clé, et c'est hyperfile qui utilisera de lui même la
clé composée en fonction de tes critères !

--
En esperant t'avoir aidé.
ted