Après windows pour les nuls, voici PB pour les bons (ou presque).

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 22-06-2011 10:30:04

TigerTigerTiger  
Membre
Date d'inscription: 17-08-2010
Messages: 10
Pépites: 51
Banque: 0

[RESOLU] Empêcher la RAZ d'un champ d'une datawindow après échec de validation

Bonjour,

Je maintiens une application codée en PB11 et je suis actuellement confronté au problème suivant :

J'ai des contrôles de validation (et messages d'erreurs associés) sur certains champs de ma datawindow (Du type table(column=(type=char(14) update=yes updatewhereclause=yes key=yes name=champ_controle dbname="table.champ_controle" validation="f_test_champ_controle( int( param) , gettext() )" validationmsg="~"Erreur- Corrigez votre saisie.~"" )).

Je souhaiterais qu'en cas d'échec du contrôle (et affichage du message d'erreur de validation), le champ correspondant ne soit pas remis à zéro, mais conservé tel quel, ne souscrivant pas aux conditions de validation, mais non validé pour autant (le temps que l'utilisateur corrige sa saisie avant de reessayer de valider de nouveau).

Est-ce possible avec ce type de schéma (datawindow, validation expression,validation message), ou est-ce que je fais fausse route ?

D'avance merci.

Dernière modification par TigerTigerTiger (23-06-2011 13:09:02)

Hors ligne

 

#2 22-06-2011 11:10:49

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Empêcher la RAZ d'un champ d'une datawindow après échec de validation

Bonjour,

TigerTigerTiger a écrit:

Je souhaiterais qu'en cas d'échec du contrôle (et affichage du message d'erreur de validation), le champ correspondant ne soit pas remis à zéro, mais conservé tel quel, ne souscrivant pas aux conditions de validation, mais non validé pour autant (le temps que l'utilisateur corrige sa saisie avant de reessayer de valider de nouveau).

Je pense que la solution est dans l'évènement itemError du contrôle DW, en fonction du code de retour de la fonction :

Set the return code to affect the outcome of the event:

0  (Default) Reject the data value and show an error message box
1  Reject the data value with no message box
2  Accept the data value
3  Reject the data value but allow focus to change

HTH


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#3 22-06-2011 12:58:30

TigerTigerTiger  
Membre
Date d'inscription: 17-08-2010
Messages: 10
Pépites: 51
Banque: 0

Re: [RESOLU] Empêcher la RAZ d'un champ d'une datawindow après échec de validation

Merci pour cette réponse seki

Mais je me rends compte qu'en fait l'évènement itemError est déjà codé dans une fenêtre parente sur ma datawindow, supposée retourner 3 en cas d'échec du contrôle, donc je ne comprends pas trop le comportement qui est observé ...

Je vais continuer à creuser ...

Hors ligne

 

#4 22-06-2011 16:22:23

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Empêcher la RAZ d'un champ d'une datawindow après échec de validation

TigerTigerTiger a écrit:

l'évènement itemError est déjà codé dans une fenêtre parente sur ma datawindow, supposée retourner 3 en cas d'échec du contrôle, donc je ne comprends pas trop le comportement qui est observé ...

Ça me semble normal, au contraire :

3  Reject the data value but allow focus to change

Ta valeur incorrecte est rejetée (et la saisie annulée), et le focus passe ailleurs.

Pour afficher le message et laisser la possibilité de corriger, il faudrait plutôt retourner 0 (rejeter la valeur, afficher le message mais ne pas laisser partir le focus).
C'est ce que semble confirmer un rapide test sur une appli cobaye ici.


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#5 23-06-2011 08:45:32

TigerTigerTiger  
Membre
Date d'inscription: 17-08-2010
Messages: 10
Pépites: 51
Banque: 0

Re: [RESOLU] Empêcher la RAZ d'un champ d'une datawindow après échec de validation

Cela résout mon problème.

Merci !

Hors ligne

 

#6 23-06-2011 10:07:12

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
Site web

Re: [RESOLU] Empêcher la RAZ d'un champ d'une datawindow après échec de validation

merci de mettre [RESOLU] dans le titre


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#7 23-06-2011 12:40:04

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Empêcher la RAZ d'un champ d'une datawindow après échec de validation

  [Résolu] != [RESOLU] 


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#8 23-06-2011 13:09:44

TigerTigerTiger  
Membre
Date d'inscription: 17-08-2010
Messages: 10
Pépites: 51
Banque: 0

Re: [RESOLU] Empêcher la RAZ d'un champ d'une datawindow après échec de validation

Tout ce qui vous siéra, votre honneur !

(Edité.)

Dernière modification par TigerTigerTiger (23-06-2011 13:09:55)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22