Partilhar via


Passo a passo: Adicionar uma página de aplicativo para um fluxo de trabalho.

Essa explicação passo a passo demonstra como adicionar uma página de aplicativo que exibe os dados derivados de um fluxo de trabalho a um projeto de fluxo de trabalho.Compila o projeto descrito no Passo a passo: Criando um fluxo de trabalho com formulários de iniciação e associação.

Essa explicação passo a passo demonstra as seguintes tarefas:

  • Adicionando uma página ASPX de aplicativo a um projeto de fluxo de trabalho do SharePoint.

  • Obtendo dados de projeto e de manipulá-lo de fluxo de trabalho.

  • Exibindo dados em uma tabela na página de aplicativo.

ObservaçãoObservação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações de Visual Studio.

Pré-requisitos

Para completar este passo-a-passo, são necessários os seguintes componentes:

Modificando o código de fluxo de trabalho

Primeiro, adicione uma linha de código para o fluxo de trabalho para definir o valor da coluna de resultado à quantidade de relatório de despesas.Esse valor é usado posteriormente no cálculo de resumo de relatório de despesas.

Para definir o valor da coluna de resultado no fluxo de trabalho

  1. Carregar o projeto terminado do tópico Passo a passo: Criando um fluxo de trabalho com formulários de iniciação e associação em Visual Studio.

  2. Abra o código para Workflow1.cs ou Workflow1.vb (dependendo da linguagem de programação).

  3. Em a parte inferior do método de createTask1_MethodInvoking , adicione o seguinte código:

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

Criando uma página de aplicativo

Em seguida, adicionar um formulário ASPX ao projeto.Este formulário exibirá os dados obtidos do projeto de fluxo de trabalho do relatório de despesas.Para fazer isso, você adicionará uma página do aplicativo.Uma página de aplicativo usa a mesma página mestra que outras páginas do SharePoint, o que significa que se assemelhará para outras páginas no site do SharePoint.

Para adicionar uma página de aplicativo ao projeto

  1. Escolha o projeto de ExpenseReport e, em seguida, na barra de menu, escolha Projeto, Adicionar novo item.

  2. Em o painel de Modelos , escolha o modelo de página de aplicativo , use o nome padrão para o item de projeto (ApplicaitonPage1.aspx), e clique no botão Adicionar .

  3. Em XML de ApplicationPage1.aspx, substitua a seção de PlaceHolderMain com o seguinte:

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

    Este código adiciona uma tabela para a página como um título.

  4. Adicione um título para a página de aplicativo substituindo a seção de PlaceHolderPageTitleInTitleArea com o seguinte:

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

Codificando a página de aplicativo

Em seguida, adicione o código para a página de aplicativo de resumo de relatório de despesas.Quando você abre a página, o código verifique a lista de tarefas no SharePoint para as despesas que excederam o limite de despesas atribuído.Listas de relatório cada item juntamente com a soma das despesas.

O código para a página de aplicativo

  1. Escolha o nó de ApplicationPage1.aspx e, em seguida, na barra de menu, escolha Modo de Visualização, Código para exibir o código da página de aplicativo.

  2. Substitua as declarações de using ou de Import (dependendo da linguagem de programação) na parte superior da classe com o seguinte:

    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. Adicione o seguinte código ao método de Page_Load :

    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());
    }
    
    Observação de cuidadoCuidado

    Certifique-se de substituir “TestServer” no código com o nome de um servidor válido que está executando o SharePoint.

Testando a página de aplicativo

Em seguida, determina se a página de aplicativo exibe os dados de despesas corretamente.

Para testar a página de aplicativo

  1. Escolha a tecla F5 para executar o e implantar o projeto ao SharePoint.

  2. Escolha o botão Início , e então escolha o link de documentos compartilhados na barra de QuickLaunch para exibir documentos compartilhados listam no site do SharePoint.

  3. Para representar os relatórios de despesa para esse exemplo, alguns novos carregar documentos em documentos listam escolhendo o link de Documentos na guia de LibraryTools na parte superior da página e então escolha o botão Carregar Documento em fita de ferramenta.

  4. Depois que você carrega documentos, alguns instanciar o fluxo de trabalho escolhendo o link de Biblioteca na guia de LibraryTools na parte superior da página e então escolha o botão Configurações de biblioteca em fita de ferramenta.

  5. Em a página de Configurações de biblioteca de documentos , escolha o link de Configurações de fluxo de trabalho na seção de permissões e gerenciamento .

  6. Em a página de Configurações de fluxo de trabalho , escolha o link de Adicione um fluxo de trabalho .

  7. Em a página de Adicione um fluxo de trabalho , escolha o fluxo de trabalho de ExpenseReport - Workflow1 , digite um nome para o fluxo de trabalho, como ExpenseTest, e então escolha o botão Avançar .

    O formulário de associação de fluxo de trabalho aparece.Use para relatar a quantidade do limite de despesas.

  8. Em o formulário de associação, entre em 1000 na caixa de Aprovação de associação automática , e então escolha o botão Fluxo de trabalho do associado .

  9. Escolha o botão Início para retornar à página inicial do SharePoint.

  10. Escolha o link de documentos compartilhados na barra de QuickLaunch.

  11. Escolha um dos documentos carregados para exibir uma seta suspensa, escolha, e escolha o item de fluxos de trabalho .

  12. Escolha a imagem ao lado do ExpenseTest para exibir o formulário de iniciação pelo fluxo de trabalho.

  13. Em a caixa de texto de Total de despesas , insira um valor que é maior que 1000, e então escolha o botão Fluxo de trabalho de Início .

    Quando um custo relatada excede a quantidade de despesas atribuída, uma tarefa é acrescentada à lista de tarefas.Uma coluna chamada ExpenseTest com o valor Concluído também é adicionada ao item de relatório de despesas na lista de documentos compartilhados.

  14. Repita as etapas 11 - 13 com outros documentos na lista de documentos compartilhados.(O número exacto de documentos não é importante.)

  15. Exibir a página de aplicativo de resumo de relatório de despesas abrindo o seguinte URL em um navegador da Web: http://SystemName/_layouts/ExpenseReport/ApplicationPage1.aspx.

    O relatório de despesas a página de resumo lista todas as despesas relata que excedido a quantidade atribuída, a quantidade eles a excedeu por, e qualquer quantidade total para relatórios.

Próximas etapas

Para obter mais informações sobre páginas de aplicativo do SharePoint, consulte Criação de páginas de aplicativo para o SharePoint.

Você pode aprender mais sobre como criar conteúdo da página do SharePoint usando o designer visual Web no Visual Studio de esses tópicos:

Consulte também

Tarefas

Passo a passo: Criando um fluxo de trabalho com formulários de iniciação e associação

Como: criar uma página de aplicativo

Outros recursos

Criação de páginas de aplicativo para o SharePoint

Desenvolvimento de soluções do SharePoint