Une Table liée directement à une Table Sql, avec possibilité de tri, recherche ci-dessous le code qu'il faudra pour l'exemple ci-dessus
et édition directe dans la table
Code : Tout sélectionner
UseSQLiteDatabase()
XIncludeFile "DataTable.pbi"
Global DataFile$=GetCurrentDirectory()+"DB\Teste.sqlite"
Global Event
;
Procedure OpenMainWindows()
Enumeration TbCivilite
#Id
#Pays
#Localite
#CodePostal
EndEnumeration
OpenWindow(0,0,0,800,600,"Teste",#PB_Window_SystemMenu)
Table::CreateTable(0,50,50,450,450,"Teste",DataFile$,"TbLocalite","","")
Table::AddColumn(0,#Id,"ID","id",150,#True)
Table::AddColumn(0,#Pays,"Pays","idPays",150)
Table::SetEditableColumn(0,#Pays,#True,0,0)
Table::AddColumn(0,#Localite,"Localite","localite",150)
Table::SetEditableColumn(0,#Localite,#True,Table::#TypeString,0)
Table::SetRequired(0,#Localite,#True,#True)
Table::AddColumn(0,#CodePostal,"Code postal","code_postal",150)
Table::SetEditableColumn(0,#CodePostal,#True,Table::#TypeString,0)
Table::AddLinkColumn(0,#Pays,"TbPays","id","pays")
Table::SetFlagColumn(0,#Localite,#True,#True,#True)
Table::SetFlagColumn(0,#CodePostal,#True,#True,#True)
; Table::SetLineHeight(0,80)
Table::SetOrderOnColumn(0,#Localite)
Table::DrawTable(0)
EndProcedure
OpenMainWindows()
Repeat
Event=WaitWindowEvent()
Table::EventTable(0,Event)
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1
Debug Table::GetValue(0,#Localite)
EndSelect
EndSelect
Until Event=#PB_Event_CloseWindow
https://www.mediafire.com/?1oudyomu2igyy71
Les colonnes de la table sont maintenant éditables avec un click droit de la souris.
Les records des tables liées sont affiché dans un combo
contenu su zip:
DataTable.pbi
IMG (les png pour les icones)
DB (la data base de teste)
Main.pb (pour les testes)
Fonctionnement
Pour la création de la table
Code : Tout sélectionner
CreateTable(idTable,X,Y,widht,height,title$,dataName$,dataTable$,user$,paseword$)
ATTENTION: la première colonne doit reprendre la clef unique de la table et peut être masquée avec falg hide à #true
Code : Tout sélectionner
AddColumn(idTable,idColumn,title$,dbColumn$,width,hide.b=#False)
Code : Tout sélectionner
EventTable(idTable,Event)
Pour une liaison avec une autre table
idColumn=La colonne à lier
dbTableLink$=La table secondaire
dbColumnLink$=La colonne secondaire
dbReturnLink$=La colonne secondaire à affiché
Code : Tout sélectionner
AddLinkColumn(idTable,idColumn,dbTableLink$,dbColumnLink$,dbReturnLink$)
Ajout de la possibilité de tri, de recherche (de type LIKE), redimensionnement de la colonne
Code : Tout sélectionner
SetFlagColumn(idTable,idColumn,orderOn.b,chercheOn.b,redimOn.b)
Code : Tout sélectionner
SetOrderOnColumn(idTable,idColumn,descOn.b=#False)
Code : Tout sélectionner
SetLineHeight(idTable,height)
Code : Tout sélectionner
SetLineColorPairImpair(idTable,colorPair,colorImpair)
Code : Tout sélectionner
SetLineTileColor(idTable,colorBack,colorFont)
Code : Tout sélectionner
SetLineTileColumnColor(idTable,colorBack,colorFont)
Code : Tout sélectionner
SetRibonColor(idTable,colorBack,colorFont)
Code : Tout sélectionner
SetTitleHeight(idTable,height)
Code : Tout sélectionner
SetTitleColumnHeight(idTable,height)
Code : Tout sélectionner
SetTextColor(idTable,color)
Code : Tout sélectionner
SetFontTitle(idTable,font)
Code : Tout sélectionner
SetFontTitleColumn(idTable,font)
Code : Tout sélectionner
SetFontText(idTable,font)
pour rendre la colonne éditable (met directement la BD à jour)
TypeEdit= les flag du gadget string (numérique, majuscule, number ect)
LenEdit =longueur maximum de la saisie (pas encore fonctionnel)
Code : Tout sélectionner
SetEditableColumn(idTable,idColumn,EditableOn.b,TypeEdit,LenEdit)
Code : Tout sélectionner
SetRequired(idTable,idColumn,RequiredOn,UniqueRecordOn)
Ce qui est prévu après...
Ajout d'une nouvelle ligne pour ajouter un record