Voila j'ai mis du commentaire au code,si tu veux bien voire si c'est juste ou pas.
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#Include <Array.au3>
#Include <String.au3>
#Include <File.au3>
Local $ListView, $Ajouter, $article, $ID, $open ,$save
Global $File
$nb = 1
#Region ### START Koda GUI section ### Form=
GuiCreate("Sample GUI", 400, 300)
$ListView = GUICtrlCreateListView("", 10, 100, 350, 150, BitOR($LVS_EDITLABELS, $LVS_REPORT))
;~ $new = GUICreate("new", 446, 478, 351, 188)
$Label1 = GUICtrlCreateLabel("ID :", 10, 40, 24, 17)
$ID = GUICtrlCreateLabel(StringFormat("%04i/%i",$nb,@Year), 88, 40, 53, 17)
$Label2 = GUICtrlCreateLabel("Article :", 10, 72, 39, 17)
$article = GUICtrlCreateInput("article", 88, 70, 145, 21)
$Ajouter = GUICtrlCreateButton("Ajouter", 312, 64, 75, 25)
$Ouvrir = GUICtrlCreateButton("Ouvrir", 10, 250, 75, 25)
$Enregistrer = GUICtrlCreateButton("Enregistrer", 100, 250, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
; Add columns
_GUICtrlListView_InsertColumn($ListView, 0, "ID", 100)
_GUICtrlListView_InsertColumn($ListView, 1, "Article", 100)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Ajouter
If StringRight(guictrlread($id),4) <> @year then $nb = 1 ;Extraction des 4 dernier caractère du ID 'donc l'année et la compare avec l'année actuelle
_GUICtrlListView_AddItem($ListView, StringFormat("%04i/%i",$nb,@Year), 0) ;Ajoute le ID a la table ID
_GUICtrlListView_AddsubItem($ListView, $nb-1, GUICtrlRead($article) , 1) ;Ajoute l'article a la table article
$nb = $nb+1 ;Incrementaion de la partit NB du ID
GUICtrlSetData($id,StringFormat("%04i/%i",$nb,@Year)) ;Affiche le ID suivant
Case $Ouvrir
If _GUICtrlListView_GetItemCount($ListView) <> 0 then ; compart ne nombre des items de la liste avec le zero
_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView)) ;Remise a zero de la table
EndIf
If _GUICtrlListView_GetItemCount($ListView) <> 1 then ;compart ne nombre des items de la liste avec le un
$open = FileOpenDialog("Ouverture de la base de donne", @MyDocumentsDir & "\", "Base de donne (*.bd)", 8 ) ;Ouverture de la boite de dialoge Ouverture de la base de donne
Dim $Array
_FileReadToArray($open,$Array) ;Transfère des donnes du fichier ouvert en une table
For $i=1 To $Array[0]
$split = StringSplit($Array[$i],"|",2) ; Préparation de la table en délimitant les partie de chaque colonne
_GUICtrlListView_AddItem($ListView, $split[0], 0) ;Chargement de la colonne ID
_GUICtrlListView_AddsubItem($ListView, $i-1 , $split[1] , 1) ;Chargement de la colonne Article
Next
$nb = Int(StringTrimRight($split[0],5))+1 ;Récupération du NB suivent de la partie ID
GUICtrlSetData($id,StringFormat("%04i/%i",$nb,@Year)) ;Affiche le ID suivant
Else
MsgBox(16,"Erreur","Il y a déjà des données dans le tableau") ;teste de routine mdr
EndIf
Case $Enregistrer
$save = FileSaveDialog( "Enregistrement de la base de donne.", @MyDocumentsDir & "\", "Base de donne (*.bd)", 16) ;Ouverture de la boite de dialogue Enregistrement de la base de donne
Dim $Array[_GUICtrlListView_GetItemCount($ListView)] ;Détermination des nombres de items dans la liste
For $i = 0 to _GUICtrlListView_GetItemCount($ListView)-1
$aitem = _GUICtrlListView_GetItem($ListView, $i) ;
$sitem = _GUICtrlListView_GetItem($ListView, $i,1) ;
$Array[$i] = $aitem[3] & "|" & $sitem[3] ;Délimite les donne entre les colonne de la table avec "|"
Next
_FileWriteFromArray($save, $Array) ;Enregistrement de la table dans un fichier
EndSwitch
WEnd