Et voila "le filtre"
qui consiste en fait à cacher des lignes ou des colonnes
pTableView est le TableView de la forme,
ColToFilter est la colonne de référence pour lequel le fitre va s'appliquer,
FilterSign soit Egale, soit Différent,
FilterValue est la valeur de filtre
/ex je ne veux que les lignes ou je vois "TOTO" dans la colonne N°9
Filtre(TableView1, 9, "Egale", "TOTO")
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | PUBLIC SUB Filtre(pTableView AS TableView, ColToFilter AS INTEGER, FilterSign AS STRING, FilterValue AS STRING) AS BOOLEAN |
un tableau de valeurs contenant les éléments a afficher. Et un tableau d'entier indexant les valeurs a afficher.
ainsi column.count est fournit par le tableau d'index
en pseudo code:
gridview_data(row,column)
if bHavefilter then
last.data.text = myvalue[myindex[row]]
else
last.data=myValue[row]
endif
end
Public sub MakeFilter(optional myfilter)
myindex.clear
if not myfilter then
bHaveFilter = False
gridview.row.count = myValue.count
endif
for i = 0 to myvalue.max
if myvalue=myfilter then myindex.add(i)
next
bHaveFilter = true
gridview.row.count = myindex.count
end
Ainsi j'utilise la technique données/vue