addCustomColumn
addCustomColumn
<Navigator>:addCustomColumn(columnName, columnType [, visible, luaCallback])
Permette l'aggiunta di una colonna nell'albero parti.
La colonna può mostrare il valore di un attributo (non nascosto) o un valore personalizzato tramite la callback lua.
Parametri:
columnName - Nome della colonna. Nel caso di colonna attributo questo valore deve essere uguale al nome dell'attributo da visualizzare.
columnType - Tipo della colonna.
visible - Se 1 mostra la colonna, se 0 nasconde la colonna. Se non specificato la colonna viene creata visibile.
luaCallback - Funzione lua da richiamare nel caso di valori personalizzati (ignorata nel caso di colonna attributo).
Alla funzione vengono passati 2 parametri: il nome della colonna (in maiuscolo) e la parte.
Tabella valori per columnType:
Il parametro columnType è un valore intero. Di seguito vengono riportati tutti i possibili valori. Per semplicità è stata aggiunta una tabella globale denominata CUSTOMCOLTYPE che contiene i valori con una nomenclatura più leggibile.
Valore intero |
Valore tabella |
Controllo visualizzato |
Descrizione |
0 |
CUSTOMCOLTYPE.Attribute |
Testo |
Mostra il valore dell'attributo specificato. In questo caso il nome della colonna corrisponde con il nome dell'attributo. La callback lua viene ignorata. |
1 |
CUSTOMCOLTYPE.Image |
Immagine |
Mostra un'immagine (.bmp, .gif, .jpeg, .png, .tiff). |
2 |
CUSTOMCOLTYPE.Integer |
Testo |
Mostra un valore di tipo intero. |
3 |
CUSTOMCOLTYPE.Decimal |
Testo |
Mostra un valore di tipo decimale. |
4 |
CUSTOMCOLTYPE.DateTime |
Data |
Mostra un valore di tipo data (gg/mm/yyyy). |
5 |
CUSTOMCOLTYPE.String |
Testo |
Mostra un valore di tipo stringa. |
6 |
CUSTOMCOLTYPE.Boolean |
Checkbox |
Mostra un valore di tipo booleano tramite un checkbox. |
ATTENZIONE
L'aggiornamento del contenuto delle celle delle colonne viene gestito interamente dal DevExpress.
Questo significa che ogni volta che l'albero "sente", pur magari facendo operazioni che non vanno ad influenzare sul contenuto ma solo sulla parte grafica (es. ridimensionamento), di dover aggiornare una cella, viene chiamata la funzione lua associata per avere i valori.
Dalle prove effettuate le chiamate sono pari al numero di nodi (parti) visibili nell'albero.
------------------------------------------------------------------
-- Esempio di colonna attributo
------------------------------------------------------------------
GetNavigator():addCustomColumn("CODICE", CUSTOMCOLTYPE.Attribute)
------------------------------------------------------------------
-- Esempio di colonna con valore personalizzato
------------------------------------------------------------------
local SubFoo = function (columnName, prt)
if not prt then
return 0
end
local val = prt:getAttr(".NOTEMPTY")
if val == nil or val == "0" then
return 0
end
return 1
end
local Foo = function ()
local nav = GetNavigator()
nav:addCustomColumn("Preserva", CUSTOMCOLTYPE.Boolean, 1, %SubFoo)
end