Share via


Gewusst wie: Anpassen externer Listenformulare mithilfe von Microsoft InfoPath

Letzte Änderung: Freitag, 16. April 2010

Gilt für: SharePoint Server 2010

Microsoft Business Connectivity Services (BCS) generiert SharePoint-Standardformulare zum automatischen Anzeigen, Erstellen und Bearbeiten von Elementen aus einer externen Liste. Die Anpassungsoptionen in diesen einfachen Webpartformularen können jedoch eingeschränkt werden. Wenn Sie umfangreiche Anpassungen an Formularen vornehmen oder Formularen deklarative Regeln oder Geschäftslogik hinzufügen möchten, können Sie die SharePoint-Standardformulare zumErstellen,Anzeigen undAktualisieren einer externen Liste mithilfe von Microsoft InfoPath 2010-Formularen ersetzen.

So ersetzen Sie die SharePoint-Standardformulare durch InfoPath-Formulare

  1. Navigieren Sie im Browser zur externen Liste.

  2. Klicken Sie im Menüband für die Serverkomponente auf Liste bearbeiten. Die externe Liste wird in Microsoft SharePoint Designer 2010 geöffnet.

  3. Klicken Sie im Menüband auf die in Abbildung 1 dargestellte Schaltfläche Formulare in InfoPath entwerfen.

    Abbildung 1. Ersetzen eines SharePoint-Standardformulars durch ein InfoPath-Formular

    Formulare in InfoPath entwerfen

  4. Entwerfen Sie das Formular entsprechend Ihren Anforderungen mit Elementen wie z. B. benutzerdefinierten Typen. Steuerelemente für einfache Felder werden automatisch generiert. Für komplexe Typen müssen Sie jedoch eigene Steuerelemente per Drag & aus der Toolbox einfügen.

  5. Klicken Sie anschließend im Menü Datei auf Schnell veröffentlichen, um das Formular erneut auf dem Server zu veröffentlichen.

    Nun können Sie zu der externen Liste navigieren und ein Element erstellen oder anzeigen. Das angezeigte Formular ist das InfoPath-Formular, mit dem das SharePoint-Standardformular ersetzt wird.

Anpassen des Erscheinungsbilds von Formularen

Sie können das Erscheinungsbild Ihrer externen Listenformulare mithilfe von InfoPath anpassen. Im Video InfoPath 2010 – Anpassen eines SharePoint-Listenformulars zeigt Daniel Broekman, ein Programm-Manager im InfoPath-Produktteam, wie Sie ein SharePoint-Listenformular mithilfe von InfoPath 2010 schnell anpassen können. Mit dem im Video gezeigten Verfahren können Sie ein standardmäßiges externes SharePoint-Listenformular durch ein InfoPath-Formular ersetzen und es anpassen, um sein Erscheinungsbild zu ändern.

Hinzufügen deklarativer Regeln oder Geschäftslogik zu Formularen

Sie können dem Formular in InfoPath deklarative Regeln oder Geschäftslogik hinzufügen, ohne Code zu schreiben. Beispielsweise können Sie eine Regel erstellen, um die Eingabe einer Postleitzahl auf fünf Stellen zu beschränken (12345) oder um die Benutzer zu zwingen, Telefonnummern in einem bestimmten Format einzugeben. Das Video "InfoPath 2010 – Anpassen eines SharePoint-Listenformulars" zeigt auch, wie Sie einem Formular deklarative Regeln und Geschäftsregeln hinzufügen.

Rendern komplexer Typen

Wenn Sie in einem externen System definierte komplexe Typen rendern und bearbeiten möchten, ist das Ersetzen eines SharePoint-Formulars durch ein InfoPath 2010-Formular besonders hilfreich. Angenommen, Sie haben ein Feld Address, das von einem SpecificFinder-Element eines externen Inhaltstyps zurückgegeben wird. Das Feld Address kann im externen System ein komplexer Typ sein, der mehrere Untertypen enthält (siehe Abbildung 2).

Abbildung 2. Komplexer Typ in SharePoint Designer 2010

Komplexer Typ in SharePoint Designer

