OVH Cloud OVH Cloud

prise de tête ...

5 réponses
Avatar
mtournier
Bonjour , je suis toujours en train de me prendre la t=EAte avec Windev,
oh j'ai surement pas fini :-)

J'aurai besoin d'un petit conseil pratique, c'est surtout pour mettre
en pratique ce que je lis dans le Guide WD, mais une fois transpos=E9
dans la r=E9alit=E9, je s=E8che ...

Soit un fichier membres :
-------------------------------------
Nom
prenom
Rue
NPA
Ville

et un fichier NPA :
--------------------------------------
NPA (Clef avec doublons)
Ville


Je voudrais au moment de la frappe du NPA dans la case ad-hoc de la
fichie du membre que la liste des villes qui correspondent a ce NPA se
charge dans un combo qui va recevoir la ville du fichier membres.
(il se peut que des petits hameaux aient le meme NPA) et que si une
seule ville existe, elle est inscrite dans le combo comme valeur de
celui-ci.

Comment feriez-vous cela ?
- au moment de l'=E9v=E8nement "sortie" du champ NPA =3D=3D> charger un
requete dans le combo ?
- un truc cach=E9 dans les m=E9andres de la fen=EAtre "Description..." ?
- autre chose ?=20


Merci d'avance

Amicalement=20

Marc

5 réponses

Avatar
Rick
a écrit :
Bonjour , je suis toujours en train de me prendre la tête avec Windev,
oh j'ai surement pas fini :-)

J'aurai besoin d'un petit conseil pratique, c'est surtout pour mettre
en pratique ce que je lis dans le Guide WD, mais une fois transposé
dans la réalité, je sèche ...

Soit un fichier membres :
-------------------------------------
Nom
prenom
Rue
NPA
Ville

et un fichier NPA :
--------------------------------------
NPA (Clef avec doublons)
Ville


Je voudrais au moment de la frappe du NPA dans la case ad-hoc de la
fichie du membre que la liste des villes qui correspondent a ce NPA se
charge dans un combo qui va recevoir la ville du fichier membres.
(il se peut que des petits hameaux aient le meme NPA) et que si une
seule ville existe, elle est inscrite dans le combo comme valeur de
celui-ci.

Comment feriez-vous cela ?
- au moment de l'évènement "sortie" du champ NPA ==> charger un
requete dans le combo ?
- un truc caché dans les méandres de la fenêtre "Description..." ?
- autre chose ?


Merci d'avance

Amicalement

Marc




bonjour,

Test ceci :

sortie du champ NPA ==>

SI MoiMême..Modifié ET Taille(chNPA) >= 2 ALORS
// Supprimer tous les enregistrements de la liste
ListeSupprimeTout(chVille) // ta combo ville //

// Filtrer toutes les villes selon le code postal saisie dans chNPA
SI HFiltre(NPA, NPA, chNPA+Caract(0), chCodePostal+Caract(255),
"NPA ]='" + chNPA +"'" ) <> "" ALORS

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

// Initialiser le sablier
Sablier()

TANTQUE PAS HEnDehors()
// Ajouter les villes dans la combo chVille
ListeAjoute(chVille, NPA.Ville)

// lire l'enregistrement suivant
HLitSuivant(NPA)
FIN

// Enlever le sablier
Sablier(Faux)

SINON
Info("Aucune ville ne correspond au code postal saisi")
RepriseSaisie(chNPA)
FIN
FIN


@++
Avatar
mtournier
merci pour ta réponse, j'ai fais un test avec ton code comme base.

Mais il y a un truc bizzare, si je lance la fenêtre pour un test ,
tout va bien.
par contre si je lance le projet, que je vais voir une des fenêtres
RAD de clients et que je retourne dans ma fenêtre de test , j'ai beau
mettre n'importe quel NPA , dans la combo j'ai la liste de toutes les
Villes !!

J'ai un peu modifié le filtre pour que la sélection se fasse sur la
liste des villes déja introduites dans le fichier clients. Je n'ai pas
trouvé comment supprimer les doublons mais se sera pour la suite ...


Marc

Mon code :

ListeSupprimeTout(ville)


