|
GRUPOS DE DISCUSSÃO PROFISSIONAL WINDEV, WEBDEV e WINDEV Mobile |
| | | | | |
pb de valeur renvoyée dans une proc |
Iniciado por angelia, set., 03 2005 7:45 PM - 3 respostas |
| |
| | | |
|
| |
Publicado em setembro, 03 2005 - 7:45 PM |
bonjour j'ai un pb comme vous pouvez vous en douter ! j'ai une méthode dans une classe on ne peut plus banale qui doit renvoyer une valeur (je l'ai crée à partir de l'assistant) que voici :
Methode de la classe clsUtilisateur : // identifie l'utilisateur à partir de son login et mdp
// Entrée/Sortie :
// - cLogin :
// - cMdp :
// Retour :
// booléen
FONCTION IdentifierUtil ( cLogin est un chaîne , cMdp est un chaîne )
bReponse est un booléen=Faux
HLitRecherchePremier(TblUtilisateur,Login,cLogin,hBlocageEcriture)
SI PAS HEnDehors(TblUtilisateur) ALORS
// vérifie le mot de passe
SI cMdp<> TblUtilisateur.Mdp ALORS
Info("mot de passe érroné")
SINON
Info("Mot de passe correct")
TblUtilisateur.Connecte=Vrai
HModifie(TblUtilisateur)
bReponse=Vrai
FIN
FIN
RENVOYER bReponse
donc pour moi la fonction devrait renvoyer toujours une valeur !
voici sur le clic d'un bouton comment je fais appel à cette méthode :
MonUtil est un objet clsUtilisateur
SI MonUtil:IdentifierUtil(txtLogin,txtMdp)=Vrai ALORS
Info("utilisateur authentifié")
FIN
et bien windev me dit : Erreur à la ligne 10 du traitement Clic sur btnValider. La fonction IdentifierUtil aurait dû renvoyer une valeur. et il considere que cette méthode ne renvoie pas de valeur.!!
Le plus étrange est que lorsque je transforme cette méthode de classe comme une simple function locale à ma fenetre (par simple copier coller) et que je l'appel de la même manière de mon bouton cela marche !!!!!
Si quelqu'un a une idée .. merci beaucoup d'avance. |
| |
| |
| | | |
|
| | |
| |
Publicado em setembro, 04 2005 - 10:19 AM |
Bonjour, Essaye de créer une variable global au projet dans le code d'initialisation du projet exemple :
gpRepense est un booléen=faux
Methode de la classe clsUtilisateur : FONCTION IdentifierUtil ( cLogin est un chaîne , cMdp est un chaîne )
bReponse est un booléen=Faux
HLitRecherchePremier(TblUtilisateur,Login,cLogin,hBlocageEcriture)
SI PAS HEnDehors(TblUtilisateur) ALORS
// vérifie le mot de passe
SI cMdp<> TblUtilisateur.Mdp ALORS
Info("mot de passe érroné") gpRepense=faux
SINON
Info("Mot de passe correct")
TblUtilisateur.Connecte=Vrai
HModifie(TblUtilisateur)
gpRepense=vrai
FIN
FIN
// et sans renvoyer aucune valeur
MonUtil est un objet clsUtilisateur
MonUtil:IdentifierUtil(txtLogin,txtMdp)
si gpRepense=vrai Info("utilisateur authentifié") sinon erreur("utilisateur non authentifié") FIN
Et Voilà
Ali Hi |
| |
| |
| | | |
|
| | |
| |
Publicado em setembro, 05 2005 - 11:06 AM |
Bonjour,
J'ai eu aussi ce pb ( V033t) mais en codant en événementiel. en fait cela est arrivé par les manips suivantes :
1) je crée ma proc en proc.locale : ProcL_toto( ...) ; renvoyer ...
2 ) test : tout ok
3) 3 jours après ... j'ai de nouveau besoin de la même proc... alors je décide de transférer la locale en globale et de la renommer en ProcG_toto( même code )
4) A partir de ce moment là, tous les appels à l'ancienne sont en erreur de compil ( normal) ; mais tous les appels à la nouvelle ( corrections ancien code ou nouveau code) rendent la même erreur que toi. Il ne reconnaissait même pas les paramètres....
5) by pass trouvé : créer de toute pièce une nouvelle nouvelle proc Globale : ProcG_Toto2( même code mais retapé à la mimine) mise en commentaires des anciens appels locaux ou globaux recompil complète du projet recodage appel vers la nouvelle nouvelle procG
6 ) tout ok maintenant
Bref pas compris ce qui se passait mais maintenant je réfléchis 10 fois avant de décider si une proc est locale ou globale.... dans le doute elle est d'office GLOBALE
HTH Michel HERRSCHER CONSULTANT Président WINDASSO - Association des utilisateurs WxxDEV(c) Tel : +33450870912 Fax:+33450871741 http://www.windasso.org
Dans un message steph disait :
bonjour j'ai un pb comme vous pouvez vous en douter ! j'ai une méthode dans une classe on ne peut plus banale qui doit renvoyer une valeur (je l'ai crée à partir de l'assistant) que voici :
Methode de la classe clsUtilisateur : // identifie l'utilisateur à partir de son login et mdp
// Entrée/Sortie :
// - cLogin :
// - cMdp :
// Retour :
// booléen
FONCTION IdentifierUtil ( cLogin est un chaîne , cMdp est un chaîne )
bReponse est un booléen=Faux
HLitRecherchePremier(TblUtilisateur,Login,cLogin,hBlocageEcriture)
SI PAS HEnDehors(TblUtilisateur) ALORS
// vérifie le mot de passe
SI cMdp<> TblUtilisateur.Mdp ALORS
Info("mot de passe érroné")
SINON
Info("Mot de passe correct")
TblUtilisateur.Connecte=Vrai
HModifie(TblUtilisateur)
bReponse=Vrai
FIN
FIN
RENVOYER bReponse
donc pour moi la fonction devrait renvoyer toujours une valeur !
voici sur le clic d'un bouton comment je fais appel à cette méthode :
MonUtil est un objet clsUtilisateur
SI MonUtil:IdentifierUtil(txtLogin,txtMdp)=Vrai ALORS
Info("utilisateur authentifié")
FIN
et bien windev me dit : Erreur à la ligne 10 du traitement Clic sur btnValider. La fonction IdentifierUtil aurait dû renvoyer une valeur. et il considere que cette méthode ne renvoie pas de valeur.!!
Le plus étrange est que lorsque je transforme cette méthode de classe comme une simple function locale à ma fenetre (par simple copier coller) et que je l'appel de la même manière de mon bouton cela marche !!!!!
Si quelqu'un a une idée .. merci beaucoup d'avance. |
| |
| |
| | | |
|
| | |
| |
Publicado em setembro, 05 2005 - 3:11 PM |
J'ai deja eu un probleme similaire... En fait, mon probleme ne venait pas du tour de mon code. il venait du type de bouton (annulation, validation,etc...) Et je me suis apercu que plusieurs boutons etaient du meme type (validation je crois) En corrigeant ce probleme, ca a corrigé l'autre. Regarde si c'est pas le meme phenomene....
"steph" <angelia@free.fr> a écrit dans le message de news: 4319b124@news.pcsoft.fr...
bonjour j'ai un pb comme vous pouvez vous en douter ! j'ai une méthode dans une classe on ne peut plus banale qui doit renvoyer une valeur (je l'ai crée à partir de l'assistant) que voici :
Methode de la classe clsUtilisateur : // identifie l'utilisateur à partir de son login et mdp
// Entrée/Sortie :
// - cLogin :
// - cMdp :
// Retour :
// booléen
FONCTION IdentifierUtil ( cLogin est un chaîne , cMdp est un chaîne )
bReponse est un booléen=Faux
HLitRecherchePremier(TblUtilisateur,Login,cLogin,hBlocageEcriture)
SI PAS HEnDehors(TblUtilisateur) ALORS
// vérifie le mot de passe
SI cMdp<> TblUtilisateur.Mdp ALORS
Info("mot de passe érroné")
SINON
Info("Mot de passe correct")
TblUtilisateur.Connecte=Vrai
HModifie(TblUtilisateur)
bReponse=Vrai
FIN
FIN
RENVOYER bReponse
donc pour moi la fonction devrait renvoyer toujours une valeur !
voici sur le clic d'un bouton comment je fais appel à cette méthode :
MonUtil est un objet clsUtilisateur
SI MonUtil:IdentifierUtil(txtLogin,txtMdp)=Vrai ALORS
Info("utilisateur authentifié")
FIN
et bien windev me dit : Erreur à la ligne 10 du traitement Clic sur btnValider. La fonction IdentifierUtil aurait dû renvoyer une valeur. et il considere que cette méthode ne renvoie pas de valeur.!!
Le plus étrange est que lorsque je transforme cette méthode de classe comme une simple function locale à ma fenetre (par simple copier coller) et que je l'appel de la même manière de mon bouton cela marche !!!!!
Si quelqu'un a une idée .. merci beaucoup d'avance.
|
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|