Non ca ne fonctionne pas. Voici mon code de test.
Code : Tout sélectionner
Global glDBSQLite.l
Global glListviewItemSelected.l = -1
Global glImageMemory.l
;- Window Constants
Enumeration 1
#Window_Form3
EndEnumeration
#WindowIndex=#PB_Compiler_EnumerationValue
;- Gadget Constants
Enumeration 1
;Window_Form3
#TextHeaderMC
#TextNumMC
#StringNumMC
#TextCategorieMC
#ComboCategorieMC
#TextDateMC
#String_DateMC
#TextHeureMC
#StringHeureMC
#TextRequerantMC
#StringRequerantMC
#TextLieuMC
#StringLieuMC
#TextSujetMC
#StringSujetMC
#EditeurMC
#ListMC
#BtnMC_Enregistrer
#BtnMC_Ouvrir
#BtnMC_Supprimer
#BtnMC_Fermer
#ListingMC
EndEnumeration
#GadgetIndex=#PB_Compiler_EnumerationValue
Procedure.i Window_Form3()
If OpenWindow(#Window_Form3,302,164,790,560,"Main-courante évènementielle expresse :",#PB_Window_ScreenCentered|#PB_Window_Invisible)
TextGadget(#TextHeaderMC,0,0,790,20," Gestion main-courante évènementielle expresse")
SetGadgetFont(#TextHeaderMC, Font0)
SetGadgetColor(#TextHeaderMC, #PB_Gadget_BackColor, RGB(42, 85, 134))
SetGadgetColor(#TextHeaderMC, #PB_Gadget_FrontColor, RGB(223, 233, 245))
TextGadget(#TextNumMC,10,32,60,15,"Numéro")
StringGadget(#StringNumMC,70,30,100,20,"", #PB_String_ReadOnly)
GadgetToolTip(#StringNumMC,"Numérotation automatique")
TextGadget(#TextCategorieMC,180,32,55,15,"Catégorie :")
ComboBoxGadget(#ComboCategorieMC,235,30,200,20,#PB_ComboBox_UpperCase);{
AddGadgetItem(#ComboCategorieMC, -1, "FEU")
AddGadgetItem(#ComboCategorieMC, -1, "SECOUR A VICTIME(S)")
AddGadgetItem(#ComboCategorieMC, -1, "FUITE D'EAU")
AddGadgetItem(#ComboCategorieMC, -1, "VERIFICATIONS")
AddGadgetItem(#ComboCategorieMC, -1, "ASC OU MC")
AddGadgetItem(#ComboCategorieMC, -1, "DEGRADATION")
AddGadgetItem(#ComboCategorieMC, -1, "INCIDENT TECHNIQUE")
AddGadgetItem(#ComboCategorieMC, -1, "AGRESSION VERBALE")
AddGadgetItem(#ComboCategorieMC, -1, "LITIGE")
AddGadgetItem(#ComboCategorieMC, -1, "EVACUATION")
AddGadgetItem(#ComboCategorieMC, -1, "VOL AVEC PLAINTE")
AddGadgetItem(#ComboCategorieMC, -1, "VOL SANS PLAINTE")
AddGadgetItem(#ComboCategorieMC, -1, "BAGARRE")
AddGadgetItem(#ComboCategorieMC, -1, "PRISE DE SERVICE")
AddGadgetItem(#ComboCategorieMC, -1, "FIN DE SERVICE")
AddGadgetItem(#ComboCategorieMC, -1, "RONDE DE SECURITE")
AddGadgetItem(#ComboCategorieMC, -1, "PERCEPTION DE CLES")
AddGadgetItem(#ComboCategorieMC, -1, "REINTEGRATION DE CLES")
AddGadgetItem(#ComboCategorieMC, -1, "DIVERS")
GadgetToolTip(#ComboCategorieMC,"Sélectionnez la catégorie")
;}
TextGadget(#TextDateMC,450,32,30,15,"Date")
Date$ = FormatDate("%dd / %mm / %yyyy", Date())
StringGadget(#String_DateMC, 480, 30, 120, 20, Date$, #PB_String_ReadOnly)
GadgetToolTip(#String_DateMC,"Sélectionnez la date de la MC")
TextGadget(#TextHeureMC,620,32,35,15,"Heure")
StringGadget(#StringHeureMC,655,30,50,20,FormatDate("%hh h %ii",Date()), #PB_String_ReadOnly)
GadgetToolTip(#StringHeureMC,"Heure de réquisition")
TextGadget(#TextRequerantMC,10,57,60,15,"Requérant")
StringGadget(#StringRequerantMC,70,55,210,20,"")
GadgetToolTip(#StringRequerantMC,"Nom et prénom si disponible")
TextGadget(#TextLieuMC,290,57,50,15,"Lieu")
StringGadget(#StringLieuMC,350,55,400,20,"")
GadgetToolTip(#StringLieuMC,"Adresse de l'intervention / des faits")
TextGadget(#TextSujetMC,10,82,50,15,"Sujet")
StringGadget(#StringSujetMC,70,80,400,20,"")
GadgetToolTip(#StringSujetMC,"Indiquez succintement le sujet de cette main-courante")
EditorGadget(#EditeurMC, 10, 105, 770, 200, #PB_Editor_WordWrap)
SetGadgetFont(#EditeurMC, Font1)
SetGadgetColor(#EditeurMC, #PB_Gadget_BackColor, RGB(253, 251, 212))
SetGadgetColor(#EditeurMC, #PB_Gadget_FrontColor, RGB(29, 29, 118))
GadgetToolTip(#EditeurMC,"Saisi du Compte-rendu des évènements")
;Dans ce listing on y met que les infos de fichier, pas la MC elle même.
ListIconGadget(#ListMC,10,310,770,200,"Numéro",120, #PB_ListIcon_FullRowSelect)
AddGadgetColumn(#ListMC, 1, "Date", 100)
AddGadgetColumn(#ListMC, 2, "Heure", 70)
AddGadgetColumn(#ListMC, 3, "Catégorie", 150)
AddGadgetColumn(#ListMC, 4, "Sujet", 300)
AddGadgetColumn(#ListMC, 5, "Requérant", 200)
AddGadgetColumn(#ListMC, 6, "Lieu", 250)
AddGadgetColumn(#ListMC, 7, "Compte rendu", 500)
ButtonGadget(#BtnMC_Enregistrer, 10, 520, 80, 25, "Enregistrer")
GadgetToolTip(#BtnMC_Enregistrer,"Enregistrer la main courante")
ButtonGadget(#BtnMC_Ouvrir, 100, 520, 80, 25, "Ouvrir")
GadgetToolTip(#BtnMC_Ouvrir,"Ouvrir la main courante sélectionnée")
ButtonGadget(#BtnMC_Fermer, 700, 520, 80, 25, "Fermer")
GadgetToolTip(#BtnMC_Fermer,"Quitter Main-Courante Express")
HideWindow(#Window_Form3,0)
ProcedureReturn WindowID(#Window_Form3)
EndIf
EndProcedure
;****Fin procédures impression****
Procedure DB_Init()
Protected plFile.l
Protected psSQLRequest.s
UseSQLiteDatabase()
If FileSize(#PB_Compiler_FilePath+"MainCourante.sqlite") < 0
plFile = CreateFile(#PB_Any, #PB_Compiler_FilePath+"MainCourante.sqlite")
If plFile
CloseFile(plFile)
EndIf
EndIf
glDBSQLite = OpenDatabase(#PB_Any, "MainCourante.sqlite", "", "", #PB_Database_SQLite)
If glDBSQLite = 0
MessageRequester("Main-Courante évènementielle", DatabaseError())
End
ElseIf plFile
psSQLRequest = "CREATE TABLE IF NOT EXISTS mc ("
psSQLRequest + "id_mc INTEGER PRIMARY KEY AUTOINCREMENT Not NULL, "
psSQLRequest + "mcnum TEXT Not NULL," ;Numéro de main-courante
psSQLRequest + "date TEXT Not NULL," ;Date
psSQLRequest + "heure TEXT Not NULL," ;heure
psSQLRequest + "categorie TEXT Not NULL,";Catégories
psSQLRequest + "sujet TEXT Not NULL,";Sujet
psSQLRequest + "requerant TEXT Not NULL,";Requérant
psSQLRequest + "lieu TEXT Not NULL,";lieu
psSQLRequest + "compterendu TEXT Not NULL";Compte rendue de la main-courante
psSQLRequest + ")"
; Debug psSQLRequest
If DatabaseUpdate(glDBSQLite, psSQLRequest) = 0
MessageRequester("Main-Courante évènementielle - DB_Init()", DatabaseError())
EndIf
EndIf
If DatabaseQuery(glDBSQLite, "SELECT * FROM mc") <> 0
While NextDatabaseRow(glDBSQLite)
AddGadgetItem(#ListMC, CountGadgetItems(#ListMC), GetDatabaseString(glDBSQLite, 1) +Chr(10)+ GetDatabaseString(glDBSQLite, 2) +Chr(10)+ GetDatabaseString(glDBSQLite, 3) +Chr(10)+ GetDatabaseString(glDBSQLite, 4) +Chr(10)+ GetDatabaseString(glDBSQLite, 5) +Chr(10)+ GetDatabaseString(glDBSQLite, 6) +Chr(10)+ GetDatabaseString(glDBSQLite, 7) +Chr(10)+ GetDatabaseString(glDBSQLite, 8))
SetGadgetItemData(#ListMC, CountGadgetItems(#ListMC)-1, GetDatabaseLong(glDBSQLite, 0))
Wend
FinishDatabaseQuery(glDBSQLite)
EndIf
EndProcedure
Procedure.s SqliteString(Buffer.s)
Buffer=Chr(34)+ReplaceString(Buffer, Chr(34), Chr(34)+Chr(34)) + Chr(34)
ProcedureReturn Buffer
EndProcedure
Procedure DB_InsertMC()
Protected psSQLRequest.s
psSQLRequest = "INSERT INTO mc (mcnum, date, heure, categorie, sujet, requerant, lieu, compterendu)"
psSQLRequest + "VALUES ("
psSQLRequest + SqliteString(GetGadgetText(#StringNumMC))+","
psSQLRequest + SqliteString(GetGadgetText(#String_DateMC))+","
psSQLRequest + SqliteString(GetGadgetText(#StringHeureMC))+","
psSQLRequest + SqliteString(GetGadgetText(#ComboCategorieMC))+","
psSQLRequest + SqliteString(GetGadgetText(#StringSujetMC))+","
psSQLRequest + SqliteString(GetGadgetText(#StringRequerantMC))+","
psSQLRequest + SqliteString(GetGadgetText(#StringLieuMC))+"',"
psSQLRequest + SqliteString(GetGadgetText(#EditeurMC))+"'"
psSQLRequest + ")"
If DatabaseUpdate(glDBSQLite, psSQLRequest) = 0
Debug psSQLRequest
MessageRequester("Main-Courante évènementielle - DB_InsertMC()", DatabaseError())
EndIf
ClearGadgetItems(#ListMC)
If DatabaseQuery(glDBSQLite, "SELECT * FROM mc") <> 0
While NextDatabaseRow(glDBSQLite)
AddGadgetItem(#ListMC, CountGadgetItems(#ListMC), GetDatabaseString(glDBSQLite, 1) +Chr(10)+ GetDatabaseString(glDBSQLite, 2) +Chr(10)+ GetDatabaseString(glDBSQLite, 3) +Chr(10)+ GetDatabaseString(glDBSQLite, 4) +Chr(10)+ GetDatabaseString(glDBSQLite, 5) +Chr(10)+ GetDatabaseString(glDBSQLite, 6) +Chr(10)+ GetDatabaseString(glDBSQLite, 7) +Chr(10)+ GetDatabaseString(glDBSQLite, 8))
SetGadgetItemData(#ListMC, CountGadgetItems(#ListMC)-1, GetDatabaseLong(glDBSQLite, 0))
Wend
FinishDatabaseQuery(glDBSQLite)
EndIf
;actualisation automatique du numéro
SetGadgetText(#StringNumMC,"MC"+FormatDate("%yyyy", Date())+"_"+Str(CountGadgetItems(#ListMC) + 1))
EndProcedure
;- Main Loop
If Window_Form3()
DB_Init()
;actualisation automatique du numéro
SetGadgetText(#StringNumMC,"MC"+FormatDate("%yyyy", Date())+"_"+Str(CountGadgetItems(#ListMC) + 1))
Define quitForm1=0
Repeat
EventID =WaitWindowEvent()
MenuID =EventMenu()
GadgetID =EventGadget()
WindowID =EventWindow()
Select EventID
Case #PB_Event_CloseWindow
If WindowID=#Window_Form3
quitForm1=1
EndIf
Case #PB_Event_Gadget
Select GadgetID
Case #BtnMC_Fermer
End
Case #BtnMC_Enregistrer
A$ = GetGadgetText(#StringNumMC)
B$ = GetGadgetText(#String_DateMC)
C$ = GetGadgetText(#StringHeureMC)
D$ = GetGadgetText(#ComboCategorieMC)
E$ = GetGadgetText(#StringSujetMC)
F$ = GetGadgetText(#StringRequerantMC)
G$ = GetGadgetText(#StringLieuMC)
H$ = GetGadgetText(#EditeurMC)
I$ = ""
If A$ = I$
MessageRequester("Attention", "Certains champ du formulaire de main-courante sont vide. Compléter le formulaire pour pouvoir enregistrer une nouvelle main-courante.", #PB_MessageRequester_Ok)
ElseIf B$ = I$
MessageRequester("Attention", "Certains champ du formulaire de main-courante sont vide. Compléter le formulaire pour pouvoir enregistrer une nouvelle main-courante.", #PB_MessageRequester_Ok)
ElseIf C$ = I$
MessageRequester("Attention", "Certains champ du formulaire de main-courante sont vide. Compléter le formulaire pour pouvoir enregistrer une nouvelle main-courante.", #PB_MessageRequester_Ok)
ElseIf D$ = I$
MessageRequester("Attention", "Certains champ du formulaire de main-courante sont vide. Compléter le formulaire pour pouvoir enregistrer une nouvelle main-courante.", #PB_MessageRequester_Ok)
ElseIf E$ = I$
MessageRequester("Attention", "Certains champ du formulaire de main-courante sont vide. Compléter le formulaire pour pouvoir enregistrer une nouvelle main-courante.", #PB_MessageRequester_Ok)
ElseIf F$ = I$
MessageRequester("Attention", "Certains champ du formulaire de main-courante sont vide. Compléter le formulaire pour pouvoir enregistrer une nouvelle main-courante.", #PB_MessageRequester_Ok)
ElseIf G$ = I$
MessageRequester("Attention", "Certains champ du formulaire de main-courante sont vide. Compléter le formulaire pour pouvoir enregistrer une nouvelle main-courante.", #PB_MessageRequester_Ok)
ElseIf H$ = I$
MessageRequester("Attention", "Certains champ du formulaire de main-courante sont vide. Compléter le formulaire pour pouvoir enregistrer une nouvelle main-courante.", #PB_MessageRequester_Ok)
Else
Resultat = MessageRequester("MAIN-COURANTE n° "+GetGadgetText(#StringNumMC),"Vous allez enregistrer cette main-courante que vous ne pourrez modifier."+Chr(13)+"S'il vous reste des informations à vérifier ou des éléments à corriger, faites le avant."+Chr(13)+"Enregistrer maintenant ?", #PB_MessageRequester_YesNo)
If Resultat = 6
DB_InsertMC()
; on remet les champs à zéro et on actualise le compteur après enregistrement
ClearGadgetItems(#EditeurMC)
SetGadgetText(#StringNumMC,"MC"+FormatDate("%yyyy", Date())+"_"+Str(CountGadgetItems(#ListMC) + 1))
SetGadgetText(#ComboCategorieMC,"")
SetGadgetText(#StringHeureMC,FormatDate("%hh h %ii",Date()))
SetGadgetText(#StringRequerantMC,"")
SetGadgetText(#StringLieuMC,"")
SetGadgetText(#StringSujetMC,"")
ElseIf Resultat = 7
;annulé
EndIf
EndIf
EndSelect
EndSelect
Until quitForm1
CloseWindow(#Window_Form3)
EndIf
End