[R] Tableau, Chekbox et fichier .ini
Posté : ven. 11 oct. 2013 11:07
				par ViviVang
				Bonjour à tous !
Je suis un petit nouveau sur le Forum donc j'espère poster le message au bon endroit, si ce n'est pas le cas, je m'en excuse.
Donc, je vous expose mon problème. J'ai commencé AutoIT, il y a deux jours maintenant. A la base, je suis Admin Réseau mais en voyant tout ce que l'on peut faire avec ce langage, je mis suis mis. Donc je suis en train de faire, pour un service de mon entreprise, un petit soft pour la gestion de prêt de Badge parking, Badge d'accès et de clé.
Voilà l'interface :
Quand on clique sur "Nouveau Prêt", on arrive dans un formulaire à remplir et quand on valide ce formulaire, il crée/utilise un fichier ini pour stocker les informations. Pour le moment, je n'ai pas fait l'organisation du fichier.ini mais je pense qu'il devra être de cette forme :
Ce que j'essaie de faire, sans résultat, c'est quand on clique sur le bouton "Voir/modifier..." un tableau apparaît. Dans ce tableau, une ligne correspondrait à une section et une colonne à une clé. Je vous mets l'image du résultat que j'essaie de faire en P.J.
J'espère avoir été assez précis.
Merci de votre aide
			Je suis un petit nouveau sur le Forum donc j'espère poster le message au bon endroit, si ce n'est pas le cas, je m'en excuse.
Donc, je vous expose mon problème. J'ai commencé AutoIT, il y a deux jours maintenant. A la base, je suis Admin Réseau mais en voyant tout ce que l'on peut faire avec ce langage, je mis suis mis. Donc je suis en train de faire, pour un service de mon entreprise, un petit soft pour la gestion de prêt de Badge parking, Badge d'accès et de clé.
Voilà l'interface :
► Afficher le texte
Code : Tout sélectionner
#region Includes
#include <ButtonConstants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#endregion
#region Fonction
;##################### Zone des Fonctions #####################
Func _ISCHECKED($control)
    Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED
