Compartilhar via


Como a: Quiesce um modelo de formulário selecionado de uma lista

Para esta tarefa, um controle DataGridView é preenchida com uma lista dos modelos de forma que foram carregados para o servidor por um administrador. Essa lista corresponde à lista encontrada na página **** Manage Form Templates do site SharePoint 3.0 Central Administration e não inclui modelos forma User-deployed.

A forma requer dois botões e um **** controle DataGridView. O primeiro botão configura a grade de dados e, em seguida, chama uma rotina para preenchê-lo. O segundo botão quiesces o modelo forma selecionada na grade de dados e, em seguida, chama uma rotina para atualizar o grade de dados. Quiescing Um modelo forma bloqueia novas sessões sendo iniciado e permite atual sessões para expirar em um quadro tempo especificado. Consulte o Quiesce método M:Microsoft.Office.InfoPath.Server.Administration.FormTemplate.Quiesce(System.TimeSpan) para obter mais informações na forma modelo quiescing.

Dica

Este tópico assume que Microsoft Visual Studio 2005 está instalado no front-end da Web (WFE) ou servidor único farm execução Os serviços de formulários do InfoPath.

Configurar O Project

  1. Crie um novo Visual C# Windows Application projeto em Microsoft Visual Studio 2005.

  2. O menu do projeto, clique em Adicionar Referência .

  3. Na guia .NET da caixa diálogo Add Reference, selecione Windows ® SharePoint ® Services clique e OK.

  4. O menu do projeto, clique em Adicionar Referência novamente.

  5. Na guia Procurar do **** Add Reference caixa de diálogo, procurar para o Microsoft.Office.InfoPath.Server.dll Microsoft.Office.InfoPath.Server.dll assembly, geralmente localizado em C:\Program Files\Microsoft Office Servers\12.0\Bin\. Selecione o assembly e clique OK .

Adicionar controles e código do formulário

  1. Adicione o seguinte controles para a forma. Eles podem ser encontrados na categoria All Windows Forms do Visual Studio a Caixa de ferramentas :

    • Dois controles do botão

    • Um **** controle DataGridView

  2. Renomear o primeiro botão para "lista todos os modelos forma" e o segundo botão "modelo forma Quiesce" Modificando o propriedade Texto de cada botão na janela Propriedades ****.

  3. Reposicionar e redimensionar a forma e os controles até que todo o texto podem ser vistos nos botões e o controle DataGridView preenche a maioria da forma.

  4. O modo de exibição **** menu, clique em código .

  5. Cole a codificar abaixo o janela de código, substituindo todos os codificar existente.

  6. WindowsApplication1 no namespace namespace WindowsApplication1 WindowsApplication1 linha substitua o espaço para nome do seu aplicativo. O espaço para nome pode ser encontrado na Gerenciador de Soluções e janelas modo de exibição de classe.

  7. Clique em Form1.cs [Design] sobre o menu janela.

  8. O Janela de propriedades , clique no caixa drop-down list e selecione button1 .

  9. O Janela de propriedades , clique no botão o eventos, que é geralmente o quarto botão do lado esquerdo na linha de botões abaixo a caixa drop-down list.

  10. O **** ação seção, clique no drop-down para o evento Click e selecione Button2_Click .

  11. O Janela de propriedades , clique no caixa drop-down list e selecione button2 .

  12. O ação seção, clique no drop-down para o **** evento Click e selecione button1_Click .

  13. O arquivo menu, clique em salvar todos os .

  14. Pressione F5 para executar a forma e depuração de codificar.

Exemplo

Use os procedimentos acima para criar um novo aplicativo do Windows Visual C# que usa este exemplo de código a lista forma modelos em um servidor execução Os serviços de formulários do InfoPath e quiesce um modelo forma selecionado a lista.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.SharePoint.Administration;
using Microsoft.Office.InfoPath.Server.Administration;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //setup DataGridView1
            dataGridView1.ColumnCount = 4;
            dataGridView1.SelectionMode =
            DataGridViewSelectionMode.FullRowSelect;
            dataGridView1.ReadOnly = true;
            dataGridView1.MultiSelect = false;
            dataGridView1.Columns[0].Name = "Form Name";
            dataGridView1.Columns[1].Name = "Form ID";
            dataGridView1.Columns[2].Name = "Status";
            dataGridView1.Columns[3].Name = "Locale";
            //populate DataGridView1
            populateDataGrid();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            FormsService localFormsService;
            SPFarm localFarm = SPFarm.Local;
            
            try
            {
                localFormsService = localFarm.Services.GetValue<FormsService>(FormsService.ServiceName);
                //get the selected row
                DataGridViewSelectedCellCollection dgvsc = dataGridView1.SelectedCells;
                //get the FormID from the selected cells
                string fTempToQuiesce = dgvsc[1].Value.ToString();
                //quiesce the form template
                TimeSpan ftQuiesce = new TimeSpan(600000000); //1 minute
                localFormsService.FormTemplates.Item(fTempToQuiesce).Quiesce(ftQuiesce);
                //populate DataGridView1 again to show updated status
                populateDataGrid();
            }
            catch (Exception ex)
            {
                MessageBox.Show("An error occurred: " + ex.Message.ToString());
            }
        }

        private void populateDataGrid()
        {
            FormsService localFormsService;
            SPFarm localFarm = SPFarm.Local;

            //clear all rows if DataGridView1 has already been populated
            if (dataGridView1.Rows.Count > 0)
            {
                dataGridView1.Rows.Clear();
            }

            try
            {
                localFormsService = localFarm.Services.GetValue<FormsService>(FormsService.ServiceName);
                foreach (FormTemplate fTemplate in localFormsService.FormTemplates)
                {
                    //add each form template to the DataGridView1
                    dataGridView1.Rows.Add(fTemplate.DisplayName.ToString(), fTemplate.FormId.ToString(), fTemplate.QuiesceStatus.ToString(), fTemplate.Locale.ToString());
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("An error occurred: " + ex.Message.ToString());
            }
        }
    }
}

Consulte também

Outros recursos

Desenvolvendo aplicativos Windows para executar tarefas de administração dos serviços de formulários do InfoPath