Attila54
Messages postés409Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention21 novembre 2013
-
Modifié par jee pee le 17/08/2013 à 12:35
Attila54
Messages postés409Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention21 novembre 2013
-
21 août 2013 à 12:56
Bonjour,
J'ai un souci assez difficile a comprendre pour moi et j'aurais aimé avoir des avis plus éclairés que je ne puis en apporter moi même
Dans une appli, j'ai une sub appelée download qui
- va chercher un fichier excel dans un ftp
- charge les data du ftp dans un form, notament des valeurs qui seront affichéees dans deux textbox QILEFT et QIRIGHT
- Effectue un calcul en fonction de QILEFT et QIRIGHT : le resultat est affiché dans une textbox QI
Voila la sub qui calcule QI en fonction de QILEFT et QIRIGHT :
Private Sub calculqi()
'Erreur dans QI
'affichage de QI en fonction de QILEFT et QIRIGHT
If TextBoxosod.Text = "OS" Then
indiceoeil = 0
Etiqoeiltraite.Text = "OS"
VALQILEFT = Convert.ToDouble(QILEFT.Text)
ValQI = VALQILEFT
QI.Text = ValQI.ToString("0.00")
End If
If TextBoxosod.Text = "OD" Then
indiceoeil = 1
Etiqoeiltraite.Text = "OD"
VALQIRIGHT = Convert.ToDouble(QIRIGHT.Text)
ValQI = VALQIRIGHT
QI.Text = ValQI.ToString("0.00")
End If
' remplacement du "." par une ","
If DecimalSeparator = "," Then QI.Text = QI.Text.Replace(".", ",")
' test si numérique
If Double.TryParse(QI.Text, ValQI) = True Then
' QI contient bien une valeur numérique
ValQI = Convert.ToDouble(QI.Text)
If Txtrelift.Text = "N" Then
'Calcul de delta QI
deltaqi.Text = (Math.Abs(CDbl(QILEFT.Text)) - Math.Abs(CDbl(QIRIGHT.Text))).ToString("0.00")
'Cas de l'oeil gauche
If TextBoxosod.Text = "OS" Then
Etiqoeiltraite.Text = "OS"
Select Case VALQILEFT
Case Is <= -0.3
ValQI = -0.3
Case Else
ValQI = VALQILEFT
End Select
QI.Text = ValQI.ToString("0.00")
End If
'Cas de l'oeil droit
If TextBoxosod.Text = "OD" Then
Etiqoeiltraite.Text = "OD"
Select Case VALQIRIGHT
Case Is <= -0.3
ValQI = -0.3
Case Else
ValQI = VALQIRIGHT
End Select
QI.Text = ValQI.ToString("0.00")
End If
End If
If Txtrelift.Text = "Y" Then
'calcul de deltaQI
deltaqi.Text = "0.00"
'cas de l'oeil droit
If TextBoxosod.Text = "OD" Then
Etiqoeiltraite.Text = "OD"
ValQI = VALQIRIGHT
Else
'cas de l'oeil gauche
ValQI = VALQILEFT
QI.Text = ValQI.ToString("0.00")
End If
End If
Else
messageaff = "QI is not a numeric value"
infoaff = "Incorrect data"
MessageBox.Show(messageaff, infoaff, MessageBoxButtons.OK, MessageBoxIcon.Warning)
QI.Text = ""
QI.Refresh()
QI.Focus()
erreur = True
Exit Sub
End If
End Sub
tout se passe bien mais voila :
Je dois pouvoir changer la valeur affichée de QI manuellement si je le désire.
J'ai pensé faire une action sur QI.textchanged et je peux changer la valeur de QI dans la textbox, mais c'est la valeur initiale qui reste comme référence pour les calculs ultérieurs.
Exemple :
- la sub calculqi me calcule et m'affiche un QI de -0.45. Je calcule par exemple un QF = f(QI), ca me donnera par exemple 0.25
- Je clique sur le textbox QI, j'entre au clavier -0.15 et paffff ..... le QF reste toujours a 0.25 bien que le calcul de QF se fasse. la derniere valeur entrée est affichée mais pas prise en compte.
En clair je ne vois pas comment dire :
sur QI.Textchanged, c'est la derniere valeur entrée qui est la bonne.
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 20 août 2013 à 16:13
effectue un petit test
tu as dis
download() lance ensuite automatiquement la sub calculqi()
alors
1 mets en commentaire calculqi() pour empecher son execution
2 dans le textbox QI inscris une valeur
3 clique le bouton calcul
4 qu'obtiens tu ?
Attila54
Messages postés409Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention21 novembre 20131 20 août 2013 à 16:34
ben rien de spécial, la calcul se fait avec le QI que j'ai entré. Tu voulais me démontrer le bien fondé de la solution de Galain ?
Le truc qui m'a induit en erreur c'est que je pouvais changer toutes les autres data importées via l'excel et cela fonctionnait mais pas QI. Pourquoi ? parce que le sacripan était calculé et validé ... Me trompe je ?
Salut Attila
Ce que cs_ShayW veut dire dans son dernier message c'est qu'il faut que tu testes si la frappe clavier de QI.text que tu rentres pour modifier sa valeur est correcte !
rappelles-toi les tests faits sur les Textbox pour vérifier si ce sont bien des valeurs numériques qui sont rentrées et ce avant l'appel à la sub Calcul !
Salut galain
Oui oui j ai tout testé
D'abord avec qicalcule puis en changeant manuellement puis en mettant des valeurs volontairement erronées
J ai verifie ds la bdd et sur les printform et vision de près.
Tout est ok
Ceci pose j avais repositionne la d'un erreurmessage() de manière a ce qu elle s exécute au moment adéquat.
Bientôt la fin mais le plus dur m attend ... Tout revoir l impression pour passer en pdf ( je pense que la méthode printform ne conviendra pas) mais ceci est une autre histoire.
Encore merci a vs deux :-)
Par contre impossible de te saluer en mp galain et ton mail a change ...
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 21 août 2013 à 12:00
Salut
espèrons le
j'ai travaillé une fois comme testeur (QA) on m'avait dit le but est de ne pas démontrer que l'application fonctionne mais le contraire
Vous n’avez pas trouvé la réponse que vous recherchez ?
Attila54
Messages postés409Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention21 novembre 20131 21 août 2013 à 12:56
ca c vrai moion m a toujours dit que le meilleur testeur était celui qui n y connait rien, t es sur qu il plantera l ampli :-P
Avec moi c du tout cuit ....