[R] Problème If/EndIf pour un champs vide

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
SteelHawk
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mar. 12 août 2008 17:49
Status : Hors ligne

[R] Problème If/EndIf pour un champs vide

#1

Message par SteelHawk »

Bonjour,

Je suis total noob sur AutoIt et j'essaye actuellement de faire un petit programme pour simplifier la vie de mes collègues sur SAP. Il doit rechercher dans un liste SAP la présence de robinets

J'ai parcouru le forum et je n'ai pas trouvé de reponse... en meme temps j'ai pas tout compris ^^

voila en gros mon problème... j'ai crée un GUI dans lequel l'utilisateur saisi son login, son mdp ainsi que 3 robinets aux choix.
#include <GuiConstants.au3>
; Architecture de la fenetre d'identification
GuiCreate("Requete GMAO", 400, 220,(@DesktopWidth-191)/2, (@DesktopHeight-157)/2)

$Version = GuiCtrlCreateLabel("Ver. 1.2", 360, 5, 131, 21)
$Label_1 = GuiCtrlCreateLabel("Login", 30, 30, 131, 21)
$InputLogin = GuiCtrlCreateInput("", 30, 50, 130, 21)
$Label_3 = GuiCtrlCreateLabel("Mot de Passe", 30, 80, 131, 21)
$InputPass = GuiCtrlCreateInput('',30, 100, 130, 21, 0x21)
$Label_4 = GuiCtrlCreateLabel("N° Rob 1 à controler", 230, 30, 131, 21)
$Robinet = GuiCtrlCreateInput("", 230, 50, 130, 21)
$Label_5 = GuiCtrlCreateLabel("N° Rob 2 à controler", 230, 80, 131, 21)
$Robinet2 = GuiCtrlCreateInput("", 230, 100, 130, 21)
$Label_6 = GuiCtrlCreateLabel("N° Rob 3 à controler", 230, 130, 131, 21)
$Robinet3 = GuiCtrlCreateInput("", 230, 150, 130, 21)
$ok = GuiCtrlCreateButton("Ok", 30, 190, 130, 20)
$ligne=GuiCtrlCreateGraphic(200, 20, 80,80)
GUICtrlSetGraphic(-1,$GUI_GR_LINE, 0,180)
[...] Jusque la tout va bien. Mais le problème que je rencontre c'est que les utilisateurs ne rentrent pas forcement 3 robinets. Ils peuvent en saisir 1, 2 OU 3. Ce que j'aimerais faire c'est un "If Then" qui, si le champs de départ n'est pas renseigné, passe directement au EndIf

Le programme consiste en gros en une suite de macro et arrivé à ce point....
; Recherche si le robinet nommé au depart se trouve dans la requete
Send("{TAB 20}")
Send("^a")

Send("^+{F2}")
Sleep(5000)
Send("{TAB 11}")
Send("{ENTER}")
Sleep(2000)
Send("*")
Send(GUICtrlRead($Robinet))
Send("*")


If $Robinet2 = True Then
Send("{TAB 2}")
Send("*")
Send(GUICtrlRead($Robinet2))
Send("*")
EndIf

If $Robinet3 = True Then
Send("{TAB 2}")
Send("*")
Send(GUICtrlRead($Robinet3))
Send("*")
EndIf


Send("{F8}")
Sleep(2000)
Send("{ENTER}")
Voila, j'ai bien conscience que mon if////endif est completement foireux... Mais je n'y comprend pas grand chose en logique booleen.... j'ai essayer avec des <> des ="" des >0.... mais rien n'y fait.......

Si vous pouvez me dépanner, merci d'avance ^^
Modifié en dernier par Tlem le dim. 17 août 2008 23:56, modifié 2 fois.
Raison : Ajout de la balise [..]
Avatar du membre
Gollem
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mar. 24 juin 2008 18:29
Status : Hors ligne

Re: [..] Probleme If/EndIf pour un champs vide

#2

Message par Gollem »

Bonjour,

La logique du if est simple , il faut que le résultat donne true ou false, 1 ou 0.

Le test est du style : if $robinet = "" then

les "" représentent une chaîne non saisie
SteelHawk
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mar. 12 août 2008 17:49
Status : Hors ligne

Re: [..] Probleme If/EndIf pour un champs vide

#3

Message par SteelHawk »

Gollem, merci pour ta reponse, mais j'avais deja essayer = ""....

En cherchant j'ai finalement trouver mon erreur...

Il fallait mettre

If GUICtrlRead($Robinet2) = True Then

Et non pas
If $Robinet2 = True Then
Merci ^^
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Probleme If/EndIf pour un champs vide

#4

Message par Tlem »

Vous devriez plutôt utiliser ceci :

Code : Tout sélectionner

If Not GUICtrlRead($Robinet2) = 0
car la fonction GUICtrlRead renvoie le texte du contrôle (Si il y en à), ou 0 si le contrôle est vide.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre