|
vérification des valeurs saisies |
Iniciado por dsea, 14,feb. 2008 00:28 - 7 respuestas |
| |
| | | |
|
| |
Publicado el 14,febrero 2008 - 00:28 |
Bonjour avant de valider/traiter des données, j'aimerais vérifier les valeurs saisies par user. Si problème, avertir un msg "Les champs marqué par une étoile sont obligatoire!"
codes actuelles:
SI (champs1 = Null ou champs2.ValeurAffichée = Null .... ) ALORS Erreur("Les champs marqué par une étoile sont obligatoire!") RETURN FIN
je peux avoir les champs: champs1 text champs2 combo avec saisie champs3 combo non saisie champs4 numérique ....
maintenant, je veux activer (mettre en focus) la zone ayant le pb en utilisant RepriseSaisie! codes actuelles: SI champs1=Null Alors Erreur("Les champs marqué par une étoile sont obligatoire!") RepriseSaisie(champs1) RETURN SINON SI champs2.ValeurAffichée=Null Alors Erreur("Les champs marqué par une étoile sont obligatoire!") RepriseSaisie(champs2) RETURN ... FIN
c est trop long et c est pas vraiment ... informatique ...
Question: est ce que l'on peut faire une manière générale: parcourir tous les champs de la fenêtre, vérifier si libellé terminé par une *, alors selon son type (text, numérique, combo, combo avec saisie) voir si la valeur est bien saisie/choisie ...
(pour certaines raisons, je ne peux pas utiliser l'option "Obligatoire saisie" de chaque champs)
Merci bien dsea |
| |
| |
| | | |
|
| | |
| |
Publicado el 14,febrero 2008 - 11:48 |
Bonjour...
Je pense que tu es à la recherche des opérateurs d'indirection { et } (voir aide)
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com/index_FR.html
dsea wrote:
Bonjour avant de valider/traiter des données, j'aimerais vérifier les valeurs saisies par user. Si problème, avertir un msg "Les champs marqué par une étoile sont obligatoire!"
codes actuelles:
SI (champs1 = Null ou champs2.ValeurAffichée = Null .... ) ALORS Erreur("Les champs marqué par une étoile sont obligatoire!") RETURN FIN
je peux avoir les champs: champs1 text champs2 combo avec saisie champs3 combo non saisie champs4 numérique ....
maintenant, je veux activer (mettre en focus) la zone ayant le pb en utilisant RepriseSaisie! codes actuelles: SI champs1=Null Alors Erreur("Les champs marqué par une étoile sont obligatoire!") RepriseSaisie(champs1) RETURN SINON SI champs2.ValeurAffichée=Null Alors Erreur("Les champs marqué par une étoile sont obligatoire!") RepriseSaisie(champs2) RETURN ... FIN
c est trop long et c est pas vraiment ... informatique ...
Question: est ce que l'on peut faire une manière générale: parcourir tous les champs de la fenêtre, vérifier si libellé terminé par une *, alors selon son type (text, numérique, combo, combo avec saisie) voir si la valeur est bien saisie/choisie ...
(pour certaines raisons, je ne peux pas utiliser l'option "Obligatoire saisie" de chaque champs)
Merci bien dsea
|
| |
| |
| | | |
|
| | |
| |
Publicado el 14,febrero 2008 - 13:40 |
salut Fabrice désolé mais je comprends pas trop ce que tu veux dire ... |
| |
| |
| | | |
|
| | |
| |
Publicado el 14,febrero 2008 - 15:02 |
Je dis qu'il faut regarder dans l'aide en ligne en cherchant: - Indirection - { - }
Lire l'aide, et tout deviendra clair
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com/index_FR.html
dsea wrote:
salut Fabrice désolé mais je comprends pas trop ce que tu veux dire ... |
| |
| |
| | | |
|
| | |
| |
Publicado el 14,febrero 2008 - 15:44 |
ah tu as raison, je vais essayer merci bien Fabrice |
| |
| |
| | | |
|
| | |
| |
Publicado el 15,febrero 2008 - 07:54 |
salut j'ai fini
PROCEDURE ChampsValide(pParentObj) i est un entier = 1 ResChamp est une chaîne ResChamp = EnumèreChamp(pParentObj, i, parOrdreDeTabulation) TANTQUE ResChamp<>"" i++ // Info(ResChamp, {ResChamp, indChamp}..Type, {ResChamp, indChamp}..Libellé, {ResChamp, indChamp}..TypeSaisie) pLibelle est une chaîne = {ResChamp, indChamp}..Libellé pType est un entier = {ResChamp, indChamp}..Type pValeur est une chaîne = {ResChamp, indChamp}..Valeur pValeurAffichée est une chaîne = {ResChamp, indChamp}..ValeurAffichée SI (pLibelle[[Taille(pLibelle)]] = "*") ET ... (pType DANS (typComboSNS, typComboAVS, typDate, typTexte, typNum) ET {ResChamp, indChamp} = Null) ... ALORS //DélaiAvantFermeture(300) //Erreur("Les champs marqués par une astérisque sont obligatoires", ResChamp+"(" + pLibelle+ ")") Erreur("Les champs marqués par une astérisque sont obligatoires") RepriseSaisie({ResChamp, indChamp}) // DonneFocus({ResChamp, indChamp}) RENVOYER Faux FIN SI {ResChamp, indChamp}..Type = typOnglet ALORS nbVolet est un entier = {ResChamp, indChamp}..Occurrence POUR j = 1 A nbVolet SI {ResChamp, indChamp}[j]..Visible ET {ResChamp, indChamp}[j]..Etat = Actif ALORS SI ChampsValide({ResChamp, indChamp}[j]) = Faux ALORS RENVOYER Faux FIN FIN FIN FIN ResChamp = EnumèreChamp(pParentObj, i, parOrdreDeTabulation) FIN RENVOYER Vrai
Usage: SI (PAS ChampsValide(MaFenêtre)) ALORS RETURN FIN
par contre, j'ai petit souci il me semble que la fonction EnumèreChamp avec l'opt parOrdreDeTabulation parcourt pas comme il faut (j'ai bien edité l'ordre TAB des champs, vérifié même avec F5)
tu as une idée? merci |
| |
| |
| | | |
|
| | |
| |
Publicado el 15,febrero 2008 - 11:46 |
Bonjour...
c'est quoi, "pas comme il faut" ? Avec une description comme ça, je vois pas bien comment qui que ce soit pourrait t'aider
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com/index_FR.html
dsea wrote:
salut j'ai fini
PROCEDURE ChampsValide(pParentObj) i est un entier = 1 ResChamp est une chaîne ResChamp = EnumèreChamp(pParentObj, i, parOrdreDeTabulation) TANTQUE ResChamp<>"" i++ // Info(ResChamp, {ResChamp, indChamp}..Type, {ResChamp, indChamp}..Libellé, {ResChamp, indChamp}..TypeSaisie) pLibelle est une chaîne = {ResChamp, indChamp}..Libellé pType est un entier = {ResChamp, indChamp}..Type pValeur est une chaîne = {ResChamp, indChamp}..Valeur pValeurAffichée est une chaîne = {ResChamp, indChamp}..ValeurAffichée SI (pLibelle[[Taille(pLibelle)]] = "*") ET ... (pType DANS (typComboSNS, typComboAVS, typDate, typTexte, typNum) ET {ResChamp, indChamp} = Null) ... ALORS //DélaiAvantFermeture(300) //Erreur("Les champs marqués par une astérisque sont obligatoires", ResChamp+"(" + pLibelle+ ")") Erreur("Les champs marqués par une astérisque sont obligatoires") RepriseSaisie({ResChamp, indChamp}) // DonneFocus({ResChamp, indChamp}) RENVOYER Faux FIN SI {ResChamp, indChamp}..Type = typOnglet ALORS nbVolet est un entier = {ResChamp, indChamp}..Occurrence POUR j = 1 A nbVolet SI {ResChamp, indChamp}[j]..Visible ET {ResChamp, indChamp}[j]..Etat = Actif ALORS SI ChampsValide({ResChamp, indChamp}[j]) = Faux ALORS RENVOYER Faux FIN FIN FIN FIN ResChamp = EnumèreChamp(pParentObj, i, parOrdreDeTabulation) FIN RENVOYER Vrai
Usage: SI (PAS ChampsValide(MaFenêtre)) ALORS RETURN FIN
par contre, j'ai petit souci il me semble que la fonction EnumèreChamp avec l'opt parOrdreDeTabulation parcourt pas comme il faut (j'ai bien edité l'ordre TAB des champs, vérifié même avec F5)
tu as une idée? merci
|
| |
| |
| | | |
|
| | |
| |
Publicado el 15,febrero 2008 - 14:52 |
lolz
j'ai collé les codes si qq'un a besoin
voici le code dans l'aide en ligne (j'ai ajouté l'option parOrdreDeTabulation)
// Remplir une combo avec la liste des champs de la fenêtre i est un entier = 1 ResChamp est une chaîne ResChamp = EnumèreChamp(FenêtreSaisie, i, parOrdreDeTabulation) TANTQUE ResChamp<>"" i++ Info(ResChamp) ResChamp = EnumèreChamp(FenêtreSaisie, i,parOrdreDeTabulation) FIN
dans ma fenetre, il y a 3 champs C1, C2, C3 avec l'ordre TAB respectifs si j execute ces codes, alors il affiche C2, C1, C3 or il faut C1, C2 et C3
j'espère d'avoir clair cette fois merci |
| |
| |
| | | |
|
| | | | |
| | |
|