Code : Tout sélectionner
;********************************************************
; TUTO FAC
;********************************************************
; Author : MicrodevWeb
; MODULE : Countries_TAB
; VERSION : 1
; DESIGNED WITH : PB 5.62
; DOT IT : liste des pays
;********************************************************
DeclareModule Countries_TAB
Declare open(motherWindow)
EndDeclareModule
Module Countries_TAB
EnableExplicit
Global XML,DIALOG,ID_FORM,MOTHER_FORM
Global tb,bt_new,bt_edit,bt_delete,bt_exit,currentID = -1
;-* PRIVATE FUNCTIONS
Procedure makeXml()
Protected txt.s = "<window name = 'form' width = '800' height = '600' text = 'Liste des Pays'"+
" flags = '#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered'>"+
" <hbox expand ='item:1'>"+
" <vbox>"+
" <listicon name = 'tb' text = 'Nom' flags = '#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection '/>"+
" </vbox>"+
" <vbox expand ='no' width= '100'>"+
" <button text = 'Nouveau' name = 'bt_new'/>"+
" <button text = 'Editer' name = 'bt_edit'/>"+
" <button text = 'Supprimer' name = 'bt_delete'/>"+
" <empty/>"+
" <button text = 'Quitter' name = 'bt_exit'/>"+
" </vbox>"+
" </hbox>"+
"</window>"
XML = CatchXML(#PB_Any,@txt,StringByteLength(txt))
If Not XML
MessageRequester("XML ERROR","Cannot catch xml",#PB_MessageRequester_Error)
End
EndIf
EndProcedure
Procedure fillTable()
Protected i
Countries_DB::load()
Countries_DB::resetRecord()
While Countries_DB::nextRecord()
AddGadgetItem(tb,-1,Countries_DB::getName())
SetGadgetItemData(tb,i,Countries_DB::getId())
i + 1
Wend
EndProcedure
Procedure eventExit()
CloseWindow(ID_FORM)
DisableWindow(MOTHER_FORM,#False)
SetActiveWindow(MOTHER_FORM)
EndProcedure
Procedure eventNew()
currentID = -1
Country_FIC::open(ID_FORM)
EndProcedure
Procedure eventEdit()
If GetGadgetState(tb) <> -1
currentID = GetGadgetState(tb)
Country_FIC::open(ID_FORM,GetGadgetItemData(tb,GetGadgetState(tb)))
EndIf
EndProcedure
Procedure eventDelete()
EndProcedure
Procedure refreshTable()
If currentID <> -1 ; mode édition
SetGadgetItemText(tb,currentID,Countries_DB::getName())
Else ; mode new
AddGadgetItem(tb,-1,Countries_DB::getName())
SetGadgetItemData(tb,CountGadgetItems(tb) - 1,Countries_DB::getId())
EndIf
EndProcedure
;}
;-* PUBLIC FUNCTIONS
Procedure open(motherWindow)
MOTHER_FORM = motherWindow
makeXml()
DIALOG = CreateDialog(#PB_Any)
If OpenXMLDialog(DIALOG,XML,"form",0,0,0,0,WindowID(MOTHER_FORM))
DisableWindow(MOTHER_FORM,#True)
; lecture des id
ID_FORM = DialogWindow(DIALOG)
tb = DialogGadget(DIALOG,"tb")
bt_new = DialogGadget(DIALOG,"bt_new")
bt_edit = DialogGadget(DIALOG,"bt_edit")
bt_delete = DialogGadget(DIALOG,"bt_delete")
bt_exit = DialogGadget(DIALOG,"bt_exit")
; remplisage de la table
fillTable()
SetGadgetState(tb,0)
; mise en place des écouteurs
BindEvent(#PB_Event_CloseWindow,@eventExit(),ID_FORM)
BindGadgetEvent(bt_new,@eventNew())
BindGadgetEvent(bt_edit,@eventEdit())
BindGadgetEvent(bt_delete,@eventDelete())
BindGadgetEvent(bt_exit,@eventExit())
Else
End
EndIf
EndProcedure
;}
; mise en place du callback du module fiche
Country_FIC::setCallback(@refreshTable())
EndModule