Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD8] Problème avec ChampExiste

7 réponses
Avatar
mat
Bonjour,

Est-ce que quelqu'un voit la raison pourquoi un test avec ChampExiste
donne faux, mais le test du contenu du champ se fait correctement? Le
code se trouve dans une classe:

// ceci donne toujours faux
SI ChampExiste(vWinName + ".cboFltCountry")

// ceci trouve bien le champ
SI {vWinName + ".cboFltCountry",indChamp}..ValeurAffichée <> ""


Merci et salutations
mat

7 réponses

Avatar
Pascal F
mat avait écrit le 22/08/2005 :
Bonjour,

Est-ce que quelqu'un voit la raison pourquoi un test avec ChampExiste
donne faux, mais le test du contenu du champ se fait correctement? Le
code se trouve dans une classe:

// ceci donne toujours faux
SI ChampExiste(vWinName + ".cboFltCountry")

// ceci trouve bien le champ
SI {vWinName + ".cboFltCountry",indChamp}..ValeurAffichée <> ""


Merci et salutations
mat



peut-être en essayant
SI ChampExiste({vWinName + ".cboFltCountry",indChamp}..Nom) ?

--
Pascal

Ne garder que le prénom pour me joindre
Avatar
COOP2AS
"mat" a écrit dans le message de news:
43098a67$
Bonjour,

Est-ce que quelqu'un voit la raison pourquoi un test avec ChampExiste
donne faux, mais le test du contenu du champ se fait correctement? Le
code se trouve dans une classe:

// ceci donne toujours faux
SI ChampExiste(vWinName + ".cboFltCountry")

// ceci trouve bien le champ
SI {vWinName + ".cboFltCountry",indChamp}..ValeurAffichée <> ""

Merci et salutations
mat


utiliser les indirections SI ChampExiste({vWinName + ".cboFltCountry"})
ALORS
Cdt JeAn-PhI
Avatar
Pascal F
Pascal F avait prétendu :
mat avait écrit le 22/08/2005 :
Bonjour,

Est-ce que quelqu'un voit la raison pourquoi un test avec ChampExiste
donne faux, mais le test du contenu du champ se fait correctement? Le
code se trouve dans une classe:

// ceci donne toujours faux
SI ChampExiste(vWinName + ".cboFltCountry")

// ceci trouve bien le champ
SI {vWinName + ".cboFltCountry",indChamp}..ValeurAffichée <> ""


Merci et salutations
mat



peut-être en essayant
SI ChampExiste({vWinName + ".cboFltCountry",indChamp}..Nom) ?



En fait, si je comprends, cboFltCountry est une combo. Donc il faut faire:
SI ChampExiste({vWinName + "."+cboFltCountry",indChamp}..ValeurAffichée) car sinon c'est l'indice de la combo qui est récupérée.

--
Pascal

Ne garder que le prénom pour me joindre
Avatar
mat
Pascal F wrote:
mat avait écrit le 22/08/2005 :
peut-être en essayant
SI ChampExiste({vWinName + ".cboFltCountry",indChamp}..Nom) ?




Merci, mais aucune différence. La chaîne vWinName + ".cboFltCountry"
correspond tout à fait au nom du champ en question.

Salutations
mat
Avatar
mat
Pascal F wrote:
En fait, si je comprends, cboFltCountry est une combo. Donc il faut faire:
SI ChampExiste({vWinName + "."+cboFltCountry",indChamp}..ValeurAffichée)
car sinon c'est l'indice de la combo qui est récupérée.




non "cboFltCountry" est le nom d'une combo don't je veux tester
l'existence. L'exemple ci-dessus obtien le contenu de la combo,
information que j'arrive justement à récupérer sans problème, mais pas
l'existence de la combo même.
Salutations
mat
Avatar
mat
COOP2AS wrote:
utiliser les indirections SI ChampExiste({vWinName + ".cboFltCountry"})
ALORS
Cdt JeAn-PhI





merci, mais ChampExiste attend le nom d'un champ sous forme de chaîne,
le format ci-dessus ne fonctionne donc pas.

Salutations
mat
Avatar
mat
mat wrote:
Bonjour,

Est-ce que quelqu'un voit la raison pourquoi un test avec ChampExiste
donne faux, mais le test du contenu du champ se fait correctement? Le
code se trouve dans une classe:

// ceci donne toujours faux
SI ChampExiste(vWinName + ".cboFltCountry")

// ceci trouve bien le champ
SI {vWinName + ".cboFltCountry",indChamp}..ValeurAffichée <> ""


Merci et salutations
mat




Bon, après des tests additionnels il semble que le problème est lié au
fait que la procédure utilisant la fonction ChampExiste est appelé
depuis un état. Lorsque je mets le code en dur dans la fenêtre
"maFenêtre.monChamp", la fonction retourne vrai. Lorsque le même code
est exécuté depuis en état, lui même appelé depuis la fenêtre, il donne
toujours faux. A mon avis, c'est un comportement un peu spécial.

Salutations
mat

n.b. je viens de faire une recherche sur Google fcdaw et j'ai trouvé une
demande du 8 mai 2004, de moi, pour le même problème dans un contexte
différent. Elle restait sans réponse à son temps...