; **************** ; Gestion bancaire ; ****************
Enumeration #Window_0 #Button_cpt1 #Button_cpt2 #Button_cpt4 #Button_cpt5 #Button_cat1 #Button_cat2 #Button_cat4 #Button_cat5 #Button_tiers1 #Button_tiers2 #Button_tiers4 #Button_tiers5 #Button_nouveau #Button_enregistre #Button_sauve #Button_suppr #Button_format1 #Button_format2 #Button_quit #ListIcon_1 #Etiq_1 #Etiq_2 #Etiq_3 #Etiq_4 #Etiq_5 #Etiq_titre #Etiq_cont1 #Etiq_cont2 #Etiq_cont3 #Etiq_cont4 #Etiq_cont21 #Etiq_cont22 #Etiq_cont31 #Etiq_cont32 #Etiq_date #Etiq_Credit #Etiq_debit #Etiq_paiement #Etiq_libelle #Etiq_tiers #Etiq_categorie #Etiq_Valide #Etiq_aide1 #Etiq_aide2 #Etiq_aide3 #Etiq_aide4 #Etiq_aide5 #Etiq_aide6 #Saisie_nom #Saisie_banque #Saisie_num #Saisie_cat #Saisie_tiers #saisie_date #saisie_credit #saisie_debit #saisie_paiement #saisie_libelle #saisie_tiers_mouv #saisie_cat_mouv #saisie_valide #saisie_compte #Panel_1 #container_1 #container_2 #container_3 EndEnumeration
Structure cpte banque.s nom.s num.s EndStructure
Structure mouvt compte.s date.s credit.s debit.s paiement.s libelle.s tiers.s categorie.s validation.s calc_cr_de.s EndStructure
Define.l Event, EventWindow, EventGadget
Global NewList comptes.cpte(), NewList tiers.s(), NewList categories.s(), NewList mouvements.mouvt(), NewList temp.mouvt()
; ************ ; Initialisation ; ************
AddElement(comptes()) AddElement(tiers()) AddElement(categories()) AddElement(mouvements())
Procedure F_tiers() If OpenFile(0,"./tiers") If Eof(0) = 0 ClearList(tiers()) EndIf While Eof(0) = 0 AddElement(tiers()) tiers()=ReadString(0) Wend CloseFile(0) FirstElement(tiers()) SetGadgetText(#Saisie_tiers,tiers()) EndIf EndProcedure
Procedure F_categories() If OpenFile(0,"./categories") If Eof(0) = 0 ClearList(categories()) EndIf While Eof(0) =0 AddElement(categories()) categories()=ReadString(0) Wend CloseFile(0) FirstElement(categories()) SetGadgetText(#Saisie_cat,categories()) EndIf EndProcedure
Procedure F_comptes() If OpenFile(0,"./comptes") If Eof(0) = 0 ClearList(comptes()) EndIf While Eof(o) =0 AddElement(comptes()) comptes()anque = ReadString(0) comptes() om = ReadString(0) comptes() um = ReadString(0) Wend CloseFile(0) FirstElement(comptes()) SetGadgetText(#Saisie_nom,comptes() om) SetGadgetText(#Saisie_banque,comptes()anque) SetGadgetText(#Saisie_num,comptes() um) EndIf EndProcedure
Procedure F_mouvements() If OpenFile(0,"./mouvements") If Eof(0) = 0 ClearList(mouvements()) EndIf While Eof(0) = 0 AddElement(mouvements()) mouvements()compte = ReadString(0) mouvements()date = ReadString(0) mouvements()credit = ReadString(0) mouvements()debit = ReadString(0) mouvements()paiement = ReadString(0) mouvements()libelle = ReadString(0) mouvements() iers = ReadString(0) mouvements()categorie = ReadString(0) mouvements()validation = ReadString(0) mouvements()calc_cr_de = ReadString(0) Wend CloseFile(0) EndIf EndProcedure
Procedure E_mouvements() If OpenFile(0,"./mouvements") TruncateFile(0) For i=0 To 9 : WriteStringN(0," ") : Next ForEach mouvements() WriteStringN(0,mouvements()compte) WriteStringN(0,mouvements()date) WriteStringN(0,mouvements()credit) WriteStringN(0,mouvements()debit) WriteStringN(0,mouvements()paiement) WriteStringN(0,mouvements()libelle) WriteStringN(0,mouvements() iers) WriteStringN(0,mouvements()categorie) WriteStringN(0,mouvements()validation) WriteStringN(0,mouvements()calc_cr_de) Next CloseFile(0) EndIf EndProcedure
Procedure R_combo() F_comptes() F_categories() F_tiers() ClearGadgetItems(#saisie_paiement) ClearGadgetItems(#saisie_tiers_mouv) ClearGadgetItems(#saisie_cat_mouv) ClearGadgetItems(#saisie_compte) AddGadgetItem(#saisie_paiement,-1,"CB") AddGadgetItem(#saisie_paiement,-1,"Chèque") AddGadgetItem(#saisie_paiement,-1,"Virement") AddGadgetItem(#saisie_paiement,-1,"Prélèvement") AddGadgetItem(#saisie_paiement,-1,"Paiement électronique") AddGadgetItem(#saisie_paiement,-1,"Espèces") AddGadgetItem(#saisie_paiement,-1,"") ForEach tiers() AddGadgetItem(#saisie_tiers_mouv,-1,tiers()) Next ForEach categories() AddGadgetItem(#saisie_cat_mouv,-1,categories()) Next ForEach comptes() AddGadgetItem(#saisie_compte,-1,comptes() om) Next EndProcedure
Procedure rech_mouv() ClearGadgetItems(#ListIcon_1) crit$ = GetGadgetText(#saisie_compte) tot.d=0 totp.d = 0 ForEach mouvements() If mouvements()compte = crit$ AddGadgetItem(#ListIcon_1,-1,Str(ListIndex(mouvements()))+Chr(10)+mouvements()date+Chr(10)+mouvements()credit+Chr(10)+mouvements()debit+Chr(10)+mouvements()paiement+Chr(10)+mouvements()libelle+Chr(10)+mouvements() iers+Chr(10)+mouvements()categorie+Chr(10)+mouvements()validation) tot = tot + ValD(mouvements()calc_cr_de) If mouvements()validation = "X" totp = totp + ValD(mouvements()calc_cr_de) EndIf EndIf Next SetGadgetText(#Etiq_2,StrD(totp,2)) SetGadgetText(#Etiq_4,StrD(tot,2)) SetGadgetText(#saisie_credit,"") SetGadgetText(#saisie_debit,"") SetGadgetText(#saisie_paiement,"") SetGadgetText(#saisie_libelle,"") SetGadgetText(#saisie_tiers_mouv,"") SetGadgetText(#saisie_cat_mouv,"") SetGadgetState(#saisie_valide,#PB_Checkbox_Unchecked) EndProcedure
Procedure O_Window_0() If OpenWindow(#Window_0,20,50,1000,650,"Gestion bancaire") ListIconGadget(#ListIcon_1,10,70,980,380,"Index",3) AddGadgetColumn(#ListIcon_1,1,"Date",120) AddGadgetColumn(#ListIcon_1,2,"Crédit",100) AddGadgetColumn(#ListIcon_1,3,"Débit",100) AddGadgetColumn(#ListIcon_1,4,"Paiement",100) AddGadgetColumn(#ListIcon_1,5,"Libellé",220) AddGadgetColumn(#ListIcon_1,6,"Tiers",150) AddGadgetColumn(#ListIcon_1,7,"Catégorie",140) AddGadgetColumn(#ListIcon_1,8,"Validation",40) TextGadget(#Etiq_titre,1,1,998,20,"G E S T I O N B A N C A I R E",#PB_Text_Center) SetGadgetColor(#Etiq_titre,#PB_Gadget_BackColor,$FF0000) SetGadgetColor(#Etiq_titre,#PB_Gadget_FrontColor,$00FFFF) TextGadget(#Etiq_1,410,40,100,20,"Solde pointé : ") TextGadget(#Etiq_2,510,40,100,20,"",#PB_Text_Center | #PB_Text_Border) TextGadget(#Etiq_3,750,40,100,20,"Solde final : ") TextGadget(#Etiq_4,850,40,100,20,"",#PB_Text_Center | #PB_Text_Border) TextGadget(#Etiq_5,10,40,120,20,"Compte : ") ComboBoxGadget(#saisie_compte,140,40,120,25) PanelGadget(#Panel_1,10,460,980,180) AddGadgetItem (#Panel_1, 0, "Saisie, modification, validation d'un mouvement") TextGadget(#Etiq_date,210,15,120,20,"Date :") DateGadget(#saisie_date, 330, 15, 120,20,"%dd/%mm/%yyyy") TextGadget(#Etiq_Credit,210,40,120,20,"Crédit :") StringGadget(#saisie_credit,330,40,100,20,"") ButtonGadget(#Button_format1,429,40,20,20,"") TextGadget(#Etiq_debit,210,65,120,20,"Débit") StringGadget(#saisie_debit,330,65,100,20,"") ButtonGadget(#Button_format2,429,65,20,20,"") TextGadget(#Etiq_paiement,210,90,120,20,"type de paiement :") ComboBoxGadget(#saisie_paiement,330,90,120,25) TextGadget(#Etiq_libelle,500,15,120,20,"Libellé :") StringGadget(#saisie_libelle,620,15,220,20,"") TextGadget(#Etiq_tiers,500,40,120,20,"Tiers :") ComboBoxGadget(#saisie_tiers_mouv,620,40,120,25) TextGadget(#Etiq_categorie,500,65,120,20,"Catégorie :") ComboBoxGadget(#saisie_cat_mouv,620,65,120,25) TextGadget(#Etiq_Valide,500,90,120,20,"Validation :") CheckBoxGadget(#saisie_valide,620,90,20,20,"") ButtonGadget(#Button_nouveau,10,120,200,25,"Nouveau mouvement bancaire") ButtonGadget(#Button_enregistre,220,120,200,25,"Enregistrer les modifications") ButtonGadget(#Button_suppr,430,120,200,25,"Supprimer le mouvement") ButtonGadget(#Button_sauve,640,120,200,25,"Sauvegarder sur disque") ButtonGadget(#Button_quit,850,120,115,25,"Quitter") AddGadgetItem(#Panel_1,1,"Comptes - Catégories - Tiers") ContainerGadget(#container_1, 5, 5, 340, 133, #PB_Container_Raised) TextGadget(#Etiq_cont1,1,1,335,20,"Saisie, ajout, modifications des comptes bancaires",#PB_Text_Center | #PB_Text_Border) SetGadgetColor(#Etiq_cont1,#PB_Gadget_BackColor,$FF0000) SetGadgetColor(#Etiq_cont1,#PB_Gadget_FrontColor,$00FFFF) TextGadget(#Etiq_cont2,1,25,100,20,"Nom :") TextGadget(#Etiq_cont3,1,50,100,20,"Banque :") TextGadget(#Etiq_cont4,1,75,100,20,"Numéro :") StringGadget(#Saisie_nom,130,25,130,20,"",#PB_String_BorderLess) StringGadget(#Saisie_banque,130,50,130,20,"",#PB_String_BorderLess) StringGadget(#Saisie_num,130,75,130,20,"",#PB_String_BorderLess) ButtonGadget(#Button_cpt1,1,100,20,25,"<") ButtonGadget(#Button_cpt2,25,100,20,25,">") ButtonGadget(#Button_cpt4,50,100,220,25,"Sauvegarder les modifications") ButtonGadget(#Button_cpt5,290,100,20,25,"-") CloseGadgetList() ContainerGadget(#container_2, 350, 5, 320, 133, #PB_Container_Raised) TextGadget(#Etiq_cont21,1,1,312,20,"Saisie, ajout, modifications des catégories",#PB_Text_Center | #PB_Text_Border) SetGadgetColor(#Etiq_cont21,#PB_Gadget_BackColor,$FF0000) SetGadgetColor(#Etiq_cont21,#PB_Gadget_FrontColor,$00FFFF) TextGadget(#Etiq_cont22,1,50,100,20,"Catégorie :") StringGadget(#Saisie_cat,120,50,150,20,"",#PB_String_BorderLess) ButtonGadget(#Button_cat1,1,100,20,25,"<") ButtonGadget(#Button_cat2,25,100,20,25,">") ButtonGadget(#Button_cat4,50,100,220,25,"Sauvegarder les modifications") ButtonGadget(#Button_cat5,290,100,20,25,"-") CloseGadgetList() ContainerGadget(#container_3, 674, 5, 295, 133, #PB_Container_Raised) TextGadget(#Etiq_cont31,1,1, 292,20,"Saisie, ajout, modifications des tiers",#PB_Text_Center | #PB_Text_Border) SetGadgetColor(#Etiq_cont31,#PB_Gadget_BackColor,$FF0000) SetGadgetColor(#Etiq_cont31,#PB_Gadget_FrontColor,$00FFFF) TextGadget(#Etiq_cont32,1,50,100,20,"Tiers :") StringGadget(#Saisie_tiers,120,50,120,20,"",#PB_String_BorderLess) ButtonGadget(#Button_tiers1,1,100,20,25,"<") ButtonGadget(#Button_tiers2,25,100,20,25,">") ButtonGadget(#Button_tiers4,50,100,215,25,"Sauvegarder les modifications") ButtonGadget(#Button_tiers5,270,100,20,25,"-") CloseGadgetList() AddGadgetItem(#Panel_1,2,"Aide") t1$ = "Logiciel de gestion bancaire personnel très simplifié" t2$ = "Première utilisation : saisir au moins un compte." t3$ = "On peut ajouter ou insérer des catégories, des tiers ou des comptes dans les zones vides en début ou fin de liste en se déplaçant avec < et >." t4$ = "Le bouton <Enregistrer les modifications> affiche les données dans la feuille des mouvements." t5$ = "Le bouton <Sauvegarder sur disque>les enregistre réellement." t6$ = "Avant de quitter, il ne faut pas omettre de sauvegarder afin de conserver les mouvements." TextGadget(#Etiq_aide1,1,1,978,20,t1$) TextGadget(#Etiq_aide2,1,30,978,20,t2$) TextGadget(#Etiq_aide3,1,50,978,20,t3$) TextGadget(#Etiq_aide4,1,70,978,20,t4$) TextGadget(#Etiq_aide5,1,90,978,20,t5$) TextGadget(#Etiq_aide6,1,110,978,20,t6$) EndIf EndProcedure
O_Window_0() F_tiers() F_categories() F_comptes() F_mouvements() R_combo()
; *********************** ; Gestion des événements ; ***********************
Repeat Event = WaitWindowEvent() Select Event
Case #PB_Event_Gadget If EventGadget() = #Button_cpt1 Resultat = PreviousElement(comptes()) If Resultat = 0 : FirstElement(comptes()) : EndIf SetGadgetText(#Saisie_nom,comptes() om) SetGadgetText(#Saisie_banque,comptes()anque) SetGadgetText(#Saisie_num,comptes() um) EndIf If EventGadget() = #Button_cpt2 Resultat = NextElement(comptes()) If Resultat = 0 : LastElement(comptes()) : EndIf SetGadgetText(#Saisie_nom,comptes() om) SetGadgetText(#Saisie_banque,comptes()anque) SetGadgetText(#Saisie_num,comptes() um) EndIf If EventGadget() = #Saisie_banque Or #Saisie_nom Or #Saisie_num comptes() om = GetGadgetText(#Saisie_nom) comptes()anque = GetGadgetText(#Saisie_banque) comptes() um= GetGadgetText(#Saisie_num) EndIf If EventGadget() = #Button_cpt4 If OpenFile(0,"comptes") TruncateFile(0) For i=0 To 2 : WriteStringN(0,"") : Next ForEach comptes() If comptes() om <> "" WriteStringN(0,comptes()anque) WriteStringN(0,comptes() om) WriteStringN(0,comptes() um) EndIf Next For i=0 To 2 : WriteStringN(0,"") : Next CloseFile(0) EndIf R_combo() EndIf If EventGadget() = #Button_cpt5 DeleteElement(comptes()) SetGadgetText(#Saisie_nom,"") SetGadgetText(#Saisie_banque,"") SetGadgetText(#Saisie_num,"" ) EndIf If EventGadget() = #Button_cat1 Resultat = PreviousElement(categories()) If Resultat = 0 : FirstElement(categories()) : EndIf SetGadgetText(#Saisie_cat,categories()) EndIf If EventGadget() = #Button_cat2 Resultat = NextElement(categories()) If Resultat = 0 : LastElement(categories()) : EndIf SetGadgetText(#Saisie_cat,categories()) EndIf If EventGadget() = #Saisie_cat categories() = GetGadgetText(#Saisie_cat) EndIf If EventGadget() = #Button_cat4 If OpenFile(0,"categories") TruncateFile(0) WriteStringN(0,"") ForEach categories() If categories() <> "" WriteStringN(0,categories()) EndIf Next WriteStringN(0,"") CloseFile(0) EndIf R_combo() EndIf If EventGadget() = #Button_cat5 DeleteElement(categories()) SetGadgetText(#Saisie_cat,"") EndIf If EventGadget() = #Button_tiers1 Resultat = PreviousElement(tiers()) If Resultat = 0 : FirstElement(tiers()) : EndIf SetGadgetText(#Saisie_tiers,tiers()) EndIf If EventGadget() = #Button_tiers2 Resultat = NextElement(tiers()) If Resultat = 0 : LastElement(tiers()) : EndIf SetGadgetText(#Saisie_tiers,tiers()) EndIf If EventGadget() = #Saisie_tiers tiers() = GetGadgetText(#Saisie_tiers) EndIf If EventGadget() = #Button_tiers4 If OpenFile(0,"tiers") TruncateFile(0) WriteStringN(0,"") ForEach tiers() If tiers() <> "" WriteStringN(0,tiers()) EndIf Next WriteStringN(0,"") CloseFile(0) EndIf R_combo() EndIf If EventGadget() = #Button_tiers5 DeleteElement(tiers()) SetGadgetText(#Saisie_tiers,"") EndIf If EventGadget() =#Button_sauve E_mouvements() EndIf If EventGadget() = #Button_nouveau LastElement(mouvements()) Resultat = AddElement(mouvements()) SetGadgetText(#saisie_credit,"") SetGadgetText(#saisie_debit,"") SetGadgetText(#saisie_paiement,"") SetGadgetText(#saisie_libelle,"") SetGadgetText(#saisie_tiers_mouv,"") SetGadgetText(#saisie_cat_mouv,"") SetGadgetState(#saisie_valide,#PB_Checkbox_Unchecked) EndIf If EventGadget() = #Button_enregistre mouvements()compte = GetGadgetText(#saisie_compte) mouvements()date = GetGadgetText(#saisie_date) mouvements()credit = GetGadgetText(#saisie_credit) mouvements()debit = GetGadgetText(#saisie_debit) mouvements()paiement = GetGadgetText(#saisie_paiement) mouvements()libelle = GetGadgetText(#saisie_libelle) mouvements() iers = GetGadgetText(#saisie_tiers_mouv) mouvements()categorie = GetGadgetText(#saisie_cat_mouv) If GetGadgetState(#saisie_valide) = 1 mouvements()validation = "X" Else mouvements()validation = "" EndIf mouvements()calc_cr_de = StrD(ValD(GetGadgetText(#saisie_credit))-ValD(GetGadgetText(#saisie_debit)),2) rech_mouv() EndIf If EventGadget() = #Button_suppr DeleteElement(mouvements()) ClearList(temp()) ForEach mouvements() AddElement(temp()) temp()compte = mouvements()compte temp()date = mouvements()date temp()credit = mouvements()credit temp()debit = mouvements()debit temp()paiement = mouvements()paiement temp()libelle = mouvements()libelle temp() iers = mouvements() iers temp()categorie = mouvements()categorie temp()validation = mouvements()validation temp()calc_cr_de = mouvements()calc_cr_de Next CopyList(temp(),mouvements()) rech_mouv() EndIf If EventGadget() = #Button_sauve E_mouvements() EndIf If EventGadget() = #Button_format2 ch$=RSet(StrD(ValD(GetGadgetText(#saisie_debit)),2),16) SetGadgetText(#saisie_debit,ch$) SetGadgetText(#saisie_credit,"") EndIf If EventGadget() = #Button_format1 ch$ = RSet(StrD(ValD(GetGadgetText(#saisie_credit)),2),16) SetGadgetText(#saisie_credit,ch$) SetGadgetText(#saisie_debit,"") EndIf If EventGadget() = #saisie_compte rech_mouv() EndIf If EventGadget() = #ListIcon_1 SelectElement(mouvements(),Val(GetGadgetItemText(#ListIcon_1,GetGadgetState(#ListIcon_1)))) SetGadgetText(#saisie_credit,mouvements()credit) SetGadgetText(#saisie_debit,mouvements()debit) SetGadgetText(#saisie_paiement,mouvements()paiement) SetGadgetText(#saisie_libelle,mouvements()libelle) SetGadgetText(#saisie_tiers_mouv,mouvements() iers) SetGadgetText(#saisie_cat_mouv,mouvements()categorie) If mouvements()validation = "X" SetGadgetState(#saisie_valide,#PB_Checkbox_Checked) Else : SetGadgetState(#saisie_valide,#PB_Checkbox_Unchecked) EndIf EndIf If EventGadget() = #Button_quit End EndIf Case #PB_Event_CloseWindow End
EndSelect ForEver
|