PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2025 → Récupération dans un autre fichier
Récupération dans un autre fichier
Started by MB, Mar., 11 2025 5:56 AM - 14 replies
Registered member
62 messages
Posted on March, 11 2025 - 5:56 AM
Bonjour
J'utilise ces lignes récupérées dans un exemple Windev pour lorsque je saisis un code postal dans mon fichier B, mon menu déroulant me propose le ou la ville correspondant enregistrée dans mon fichier A

SI MoiMême..Modifié ET Taille(SAI_Code_postal)>= 2 ALORS

// Supprimer tous les enregistrements de la liste
ListeSupprimeTout(COMBO_ville)

// Filtrer toutes les villes selon le code postal saisi
SI HFiltre(CEDEX, Code_postal, SAI_Code_postal+hValMin, SAI_Code_postal+hValMax,"Code_Postal ]='" + SAI_Code_postal +"'" ) <> "" ALORS

// Lire le premier enregistrement trouvé
HLitPremier(CEDEX)

// Initialiser le sablier
Sablier()

TANTQUE PAS HEnDehors()

// Ajouter les villes dans la combo
ListeAjoute(COMBO_ville, CEDEX.Ville)

// lire l'enregistrement suivant
HLitSuivant(CEDEX)

FIN

// Enlever le sablier
Sablier(Faux)

//Ouvrir la combo automatiquement pour permettre le choix
ComboOuvre(COMBO_ville)
RepriseSaisie(COMBO_ville)

FIN

FIN


Mais je ne trouve pas la solution pour pouvoir récupérer également d'autres données se trouvant dans mon fichier A ( fichier CEDEX) comme par exemple l'adresse, un téléphone ou autre champ

merci d'avance

--
MB
Posted on March, 11 2025 - 9:06 AM
Bonjour,

Il faudrait faire un tour dans l'autoformation ;).

Tout se passe sur la ligne
// Ajouter les villes dans la combo
ListeAjoute(COMBO_ville, CEDEX.Ville)


C'est cette ligne qui rempli la combo.

Un exemple serait donc :
// Ajouter les villes dans la combo
ListeAjoute(COMBO_ville, CEDEX.Ville+" ("+CEDEX.Adresse+" - "+CEDEX.Téléphone+")")


A compléter et mettre en forme comme souhaité.

Bon dev

MB a écrit :
Bonjour
J'utilise ces lignes récupérées dans un exemple Windev pour lorsque je saisis un code postal dans mon fichier B, mon menu déroulant me propose le ou la ville correspondant enregistrée dans mon fichier A

SI MoiMême..Modifié ET Taille(SAI_Code_postal)>= 2 ALORS

// Supprimer tous les enregistrements de la liste
ListeSupprimeTout(COMBO_ville)

// Filtrer toutes les villes selon le code postal saisi
SI HFiltre(CEDEX, Code_postal, SAI_Code_postal+hValMin, SAI_Code_postal+hValMax,"Code_Postal ]='" + SAI_Code_postal +"'" ) <> "" ALORS

// Lire le premier enregistrement trouvé
HLitPremier(CEDEX)

// Initialiser le sablier
Sablier()

TANTQUE PAS HEnDehors()

// Ajouter les villes dans la combo
ListeAjoute(COMBO_ville, CEDEX.Ville)

// lire l'enregistrement suivant
HLitSuivant(CEDEX)

FIN

// Enlever le sablier
Sablier(Faux)

//Ouvrir la combo automatiquement pour permettre le choix
ComboOuvre(COMBO_ville)
RepriseSaisie(COMBO_ville)

FIN

FIN


Mais je ne trouve pas la solution pour pouvoir récupérer également d'autres données se trouvant dans mon fichier A ( fichier CEDEX) comme par exemple l'adresse, un téléphone ou autre champ

merci d'avance