Beachten Sie die in SharePoint Designer angezeigten Warnungen. Falls Microsoft Business Connectivity Services (BCS) diesen komplexen Typ in einem Rückgabeparameter eines SpecificFinder-Elements findet, wird dieses Feld im regulären externen SharePoint-Listenformular ignoriert. In Abbildung 3 ist die Standardseite Element anzeigen einer externen Liste angezeigt, die diesen komplexen Typ Address enthält. Beachten Sie, dass das Feld Address übersprungen und nicht im Formular angezeigt wird. Wenn außerdem Address ein Pflichtfeld für Create- oder Update-Vorgänge im externen System ist, können Sie keine Kundenelemente erstellen oder bearbeiten.

Abbildung 3. Standardseite "Element anzeigen" einer externen Liste, die den komplexen Typ enthält

Anzeigen des Elements, das den komplexen Typ enthält

In einem solchen Fall können Sie das Formular in InfoPath konvertieren. Da das SpecificFinder-Element einen komplexen Typ aufweist (in unserem Beispiel Address), wird das Formular von Business-Konnektivitätsdienste (Business Connectivity Services) nicht mit allen erforderlichen Feldern und Steuerelementen erstellt. Stattdessen wird wie in Abbildung 4 dargestellt ein leeres InfoPath-Formular ohne die Felder erstellt.

Abbildung 4. Leeres InfoPath-Formular

Leeres InfoPath-Formular

Um dieses Problem zu beheben, ziehen Sie dataFields-Felder per Drag & Drop aus dem Abschnitt Felder des Aufgabenbereichs. Dies ist jedoch nur möglich, wenn alle Untertypen des komplexen Typs mithilfe der in InfoPath verfügbaren Steuerelemente angezeigt werden können. Beispielsweise können bei unserem Beispiel mit Address alle Untertypen mithilfe eines Text-Feldsteuerelements angezeigt werden.

Wenn ein komplexer (oder benutzerdefinierter) Typ oder einer der Untertypen nicht mit den in InfoPath verfügbaren Steuerelementen angezeigt werden kann, müssen Sie ein benutzerdefiniertes InfoPath-Steuerelement entwerfen und dieses Feld damit anzeigen. Beim Hinzufügen eines benutzerdefinierten InfoPath-Steuerelements kann das Formular nicht auf dem Server veröffentlicht werden.

Das entworfene Formular können Sie speichern und schnell im aktuellen Speicherort veröffentlichen. Das externe Listenformular wird gestartet und mit allen Feldern angezeigt. In Abbildung 5 ist das externe Listenformular Element anzeigen nach der Konvertierung in InfoPath dargestellt. Die einzige Aktion bestand darin, die dataFields-Steuerelemente per Drag & Drop im Entwurfsbereich des Formulars einzufügen.

Abbildung 5. In InfoPath konvertiertes externes Listenformular "Element anzeigen"

Für das Formular 'Element anzeigen' wurde ein Upsizing auf InfoPath ausgeführt

Beachten Sie, dass das Feld Address und alle Untertypen angezeigt werden. Wenn für den externen Inhaltstyp Create- und Update-Vorgänge definiert sind, können Sie Kundenelemente mithilfe der externen Listenformulare erstellen und bearbeiten.

Einbetten eines Steuerelements für ein Auswahltool für externe Elemente

Für Szenarien, in denen ein Benutzer ein externes Element auswählen muss, wie z. B. den Kunden "John" in einer Kundenliste, gibt es in InfoPath 2010 ein Steuerelement für ein Auswahltool für externe Elemente, mit dem Sie ein Auswahltool in ein Formular einbetten können. Ein externes Auswahltool bietet Auswahl- und Auflösungsfunktionalität für externe Elemente auf dem Server und in Microsoft Office-Rich-Client-Anwendungen.

Wenn Sie Zuordnungen für externe Inhaltstypen im BDC-Metadatenspeicher und das externe Listenformular für einen der externen Inhaltstypen, der einen Fremdschlüssel enthält, einrichten, fügt Business-Konnektivitätsdienste (Business Connectivity Services) dem Formular für dieses Feld automatisch ein Auswahlsteuerelement hinzu. Stellen Sie sich z. B. ein Kunden-/Bestellszenario vor. Angenommen, die externen Inhaltstypen und die Zuordnung sind bereits eingerichtet. Wenn Sie für das externe Bestelllistenformular ein Upsizing auf InfoPath ausführen, fügt Business-Konnektivitätsdienste (Business Connectivity Services) dem Feld CustomerID im Bestellformular standardmäßig ein Steuerelement für ein Auswahltool für externe Elemente hinzu. Auf diese Weise können Benutzer beim Umgang mit Bestellungen den gewünschten Kunden auf einfache Weise finden.

Wenn das automatisch generierte InfoPath-Formular jedoch leer ist, da das SpecificFinder-Element einen oder mehrere komplexe Typen aufweist, müssen Sie ein Steuerelement für ein Auswahltool für externe Elemente per Drag & Drop aus dem Menüband einfügen und die erforderlichen Eigenschaften festlegen. Weitere Informationen finden Sie unter Vorgehensweise: Einbetten eines Steuerelements mit einem Auswahltool für externe Elemente in einem InfoPath-Formular,

Erstellen mehrerer Ansichten eines Formulars

Ihr externes InfoPath-Listenformular kann mehrere Ansichten aufweisen. Dies ist besonders hilfreich für Szenarien mit einmaligen Schreibvorgängen, bei denen das externe System das Aktualisieren eines Felds nach dem Erstellen nicht zulässt. In diesen Fällen können Sie zwei Ansichten erstellen, nämlich eine Ansicht für den Create-Vorgang und eine zweite schreibgeschützte Ansicht für den Update-Vorgang. Sie können die ASPX-Seiten für Create und Edit aktualisieren, um die richtige Ansicht des Formulars anzuzeigen.

Hinzufügen von CodeBehind oder Regeln

Schließlich können Sie Ihrem InfoPath-Formular CodeBehind oder Regeln hinzufügen. Weitere Informationen zum Hinzufügen von CodeBehind zu einem InfoPath-Formular finden Sie in der InfoPath 2010-Referenz für Formularvorlagenentwickler. Weitere Informationen zum Hinzufügen von Regeln zu einem InfoPath-Formular finden Sie in der Hilfe zu InfoPath 2010. Durch das Hinzufügen von CodeBehind oder Regeln kann zusätzliche Geschäftslogik für die Dateneingabe ausgeführt werden. Beispielsweise können Sie CodeBehind oder Regel hinzufügen, um sicherzustellen, dass das Format von eingegebenen Postleitzahlen stimmt oder der Länder-/Regionscode gültig ist. Sie können auch das Business-Konnektivitätsdienste (Business Connectivity Services)-Objektmodell im Code verwenden, um auf das externe System oder den BDC-Metadatenspeicher zuzugreifen. Formulare mit CodeBehind müssen auf dem Client voll vertrauenswürdig sein und erfordern Administratorrechte.

Wichtiger HinweisWichtig
  • Sie müssen mit dem Erstellen externer InfoPath-Listenformulare anhand der automatisch generierten InfoPath-Formulare von Business-Konnektivitätsdienste (Business Connectivity Services) beginnen.

  • Ein externes Listenformular kann keine Verbindung mit anderen Datenquellen herstellen. Das heißt, es sind keine sekundären Datenverbindung im Formular möglich.

  • Eine leere Ansicht wird generiert, wenn Sie ein externes Listenformular in InfoPath konvertieren und das SpecificFinder-Element komplexe Typen aufweist. Sie müssen die dataFields-Steuerelemente per Drag & Drop aus dem Aufgabebereich einfügen.

  • Wenn ein komplexer (oder benutzerdefinierter) Typ oder einer der Untertypen nicht mit den in Microsoft InfoPath verfügbaren Steuerelementen angezeigt werden kann, müssen Sie ein benutzerdefiniertes InfoPath-Steuerelement entwerfen und dieses Feld damit anzeigen.

  • Sie können dem Formular in InfoPath deklarative Regeln oder Geschäftslogik hinzufügen, ohne Code zu schreiben.

  • Sie können dem InfoPath-Formular CodeBehind hinzufügen, um zusätzliche Geschäftslogik für die Dateneingabe einzuschließen. Sie können auch das Business-Konnektivitätsdienste (Business Connectivity Services)-Objektmodell im Code verwenden, um auf das externe System oder den BDC-Metadatenspeicher zuzugreifen.

  • Serverseitige ASPX-Seiten für externe Listen können auf benutzerdefinierte InfoPath-Formulare verweisen. Solche Formular werden jedoch auf dem Client nicht gerendert, wenn die externe Liste offline geschaltet wird.

  • Wenn die Version des externen Inhaltstyps und des externen Listenformulars nicht übereinstimmt, können die Formulare möglicherweise nicht auf dem Server und dem Client ausgeführt werden, wenn sie offline geschaltet werden. In diesem Fall müssen Sie möglicherweise das Formular erneut auf dem Server veröffentlichen.