Utiliser les tableview

Rédigé par spheris Aucun commentaire
Classé dans : Tutoriels, Tableview, gambas 2 Mots clés : aucun
tableview.png

Pour utiliser la tableview, nous allons définir l 'objet par la commande :

Dim TB as tableview
TB=new tableview(me)


Nous definissons le nombre de lignes et colonnes :

TB.columns.count=5&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp '5 colonnes définies
TB.rows.count=21&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp '20 ligne définies


Définissons les dimensions des lignes et colonnes

TB.columns.width=100
TB.rows.height=20


Définissons les entêtes de chaque colonne :

TB.header=1 '0 -> Aucune&nbsp&nbsp&nbsp&nbsp 1 -> horizontal&nbsp&nbsp&nbsp&nbsp 2 -> vertical&nbsp&nbsp&nbsp&nbsp 3 -> les deux
TB.columns[0].title= Titre
TB.columns[0].width=50
TB.columns[1].title= Client
TB.columns[2].title= Facture
TB.columns[2].width=40
TB.columns[3].title= Etranger
TB.columns[3].width=50
TB.columns[4].title= type
TB.columns[4].width=50

Définissons la couleur du texte :

&nbspim Linea as integer, SwColor as boolean, Rec as result, Sql as string, Cn as connection
Sql= select * from clientes order by codigo
Rec=Cn.exec(sql)
TB.rows.count=Rec.count+1
do while Rec.available
&nbsp TB[linea, 0].text = Rec!Codigo
&nbsp TB[linea, 0].Background = IIf(SwColor, COLOR.White, COLOR.Black)
&nbsp TB[linea, 0].Foreground = IIf(SwColor, COLOR.Black, COLOR.White)
&nbsp TB[linea, 0].Alignment = 2
&nbsp TB[linea, 1].text = Rec!nombre
&nbsp TB[linea, 1].Background = IIf(SwColor, COLOR.White, COLOR.Black)
&nbsp TB[linea, 1].Foreground = IIf(SwColor, COLOR.Black, COLOR.White)
&nbsp TB[linea, 1].Alignment = 1
&nbsp TB[linea, 2].text = Rec!dir
&nbsp TB[linea, 2].Background = IIf(SwColor, COLOR.White, COLOR.Black)
&nbsp TB[linea, 2].Foreground = IIf(SwColor, COLOR.Black, COLOR.White)
&nbsp TB[linea, 2].Alignment = 1
&nbsp Rec.movenext
&nbsp Linea+=1
&nbsp SwColor=NOT swcolor 'inversion de la couleur
loop


Edition des cellules :


sub TB_change()
dim Tabla as new string[]
tabla.add( opcion 1 )
tabla.add( opcion 2 )
if TB.columnat=2 then
&nbsp&nbsp TB.edit(tabla,true) 'para actualizar la celda se mostrará un combo con las opciones descritas
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp ' la opción TRUE de readonly indica que solo se podrá elegir del combo.
else
&nbsp TB.edit 'activar modo edición en celda en textbox
endif
end

sauvegarde de la table dans la base de données :

sub TB_save(Row AS Integer, Column AS Integer, Value AS String)
Dim Sql as string
Sql= update clientes set codigo= &amp TB[TB.row,0].text &amp ', nombre) ' &amp TB[TB.row,1].text &amp ', direccion= ' &amp TB[TB.row,2].text &amp '
Cn.exec(sql)
end