Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser exemplarischen Vorgehensweise wird gezeigt, wie Sie einem Workflowprojekt eine Anwendungsseite hinzufügen, die aus einem Workflow abgeleitete Daten anzeigt. Es baut auf dem Projekt auf, das im folgenden Thema beschrieben wird: Exemplarische Vorgehensweise: Erstellen eines Workflows mit Zuordnungs- und Initiierungsformularen.
Diese exemplarische Vorgehensweise enthält die folgenden Aufgaben:
Hinzufügen einer ASPX-Anwendungsseite zu einem SharePoint-Workflowprojekt
Abrufen von Daten aus dem Workflowprojekt und Bearbeiten dieser Daten
Anzeigen von Daten in einer Tabelle auf der Anwendungsseite
Hinweis
Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren der IDE.
Voraussetzungen
Zum Abschließen dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:
Unterstützte Editionen von Microsoft Windows und SharePoint.
Visual Studio.
Sie müssen außerdem das Projekt im Thema Exemplarische Vorgehensweise: Erstellen eines Workflows mit Zuordnungs- und Initiierungsformularen abschließen.
Ändern des Workflowcodes
Fügen Sie zunächst eine Codezeile in den Workflow ein, um den Wert der Ergebnisspalte („Outcome“) auf den Betrag der Spesenabrechnung festzulegen. Dieser Wert wird später bei der Berechnung der Spesenabrechnung verwendet.
So legen Sie den Wert der Ergebnisspalte im Workflow fest
Laden Sie das fertige Projekt aus dem Thema Exemplarische Vorgehensweise: Erstellen eines Workflows mit Zuordnungs- und Initiierungsformularen in Visual Studio.
Öffnen Sie den Code für Workflow1.cs oder Workflow1.vb (je nach verwendeter Programmiersprache).
Fügen Sie am Ende der
createTask1_MethodInvoking-Methode den folgenden Code hinzu:
Erstellen einer Anwendungsseite
Als Nächstes fügen Sie dem Projekt ein ASPX-Formular hinzu. Dieses Formular zeigt Daten an, die aus dem Workflowprojekt zur Spesenabrechnung stammen. Dazu fügen Sie eine Anwendungsseite hinzu. Eine Anwendungsseite verwendet dieselbe Masterseite wie andere SharePoint-Seiten, d. h. sie ähnelt anderen Seiten auf der SharePoint-Website.
So fügen Sie dem Projekt eine Anwendungsseite hinzu
Wählen Sie das Projekt „ExpenseReport“ und dann in der Menüleiste die Optionen Projekt>Neues Element hinzufügen aus.
Wählen Sie im Bereich Vorlagen die Vorlage Anwendungsseite aus, übernehmen Sie den Standardnamen für das Projektelement (ApplicationPage1.aspx), und klicken Sie auf die Schaltfläche Hinzufügen.
Ersetzen Sie im XML-Code von „ApplicationPage1.aspx“ den Abschnitt
PlaceHolderMaindurch Folgendes:<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server"> <asp:Label ID="Label1" runat="server" Font-Bold="True" Text="Expenses that exceeded allotted amount" Font-Size="Medium"></asp:Label> <br /> <asp:Table ID="Table1" runat="server"> </asp:Table> </asp:Content>Dieser Code fügt der Seite eine Tabelle zusammen mit einem Titel hinzu.
Fügen Sie der Anwendungsseite einen Titel hinzu, indem Sie den Abschnitt
PlaceHolderPageTitleInTitleAreadurch den folgenden ersetzen:<asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server" > Expense Report Summary </asp:Content>
Codieren der Anwendungsseite
Als Nächstes fügen Sie der Anwendungsseite für die Zusammenfassung der Spesenabrechnung Code hinzu. Beim Öffnen der Seite überprüft der Code die Aufgabenliste in SharePoint auf Ausgaben, bei denen das zugewiesene Ausgabenlimit überschritten wurde. Der Bericht listet jeden Posten zusammen mit der Summe der Ausgaben auf.
So codieren Sie die Anwendungsseite
Wählen Sie den Knoten ApplicationPage1.aspx aus, und klicken Sie dann in der Menüleiste auf Ansicht>Code, um den Code hinter der Anwendungsseite anzuzeigen.
Ersetzen Sie (je nach verwendeter Programmiersprache) die Anweisungen using oder Import am Anfang der Klasse durch die folgenden:
Fügen Sie der
Page_Load-Methode folgenden Code hinzu:try { // Reference the Tasks list on the SharePoint site. // Replace "TestServer" with a valid SharePoint server name. SPSite site = new SPSite("http://TestServer"); SPList list = site.AllWebs[0].Lists["Tasks"]; // string text = ""; int sum = 0; Table1.Rows.Clear(); // Add table headers. TableHeaderRow hr = new TableHeaderRow(); hr.BackColor = Color.LightBlue; TableHeaderCell hc1 = new TableHeaderCell(); TableHeaderCell hc2 = new TableHeaderCell(); hc1.Text = "Expense Report Name"; hc2.Text = "Amount Exceeded"; hr.Cells.Add(hc1); hr.Cells.Add(hc2); // Add the TableHeaderRow as the first item // in the Rows collection of the table. Table1.Rows.AddAt(0, hr); // Iterate through the tasks in the Task list and collect those // that have values in the "Related Content" and "Outcome" // fields - the fields written to when expense approval is // required. foreach (SPListItem item in list.Items) { string s_relContent = ""; string s_outcome = ""; try { // Task has the fields - treat as expense report. s_relContent = item.GetFormattedValue("Related Content"); s_outcome = item.GetFormattedValue("Outcome"); } catch { // Task does not have fields - skip it. continue; } if (!String.IsNullOrEmpty(s_relContent) && !String.IsNullOrEmpty(s_outcome)) { // Convert amount to an int and keep a running total. sum += Convert.ToInt32(s_outcome); TableCell relContent = new TableCell(); relContent.Text = s_relContent; TableCell outcome = new TableCell(); outcome.Text = "$" + s_outcome; TableRow dataRow2 = new TableRow(); dataRow2.Cells.Add(relContent); dataRow2.Cells.Add(outcome); Table1.Rows.Add(dataRow2); } } // Report the sum of the reports in the table footer. TableFooterRow tfr = new TableFooterRow(); tfr.BackColor = Color.LightGreen; // Create a TableCell object to contain the // text for the footer. TableCell ftc1 = new TableCell(); TableCell ftc2 = new TableCell(); ftc1.Text = "TOTAL: "; ftc2.Text = "$" + Convert.ToString(sum); // Add the TableCell object to the Cells // collection of the TableFooterRow. tfr.Cells.Add(ftc1); tfr.Cells.Add(ftc2); // Add the TableFooterRow to the Rows // collection of the table. Table1.Rows.Add(tfr); } catch (Exception errx) { System.Diagnostics.Debug.WriteLine("Error: " + errx.ToString()); }Warnung
Ersetzen Sie „TestServer“ im Code durch den Namen eines gültigen Servers, auf dem SharePoint ausgeführt wird.
Testen der Anwendungsseite
Überprüfen Sie als Nächstes, ob die Anwendungsseite die Ausgabendaten korrekt anzeigt.
So testen Sie die Anwendungsseite
Drücken Sie F5, um das Projekt auszuführen und in SharePoint bereitzustellen.
Klicken Sie auf die Schaltfläche Start und dann auf die Verknüpfung Gemeinsame Dokumente in der Schnellstartleiste, um die Liste „Gemeinsame Dokumente“ für die SharePoint-Website anzuzeigen.
Zur Darstellung von Spesenabrechnungen für dieses Beispiel laden Sie einige neue Dokumente in die Liste hoch, indem Sie oben auf der Seite auf der Registerkarte Bibliothekstools den Link Dokumente auswählen und dann in der Symbolleiste auf die Schaltfläche Dokument hochladen klicken.
Nachdem Sie einige Dokumente hochgeladen haben, instanziieren Sie den Workflow, indem Sie oben auf der Seite auf der Registerkarte Bibliothekstools den Link Bibliothek auswählen und dann im Menüband auf die Schaltfläche Bibliothekseinstellungen klicken.
Wählen Sie auf der Seite Dokumentbibliothekseinstellungen im Abschnitt Berechtigungen und Verwaltung den Link Workfloweinstellungen aus.
Wählen Sie auf der Seite Workfloweinstellungen den Link Workflow hinzufügen aus.
Wählen Sie auf der Seite Workflow hinzufügen den Workflow ExpenseReport – Workflow1 aus, geben Sie einen Namen für den Workflow ein (z. B. ExpenseTest), und klicken Sie dann auf die Schaltfläche Weiter.
Das Formular „Workflowzuordnung“ wird angezeigt. Verwenden Sie es, um das Ausgabenlimit zu melden.
Geben Sie im Zuordnungsformular in das Feld Automatisches Genehmigungslimit den Wert 1000 ein, und klicken Sie dann auf die Schaltfläche Workflow zuordnen.
Wählen Sie die Schaltfläche Start aus, um zur SharePoint-Startseite zurückzukehren.
Wählen Sie auf der Schnellstartleiste den Link Freigegebene Dokumente aus.
Zeigen Sie auf eines der hochgeladenen Dokumente, um einen Dropdownpfeil anzuzeigen, klicken Sie darauf, und wählen Sie dann das Element Workflows aus.
Wählen Sie das Bild neben „ExpenseTest“ aus, um das Formular zur Workflowinitiierung anzuzeigen.
Geben Sie in das Textfeld Ausgaben gesamt einen Wert ein, der größer als 1000 ist, und klicken Sie dann auf die Schaltfläche Workflow starten.
Wenn eine gemeldete Ausgabe den zugewiesenen Ausgabenbetrag überschreitet, wird eine Aufgabe zur Aufgabenliste hinzugefügt. Außerdem wird dem Spesenabrechnungselement in der Liste „Freigegebene Dokumente“ eine Spalte mit dem Namen ExpenseTest und dem Wert Erledigt hinzugefügt.
Wiederholen Sie die Schritte 11 bis 13 mit anderen Dokumenten in der Liste „Freigegebene Dokumente“: (Die genaue Anzahl der Dokumente ist nicht wichtig.)
Zeigen Sie die Anwendungsseite mit der Zusammenfassung der Spesenabrechnung an, indem Sie die folgende URL in einem Webbrowser öffnen: http://SystemName/_layouts/ExpenseReport/ApplicationPage1.aspx.
Auf der Seite mit der Zusammenfassung der Spesenabrechnungen werden alle Spesenabrechnungen, die den zugewiesenen Betrag überschritten haben, der Überschreitungsbetrag und der Gesamtbetrag für alle Berichte aufgelistet.
Zugehöriger Inhalt
- Erstellen von Anwendungsseiten für SharePoint
- Erstellen von Webparts für SharePoint
- Erstellen von wiederverwendbaren Steuerelementen für Webparts oder Anwendungsseiten
- Exemplarische Vorgehensweise: Erstellen eines Workflows mit Zuordnungs- und Initiierungsformularen
- How to: Erstellen einer Anwendungsseite
- Entwickeln von SharePoint-Lösungen