[Résolu] Pourquoi ça ne sauvegarde pas ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

[Résolu] Pourquoi ça ne sauvegarde pas ?

Message par Micoute »

Bonsoir à tous,

je souhaite faire un logiciel pour prendre des rendez-vous, car je fréquente beaucoup le corps médical et j'aimerais savoir pourquoi, il ne sauvegarde pas alors qu'il est sensé le faire à la fermeture du programme.

Code : Tout sélectionner

;Planning Json.pb

EnableExplicit
;{- Enumérations / DataSections
Enumeration Fenetres
  #Fenetre_principale
  #Base_de_donnees
EndEnumeration

Enumeration Gadgets
  #LstIcn
  #Dte_Quand
  #Txt_Qui
  #Txt_AvecQui
  #Txt_Ville
  #Txt_Heure
  #Txt_Duree
  #Txt_Note
  #Str_Qui
  #Str_AvecQui
  #Str_Ville
  #Str_Heure
  #Str_Duree
  #Edt_Note
  #Btn_Nouveau
  #Btn_Enregistrer
  #Btn_Supprimer
  #Btn_Selectionner
  #Btn_Quitter
  #Ctn
EndEnumeration
;}
Structure DB
  Quand.s
  Qui.s
  Avec_Qui.s
  Ou.s
  Heure.s
  Duree.s
  Note.s
EndStructure

Global NewList MaBase.DB()
Global Evenement, EvenementFenetre, EvenementGadget, TypeEvenement, EvenementMenu

;Application 
#TitreApplication = "Planning par Micoute"

;Base de données
#Fichier_de_donnees = "D:\Programmation\Donnees\Planning.Json"

; Déclaration des variables
Global.s Date_Quand, Qui, AvecQui, Ville, Heure, Duree, Note
Global Texte$, Couleur, Couleur2, Couleur3, Resultat, ElemGadget

Declare Event_SizeWindow()
Declare ChargerRDV()
Declare NouveauRDV()
Declare SelectionnerRDV()
Declare SupprimerRDV()
Declare Mise_a_jour_RDV()
Declare ModifierEnregistrement()
Declare SauvegardeRDV()
Declare Ouvrir_Fenetre_principale()