--
MB
Registered member
62 messages
Posted on March, 11 2025 - 2:46 PM
Merci Ambroise d'avoir lu le sujet.
Mais je ne veux pas récupérer des infos dans mon fichier CEDEX (fichier A) pour tous les coller dans ma combo Ville (fichier B)
je veux simplement qu'en validant ma ville dans ma combo (fichier B), mes autres champ intègrent leur équivalent se trouvant dans le fichier A





--
MB
Posted on March, 12 2025 - 7:18 AM
MB a écrit :
Merci Ambroise d'avoir lu le sujet.
Mais je ne veux pas récupérer des infos dans mon fichier CEDEX (fichier A) pour tous les coller dans ma combo Ville (fichier B)
je veux simplement qu'en validant ma ville dans ma combo (fichier B), mes autres champ intègrent leur équivalent se trouvant dans le fichier A





--
MB


Ok j'avais mal lu.

Je ne peux accéder à l'image mais de ce que je comprends, tu as une zone de saisie dans laquelle tu commence à taper le code postal et tu veux qu'en cours de frappe, la combo ne s'alimente qu'avec les villes dont le code postal commence par ce que tu as tapé.

Dans ce cas, le code doit fonctionner mais il faut le mettre dans la partie "A chaque modification" du champ de saisie.
Registered member
62 messages
Posted on March, 12 2025 - 9:49 PM
Ambroise a écrit :
MB a écrit :
Merci Ambroise d'avoir lu le sujet.
Mais je ne veux pas récupérer des infos dans mon fichier CEDEX (fichier A) pour tous les coller dans ma combo Ville (fichier B)
je veux simplement qu'en validant ma ville dans ma combo (fichier B), mes autres champ intègrent leur équivalent se trouvant dans le fichier A





--
MB

Ok j'avais mal lu.

Je ne peux accéder à l'image mais de ce que je comprends, tu as une zone de saisie dans laquelle tu commence à taper le code postal et tu veux qu'en cours de frappe, la combo ne s'alimente qu'avec les villes dont le code postal commence par ce que tu as tapé.

Dans ce cas, le code doit fonctionner mais il faut le mettre dans la partie "A chaque modification" du champ de saisie.














En fait, avec ce code dans ma sélection de combo ville, ca fonctionne :
SAI_Mairie="Mairie de "+COMBO_ville
SAI_Mairie_adresse=CEDEX.Adresse
SAI_Mairie_contact=CEDEX.Contact
SAI_Mairie_téléphone=CEDEX.Téléphone
SAI_Mairie_email=CEDEX.Email

mon fichier B est bien approvisionné par les données se trouvant dans le fichier CEDEX
mais pour qu'il fonctionne bien, il faut que j'ai un seul et unique code postal dans le fichier CEDEX (63112 par exemple)

Si par contre j'ai plusieurs villes avec le même code postal (19170 par exemple) dans le fichier CEDEX, ca ne fonctionne plus du tout.

--
MB
Registered member
949 messages
Posted on March, 13 2025 - 8:41 AM
Bonjour,

Pour une capture d'écran, le nom de la capture doit rester court et se limiter aux caractères a à z et aux chiffres 0 à 9 (pas de caractères spéciaux, pas d'accent, pas d'espace, etc...), par exemple "capture1.png" fonctionne.
ça aidera peut-être à comprendre le cas de plusieurs villes avec le même code postal ???
Cdlt
Registered member
4,256 messages
Posted on March, 13 2025 - 1:12 PM
Bonjour,
Le CP n'a jamais été la PK d'une commune. Dans ton ListeAjoute, il faut ajouter un gLien sur la PK de ta table CEDEX. La combo retournera alors la PK et tu pourra avoir accès aux données concernant ta commune.
...
TANTQUE PAS HEnDehors()

// Ajouter les villes dans la combo
ListeAjoute(COMBO_ville, CEDEX.Ville)

// lire l'enregistrement suivant
HLitSuivant(CEDEX)

FIN
...

Attention, gLien renvoie une chaîne, il faudra utiliser Val pour obtenir la PK.
//Récupération des données
HLitRecherchePremier(CEDEX,PKèCEDEX,Val(COMBO_Ville))

