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.


Esempi "addCustomColumn"

------------------------------------------------------------------
-- 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