……Marco Valli's Blog……

Internet, Tecnologia e SharePoint!!!

Come creare una relazione padre-figlio in Infopath


Una esigenza che spesso si presenta lavorando con SharePoint si verifica quando si ha la necessità di avere due caselle di riepilogo a discesa (dropdown) nel quale la prima fornisce l’informazione padre (parent) e la seconda quella figlio (child), con le form “standard” di SharePoint è possibile ottenere questo risultato inserendo del codice nella pagina o anche un semplice jQuery.

Un’alternativa al codice è data da Infopath, in SharePoint 2010 esistono due modi per utilizzare una form di infopath:

  1. Form “pura”: la form di Infopath viene pubblicata in una form library sottoforma di file xml, possono essere utilizzate funzionalità avanzate come le tabelle e le sezioni ripetute e se necessario può essere inserito del codice, la form può avere molti più campi di quelli visibili nella form library.
  2. Form integrata in una lista: sostituisce le form standard di una lista di sharepoint (newform, dispform ed editform), alcuni controlli non sono disponibili, tutti i campi presenti nella form sono anche presenti nella lista al quale la form è collegata.

In SharePoint 2007 l’unico modo di utilizzare Infopath era quello con le form “pure” ma, nonostante questo, alcune limitazioni impedivano la realizzazione di relazioni padre-figlio tra campi (a meno di non ricorrere a codice sviluppato), fortunatamente queste limitazioni sono state superate e, in Sharepoint 2010 entrambi i modi di utilizzare Infopath consentono l’implementazione di relazioni tra campi.

Per ottenere questa relazione ho innanzitutto creato una site collection e due liste che faranno da base dati per le due caselle di riepilogo a discesa:

Regioni (un semplice campo di testo)

image

Province (un semplice campo di testo e un campo di lookup verso la lista delle regioni)

image

A questo punto è sufficiente creare una form di Infopath e inserire due caselle di riepilogo a discesa

image

Il passo successivo è quello di creare due connessioni dati alle due liste:

SNAGHTML7e6fe73

SNAGHTML7e7db0c

Nella connessione dati secondaria è necessario selezionare anche il campo della regione che deve essere importato insieme alla relativa provincia, solo in questo modo sarà possibile collegare correttamente le due caselle.

Tornando alla form di Infopath, a questo punto è necessario assegnare alle due caselle le rispettive origini dati, quindi facendo click con il tasto destro sulla prima casella e selezionando l’opzione “Proprietà Casella di riepilogo a discesa” è possibile selezionare l’utilizzo dell’origine dati esterna

image

Nel campo “Valore” selezionare “ID” invece che “Title

SNAGHTML8132f82

La stessa cosa naturalmente va fatta per la seconda casella di testo ma, in questo caso, c’è qualche passaggio in più per creare la relazione tra le due dropdown, dopo aver selezionato l’origine dati delle Province, è necessario fare click sul pulsante a destra della casella “Voci

SNAGHTML813d005

Nella finestra che segue fare click su “Filtra dati

SNAGHTML7f1d706

Dopo di che aggiungere un nuovo filtro facendo click su “Aggiungi

SNAGHTML7f30b9d

Nella schermata che segue bisogna quindi impostare la relazione tra i due campi, permettendo la visualizzazione nel campo figlio (Provincie) dei valori che hanno nel campo Regione il valore selezionato nel primo campo (Regione), per cui è necessario selezionare nella prima casella il campo “Regione

SNAGHTML7fa07e6

Nel secondo campo invece va selezionata l’opzione “Selezionare un campo o un gruppo” e quindi andare a scegliere nell’origine dati Principale il campo in cui viene salvato il nome della regione

SNAGHTML81003d1

Dopo aver salvato tutte le modifiche effettuare è finalmente possibile testare la form appena creata e verificare il corretto funzionamento della relazione padre-figlio

image

Come si può notare, alla selezione di una regione, corrisponde la visualizzazione nella seconda casella delle sole province appartenenti alla regione selezionata..

Questa tecnica può essere applicata in mille casi differenti e non ci sono problemi se la relazione è a più livelli (es. Continente > Stato > Regione) in quanto il filtro sulla visualizzazione dei dati può essere ripetuto a più livelli. Ancora una volta è facile capire quanto le form di Infopath possano essere versatili senza ricorrere all’utilizzo di codice..

Enjoy!!! 😀

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: