Partilhar via


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

Esta explicação passo a passo demonstra como adicionar uma página de aplicativo que exibe dados derivados de um fluxo de trabalho a um projeto de fluxo de trabalho. Ele se baseia no projeto descrito no tópico Demonstra Passo a passo: Criando um fluxo de trabalho com formulários de início e de associação.

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

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

  • Obtendo dados do projeto de fluxo de trabalho e manipulada.

  • Exibindo dados em uma tabela na página do 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 do Visual Studio.

Pré-requisitos

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

Corrigindo o código do fluxo de trabalho

Primeiro, adicione uma linha de código para o fluxo de trabalho para definir o valor da coluna de resultado para a quantidade de relatório de despesas. Esse valor é usado posteriormente o 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 concluído do tópico Demonstra Passo a passo: Criando um fluxo de trabalho com formulários de início e de associação em Visual Studio.

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

  3. Na parte inferior da createTask1_MethodInvoking método, 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, adicione um formulário ASPX ao projeto. Este formulário exibirá os dados obtidos a partir do projeto de fluxo de trabalho de relatório de despesas. Para fazer isso, você adicionará uma página de aplicativo. Uma página de aplicativo usa a mesma página mestra como outras páginas do SharePoint, que significa que ele será semelhante a outras páginas no site do SharePoint.

Para adicionar uma página de aplicativo para o projeto.

  1. Adicione uma página de aplicativo para o projeto. Clique com o botão direito no projeto ExpenseReport, aponte para Adde em seguida, clique em Novo Item. Use o nome padrão para o item de projeto: ApplicationPage1.aspx.

  2. No XML de ApplicationPage1.aspx, substitua o PlaceHolderMain seção 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, juntamente com um título.

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

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

Codificação da página de aplicativo

Em seguida, adicione código para a página de resumo do aplicativo de relatório de despesas. Quando você abre a página, o código examina a lista de tarefas no SharePoint para despesas que excedeu o limite de gastos alocado. O relatório lista cada item junto com a soma das despesas.

O código da página de aplicativo

  1. Clique em ApplicationPage1.aspx e, em seguida, clique em código na Exibir menu para exibir o código de página do aplicativo.

  2. Substituir o using ou Import instruções (dependendo da sua 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 para o Page_Load método:

    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://bauetest");
        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());
    }
    

Testando a página de aplicativo

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

Para testar a página de aplicativo

  1. Pressione F5 para executar e implantar o projeto no SharePoint.

  2. Clique o casa botão e, em seguida, exibir a lista de documentos compartilhados no site do SharePoint clicando o Documentos compartilhados link na barra Inicialização rápida.

  3. Para representar os relatórios de despesas para este exemplo, carregar alguns novos documentos para a lista de documentos clicando o documentos do link na LibraryTools guia na parte superior da página e, em seguida, em seguida, clicando no Carregar documento botão na faixa de ferramenta.

  4. Depois de carregar alguns documentos, criar uma instância do fluxo de trabalho. Clique em biblioteca na LibraryTools guia na parte superior da página e clique o Definições da biblioteca de botão na faixa de ferramenta.

  5. No documentos compartilhados: Listar configurações página, clique no As configurações de fluxo de trabalho vincular o permissões e gerenciamento seção.

  6. No As configurações de fluxo de trabalho página, clique no Adicionar um fluxo de trabalho link.

  7. No Adicionar um fluxo de trabalho página, selecione o ExpenseReport - Workflow1 o fluxo de trabalho, digite um nome para o fluxo de trabalho, como, por exemplo, ExpenseTest e então clique em próximo.

    O formulário de associação de fluxo de trabalho é exibida. Para usá-lo para relatar o valor de limite de despesas.

  8. No formulário de associação, digite 1000 para o Limite de aprovação automática caixa.

  9. Clique o doméstica o botão para retornar à home page do SharePoint.

  10. Clique o Documentos compartilhados link na barra Inicialização rápida.

  11. Aponte o mouse em um dos documentos carregados para exibir uma seta suspensa. Clique na seta suspensa e selecione fluxos de trabalho.

  12. Clique na imagem ao lado para o ExpenseTest para exibir o formulário de inicialização de fluxo de trabalho.

  13. No O Total de despesas caixa de texto, digite um valor maior que 1000 e, em seguida, clique em Iniciar o fluxo de trabalho.

    Quando uma despesa reportada excede o valor de despesas alocado, uma tarefa é adicionada à lista de tarefas. Uma coluna chamada ExpenseTest com o valor Completed também é adicionado ao item de relatório de despesas na lista de documentos compartilhados.

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

  15. Feche o navegador para interromper o programa.

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

    A página Resumo do relatório de despesas lista todos os relatórios de despesas que ultrapassasse o período alocado, a quantidade que eles excedido-lo e a quantidade total de todos os relatórios.

Próximas etapas

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

Você pode aprender mais sobre como criar conteúdo de página do SharePoint usando o Visual Web Designer em Visual Studio com estes tópicos:

Consulte também

Tarefas

Demonstra Passo a passo: Criando um fluxo de trabalho com formulários de início e de associação

Como: Criar uma página de aplicativo

Outros recursos

A criação de páginas de aplicativo para o SharePoint

Desenvolvimento de soluções do SharePoint