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
Crie um novo Visual C# Windows Application projeto em Microsoft Visual Studio 2005.
O menu do projeto, clique em Adicionar Referência .
Na guia .NET da caixa diálogo Add Reference, selecione Windows ® SharePoint ® Services clique e OK.
O menu do projeto, clique em Adicionar Referência novamente.
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
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
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 ****.
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.
O modo de exibição **** menu, clique em código .
Cole a codificar abaixo o janela de código, substituindo todos os codificar existente.
WindowsApplication1
no namespacenamespace 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.Clique em Form1.cs [Design] sobre o menu janela.
O Janela de propriedades , clique no caixa drop-down list e selecione button1 .
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.
O **** ação seção, clique no drop-down para o evento Click e selecione Button2_Click .
O Janela de propriedades , clique no caixa drop-down list e selecione button2 .
O ação seção, clique no drop-down para o **** evento Click e selecione button1_Click .
O arquivo menu, clique em salvar todos os .
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());
}
}
}
}