Sdílet prostřednictvím


Návod: Přidání stránky aplikace do pracovního postupu

Tento návod ukazuje, jak přidat na stránku zobrazující data odvozené z pracovního postupu projektu pracovního postupu aplikace.Sestavení projektu popsané v tématu Návod: Vytvoření pracovního postupu pomocí formulářů přidružení a inicializace.

Tento návod demonstruje následující úkoly:

  • Přidání stránky ASPX aplikace pracovního postupu projektu služby SharePoint.

  • Získání dat z pracovního postupu projektu a manipulaci.

  • Zobrazení dat v tabulce na stránce aplikace.

[!POZNÁMKA]

Na vašem počítači se můžou v následujících pokynech zobrazovat jiné názvy nebo umístění některých prvků uživatelského rozhraní Visual Studia. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.

Požadavky

Chcete-li dokončit tento návod, potřebujete následující komponenty:

Změnu kódu pracovního postupu

Nejprve přidejte řádek kódu pracovního postupu nastavte hodnotu ve sloupci výsledek ve výši vyúčtování.Tato hodnota je použita později v souhrnný výpočet sestavy výdajů.

Nastavte hodnotu ve sloupci výsledek pracovního postupu

  1. Dokončení projektu načíst z tématu Návod: Vytvoření pracovního postupu pomocí formulářů přidružení a inicializace do Visual Studio.

  2. Spusťte kód Workflow1.cs nebo Workflow1.vb (v závislosti na programovacím jazyku).

  3. Na konec createTask1_MethodInvoking metoda, přidejte následující kód:

    createTask1_TaskProperties1.ExtendedProperties("Outcome") = 
      workflowProperties.InitiationData
    
    createTask1_TaskProperties1.ExtendedProperties["Outcome"] = 
      workflowProperties.InitiationData;
    

Vytvoření stránky aplikace

Dále přidejte pomocí formuláře ASPX do projektu.Tento formulář se zobrazí data získaná z pracovního postupu projektu sestavy výdajů.Chcete-li to provést, přidejte stránku aplikace.Stránku aplikace používá stejnou stránku předlohy jako ostatní stránky služby SharePoint, což znamená, že bude vypadat podobně jako ostatní stránky na webu služby SharePoint.

Chcete-li přidat stránku aplikace do projektu

  1. Zvolte projekt ExpenseReport a pak v řádku nabídek zvolte projektu, Přidat novou položku.

  2. V šablony podokně zvolte Stránku aplikace šablony, použijte výchozí název pro položku projektu (ApplicaitonPage1.aspx) a zvolte Přidat tlačítko.

  3. V XML z ApplicationPage1.aspx, nahradit PlaceHolderMain sekce s následující:

    <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>
    

    Tento kód přidá na stránku a název tabulky.

  4. Přidání nadpisu stránky aplikace nahrazením PlaceHolderPageTitleInTitleArea sekce s následující:

    <asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server" >
        Expense Report Summary
    </asp:Content>
    

Kódování stránky aplikace

Dále přidejte kód do stránky aplikace souhrnné sestavy výdajů.Při otevření stránky kód prohledá seznam úkolů služby SharePoint pro výdaje, které překročil limit výdajů přidělených.V sestavě jsou uvedeny jednotlivé položky a částka výdajů.

Chcete-li kód stránky aplikace

  1. Zvolte ApplicationPage1.aspx uzlu a pak v řádku nabídek zvolte zobrazení, kód k zobrazení kódu na pozadí stránky aplikace.

  2. Nahradit using nebo Import příkazy (v závislosti na programovacím jazyku) v horní části třídy s následujícím:

    Imports System
    Imports Microsoft.SharePoint
    Imports Microsoft.SharePoint.WebControls
    Imports System.Collections
    Imports System.Data
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    Imports System.Web.UI.WebControls.WebParts
    Imports System.Drawing
    Imports Microsoft.SharePoint.Navigation
    
    using System;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.WebControls;
    using System.Collections;
    using System.Data;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Drawing;
    using Microsoft.SharePoint.Navigation;
    
  3. Do metody Page_Load přidejte následující kód:

    Try
        ' Reference the Tasks list on the SharePoint site.
        ' Replace "TestServer" with a valid SharePoint server name.
        Dim site As SPSite = New SPSite("http://TestServer")
        Dim list As SPList = site.AllWebs(0).Lists("Tasks")
        ' string text = "";
        Dim sum As Integer = 0
        Table1.Rows.Clear()
        ' Add table headers.
        Dim hr As TableHeaderRow = New TableHeaderRow
        hr.BackColor = Color.LightBlue
        Dim hc1 As TableHeaderCell = New TableHeaderCell
        Dim hc2 As TableHeaderCell = 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.
        For Each item As SPListItem In list.Items
            Dim s_relContent As String = ""
            Dim s_outcome As String = ""
            Try
                ' Task has the fields - treat as expense report.
                s_relContent = item.GetFormattedValue("Related Content")
                s_outcome = item.GetFormattedValue("Outcome")
            Catch erx As System.Exception
                ' Task does not have fields - skip it.
                Continue For
            End Try
            ' Convert amount to an int and keep a running total.
            If (Not String.IsNullOrEmpty(s_relContent) And Not 
              String.IsNullOrEmpty(s_outcome)) Then
                sum = (sum + Convert.ToInt32(s_outcome))
                Dim relContent As TableCell = New TableCell
                relContent.Text = s_relContent
                Dim outcome As TableCell = New TableCell
                outcome.Text = ("$" + s_outcome)
                Dim dataRow2 As TableRow = New TableRow
                dataRow2.Cells.Add(relContent)
                dataRow2.Cells.Add(outcome)
                Table1.Rows.Add(dataRow2)
            End If
        Next
        ' Report the sum of the reports in the table footer.
        Dim tfr As TableFooterRow = New TableFooterRow
        tfr.BackColor = Color.LightGreen
        ' Create a TableCell object to contain the 
        ' text for the footer.
        Dim ftc1 As TableCell = New TableCell
        Dim ftc2 As TableCell = 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 errx As Exception
        System.Diagnostics.Debug.WriteLine(("Error: " + errx.ToString))
    End Try
    
    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());
    }
    
    Poznámka k upozorněníUpozornění

    Je nutné nahradit "TestServer" v kódu název platný název serveru se službou SharePoint.

