下面是我的AutoIt代碼。我想減少這段代碼,並避免在我的函數中添加大量的「If ... Else ... EndIf」。避免在AutoIt中嵌套的IF
我該怎麼做?
Func launchTestsCC($partenaire, $projet)
If $CometEnv = "DEV" Or $CometEnv = "VAL" Then
initDossierFormConfig($partenaire)
initPartenaireWin($partenaire)
Sleep(500)
For $i = 2 To 8 Step 1
$ouvrirDossier = ouvrirDossier($configDossier[2], $configDossier[3], "ADI,C", $configDossier[4], $configDossier[5], False)
ConsoleWrite("$ouvrirDossier ==> " & $ouvrirDossier & @CRLF)
If $ouvrirDossier = 1 Then
Sleep(1000)
jabSetCombo("", "FRAIS MEDICAUX", 3)
jabSetCombo("", $listsContrats[$i], 4)
ConsoleWrite("$listsContrats[" & $i & "] ==> " & $listsContrats[$i] & @CRLF)
jabSetText("", $currentDate, 5)
jabSetCombo("", $configDossier[6], 5)
jabSetCombo("", $configDossier[7], 6)
jabSetText("", "19549", 7)
$valider = jabClicBouton("Valider")
If $valider = 1 Then
If getWinError() = 1 Then
ConsoleWrite("getWinError() $valider ==> 1" & @CRLF)
setTestResult($openSheet, $CalcResult, $partenaire, $listsContrats[$i], "Dossier créer", "TEST OK")
$benef = jabClicBouton("ADI,FM,B")
If $benef = 1 Then
If getWinError() = 1 Then
$ajouter = jabClicBouton("Ajouter")
$searchTextbenef = searchTextInPageTimeOut("jabGetLabel", "Appliquer à :", 5)
If $ajouter = 1 And $searchTextbenef = 1 Then
selectCheckBox("", 3)
$x4 = 0
$y4 = 0
$checkBoxS3P3 = rechercheImage("Benef_S3P3.bmp", 5, 1, $x4, $y4, "")
If $checkBoxS3P3 = 1 Then
$codeRetour = cliqueSur("Benef_S3P3.bmp", -65, 0)
If $codeRetour = 0 Then
ConsoleWrite("Erreur en séléctionant S3P3" & @CR)
setTestResult($openSheet, $CalcResult, $partenaire, $listsContrats[$i], "Erreur en séléctionant S3P3", "TEST KO")
Else
$valider = jabClicBouton("Valider")
If $valider = 1 Then
If getWinError() = 1 Then
$retour = jabClicBouton("Retour")
EndIf
EndIf
EndIf
EndIf
Else
setTestResult($openSheet, $CalcResult, $partenaire, $listsContrats[$i], "Probleme au clic sur ajouter benef", "TEST OK")
EndIf
Else
ConsoleWrite("getWinError() $benef ==> 0" & @CRLF)
setTestResult($openSheet, $CalcResult, $partenaire, $listsContrats[$i], "Impossible d'ajouter des bénéf", "TEST KO")
ContinueLoop
EndIf
EndIf
Else
ConsoleWrite("getWinError() $valider ==> 0" & @CRLF)
$suiteConfig = "Cadence de recouvrement : " & $configDossier[8] & @CR & "Mode de recouvrement : " & $configDossier[9]
$disConfig = "Paramètres du dossier : " & $configDossier[2] & " | " & $configDossier[3] & " | " & $configDossier[4] & " | " & $configDossier[5] & @CR & $suiteConfig
setTestResult($openSheet, $CalcResult, $partenaire, $listsContrats[$i], "Message d'erreur ou Warning" & @CR & $disConfig, "TEST KO")
EndIf
EndIf
Else
ConsoleWriteError("Erreur ouverture dossier " & $partenaire & @CRLF)
$suiteConfig = "Cadence de recouvrement : " & $configDossier[8] & @CR & "Mode de recouvrement : " & $configDossier[9]
$disConfig = "Paramètres du dossier : " & $configDossier[2] & " | " & $configDossier[3] & " | " & $configDossier[4] & " | " & $configDossier[5] & @CR & $suiteConfig
setTestResult($openSheet, $CalcResult, $partenaire, $listsContrats[$i], "Erreur ouverture dossier/Temps dépassé pour ouvrir le dossier" & @CR & $disConfig, "TEST KO")
ContinueLoop
EndIf
Next
EndIf
EndFunc ;==>launchTestsCC
使用開關:https://www.autoitscript.com/autoit3/docs/keywords/Switch.htm或選擇:https://www.autoitscript.com/autoit3/docs/keywords/Select.htm聲明來處理這個問題。 – 2014-10-02 17:47:47