SAI_Mairie=ChaîneConstruit("Mairie de %1",CEDEX.Ville)
SAI_Mairie_adresse=CEDEX.Adresse
SAI_Mairie_contact=CEDEX.Contact
SAI_Mairie_téléphone=CEDEX.Téléphone
SAI_Mairie_email=CEDEX.Email


Une solution plus propre serait d'alimenter COMBO_Ville via une requête sur le CP, et de définir la PK comme valeur mémorisée.

--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM
Message modified, March, 13 2025 - 1:24 PM
Registered member
62 messages
Posted on March, 13 2025 - 4:43 PM
Voroltinquo a écrit :
Bonjour,
Le CP n'a jamais été la PK d'une commune. Dans ton ListeAjoute, il faut ajouter un gLien sur la PK de ta table CEDEX. La combo retournera alors la PK et tu pourra avoir accès aux données concernant ta commune.
...
TANTQUE PAS HEnDehors()

// Ajouter les villes dans la combo
ListeAjoute(COMBO_ville, CEDEX.Ville)

// lire l'enregistrement suivant
HLitSuivant(CEDEX)

FIN
...

Attention, gLien renvoie une chaîne, il faudra utiliser Val pour obtenir la PK.
//Récupération des données
HLitRecherchePremier(CEDEX,PKèCEDEX,Val(COMBO_Ville))

SAI_Mairie=ChaîneConstruit("Mairie de %1",CEDEX.Ville)
SAI_Mairie_adresse=CEDEX.Adresse
SAI_Mairie_contact=CEDEX.Contact
SAI_Mairie_téléphone=CEDEX.Téléphone
SAI_Mairie_email=CEDEX.Email


Une solution plus propre serait d'alimenter COMBO_Ville via une requête sur le CP, et de définir la PK comme valeur mémorisée.

--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM


Bonjour,
Voroltinquo

qu'est ce que le PK ?

--
MB
Registered member
2,254 messages
Posted on March, 13 2025 - 5:42 PM
Registered member
949 messages
Posted on March, 13 2025 - 5:57 PM
Bonjour,
PK : Primary Key - clé primaire - identifiant Unique
Cdlt
Registered member
278 messages
Posted on March, 13 2025 - 6:37 PM
Bonsoir,
Pour info, l'identifiant unique d'une commune est son numéro INSEE
Adresse de téléchargement :
https://www.data.gouv.fr/fr/datasets/base-officielle-des-codes-postaux/
Cdlt
Registered member
62 messages
Posted on March, 14 2025 - 2:00 PM
Jean-Pierre BLOCH a écrit :


On est loin de l'Identifiant Automatique ! :D

--
MB
Registered member
4,256 messages
Posted on March, 14 2025 - 2:33 PM
MB a écrit :
On est loin de l'Identifiant Automatique !

Rien n'empêche d'utiliser un identifiant automatique comme PK et en fonction des besoins d'utiliser ou non le code INSEE. S'il est utilisé, il sera défini en tant que clé alternative.

--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM
Registered member
2,254 messages
Posted on March, 14 2025 - 3:14 PM
MB a écrit :
Jean-Pierre BLOCH a écrit :
https://fr.wikipedia.org/wiki/Point_kilom%C3%A9trique

--
Bon dev,
Jean-Pierre


On est loin de l'Identifiant Automatique !

--
MB

J'ai aussi beaucoup rigolé en voyant comme je m'étais "planté".
J'aurais pû aussi dire PéKin :D

--
Bon dev,
Jean-Pierre
Registered member
949 messages
Posted on March, 14 2025 - 3:58 PM
Bonjour Jean-Pierre BLOCH
J'avoue que ça m'a au minimum fait sourire également.
On comprend vite que c'était une réponse trop rapide et ça peut arriver à tout le monde, surtout quand on voit l'imprécision de certaines questions.
Cdlt