[R] Fonction multiparamètres possible ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

[R] Fonction multiparamètres possible ?

#1

Message par Laddy »

Bonjou à tous,

Dans mon code sql, je liste le contenu de 3 tables dans 3 combox.
En modifiant pour chaque fonction le contenu de différents paramètres

$SQLCode
$NameList
$toto = GUICtrlSetData($paramCombox, $ContenuTable);
► Afficher le textecode fonction
Est il possible de simplifer le code en une fonction qui chargerait la meme chose avec 3 paramètres qui changeraient ?


genre :

Code : Tout sélectionner

Func _ListCombox($parm_1,$param_2,$parm_3)
Blablabl

Return je sais pas quoi ??
EndFunc
ou 

Func _ListCombox($SQLCode,$Champ,$Combox)
????
Return  ??

EndFunc

 

Me resterait à remplacer ceci :

WIN_CONNECTION() ; liste les os
Office_Connection() ; liste office version
Virus_Connection() ; liste antivirus

Par cela :
_ListCombox("SELECT * FROM veroffice","Nom_Office",$ListOffice)
_ListCombox("SELECT * FROM virus","Nom_ANTIVIRUS",$ListAntivirus)

Et avoir une seule fonction pour les 3 combox

Est ce possible ou non ?
si oui comment faire ?
J'ai regardé l'aide mais je ne vois pas comment mettre les 3 variables en paramètres... avec le return.
Aperçu de la gui :
► Afficher le texteimage
Merci d'avance
Laddy
Modifié en dernier par Laddy le jeu. 01 mars 2012 07:01, modifié 1 fois.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Fonction multiparamètres possible ?

#2

Message par TopXm »

Hello Laddy ;)

Un truc de ce genre ? [NB : N'ayant ni base, ni ta GUI sous la main, je n'ai pas pu tester, d'autant que je n'utilise pas MySql]

Code : Tout sélectionner

GUICtrlSetData($IdCombo1, _GetSqlValue("NomTable1", "NomDuChampsDeLaTable1))
GUICtrlSetData($IdCombo2, _GetSqlValue("NomTable2", "NomDuChampsDeLaTable2))
GUICtrlSetData($IdCombo3, _GetSqlValue("NomTable3", "NomDuChampsDeLaTable3))

Func _GetSqlValue($Table, $FieldName)
    Local $RetVal
    Local $SQLCode = "SELECT " & $FieldName &  " FROM " & $Table
    $TableContents = _Query($SQLInstance, $SQLCode)
    With $TableContents
        While Not .EOF
            $RetVal &= "|" & .Fields($FieldName).value
            .MoveNext
        WEnd
    EndWith
    Return $RetVal
EndFunc
 
J'avoue que je ne sais pas si on peut faire ceci : .Fields($FieldName).value
Si ça ne marche pas tu peux par contre indiquer le n° de colonne du champs dans la requête d'après ce qui est dit ici : http://www.autoitscript.com/forum/topic ... _p__805493
Auquel cas il te faudra passer un paramètre supplémentaire (le n° de colonne) dans ta fonction ;)
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Fonction multiparamètres possible ?

#3

Message par TommyDDR »

Vous avez fait 95% du chemin, pourquoi ne pas avoir fini ? ^^

Cela devrait convenir :
► Afficher le textecode
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Fonction multiparamètres possible ?

#4

Message par Laddy »

Bonjour à tous deux :D
TopXm >> Oui on peut. Je vais tester ton code pour valider :D

TommyDDR > Je pense que le paramètre Return pour retrouver le résultat de la valeur m'a perturbé. Je le pensai obligatoire.

Votre fonction fonctionne a un détail prêt, j'ai dû ajouter un 4eme paramètre qui réfère $NameList car la seconde combox ajouté le contenu de la première, et la 3eme celle de la premiere et de la seconde.
► Afficher le texteCorrection
Je ne sais pas si on peut faire plus simple mais ça fonctionne pour le moment.
Merci à tous deux

Edit : correction soumis par TommyDDR
Modifié en dernier par Laddy le jeu. 01 mars 2012 17:16, modifié 1 fois.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Fonction multiparamètres possible ?

#5

Message par TommyDDR »

Non, il faut déclarer NameList dans la méthode.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [R] Fonction multiparamètres possible ?

#6

Message par Laddy »

Je n'ai pas compris désolé :oops:
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Fonction multiparamètres possible ?

#7

Message par TommyDDR »

Je doute que vous ayez besoin des $NameList en dehors des fonctions, si j'ai raison, alors enlever le Global/Dim $NameList que vous devriez avoir en début de script et mettez plutôt un Local $NameList dans la fonction _ListCombox.

Si vous en avez quand même besoin, il est quand même préférable de ne le déclarer que dans la fonction _ListCombox et au pire de le retourner à la fin ;)

"Return $NameList"
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [R] Fonction multiparamètres possible ?

#8

Message par Laddy »

J'ai testé et ça semble être ok.
Merci ;D
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Fonction multiparamètres possible ?

#9

Message par TopXm »

Hello :)
TommyDDR a écrit :Vous avez fait 95% du chemin, pourquoi ne pas avoir fini ? ^^

Cela devrait convenir :
► Afficher le textecode
Ben c'est juste une fonction pour récupérer le contenu d'un champ d'une table, d'où son nom _GetSqlValue ;)
Mais en effet pourquoi pas ajouter GUICtrlSetData($Combox, $NameList) :D
Répondre