Testování stránky aplikace

Dále určete, zda stránky aplikace správně zobrazí data výdajů.

Otestování stránky aplikace

  1. Zvolte klávesu F5 pro spuštění a nasazení projektu služby SharePoint.

  2. Zvolte Home tlačítko a potom zvolte Sdílené dokumenty odkaz na panel Rychlé spuštění, chcete-li zobrazit seznam sdílených dokumentů na webu služby SharePoint.

  3. Znázornit vyúčtování v tomto případě odeslat některé nové dokumenty do seznamu dokumentů výběrem dokumenty odkaz na LibraryTools karty v horní části stránky a pak volbou Uložit dokument tlačítko na pásu karet nástroje.

  4. Po odeslání některé dokumenty vytvořit instanci pracovního postupu pomocí příkazu Knihovna odkaz na LibraryTools karty v horní části stránky a pak volbou Nastavení knihovny tlačítko na pásu karet nástroje.

  5. V Nastavení knihovny dokumentů zvolte Nastavení pracovního postupu propojit oprávnění a správa oddílu.

  6. V Nastavení pracovního postupu stránky, zvolte Přidat pracovní postup odkaz.

  7. V Přidat pracovní postup stránky, zvolte ExpenseReport - Workflow1 pracovního postupu, zadejte název pracovního postupu, například ExpenseTest a pak zvolte Další tlačítko.

    Zobrazí se formulář přidružení pracovního postupu.Sestava se používá maximální částka výdajů.

  8. V přidružovacím formuláři zadejte 1000 do Limit pro automatické schvalování pole a pak zvolte Přidružení pracovního postupu tlačítko.

  9. Zvolte domácí tlačítko se vrátíte na domovskou stránku služby SharePoint.

  10. Zvolte Sdílené dokumenty odkaz na panel Rychlé spuštění.

  11. Zvolte jednu z odeslaných dokumentů zobrazit šipku rozevíracího seznamu, vyberte ji a pak zvolte postupy zboží.

  12. Zvolte Obraz u ExpenseTest zobrazení spouštěcího formuláře pracovního postupu.

  13. V Celkové výdaje textového pole zadejte hodnotu, která je větší než 1000 a pak zvolte Zahájit pracovní postup tlačítko.

    Vykázané výdaje překročí částku přidělených výdajů, je úkol přidán do seznamu úkolů.Sloupec s názvem ExpenseTest s hodnotou Dokončeno je také přidán do položky vyúčtování výdajů v seznamu Sdílené dokumenty.

  14. Opakujte kroky 11-13 s jinými dokumenty v seznamu Sdílené dokumenty. (Přesný počet dokumentů není důležité.)

  15. Stránka Souhrn aplikací sestavy výdajů zobrazit otevřením následující adresy URL ve webovém prohlížeči: http://SystemName/_layouts/ExpenseReport/ApplicationPage1.aspx.

    Na stránce souhrnné sestavy výdajů jsou uvedeny všechny sestavy výdajů, které překračují přidělené množství, částka, kterou je podle překročení a celkovou částku pro všechny sestavy.

Další kroky

Další informace o použití stránek služby SharePoint naleznete v tématu Vytváření stránek aplikací pro službu SharePoint.

Můžete další informace o navrhování obsahu stránky služby SharePoint pomocí vizuálního návrháře webu v aplikaci Visual Studio tato témata:

Viz také

Úkoly

Návod: Vytvoření pracovního postupu pomocí formulářů přidružení a inicializace

Postupy: Vytvoření stránky aplikace

Další zdroje

Vytváření stránek aplikací pro službu SharePoint

Vývoj řešení služby SharePoint