Cascading Drop Down List in Sharepoint 2010
avatar

, Erstellen einer “Cascading Drop Down List” in Sharepoint 2010             

Wie erstellt man eine Liste mit einem gefilterten “Lookup” basierend auf der Auswahl einer vorhergehenden Spalte?  Dies ist eine Frage, die oft gestellt wird. Diese Anleitung soll zeigen, wie man eine solche „Kaskadierende DropDown Liste“ ohne zusätzliche Fremdsoftware und ohne Anwendung von Skripts selbst erstellen kann nur mit Hilfe von Bormitteln – oder genauer gesagt mit Hilfe von Microsoft SharePoint 2010 Server und Microsoft Office Infopath 2010.

Als Beispiel für diese Anleitung erstellen wir eine benutzerdefinierte Liste, in die Dokumente zu Technologien verschiedener Hersteller eingepflegt werden sollen. Als Ergebnis dieser Anleitung erhalten wir zum Schluss für unsere Liste ein Eingabeformular, in dem wir den Hersteller auswählen können. Nachdem wir unseren Hersteller ausgewählt haben, werden nur noch die Technologien / Produkte dieses Herstellers in der zweiten Spalte als Auswahl präsentiert.

  • Erstellen Sie eine benutzerdefinierte Liste mit dem Namen “Produkte”.
    Diese Liste wurde ohne zusätzliche Spalten erstellt, lediglich die Spalte „Titel“ existiert, welche ich in „Produkte“ umbenannt habe. Nun fügen wir dieser Liste eine weitere Spalte vom Typ „Auswahl“  hinzu, welcher wir gleich als Auswahl ein paar Hersteller eintragen. Diese Spalte wird eine Pflichtspalte.. Als Beschreibung habe ich noch jeweils eine kleine Zeile mit eingefügt. Für den Augenblick genügt uns das. Bei der Erstellung eines neuen Elementes sehen wir nun Folgendes:
    image
  • Wir fügen nun dieser Liste ein paar Elemente (=Hersteller) hinzu:
    image

    Wir haben nun die notwendigen Listen erstellt und mit Daten gefüllt, aber uns fehlt noch die Liste für die Dokumentationen und das angepasste Eingabeformular.

  • Wir erstellen uns nun die benutzerdefinierte Liste für die Dokumentationen mit dem Namen ‘Doku_Liste’. Die notwendigen Eingabefelder werden wir uns im nächsten Schritt direkt über Infopath erstellen.
  • Öffnen Sie nun im Internetexplorer die Listeneinstellungen für Ihre Liste “Doku_Liste” und klicken Sie im Bereich „Allgemeine Einstellungen“ unten auf den Menüpunkt “Formulareinstellungen“.

image

In den Formularoptionen wird Ihnen nun die Möglichkeit angezeigt, das aktuelle Formular – also unsere Eingabemaske bei Erstellung eines neuen Listenelements- mithilfe von Microsoft Infopath anzupassen. Voraussetzung hierfür: Die Anpassung der Formulare muss auf der Seite des SharePoint 2010 aktiviert sein und Sie benötigen das Programm Microsoft Infopath 2010 auf Ihrem Rechner. Klicken Sie nun auf die Schaltfläche “OK”.

image

  • Das Eingabeformular unserer Liste “Doku_Liste” wird nun in InfoPath 2010 geöffnet:
    image
    Zunächst müssen wir uns die Datenverbindung erstellen, von der das Formular seine Daten beziehen soll, bevor wir die notwendigen Dropdown-Felder generieren. Dazu klicken wir in Infopath unten rechts auf den Menüpunkt Datenverbindungen verwalten …
     
  • Es öffnet sich der Assistent für Datenverbindungen.
    image

    Hier fügen wir eine neue Datenverbindung hinzu.

  • Erstellen Sie nun im Assistenten eine Verbindung mit den folgenden Einstellungen:
    Neue Verbindung erstellen mit: Daten empfangen
    image

    Wählen Sie die Quelle der Daten aus.
    SharePoint-Bibliothek oder -Liste
    image

    Wählen Sie den Speicherort der SharePoint-Website aus:
    image

    Infopath lädt nun alle vorhandenen Objekte der SharePoint Website.

    Wählen Sie nun die Liste „Produkte“ aus:
    image

Wir müssen nun die notwendigen Spalten auswählen.Neben der Spalte “ID” benötigen wir die Spalten „Produkt“ und “Hersteller”:

image

 

Die Einstellungen im nächsten Fenster des Assistenten belassen wir, wie im Screenshot zu sehen (Der Haken „Kopie der Daten in der Formularvorlage speichern“ darf nicht gesetzt sein!):
image

Den Namen für die neue Verbindung belassen wir auf „Produkte“ und setzen den Haken bei „Daten beim Öffnen des Formulars automatisch abrufen“. Klicken Sie zum Schluss auf „Fertig stellen“.

