bonjour à vous
je veux amener les utilisateurs de mon application à saisir dans un champ d'un de mes formulaire que des caractères numériques. mais je sais po trop comment m'y prendre.
je viens à vous pour obtenir de l'aide. merci d'avance!!
bonjour à vous
je veux amener les utilisateurs de mon application à saisir dans un champ d'un de mes formulaire que des caractères numériques. mais je sais po trop comment m'y prendre.
je viens à vous pour obtenir de l'aide. merci d'avance!!
Le rapport avec SQL et PL/SQL ?
Peux tu donner plus de précisions ?
ok, j'ai créé une table appartement et l'une de ses propriétés et niveau qui est de type number.
Pour eviter des erreurs lors d'un enregistrement, je veux qu'on saisisse dans mon champ niveau de mon formulaire que des caractères numériques.
PAr exemple si on tape 'A' soit, rien n'est ecrit dans mon champ ou on m'envoi un message pour me dire que cè pas un caractère numérique. Le problème, je sais pas trop comment m'y prendre.
j'espère que j'ai été plus explicite. merci
C'est donc du ressort de ton application de faire la validation de ton input.
Et cela concerne donc le langage/outils que tu utilises.
Tu parles de formulaire : formulaire Oracle Forms ? PHP ? ASP ?....
j'utilise oracle form 6.0
Si tu mets un type de champ = Number, Forms le gère à la validation de l'item.
comment fonctionnent et comment utiliser les items?
oui, j'ai dejà pris pour type de donnée number. Ca me permet pas d'empecher d'ecrire des lettre dans mon champ; ce que le souhaite faire. l'utilisateur otre que moi ne peuvent pas forcement savoir qu'il saisir que des nombres et c'est seulement à la validation qu'il y aura une erreur. Je veux donc les obliger à saisir que des nombres dans ce champ afin de leur faciliter la tache.
merci d'avance
Vous pouvez déclarer un Timer dès l'arrivée dans l'item (When-New-Item-Instance) avec un délai assez court (1/4 seconde) et dans le trigger When-Timer-Expired analyser la chaîne et virer les caractères qui ne sont pas un chiffre. Vous detruisez ensuite ce timer en sortie de l'item (Post-Item)
Le trigger When-New-Item-Instance de votre item:
Voici ce que vous pourriez coder dans le When-Timer-Expired trigger:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Declare t timer ; begin t := create_timer( 'timer', 100 ) ; end;
et le trigger Pots-Text-Item de votre item:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 If Get_Application_Property( TIMER_NAME ) ='TIMER' Then declare LC$C1 Varchar2(2000) := :BLOCK.TEXT_ITEM; LC$C2 Varchar2(2000); letter Varchar2(2); begin If LC$C1 is not Null Then For i in 1..length(LC$C1) Loop letter := Substr( LC$C1, i, 1 ) ; if ascii(letter) >= 48 and ascii(letter) <= 57 Then LC$C2 := LC$C2 || letter ; end if ; end loop ; if nvl(length(LC$C2),0) <> length(LC$C1) Then :BLOCK.TEXT_ITEM := LC$C2 ; end if ; End if ; end; End if ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part delete_timer('timer');
merci pour le code, je vais le tester pour voir et je vous fais signe.
Merci encore et bonne journée à vous
une fois encore merci,
le code marche mais lorsqu'on saisi un caractère non numérique, il envoi une erreur que voici:
FRM-50016: caractère accèpté: 0-9-+E
lorsque tu cliq sur le ok, ce meme message d'erreur apparait automatiquement sans donner la main pour supprimer ce caractère.
j'ai essayé de resoudre ce problème par l'ajout d'une alerte:
Set_Alert_Property('alert_nivo', ALERT_MESSAGE_TEXT,
'Saisissez un caractère numérique!!');
n:=show_alert('alert_nivo');
go_block('niveau');
malheureusement, ca n'a aucun effet puisque c'est toujour l'alerte de depart ki s'affiche sans donner la main à l'utilisateur.
comment remedier à ce problème?
merci d'avance
Il faut mettre le item type en CHAR, et pas en NUMBER.
ok,je crois que ca marche pafaitement.
merci a vous et bonne journée![]()
jai essayer ce code de when_timer_expired mais il y avais une erreur a la compilation on me disant que le block.text item doit etre declare
jai essayer ce code de when_timer_expired mais il y avais une erreur a la compilation on me disant que le block.text item variable de lien erroné
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager