Page 1 sur 1

Table Editable Base de donnée Vers 2.0

Publié : jeu. 12/juin/2014 16:00
par microdevweb
Image
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
version 2.0
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$)
Pour l'ajout de colonne
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)
A placer dans la boucle événementielle (Event=WaitwindowEvent ou WindowEvent)

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$)
Personnalisation de la table
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)
Choix de la colonne qui servira de tri au départ

Code : Tout sélectionner

SetOrderOnColumn(idTable,idColumn,descOn.b=#False)
Configuration graphique optionnel

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)
utiliser dabord LoadFont()

Code : Tout sélectionner

SetFontTitle(idTable,font)

Code : Tout sélectionner

SetFontTitleColumn(idTable,font)

Code : Tout sélectionner

SetFontText(idTable,font)
Nouveautés 2.0
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)
pour rendre la colonne obligatoire et éventuellement de type unique sans doublon

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

Re: Table Base de donnée Vers 1.0 beta 1

Publié : ven. 13/juin/2014 11:31
par Philippe_GEORGES
Sacré bon travail, je vais tester tout ça. J'ai un logiciel en cours de conception qui va utiliser ce composant.

Merci encore

Re: Table Base de donnée Vers 1.0 beta 1

Publié : ven. 13/juin/2014 11:35
par Philippe_GEORGES
Juste un détail, où sont les images en *.png ? J'ai bien le .pbi, mais pas les images....

Phil

Re: Table Base de donnée Vers 1.0 beta 1

Publié : ven. 13/juin/2014 11:44
par microdevweb
Les image sont en cathimage :P oups je vais corriger

Re: Table Base de donnée Vers 1.0 beta 2

Publié : ven. 13/juin/2014 11:53
par microdevweb
Voila les image sont dans le zip :roll:

Re: Table Base de donnée Vers 1.0 final

Publié : sam. 14/juin/2014 10:03
par Mesa
J'ai un problème d'affichage, probablement dû au DPI de mon bureau que j'ai agrandi à 125% =120ppp au lieu du DPI standard de 100% =96ppp.

Image

M.

Re: Table Base de donnée Vers 1.0 final

Publié : sam. 14/juin/2014 10:58
par microdevweb
Merci Mesa
Hummmm j'ai pas pris cela en considération, il faudra que j'y regarde :oops:

Re: Table Base de donnée Vers 1.0 final

Publié : sam. 14/juin/2014 11:41
par microdevweb
Voila la version 1.2 devrai corriger j'espère ce problème

tester à 100% 125% et 150%

Re: Table Editable Base de donnée Vers 2.0 Beta 1

Publié : lun. 16/juin/2014 11:28
par microdevweb
Un petit Up pour la version 2.0

Les colonnes sont maintenant directement éditable dans la table