image
 

  • Wir sollten nun 2 Datenverbindungen haben:
    image

    Klicken Sie zum Schluss auf die Schaltfläche „Schließen“.

  • Wir fügen nun in Infopath dem Formular zwei Dropdown-Felder hinzu. Positionieren Sie hierzu den Cursor in das weise Feld unterhalb der Anlagen und klicken Sie im Menüband auf das Dropdownfeld bei Steuerelemente und wählen Dropdownliste aus.
    image
  • Die Einstellungen für die Dropdownfelder belassen wir auf der Standard Einstellung, dies wird nachher noch angepasst. Wiederholen Sie den Schritt, um ein zweites Dropdownmenü unterhalb des ersten anzulegen. Unser Formular sollte nun wie folgt aussehen:
    image

    Klicken Sie nun mit der Maustaste auf das erste Dropdownfeld und wählen Sie dann die Eigenschaften für das Dropdown-Listenfeld aus:
    image

     

  • Nehmen Sie nun bei den Eigenschaften folgende Einstellungen vor (Auch der Feldname wird geändert!):
    image

    Zur Überprüfung testen wir das Listenfeld über die Vorschau in Infopath:
    image

Das Formular wird im Browser geöffnet und die Liste kann die Daten bereits aus der Datenquelle abrufen:
image

Wir schließen die Vorschau und machen uns an den nächsten Schritt…

  • Wir rufen nun die Dropdown-Listenfeld Eigenschaften des zweiten Dropdown-Feldes auf:
    image
  • Folgende Änderungen müssen nun vorgenommen werden:
    image

    Für Wert & Anzeigename wählen wir jeweils die Spalte „Produkt“ aus, die SharePoint intern noch immer Title heißt, also hier nicht irritieren lassen:
    image

Das Ergebnis überprüfen wir nochmals über die Vorschau in Infopath:

image

Wir haben es fast geschafft, aber ein paar Schritte fehlen noch. Fassen wir kurz zusammen, was wir bisher in den letzten Schritten getan haben: Wir haben eine zweite Datenverbindungen erstellt, die ihre Daten aus der SharePoint-Liste „Produkt“ beziehen. Die Daten für den Hersteller werden in das „Doku_Liste“ Formular geladen, sobald dieses Formular aufgerufen wird im Gegensatz zu den Daten für das Produkt. Jetzt müssen die notwendigen Filter definiert werden.

  • Wir öffnen erneut die Eigenschaften des zweiten Dropdown-Feldes („Produkt“) und klicken auf die Schaltfläche „XPath festlegen“:
    image

     

  • Wählen Sie nun wie unten im Screenshot gezeigt das entsprechende Datenfeld aus und klicken Sie auf die Schaltfläche „Daten filtern…“:
    image

    Es öffnet sich folgender Assistent:
    image
    Klicken Sie auf „Hinzufügen“
     

  • Wir ergänzen nun die notwendigen Filter und Bedingungen. Wählen Sie im linken Dropdownmenü „Hersteller“ aus, im zweiten Menü „ist gleich“ und im dritten Menü die Auswahl „Feld oder Gruppe auswählen“.
    image

  • Wählen Sie aus dem Dropdown-Menü oben den Punkt „Primär“ aus:
    image

    Anschließend wählen wir wie unten gezeigt das Feld „Field1“ aus, das unseren Hersteller enthält:
    image

    Die Filterbedingung sollte nun wie folgt aussehen:
    image

    Klicken Sie auf „OK“

  • Überprüfen wir nun die Funktionalität in der Infopath-Vorschau. Wir wählen den Hersteller Microsoft asu und sehen, daß im Feld Produkt tatsächlich nur noch die Microsoft Produkte angezeigt werden:
    image

    Es gibt nur noch einen kleinen Schönheitsfehler: Wenn wir jetzt bei Hersteller einen anderen Hersteller auswählen, bleibt die alte Produktauswahl bestehen:
    image

    Wir müssen zuletzt noch eine Regel hinzufügen, die das Feld für das Produkt löscht, sobald ein anderer Hersteller ausgewählt wird.

  • Dazu wählen wir unser erstes Dropdown-Feld (=>Hersteller) im Infopath aus und wählen im Infopath Menüband den Punkt Regeln verwalten:
    image

  • Klicken Sie rechts auf das Dropdown-Menü der Schaltfläche „Neu“ und wählen Sie den Punkt „Aktion“  aus:
    image

     

  • Wählen Sie nun unter „Diese Aktion ausführen“ das Dropdown-Menü der Schaltfläche „Hinzufügen“ und dann den Punkt „Den Wert eines Feldes setzen“ :
    image

  • Im Regelassistenten wählen wir bei Feld das „Feld2“ aus, der Wert bleibt leer. Klicken Sie zum Übernehmen auf „OK“.
    image
     
  • Wir überprüfen jetzt nochmals das Formular auf Funktionalität über die Infopath-Vorschau und stellen fest, daß nun das Feld Produkt wie gewünscht gelehrt wird, sobald bei Hersteller eine andere Auswahl erfolgt. Zuletzt publizieren wir das nun modifizierte Formular in Infopath nach SharePoint durch die Tastenkombination CTRL+SHIFT+Q und testen die neu erstellte Vorlage direkt auf dem SharePoint Server in unserem Browser:

image

Ganz wichtiger Hinweis zum Schluss:

Die “Cascading DropDown Lists” funktionieren nur in benutzerdefinierten Listen, nicht aber in Dokumentenbibliotheken!

Schreibe einen Kommentar