Procedure Event_SizeWindow()
  ResizeGadget(#LstIcn, #PB_Ignore, #PB_Ignore, WindowWidth(#Fenetre_principale) - 20, WindowHeight(#Fenetre_principale) - 305)
  ResizeGadget(#Ctn, #PB_Ignore, GadgetY(#LstIcn) + GadgetHeight(#LstIcn), WindowWidth(#Fenetre_principale), WindowHeight(#Fenetre_principale) - 20)
  ResizeGadget(#Str_Qui, 80, 10, GadgetWidth(#Ctn) -100, 20)
  ResizeGadget(#Str_AvecQui,0, 10, GadgetWidth(#Ctn) -100, 20)
  ResizeGadget(#Str_AvecQui, 80, 45, GadgetWidth(#Ctn) - 100, 20)
  ResizeGadget(#Str_Ville, 80, 75, GadgetWidth(#Ctn) - 100, 20)
  ResizeGadget(#Edt_Note, 80, 170, GadgetWidth(#Ctn) - 100, 40)
  
  ResizeGadget(#Btn_Enregistrer, (GadgetWidth(#Ctn) * 0.3)-15, 225, 60, 20)
  ResizeGadget(#Btn_Supprimer, (GadgetWidth(#Ctn) * 0.5)-15 , 225, 60, 20)
  ResizeGadget(#Btn_Selectionner, (GadgetWidth(#Ctn) * 0.7)-15 , 225, 60, 20)
  ResizeGadget(#Btn_Quitter, GadgetWidth(#Ctn) - 60, 225, 40, 20)
EndProcedure

;Ouverture de la base de données 
Procedure ChargerRDV()  
  If ReadFile(#Base_de_donnees, #Fichier_de_donnees)
    CloseFile(#Base_de_donnees)
    
    ;Analyser les données JSON à partir d'un fichier
    LoadJSON(#Base_de_donnees, #Fichier_de_donnees)
    
    ;Extraire les éléments dans la liste spécifiée
    ExtractJSONList(JSONValue(#Base_de_donnees), MaBase())
    
    ;Affichage de la liste des Renvez-vous
    ForEach MaBase()
      With MaBase()
        AddGadgetItem(#LstIcn, -1, \Quand + #LF$ + \Qui + #LF$ + \Avec_Qui + #LF$ + \Ou + #LF$ + \Heure + #LF$ + \Duree + #LF$ + \Note)
        SetGadgetItemData(#LstIcn, CountGadgetItems(#LstIcn) - 1, ListIndex(MaBase()))
      EndWith
    Next
  EndIf
EndProcedure

;Mise en place d'un nouvel enregistrement
Procedure NouveauRDV()
  SetWindowData(#Fenetre_principale, 0) ;C'est une création
  SetGadgetState(#Dte_Quand, Date())
  SetGadgetText(#Str_Qui, "")
  SetGadgetText(#Str_AvecQui, "")
  SetGadgetText(#Str_Ville, "")
  SetGadgetText(#Str_Heure, "")
  SetGadgetText(#Str_Duree, "")
  SetGadgetText(#Edt_Note, "")
EndProcedure

Procedure SelectionnerRDV()
  Protected Element = GetGadgetState(#LstIcn)  
  
  If Element <> -1
    SelectElement(MaBase(), GetGadgetItemData(#LstIcn, Element))
    With MaBase()
      SetGadgetText(#Dte_Quand, \Quand)
      SetGadgetText(#Str_Qui, \Qui)        
      SetGadgetText(#Str_AvecQui, \Avec_Qui)
      SetGadgetText(#Str_Ville, \Ou)
      SetGadgetText(#Str_Heure, \Heure)
      SetGadgetText(#Str_Duree, \Duree)
      SetGadgetText(#Edt_Note, \Note)
    EndWith
  EndIf  
  
  ;C'est une modification de RDV
  SetWindowData(#Fenetre_principale, 1)
EndProcedure

;Suppression d'un enregistrement
Procedure SupprimerRDV()
  If MessageRequester("Information", "Etes-vous certain de vouloir supprimer ce RDV ?", #PB_MessageRequester_YesNo) = #PB_MessageRequester_Yes
    SetWindowData(#Fenetre_principale, 3) ;C'est une suppression
    Mise_a_jour_RDV()
  EndIf 
EndProcedure

;Mise à jour des rendez-vous
Procedure Mise_a_jour_RDV()
  Date_Quand = Str(GetGadgetState(#Dte_Quand))
  Qui = GetGadgetText(#Str_Qui)
  AvecQui = GetGadgetText(#Str_AvecQui)
  Ville = GetGadgetText(#Str_Ville)
  Heure = GetGadgetText(#Str_Heure)
  Duree = GetGadgetText(#Str_Duree)
  Note = GetGadgetText(#Edt_Note)
  
  Select GetWindowData(#Fenetre_principale)
    Case 0 ;Création d'un RDV
      AddElement(MaBase())
      With MaBase()
        \Quand = Date_Quand
        \Qui = qui
        \Avec_Qui = AvecQui
        \Ou = Ville
        \Heure = Heure
        \Duree = Duree
        \Note = Note
        AddGadgetItem(#LstIcn, ListIndex(MaBase()), \Quand + #LF$ + \Qui + #LF$ + \Avec_Qui + #LF$ + \Ou + #LF$ + \Heure + #LF$ + \Duree + #LF$ + \Note)
      EndWith
      
    Case 1 ;Modification d'un contact
      With MaBase()
        \Quand = Date_Quand
        \Qui = qui
        \Avec_Qui = AvecQui
        \Ou = Ville
        \Heure = Heure
        \Duree = Duree
        \Note = Note
        AddGadgetItem(#LstIcn, ListIndex(MaBase()), \Quand + #LF$ + \Qui + #LF$ + \Avec_Qui + #LF$ + \Ou + #LF$ + \Heure + #LF$ + \Duree + #LF$ + \Note)
      EndWith
      NouveauRDV()
      
    Case 3 ;Suppression d'un RDV
      RemoveGadgetItem(#LstIcn, ListIndex(MaBase()))
      DeleteElement(MaBase())
      
      ;Mise à jour des index ListIcon <-> MaBase()
      ForEach MaBase()
        SetGadgetItemData(#LstIcn, ListIndex(MaBase()), ListIndex(MaBase()))
      Next
      
  EndSelect  
EndProcedure

;Sauvegarde des rendez-vous à la fermeture de l'application
Procedure SauvegardeRDV()
  ;Création d'un fichier JSON
  CreateJSON(#Base_de_donnees)
  
  ;Insertion de la liste chaînée "MaBase" dans le fichier JSON
  InsertJSONList(JSONValue(#Base_de_donnees), MaBase())
  
  ;Sauvegarde du fichier
  SaveJSON(#Base_de_donnees, #Fichier_de_donnees)
EndProcedure  

Procedure Ouvrir_Fenetre_principale()
  If OpenWindow(#Fenetre_principale, 0, 0, 500, 560, #TitreApplication + " © 31 mars 2016", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
    ListIconGadget(#LstIcn, 10, 40, 475, 255, "Quand", 80, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
    AddGadgetColumn(#LstIcn, 1, "Qui", 100)
    AddGadgetColumn(#LstIcn, 2, "Avec qui", 100)
    AddGadgetColumn(#LstIcn, 3, "Où", 100)
    AddGadgetColumn(#LstIcn, 4, "Heure", 45)
    AddGadgetColumn(#LstIcn, 5, "Durée", 45)
    AddGadgetColumn(#LstIcn, 6, "Note", 350)
    DateGadget(#Dte_Quand, 10, 10, 80, 20, "%dd/%mm/%yyyy", Date())
    ContainerGadget(#Ctn, 10, 300, 480, 245)
    TextGadget(#Txt_Qui, 0, 10, 20, 20, "Qui:", #PB_Text_Right)
    TextGadget(#Txt_AvecQui, 0, 50, 50, 20, "Avec qui:", #PB_Text_Right)
    TextGadget(#Txt_Ville, 0, 80, 75, 20, "Endroit ou Ville", #PB_Text_Right)
    TextGadget(#Txt_Heure, 0, 115, 35, 20, "Heure:", #PB_Text_Right)
    TextGadget(#Txt_Duree, 0, 145, 35, 20, "Durée:", #PB_Text_Right)
    TextGadget(#Txt_Note, 0, 185, 30, 20, "Note:", #PB_Text_Right)
    StringGadget(#Str_Qui, 80, 10, 395, 20, "")
    StringGadget(#Str_AvecQui, 80, 45, 395, 20, "")
    StringGadget(#Str_Ville, 80, 75, 396, 20, "")
    StringGadget(#Str_Heure, 80, 110, 35, 20, "")
    StringGadget(#Str_Duree, 80, 140, 35, 20, "")
    EditorGadget(#Edt_Note, 80, 170, GadgetWidth(#Ctn) - 85, 40)  ;395, 40)
    ButtonGadget(#Btn_Nouveau, 0, 225, 50, 20, "Nouveau")
    ButtonGadget(#Btn_Enregistrer, 100, 225, 60, 20, "Enregistrer")
    ButtonGadget(#Btn_Supprimer, 220, 225, 55, 20, "Supprimer")
    ButtonGadget(#Btn_Selectionner, 321, 225, 63, 20, "Sélectionner")
    ButtonGadget(#Btn_Quitter, 435, 225, 40, 20, "Quitter")
    CloseGadgetList()
    
    Couleur = $EAFAEA
    SetWindowColor(#Fenetre_principale, Couleur)
    
    SetGadgetColor(#Txt_Qui, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_AvecQui, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Ville, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Heure, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Duree, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Note, #PB_Gadget_BackColor, Couleur)
    
    couleur2 = $EAEAFA
    SetGadgetColor(#Str_Qui, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_AvecQui, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_Ville, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_Heure, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_Duree, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Edt_Note, #PB_Gadget_BackColor, couleur2)
    
    couleur3 = $FAEAEA
    SetGadgetColor(#LstIcn, #PB_Gadget_BackColor, couleur3)
    
    BindEvent( #PB_Event_SizeWindow, @Event_SizeWindow() )
  EndIf
EndProcedure

;Lancer la procédure principale  
Ouvrir_Fenetre_principale()

;Ouverture de la base de données 
ChargerRDV()

;{- Boucle événementielle
Repeat
  Evenement = WaitWindowEvent()
  Select Evenement
      ; ///////////////////
    Case #PB_Event_Gadget
      EvenementGadget = EventGadget()
      TypeEvenement = EventType()
      If EvenementGadget = #LstIcn
        ;        VoirEnregistrement()
      ElseIf EvenementGadget = #Btn_Nouveau ;Nouveau Rdv
        NouveauRDV()
      ElseIf EvenementGadget = #Btn_Enregistrer ;Ajout ou modification d'un Rdv
        Mise_a_jour_RDV()          
      ElseIf EvenementGadget = #Btn_Supprimer ; Suppression d'un Rdv
        SupprimerRDV()
      ElseIf EvenementGadget = #Btn_Selectionner
        SelectionnerRDV()
      ElseIf EvenementGadget = #Btn_Quitter
        CloseWindow(#Fenetre_principale)
        Break
      EndIf
      ; ////////////////////////
    Case #PB_Event_CloseWindow
      EvenementFenetre = EventWindow()
      If EvenementFenetre = #Fenetre_principale
        CloseWindow(#Fenetre_principale)
        SauvegardeRDV()
        Break
      EndIf
  EndSelect
ForEver
;}
Dernière modification par Micoute le jeu. 31/mars/2016 19:11, modifié 1 fois.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: Pourquoi ça ne sauvegarde pas ?

Message par Jacobus »

Essaye comme ça
- j'ai modifié les Enumerations
- Mis ton nom de fichier en variable plutôt qu'en constante
- Replacer une sauvegarde quand tu fermes ta fenêtre par le bouton
- Récupéré la date de "quand" avec un getagdgettext()
- Tu devrais remplacer ton AddGadgetItem() dans tes modifications par un SetGadgetItemText()
ça doit être à peu près tout...

Code : Tout sélectionner

;Planning Json.pb

EnableExplicit
;{- Enumérations / DataSections
Enumeration Fenetres
  #Fenetre_principale
  ;#Base_de_donnees
EndEnumeration
Enumeration
  #Base_de_donnees
EndEnumeration


Enumeration Gadgets
  #LstIcn
  #Dte_Quand
  #Txt_Qui
  #Txt_AvecQui
  #Txt_Ville
  #Txt_Heure
  #Txt_Duree
  #Txt_Note
  #Str_Qui
  #Str_AvecQui
  #Str_Ville
  #Str_Heure
  #Str_Duree
  #Edt_Note
  #Btn_Nouveau
  #Btn_Enregistrer
  #Btn_Supprimer
  #Btn_Selectionner
  #Btn_Quitter
  #Ctn
EndEnumeration
;}
Structure DB
  Quand.s
  Qui.s
  Avec_Qui.s
  Ou.s
  Heure.s
  Duree.s
  Note.s
EndStructure

Global NewList MaBase.DB()
Global Evenement, EvenementFenetre, EvenementGadget, TypeEvenement, EvenementMenu, Fichier_de_donnees$

;Application
#TitreApplication = "Planning par Micoute"

;Base de données
Fichier_de_donnees$ = "Planning.Json"

; Déclaration des variables
Global.s Date_Quand, Qui, AvecQui, Ville, Heure, Duree, Note
Global Texte$, Couleur, Couleur2, Couleur3, Resultat, ElemGadget

Declare Event_SizeWindow()
Declare ChargerRDV()
Declare NouveauRDV()
Declare SelectionnerRDV()
Declare SupprimerRDV()
Declare Mise_a_jour_RDV()
Declare ModifierEnregistrement()
Declare SauvegardeRDV()
Declare Ouvrir_Fenetre_principale()

Procedure Event_SizeWindow()
  ResizeGadget(#LstIcn, #PB_Ignore, #PB_Ignore, WindowWidth(#Fenetre_principale) - 20, WindowHeight(#Fenetre_principale) - 305)
  ResizeGadget(#Ctn, #PB_Ignore, GadgetY(#LstIcn) + GadgetHeight(#LstIcn), WindowWidth(#Fenetre_principale), WindowHeight(#Fenetre_principale) - 20)
  ResizeGadget(#Str_Qui, 80, 10, GadgetWidth(#Ctn) -100, 20)
  ResizeGadget(#Str_AvecQui,0, 10, GadgetWidth(#Ctn) -100, 20)
  ResizeGadget(#Str_AvecQui, 80, 45, GadgetWidth(#Ctn) - 100, 20)
  ResizeGadget(#Str_Ville, 80, 75, GadgetWidth(#Ctn) - 100, 20)
  ResizeGadget(#Edt_Note, 80, 170, GadgetWidth(#Ctn) - 100, 40)
 
  ResizeGadget(#Btn_Enregistrer, (GadgetWidth(#Ctn) * 0.3)-15, 225, 60, 20)
  ResizeGadget(#Btn_Supprimer, (GadgetWidth(#Ctn) * 0.5)-15 , 225, 60, 20)
  ResizeGadget(#Btn_Selectionner, (GadgetWidth(#Ctn) * 0.7)-15 , 225, 60, 20)
  ResizeGadget(#Btn_Quitter, GadgetWidth(#Ctn) - 60, 225, 40, 20)
EndProcedure

;Ouverture de la base de données
Procedure ChargerRDV() 
  If ReadFile(#Base_de_donnees, Fichier_de_donnees$)
    CloseFile(#Base_de_donnees)
   
    ;Analyser les données JSON à partir d'un fichier
    LoadJSON(#Base_de_donnees, Fichier_de_donnees$)
   
    ;Extraire les éléments dans la liste spécifiée
    ExtractJSONList(JSONValue(#Base_de_donnees), MaBase())
   
    ;Affichage de la liste des Renvez-vous
    ForEach MaBase()
      With MaBase()
        AddGadgetItem(#LstIcn, -1, \Quand + #LF$ + \Qui + #LF$ + \Avec_Qui + #LF$ + \Ou + #LF$ + \Heure + #LF$ + \Duree + #LF$ + \Note)
        SetGadgetItemData(#LstIcn, CountGadgetItems(#LstIcn) - 1, ListIndex(MaBase()))
      EndWith
    Next
  EndIf
EndProcedure

;Mise en place d'un nouvel enregistrement
Procedure NouveauRDV()
  SetWindowData(#Fenetre_principale, 0) ;C'est une création
  SetGadgetState(#Dte_Quand, Date())
  SetGadgetText(#Str_Qui, "")
  SetGadgetText(#Str_AvecQui, "")
  SetGadgetText(#Str_Ville, "")
  SetGadgetText(#Str_Heure, "")
  SetGadgetText(#Str_Duree, "")
  SetGadgetText(#Edt_Note, "")
EndProcedure

Procedure SelectionnerRDV()
  Protected Element = GetGadgetState(#LstIcn) 
 
  If Element <> -1
    SelectElement(MaBase(), GetGadgetItemData(#LstIcn, Element))
    With MaBase()
      SetGadgetText(#Dte_Quand, \Quand)
      SetGadgetText(#Str_Qui, \Qui)       
      SetGadgetText(#Str_AvecQui, \Avec_Qui)
      SetGadgetText(#Str_Ville, \Ou)
      SetGadgetText(#Str_Heure, \Heure)
      SetGadgetText(#Str_Duree, \Duree)
      SetGadgetText(#Edt_Note, \Note)
    EndWith
  EndIf 
 
  ;C'est une modification de RDV
  SetWindowData(#Fenetre_principale, 1)
EndProcedure

;Suppression d'un enregistrement
Procedure SupprimerRDV()
  If MessageRequester("Information", "Etes-vous certain de vouloir supprimer ce RDV ?", #PB_MessageRequester_YesNo) = #PB_MessageRequester_Yes
    SetWindowData(#Fenetre_principale, 3) ;C'est une suppression
    Mise_a_jour_RDV()
  EndIf
EndProcedure

;Mise à jour des rendez-vous
Procedure Mise_a_jour_RDV()
  ;Date_Quand = Str(GetGadgetState(#Dte_Quand))
  Date_Quand = GetGadgetText(#Dte_Quand)
  Qui = GetGadgetText(#Str_Qui)
  AvecQui = GetGadgetText(#Str_AvecQui)
  Ville = GetGadgetText(#Str_Ville)
  Heure = GetGadgetText(#Str_Heure)
  Duree = GetGadgetText(#Str_Duree)
  Note = GetGadgetText(#Edt_Note)
 
  Select GetWindowData(#Fenetre_principale)
    Case 0 ;Création d'un RDV
      AddElement(MaBase())
      With MaBase()
        \Quand = Date_Quand
        \Qui = qui
        \Avec_Qui = AvecQui
        \Ou = Ville
        \Heure = Heure
        \Duree = Duree
        \Note = Note
        AddGadgetItem(#LstIcn, ListIndex(MaBase()), \Quand + #LF$ + \Qui + #LF$ + \Avec_Qui + #LF$ + \Ou + #LF$ + \Heure + #LF$ + \Duree + #LF$ + \Note)
      EndWith
     
    Case 1 ;Modification d'un contact
      With MaBase()
        \Quand = Date_Quand
        \Qui = qui
        \Avec_Qui = AvecQui
        \Ou = Ville
        \Heure = Heure
        \Duree = Duree
        \Note = Note
        AddGadgetItem(#LstIcn, ListIndex(MaBase()), \Quand + #LF$ + \Qui + #LF$ + \Avec_Qui + #LF$ + \Ou + #LF$ + \Heure + #LF$ + \Duree + #LF$ + \Note)
      EndWith
      NouveauRDV()
     
    Case 3 ;Suppression d'un RDV
      RemoveGadgetItem(#LstIcn, ListIndex(MaBase()))
      DeleteElement(MaBase())
     
      ;Mise à jour des index ListIcon <-> MaBase()
      ForEach MaBase()
        SetGadgetItemData(#LstIcn, ListIndex(MaBase()), ListIndex(MaBase()))
      Next
     
  EndSelect 
EndProcedure

;Sauvegarde des rendez-vous à la fermeture de l'application
Procedure SauvegardeRDV()
  ;Création d'un fichier JSON
  CreateJSON(#Base_de_donnees)
 
  ;Insertion de la liste chaînée "MaBase" dans le fichier JSON
  InsertJSONList(JSONValue(#Base_de_donnees), MaBase())
 
  ;Sauvegarde du fichier
  SaveJSON(#Base_de_donnees, Fichier_de_donnees$)
EndProcedure 

Procedure Ouvrir_Fenetre_principale()
  If OpenWindow(#Fenetre_principale, 0, 0, 500, 560, #TitreApplication + " © 31 mars 2016", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
    ListIconGadget(#LstIcn, 10, 40, 475, 255, "Quand", 80, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
    AddGadgetColumn(#LstIcn, 1, "Qui", 100)
    AddGadgetColumn(#LstIcn, 2, "Avec qui", 100)
    AddGadgetColumn(#LstIcn, 3, "Où", 100)
    AddGadgetColumn(#LstIcn, 4, "Heure", 45)
    AddGadgetColumn(#LstIcn, 5, "Durée", 45)
    AddGadgetColumn(#LstIcn, 6, "Note", 350)
    DateGadget(#Dte_Quand, 10, 10, 80, 20, "%dd/%mm/%yyyy", Date())
    ContainerGadget(#Ctn, 10, 300, 480, 245)
    TextGadget(#Txt_Qui, 0, 10, 20, 20, "Qui:", #PB_Text_Right)
    TextGadget(#Txt_AvecQui, 0, 50, 50, 20, "Avec qui:", #PB_Text_Right)
    TextGadget(#Txt_Ville, 0, 80, 75, 20, "Endroit ou Ville", #PB_Text_Right)
    TextGadget(#Txt_Heure, 0, 115, 35, 20, "Heure:", #PB_Text_Right)
    TextGadget(#Txt_Duree, 0, 145, 35, 20, "Durée:", #PB_Text_Right)
    TextGadget(#Txt_Note, 0, 185, 30, 20, "Note:", #PB_Text_Right)
    StringGadget(#Str_Qui, 80, 10, 395, 20, "")
    StringGadget(#Str_AvecQui, 80, 45, 395, 20, "")
    StringGadget(#Str_Ville, 80, 75, 396, 20, "")
    StringGadget(#Str_Heure, 80, 110, 35, 20, "")
    StringGadget(#Str_Duree, 80, 140, 35, 20, "")
    EditorGadget(#Edt_Note, 80, 170, GadgetWidth(#Ctn) - 85, 40)  ;395, 40)
    ButtonGadget(#Btn_Nouveau, 0, 225, 50, 20, "Nouveau")
    ButtonGadget(#Btn_Enregistrer, 100, 225, 60, 20, "Enregistrer")
    ButtonGadget(#Btn_Supprimer, 220, 225, 55, 20, "Supprimer")
    ButtonGadget(#Btn_Selectionner, 321, 225, 63, 20, "Sélectionner")
    ButtonGadget(#Btn_Quitter, 435, 225, 40, 20, "Quitter")
    CloseGadgetList()
   
    Couleur = $EAFAEA
    SetWindowColor(#Fenetre_principale, Couleur)
   
    SetGadgetColor(#Txt_Qui, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_AvecQui, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Ville, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Heure, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Duree, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Note, #PB_Gadget_BackColor, Couleur)
   
    couleur2 = $EAEAFA
    SetGadgetColor(#Str_Qui, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_AvecQui, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_Ville, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_Heure, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_Duree, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Edt_Note, #PB_Gadget_BackColor, couleur2)
   
    couleur3 = $FAEAEA
    SetGadgetColor(#LstIcn, #PB_Gadget_BackColor, couleur3)
   
    BindEvent( #PB_Event_SizeWindow, @Event_SizeWindow() )
  EndIf
EndProcedure

;Lancer la procédure principale 
Ouvrir_Fenetre_principale()

;Ouverture de la base de données
ChargerRDV()

;{- Boucle événementielle
Repeat
  Evenement = WaitWindowEvent()
  Select Evenement
      ; ///////////////////
    Case #PB_Event_Gadget
      EvenementGadget = EventGadget()
      TypeEvenement = EventType()
      If EvenementGadget = #LstIcn
        ;        VoirEnregistrement()
      ElseIf EvenementGadget = #Btn_Nouveau ;Nouveau Rdv
        NouveauRDV()
      ElseIf EvenementGadget = #Btn_Enregistrer ;Ajout ou modification d'un Rdv
        Mise_a_jour_RDV()         
      ElseIf EvenementGadget = #Btn_Supprimer ; Suppression d'un Rdv
        SupprimerRDV()
      ElseIf EvenementGadget = #Btn_Selectionner
        SelectionnerRDV()
      ElseIf EvenementGadget = #Btn_Quitter
        SauvegardeRDV()
        CloseWindow(#Fenetre_principale)
        Break
      EndIf
      ; ////////////////////////
    Case #PB_Event_CloseWindow
      EvenementFenetre = EventWindow()
      If EvenementFenetre = #Fenetre_principale
        CloseWindow(#Fenetre_principale)
        SauvegardeRDV()
        Break
      EndIf
  EndSelect
ForEver
;}
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Pourquoi ça ne sauvegarde pas ?

Message par Micoute »

Merci beaucoup Jacobus pour ton aide et tes conseils judicieux.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre