Una drop-down list è un controllo grafico che permette all'utente di selezionare un valore da una lista. In un Viewer di tipo Grid è possibile associare drop-down list, estratta da una tabella del Model, alle celle di una colonna mediante opportune Grid e Band Property.
Una drop-down è in realtà una Grid incapsulata all’interno del Viewer principale. In particolare essa dispone degli stessi strumenti di personalizzazione di una Grid costituita da una sola Band. |
La Grid Property DropDownList consente di accedere ad un editor dedicato alla definizione di collezioni di drop-down list da associare alle celle di una Grid. Tale editor si compone di due riquadri principali:
✓ Members, contenente l'elenco delle drop-down list disponibili;
✓ Properties, esponente gli aspetti definitori di ogni singola drop-down list.
I tasti Add, Remove, Copy e Paste, sotto il riquadro Members, consentono di aggiungere o rimuovere e copiare o incollare drop-down list nell'elenco sovrastante.
I principali aspetti definitori di una drop-down list, configurabili dal riquadro Properties, sono:
✓ DataMember, nome dell’oggetto del Model contenente i valori da esporre nella lista;
✓ DisplayMember, campo del DataMember contenente i valori da esporre a video;
✓ ValueMember, campo del DataMember contenente i valori a cui la lista viene agganciata;
✓ Key, identificativo della drop-down list corrente;
✓ Filter, condizione logica mediante la quale filtrare il DataMember;
✓ DisplayLayout, classe di proprietà grafiche con cui configurare l’aspetto della drop-down list.
È possibile associare un’immagine ad ogni record di una drop-dpwn list, impostando la proprietà Image della classe DisplayLayout. |
Il DisplayMember condiziona soltanto i valori esposti dalla drop-down list, mentre l’effettivo contenuto è rappresentato dal ValueMember.
La condizione logica con cui valorizzare la proprietà Filter assume la forma DataMemberColumn = Value dove:
✓ DataMemberColumn è il nome di un qualsiasi campo del Data Member, in funzione del quale filtrare i dati da esporre nella lista;
✓ Value è il valore, assunto dalla DataMemberColumn, in base al quale filtrare i dati da esporre nella lista.
Il Value, da inserire nella condizione logica della proprietà Filter, può assumere le seguenti forme:
✓ @GridColumnName, nome di un campo della Grid, ospitante la drop-down list corrente;
✓ [Grid Column Name], nome della colonna della tabella sottostante alla drop-down list corrente;
✓ NULL, valore costante NULL;
✓ CustomValue, valore costante a scelta dell'utente.
I valori @GridColumnName e [Grid Column Name] identificano entrambi un campo della Grid, ospitante la drop-down list corrente. La prima formulazione si utilizza in caso di nomi di colonna privi di spazi, la seconda in caso di nomi di colonna contenenti spazi. |
Il campo DataMemberColumn non deve essere quotato, Se inoltre è presenete un filtro con una costante, essa non deve essere quotata anche se si tratta di una stringa. |
Infine un terzo riquadro nell'editor delle drop-down list espone alcuni record della tabella del Model scelta come DataMember.
Per visualizzare una drop-down list su una colonna occorre assicurarsi che:
✓ l’oggetto del Model associato alla Grid corrente sia in EditMode Simple o Full;
✓ la Band Property AllowUpdate (classe Override) sia impostata a True;
✓ la Column Property CellActivation sia impostata a AllowEdit.
Inoltre il Chapter a cui appartiene il DataMember della drop-down list deve, alternativamente:
✓ coincidere con quello a cui appartiene il DataMemeber della Grid;
✓ essere eseguito prima o contemporaneamente al Chapter a cui appartiene il DataMemeber della Grid.
Infine, per associare una drop-down list alle celle di una particolare colonna, è necessario valorizzare la Column Property DropDown. Essa permette di selezionare un qualunque elemento della collezione di drop-down list corrente, mediante l'opportuna Key.