EndFunc
;##################### Fin de la zone #########################
#endregion
#region Interface Menu
; ########## Début de la création de l'interface Menu ##########
Global $F_Menu = GUICreate("Gestion des prêts - v1.0.0", 565, 213, 192, 124)
GUISetIcon("C:\Users\kabbaravi\Desktop\AutoIT\Prêts\Pret.ico", -1)
Global $Lbl_Titre = GUICtrlCreateLabel("GESTION DES PRÊTS", 112, 16, 353, 41)
GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif")
Global $Btn_NewPret = GUICtrlCreateButton("NOUVEAU PRÊT", 32, 72, 209, 89)
Global $Btn_ModifPret = GUICtrlCreateButton("VOIR / MODIFIER / SUPPRIMER UN PRÊT", 328, 72, 209, 89, $BS_MULTILINE)
; ########## Fin de la création ##########
#endregion
#region Interface Formulaire
; ########## Début de la création de l'interface Formulaire ##########
Global $F_Formulaire = GUICreate("Nouveau Prêt", 531, 438, 192, 123)
GUISetIcon("C:\Users\kabbaravi\Desktop\AutoIT\Prêts\Pret.ico", -1)
Global $Lbl_TitreN = GUICtrlCreateLabel("Données du nouveau prêt", 64, 8, 394, 41)
GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif")
Global $Lbl_NomEmp = GUICtrlCreateLabel("Nom de l'empreinteur : ", 16, 64, 112, 17)
Global $Inp_NomEmp = GUICtrlCreateInput("", 152, 64, 361, 21)
Global $Lbl_DateDep = GUICtrlCreateLabel("Date de l'empreint :", 16, 96, 95, 17)
Global $Date_Depart = GUICtrlCreateDate("", 152, 96, 194, 21)
Global $Llb_MatEmp = GUICtrlCreateLabel("Matériels empreintés :", 16, 136, 106, 17)
Global $Chk_BadgeCtrl = GUICtrlCreateCheckbox("Badge ctrl accé", 152, 136, 97, 17)
Global $Llb_NumAcce = GUICtrlCreateLabel("Numéro :", 288, 136, 47, 17)
Global $Inp_NumAcce = GUICtrlCreateInput("", 344, 136, 145, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $Chk_BadgePark = GUICtrlCreateCheckbox("Badge Parking", 152, 168, 97, 17)
Global $Llb_NumPark = GUICtrlCreateLabel("Numéro :", 288, 168, 47, 17)
Global $Inp_NumPark = GUICtrlCreateInput("", 344, 168, 145, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $Chk_Cle = GUICtrlCreateCheckbox("Clés", 152, 200, 97, 17)
Global $Lbl_Lieux = GUICtrlCreateLabel("Lieux :", 288, 200, 35, 17)
Global $Inp_NomLieu = GUICtrlCreateInput("", 344, 200, 145, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
Global $Lbl_Obs = GUICtrlCreateLabel("Observation :", 16, 264, 67, 17)
Global $Edt_Obs = GUICtrlCreateEdit("", 104, 248, 409, 65)
Global $Lbl_DateRet = GUICtrlCreateLabel("Date de retour :", 16, 328, 78, 17)
Global $Date_Retour = GUICtrlCreateDate("", 152, 328, 186, 21)
Global $Btn_Valider = GUICtrlCreateButton("VALIDER", 16, 376, 161, 33)
Global $Btn_Retour = GUICtrlCreateButton("RETOUR", 352, 376, 161, 33)
; ########## Fin de la création ##########
#endregion
GUISetState(@SW_SHOW, $F_Menu)
#region Boucle Principale
While 1 ; Début de la boucle infinie
    $nMsg = GUIGetMsg() ; Récupération des messages de l'interface
    Switch $nMsg ; Début du sélecteur de cas
        Case $GUI_EVENT_CLOSE ; Si clic fermeture fenêtre, on sort
            MsgBox(64, 'Info', 'Vous avez choisi de fermer la fenêtre en cours') ; Message
            Exit ; Fin du script
        ; ########################## Action sur l'interface MENU #################################
        Case $Btn_NewPret ; Si clic sur le bouton Nouveau Prêt
            GUISetState(@SW_HIDE, $F_Menu) ; On masque le Menu
            GUISetState(@SW_SHOW, $F_Formulaire) ; On affiche le Formulaire
        Case $Btn_ModifPret ; Si clic sur le bouton Modification
            GUISetState(@SW_HIDE, $F_Menu) ; On masque le Menu
            GUISetState(@SW_SHOW, $F_Tableau) ; On affiche le Tableau
        ; ########################## Action sur l'interface Formulaire ###########################
         Case $Btn_Retour ; Si clic sur le bouton Modification
            GUISetState(@SW_HIDE, $F_Formulaire) ; On masque le Formulaire
            GUISetState(@SW_SHOW, $F_Menu) ; On affiche le Menu
        Case $Chk_BadgeCtrl ; Si on coche la case Badgeacce
            If _ISCHECKED($Chk_BadgeCtrl) Then ; Si case coche alors
                GUICtrlSetState($Inp_NumAcce,$GUI_ENABLE) ; On active la zone de saisie du numero
            Else ; Sinon
                GUICtrlSetState($Inp_NumAcce,$GUI_DISABLE) ; Si elle n'est pas coche, la zone est desactive
                GUICtrlSetData ($Inp_NumAcce, "") ; On vide la cellule
            EndIf ; Fin SI
        Case $Chk_BadgePark ; Si on coche la case BadgeParking
            If _ISCHECKED($Chk_BadgePark) Then ; Si la case est coche alors
                GUICtrlSetState($Inp_NumPark,$GUI_ENABLE) ; On active la zone de saisie du numero
            Else ; Sinon
                GUICtrlSetState($Inp_NumPark,$GUI_DISABLE) ; Si elle n'est pas coche, la zone est desactive
                GUICtrlSetData ($Inp_NumPark, "") ; On vide la cellule
            EndIf ; Fin SI
        Case $Chk_Cle; Si on coche la case Cle
            If _ISCHECKED($Chk_Cle) Then ; Si la case est coche alors
                GUICtrlSetState($Inp_NomLieu,$GUI_ENABLE) ; On active la zone de saisie du Lieux
            Else ; Sinon
                GUICtrlSetState($Inp_NomLieu,$GUI_DISABLE) ; Si elle n'est pas coche, la zone est desactive
                GUICtrlSetData ($Inp_NomLieu, "") ; On vide la cellule
            EndIf ; Fin SI
        Case $Btn_Valider ; Si clic sur le bouton Valider
            ; ########################## Action sur le fichier Data.ini ###########################
            If Not FileExists("Data.ini") Then ; Si le fichier Data.ini n'existe pas alors
                FileWrite("Data.ini","") ; On le crée
            Endif ; Fin SI
            $file = FileOpen("Data.ini", 1) ; On ouvre le fichier Data.ini
            If $file = -1 Then ; Si data.ini n'est pas trouvé alors erreur
                MsgBox(0, "Erreur", "Impossible d'ouvrir le fichier de données.")
                Exit ; Sort du logiciel
            EndIf ; Fin SI
            ; ########################## Fin de l'action ###########################
            ; ########################## Je récupère les valeurs ###########################
            Local $val_NomEmp = GUICtrlRead($Inp_NomEmp)
            Local $val_NomLieu = GUICtrlRead($Inp_NomLieu)
            Local $val_NumAcce = GUICtrlRead($Inp_NumAcce)
            Local $val_NumPark = GUICtrlRead($Inp_NumPark)
            ; ########################## Fin de la récupération ###########################
            FileWrite($file, $val_NomEmp & @CRLF)
            FileWrite($file, $val_NomLieu & @CRLF)
            FileWrite($file, $val_NumAcce & @CRLF)
            FileWrite($file, $val_NumPark & @CRLF)
            FileClose($file)
; ########################## Action sur l'interface Tableau ##############################
    EndSwitch ; Fin du sélecteur de cas
WEnd ; Fin de la boucle infinie
#endregion► Afficher le texte
Code : Tout sélectionner
[1]
Nom=Dupont
BadgeAcce=352
BadgePark=459
Cle=Sous-Sol
Date=07/09/2013
DateRetour=09/09/2013
[2]
Nom=Durant
BadgeAcce=255
BadgePark=022
Cle=Cabinet
Date=07/09/2013
DateRetour=28/09/2013
[3]
Nom=Vivi
BadgeAcce=999
BadgePark=777
Cle=CAD
Date=08/11/2013
DateRetour=28/12/2013
[4]
Nom=MK
BadgeAcce=444
BadgePark=222
Cle=Porte
Date=12/04/2014
DateRetour=28/11/2015J'espère avoir été assez précis.
Merci de votre aide