[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/2015
J'espère avoir été assez précis.
Merci de votre aide