IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Champs de Saisie, tester si la chaîne est conforme


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Champs de Saisie, tester si la chaîne est conforme
    Bonjour,
    j'aurai besoin d'aide concernant la vérification des chaines dans des champs de saisies.

    En gros j'ai créer des champs de saisies, qui se remplisse automatiquement avec des données que j'importe. J'aurai voulu par exemple si j'ai un champ nombre pouvoir tester la chaine de caractère qui arrive dans mon champs et si celle ci n'es pas un nombre affiché un message d'erreur du genre info().

    J'avais penser au expression régulière mais je me demande si il n'y à pas plus simple.

    Merci de votre aide.

  2. #2
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Bonjour,

    Pour tester un nombre tu peux toujours faire un test avec VAL
    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI MonChamp <> val(MonChamp) ALORS
       info("erreur")
    FIN
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  3. #3
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    bonjour camarade,
    il suffit de faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI Champsaisi..TypeSaisie  <> typSaisieNum ALORS
          Message(" type non reconnu ")
    FIN
    pour un champ chaine tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI Champsaisi..TypeSaisie  <> typSaisieTexte ALORS
          Message(" type non reconnu ")
    FIN
    NB: réponse tirée de l'aide et orientée selon vos besoins.

    Cordialement
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

  4. #4
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Bonjour PaulNero,

    Si je ne me trompe pas la propriété TypeSaisie retourne le type de saisie du champ mais ne permet pas le contrôle de "la chaine de caractère qui arrive dans le champs".

    Je pense que paulo198851 veux tester le type de sa valeur avant de la mettre dans son champ de saisie..

    paulo198851 peux tu nous donner plus de détail sur ce que tu as besoin.
    Merci d'avance
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  5. #5
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Ah, j'ai cru comprendre que le contrôle était sur le type de saisie.
    S'il doit contrôler ce qui est déja affiché, il est clair que ton code est acceptable.

    cordialement
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    En fait je devellope un OCR en windev, donc mon API scan le document enregistre les éléments dans un champs de saisies.
    L'api crée des chaines de caractère et je veux tester ses chaines selon différents type (date,nombre,texte) et les mettre si il sont valide dans les champs correspondant.

    Sinon pour le chiffre j'ai trouver, me reste date, chaine.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SI CheckChampsID = 2 ALORS
    	Val(txtreco)
    	SI EstNumérique(txtreco) = Vrai
    		Info("good")
    	SINON
    	Info("pas good")
    	FIN
    	FIN

  7. #7
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 467
    Points : 806
    Points
    806
    Par défaut
    Une idée comme ça... Utiliser les masques de saisie pour le champ, est ce que ça ne fonctionnerait pas ?

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Re, j'avais penser au champs de saisies, j'ai donc retenter avec.
    Lorsque que mon API tente de mettre du texte dans un champs de saisie avec un masque de chiffre par exemple ca ne met rien dedans, mais ca ne genere pas d'erreur non plus.

    Possible de créer un petit info, si on tente de mettre des valeur incorrect dans un champs de saisie ?

  9. #9
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Salut à toi,

    Pour les dates, tu peux utiliser DateValide(..).
    Pour les chaines, il s'agit du cas : PAS EstNumérique(..) _ET_ PAS DateValide(..), à mon avis.

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 357
    Points : 509
    Points
    509
    Par défaut
    Bonjour,

    Pour les chaines, mis à part de vérifier quelle n'est pas vide, que veux tu vérifier !? Toute donnée peut être considérée comme une chaine non ? Si ton idée est d'éviter que des valeurs numériques soit interprétée comme des chaines, alors c'est sur le type numérique que tu dois faire porter le test selon moi.
    Les solutions les plus simples sont les plus efficaces

  11. #11
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 467
    Points : 806
    Points
    806
    Par défaut
    Citation Envoyé par paulo198851 Voir le message
    Re, j'avais penser au champs de saisies, j'ai donc retenter avec.
    Lorsque que mon API tente de mettre du texte dans un champs de saisie avec un masque de chiffre par exemple ca ne met rien dedans, mais ca ne genere pas d'erreur non plus.

    Possible de créer un petit info, si on tente de mettre des valeur incorrect dans un champs de saisie ?
    Bonjour

    Tu met des filtres sur les champs, et après le chargement de la fenêtre, et donc le remplissage des filtres, tu vérifie que lorsque le champ est vide, la variable est bien vide.

    Ex : la variable Numero remplit le champ SAI_Numero, qui a un masque de chiffre.
    A la fin du chargement de la fenêtre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SI Numero <> "" ET SAI_Numero = ""
    // Traitement de l'erreur
    FIN
    Le traitement de l'erreur peut juste colorer le champ en rouge.

    Et pour éviter d'avoir trop de code à se retaper, il peut être interessant de faire une procédure qui utilisera les indirections. Après le remplissage de chaque champ, suffit d'appeler cette procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SI {w_nom_variable,indVariable} <> "" ET {w_nomlogique_champ,indChamp} = ""
    // Traitement de l'erreur
    FIN

Discussions similaires

  1. Tester si une chaîne est un monétaire
    Par kariel dans le forum WinDev
    Réponses: 5
    Dernier message: 26/06/2015, 10h14
  2. Tester si un chaîne est contenue dans une autre
    Par JonathanF dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/10/2011, 20h59
  3. Tester si une chaîne est compatible UTF-8
    Par monnomamoi dans le forum Général Python
    Réponses: 2
    Dernier message: 16/04/2010, 08h00
  4. Un petit défi : tester si une chaîne est un nombre romain
    Par rambc dans le forum Général Python
    Réponses: 1
    Dernier message: 09/04/2009, 12h43
  5. [DBF] Tester si une chaîne est vide
    Par ®om dans le forum JDBC
    Réponses: 7
    Dernier message: 26/07/2007, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo