Devo gestire un form (lista, ma si applica anche in caso di raccolta documenti) con due campi, in cui la compilazione è esclusiva: quando si compila uno non deve essere compilato l’altro, se si compilano entrambi è un errore, così come lasciarli vuoti entrambi.
Dal punto di vista dell’algebra booleana, questo comportamento è descritto dall’operatore XOR, in cui il campo vuoto rappresenta
falso
ed il campo pieno
vero.
Campo 1
|
Campo 2
|
Risultato XOR
|
Vuoto
|
Vuoto
|
Falso
|
Vuoto
|
Pieno
|
Vero
|
Pieno
|
Vuoto
|
Vero
|
Pieno
|
Pieno
|
Falso
|
Una situazione di questo tipo non si può modellare né gestendo l’opzione di campo obbligatorio, né con le validazioni di colonna, ma è necessario ricorrere alle formule di validazione dell’elemento.
Dalla pagina delle impostazioni della raccolta o lista, cliccando sulla voce “Impostazioni di convalida” è possibile impostare le formule di validazione per l’intero elemento che si va ad inserire o modificare.
Stano ma vero, sebbene presente in
Excel 2013
, SharePoint non mette a disposizione l’operatore XOR, infatti, impostando la formula
XOR([Campo1]<>"",[Campo2]<>"")
si ottiene un errore di sintassi,
ed è quindi necessario provvedere alla sua creazione sfruttando gli altri operatori logici: AND, OR, NOT, utilizzando, ad esempio, il seguente schema:
(Condizione1 OR Condizione2 ) AND (NOT (Condizione1 AND Condizione2))
la cui formula, per SharePoint, è
AND(OR([Campo1]<>"";[Campo2]<>"");(NOT(AND([Campo1]<>"";[Campo2]<>""))))
Il test delle 4 combinazioni ci conferma il corretto funzionamento della formula. Gli elementi potranno essere quindi inseriti esclusivamente quando solo uno dei due campi è valorizzato.
Nessun commento:
Posta un commento