PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Erreur WinDev ou Mauvais code
Erreur WinDev ou Mauvais code
Iniciado por dboiseaux, 24,sep. 2019 10:41 - 13 respuestas
Publicado el 24,septiembre 2019 - 10:41
Bonjour a tous, je ne comprend pas je cherche a comparer une date que je saisie a la date d'aujourd'hui et cela ne fonctionne qu'a moitié.
Car la DateSys = 2019/09/24 et quand je rentre dans mon champ de saisie 2019/09/20 cela fonctionne. Mais si je rentre 2019/09/21 cela plante en indiquant un message d'erreur que j'ai creer. Je comprend et j'ai l'impression que il y a un pas -4 mais d'ou il sort ?

Merci de votre Aide.

Et le deuxieme soucis c'est que je n'arrive pas a faire de try cacth comme en C#. Comment on verifie que la valeur saisie est bien par exemple un entier et non une chaine ?
Miembro registrado
1.640 mensajes
Publicado el 24,septiembre 2019 - 10:57
Hello,

Il nous faudrait un bout de code.. sans ca, ca va etre difficile de t'aider pour le coup.
Publicado el 24,septiembre 2019 - 11:07
syntaxe(en anglais ) de try catch dans windev est similaire au celle de c# :

WHEN EXCEPTION IN
<"Code that can trigger an exception">
DO
<"Code for processing the exception">
END

Pour ton problème de comparaison , mets ton code afin qu'on puisse regarder
Publicado el 24,septiembre 2019 - 11:30
C'est bon les amis j'ai regler le soucis


Par contre je ne sais pas faire cela malgres mais recherche : voila ce que je fais en C# :

int nombre = 0

While(nombre == 0){
Console.WriteLine("entrer un nombre")

Try
{
nombre = Convert.ToInt32(Console.ReadLine());
}

catch
{
nombre = 0;
}
}

En WinDev je veux faire la meme chose. Je veux savoir si ma valeur que j'ai entrer correspond bien au meme type attendu afin d'eviter des champs qui n'ont rien n'avoir dans ma base de donnée.

Exemple :
Prenom est une chaine;
SAI_SansNom1 = Prenom;

Dans mon formulaire si j'ecris dans le champ Prenom : 5;
Je veux qu'il m'affiche un ereur car le type n'est pas le meme.

Cordialement , Merci :)

ps: je debute sur WinDev mais je cherche beaucoup.
Publicado el 24,septiembre 2019 - 11:36






je voudrais que dans ces deux champs, il y apparait une erreur si je mets des chiffres.

SI NomGardien <>"" ET PrenomGardien <>"" ET NomTechnicien <>"" ET PrenomTechnicien <>"" ET SAI_DatePrevision <>"" ALORS
SI SAI_DateNaissance <= gdDateJour ALORS
Info("Merci D'avoir rempli les champs du Formulaire");
EcranVersFichier()
HAjoute(TEST)
ListeAffiche(FEN_Tableau)
Ferme(FEN_FormulaireGardien);
SINON
Erreur ("La Date saisie est dans le futur")
SAI_DateNaissance="";
FIN

SINON
Erreur("Erreur Veuillez remplir les champs merci bien !");

FIN
Miembro registrado
2.321 mensajes
Publicado el 24,septiembre 2019 - 11:48
Bonjour,

Si le champ est de type date, pas de problème 8)

--
Bon dev,
Jean-Pierre
Publicado el 24,septiembre 2019 - 11:49
Ta solution:

https://doc.pcsoft.fr/fr-FR/?3024032&name=VerifieExpressionReguliere

Tu peux même utiliser l'assistant

Eric
Publicado el 24,septiembre 2019 - 13:02
SI VérifieExpressionRégulière(NomGardien,"[A-Za-z]") = Vrai ET VérifieExpressionRégulière(PrenomGardien,"[A-Za-z]") = Vrai ET VérifieExpressionRégulière(PrenomTechnicien,"[A-Za-z]") = Vrai ET VérifieExpressionRégulière(NomTechnicien,"[A-Za-z]") ALORS
Info("Les chaines rentrer sont correctes")
SINON
Erreur("Les chaines sont pas correctes ")
FIN


Le soucis que je rencontre c'est que quand je mets dans mes champs un caractere "a" ou "z" cela fonctionne mais si j'ecris un nom exemple "Michel", bha il m'affiche l'erreur.
Miembro registrado
352 mensajes
Publicado el 24,septiembre 2019 - 14:01
LE plus simple est de faire appel à la fonction Contient
Publicado el 24,septiembre 2019 - 14:03
White 16 a exprimé avec précision :
SI VérifieExpressionRégulière(NomGardien,"[A-Za-z]") = Vrai ET
VérifieExpressionRégulière(PrenomGardien,"[A-Za-z]") = Vrai ET
VérifieExpressionRégulière(PrenomTechnicien,"[A-Za-z]") = Vrai ET
VérifieExpressionRégulière(NomTechnicien,"[A-Za-z]") ALORS Info("Les
chaines rentrer sont correctes")
SINON Erreur("Les chaines sont pas correctes ")
FIN


Le soucis que je rencontre c'est que quand je mets dans mes champs un
caractere "a" ou "z" cela fonctionne mais si j'ecris un nom exemple "Michel",
bha il m'affiche l'erreur.


Dans ce cas ton expression régulière est fausse, il faut mettre
"[A-Z][a-z]*"
soit la première lettre majuscule et les suivantes en minuscule

Au besoin utilise l'assistant, c'est fait pour ça !

Eric
Publicado el 24,septiembre 2019 - 14:08
c'est a dire ?
Je debute dans WinDev désolée :)
Publicado el 24,septiembre 2019 - 14:43
Merci Beaucoup a toutes les personnes qui m'ont aide en tous cas. :)
Publicado el 24,septiembre 2019 - 15:21
Pourquoi n'utilises-tu pas tout simplement le masque de saisie
disponible directement sur le champ dans l'onglet général ?
Publicado el 24,septiembre 2019 - 16:18
car sur certains champs je veux des chose precis comme par exemples les adresses : elles peuvent s'ecrire 203 Rue.... ou directement Rue..... sans chiffre