SI HFiltre(CLIENT, "codepostal ='" + CodePostal..Valeur +"'" ) <> ""
ALORS


// Lire le premier enregistrement trouvé

HLitPremier(CLIENT)

// Initialiser le sablier
Sablier()

TANTQUE PAS HEnDehors()
// Ajouter les villes dans la combo chVille
ListeAjoute(ville, CLIENT.Ville)

// lire l'enregistrement suivant
HLitSuivant(CLIENT)
FIN

// Enlever le sablier
Sablier(Faux)

FIN
Avatar
mtournier
Je me réponds a moi même , c'est bon signe :-)

Que pensez-vous de cette solution (voir ci-dessous) , auriez-vous fait
encore autrement ?
J'ai toujours eu l'habitude de bosser avec les recordsets de VB (
Source de données en WD) , y'a t'il des contre-indications a les
utiliser sous WD. Je dois avouer que je me sents a l'aise avec cette
facon de faire ...


Marc

// code postal est un champ texte et ville un combo

n est un entier
n = 0

SI CodePostal..Valeur<> "" ALORS

MaVue est une Source de Données
ListeSupprimeTout(ville)
HExécuteRequêteSQL(MaVue, "SELECT ville FROM CLIENT where
CodePostal='" + CodePostal..Valeur + "' group by ville")
n = HNbEnr(MaVue)
HLitPremier(MaVue)
TANTQUE HEnDehors(MaVue)= Faux
ListeAjoute(ville,MaVue.Ville)
HLitSuivant(MaVue)
FIN

SI n = 1 ALORS
ville..Valeur = MaVue.ville
SINON SI n> 1 ALORS
ComboOuvre(ville)
FIN
RepriseSaisie(ville)
HDétruitVue(MaVue)
FIN
Avatar
Eric Demeester
dans (in) fr.comp.developpement.agl.windev,
ecrivait (wrote) :

Bonjour Marc,

Soit un fichier membres :
-------------------------------------
Nom
prenom
Rue
NPA
Ville

et un fichier NPA :
--------------------------------------
NPA (Clef avec doublons)
Ville


Je voudrais au moment de la frappe du NPA dans la case ad-hoc de la
fichie du membre que la liste des villes qui correspondent a ce NPA se
charge dans un combo qui va recevoir la ville du fichier membres.
(il se peut que des petits hameaux aient le meme NPA) et que si une
seule ville existe, elle est inscrite dans le combo comme valeur de
celui-ci.

Comment feriez-vous cela ?



Personnellement, je ferais un rafraichissement de la combo dans le code
« à chaque modification ».

Amicalement,

--
Eric
Avatar
Deg
avait écrit le 04/11/2005 :
Je me réponds a moi même , c'est bon signe :-)

Que pensez-vous de cette solution (voir ci-dessous) , auriez-vous fait
encore autrement ?
J'ai toujours eu l'habitude de bosser avec les recordsets de VB (
Source de données en WD) , y'a t'il des contre-indications a les
utiliser sous WD. Je dois avouer que je me sents a l'aise avec cette
facon de faire ...


Marc

// code postal est un champ texte et ville un combo

n est un entier
n = 0

SI CodePostal..Valeur<> "" ALORS

MaVue est une Source de Données
ListeSupprimeTout(ville)
HExécuteRequêteSQL(MaVue, "SELECT ville FROM CLIENT where
CodePostal='" + CodePostal..Valeur + "' group by ville")
n = HNbEnr(MaVue)
HLitPremier(MaVue)
TANTQUE HEnDehors(MaVue)= Faux
ListeAjoute(ville,MaVue.Ville)
HLitSuivant(MaVue)
FIN

SI n = 1 ALORS
ville..Valeur = MaVue.ville
SINON SI n> 1 ALORS
ComboOuvre(ville)
FIN
RepriseSaisie(ville)



a priori ceci va empêcher l'exécution de la suite ... mieux vaudrait un
ecranpremier je pense...

HDétruitVue(MaVue)
FIN



sinon pour l'utilisation des sources de données, je ne saurais dire
dslé

--
ôter les "_" pour me répondre en privé