Per far questo seleziona List Tools / List e poi clicca su Customize FormCustomize Formsi apre Microsoft InfoPath Designer 2010 con un form identico a quello della lista. Qui si può vedere come appare e iniziare la customizzazioneInfoPath FormCome esempio modificherò il caricamento della DropDownList di Lookup per fare in modo che venga caricato un set di dati filtrato. Per la precisione la il campo lookup punta ad una lista, Province, con i campi: Provincia (Title), CodProvincia e CodRegione. La DropDownList andrò a filtrarla per CodRegione = 'LOM'
Di default la DropDownList ha un datasource che punta alla lista Province e recupera tutti gli elementi in binding con la DropDownList.Data ConnectionPremi Add... in modo di aggiungere una nuova data connection di tipo Receive dataReceiveimposta il tipo REST Web ServiceREST WebServicequesto mi permette di interrogare il servizio ListData.svc con una url tipo questa
di avere il contenuto della lista in un formato xml filtrato e ordinato secondo i parametri in query string. Quindi la url per il data suorce è:
http://intranet/_vti_bin/listdata.svc/Province?
$filter=CodRegione eq 'LOM'&$orderby=Provincia REST Urlassegna un nome alla data connection e premi FinishFinishla data connection è disponibileData Connectionper utilizzare la nuova connesione, click destro sulla DropDownListPropertiesnella finestra che si apre seleziona la nuova connessioneConnectionclicca sul pulsante indicato dalla freccia rossa per selezionare il nodo entry (xpath /ns2:feed/ns2:entry)Entityfai lo stesso con gli altri due pulsanti per selezionare il Value (xpath ns2:content/m:properties/ns1:Id) e il Display Name (xpath ns2:content/m:properties/ns1:Provincia)DisplayNamepremi OK, salva e pubblica il form.PublishNella lista di SharePoint premi Add new item. Questo è come appare il form InfoPath customizzatoResultSemplice no? Ovviamente grazie a InfoPath posso superare i limiti delle form standard di SharePoint e:
creare delle regole di validazione più complesse
condizionare la validità di un campo in base ai valori inseriti in più campi
condizionare la visibilità o meno di un campo
creare delle DropDownList in cascata
aggiungere altre connessione e recuperare i dati da più fonti
raggruppare i campi logicamente assegnandogli una grafica diversa