Instruções passo a passo: criando um relatório
LightSwitch não tem recursos internos de relatório, mas você pode criar impressão e relatórios de um aplicativo de LightSwitch integrando Word.Você pode automatizar o relatório usando o Visual Studio e APIs para Palavras, mas a extensão de LightSwitch do bloco de integração do Office simplifica a tarefa.
Usando o bloco de integração do Office, você pode facilmente automatizar Word 2010, Excel 2010, e Outlook 2010 em uma variedade de maneiras.Por exemplo, você pode exportar e importar dados, criar documentos e relatórios, e trabalho com o email e as nomeações.Você pode baixar a extensão do bloco de integração do Office para libera-se do CodePlex.
Pré-requisitos
Essa explicação passo a passo requer os seguintes componentes:
Crie o modelo de relatório
Primeiro, você cria um documento do Word que serve como um modelo para o relatório.
Para criar o modelo de relatório
Abra Word 2010.
Um novo documento em branco aparece.
Na parte superior do documento, tipo Catálogo de produto de PrescriptionContoso.
Realçar o texto e, em seguida, no grupo de Estilos do guia de Início em fita, escolha o comando de Título .
Mover o cursor abaixo de título e, em seguida, na guia de Inserir , escolha o comando de Tabela , e então escolha o comando de Inserir Tabela .
A caixa de diálogo Insert Table aparece.
Na caixa de texto Número de colunas , entre em 5, e em seguida, na caixa de texto Número de linhas , digite em 2.
Escolha o botão de opção Ajustar-se Automaticamente à Janela e clique no botão OK.
Na primeira linha da tabela, insira os seguintes títulos de coluna: Identificação do produto, Produto, Descrição, Preço, e Empacotar.
Realce a tabela, e em seguida, no grupo de Links do guia de Inserir , escolha o comando de Indicador .
Na caixa de diálogo Indicador , nomeie o indexador Catálogo, escolha o botão de Adicionar .
No grupo de Configurar página guia de Layout de Página , escolha o comando de Orientação , escolha o comando de Paisagem .
Na guia de Arquivo , escolha o comando de Salvar como .
Na caixa de diálogo Salvar como , abra a pasta de Meus Documentos , nomeie o arquivo Catálogo de produto, e então escolha o botão de Salvar .
Na guia de Arquivo , escolha o comando de Sair .
Adicione um relatório o aplicativo
Depois de criar o modelo de relatório, você permite a extensão do bloco de integração do Office, adicione um botão à barra de ferramentas do aplicativo, e adicione o código para criar relatórios.Você também pode alterar o tipo de documento.
Observação |
---|
Se você não tiver criado anteriormente o aplicativo de exemplo de clínica da visão, você primeiro precisará instalar e configurar o banco de dados de PrescriptionContoso, que é baixado como parte do pacote de exemplo.Abra o arquivo de Install.htm, e então siga as instruções para instalar o banco de dados. |
Para ativar a extensão
Na barra de menus de Visual Studio , escolha Arquivo, Abrir, Projeto/Solução.
Localize o arquivo de Visão Clinic.sln , escolha o botão de Abrir .
Em Gerenciador de Soluções, abra o menu de atalho para o nó de Propriedades , e então escolha Abrir.
No designer de aplicativo, escolha o guia de Extensões , selecione a caixa de seleção Bloco de integração do Office .
Para criar relatórios
Em Gerenciador de Soluções, abra o menu de atalho para o nó da tela de ProductList , escolha Abrir.
No painel de conteúdo da árvore, expanda o nó de Barra de Comandos da Tela , escolha Adicionar, Novo Botão.
Na caixa de diálogo Adicionar Botão , nomeie o botão que você está criando Catálogo, escolha o botão de OK .
Abra o menu de atalho para o botão de Catálogo , e escolha A edição executa o código.
Em Editor de Códigos, digite a seguinte instrução imports ou de usar na parte superior do arquivo:
Imports OfficeIntegration
Using OfficeIntegration;
Adicione o seguinte código ao método de Catalog_Execute:
' Function to format a field as Currency. Dim formatPrice = Function(x As Decimal) As String Return Format(x, "c2") End Function ' Map the Word column names to the entity column names. Dim mapContent As New List(Of ColumnMapping) mapContent.Add(New ColumnMapping("ProductID", "ProductID")) mapContent.Add(New ColumnMapping("ProductName", "ProductName")) mapContent.Add(New ColumnMapping("Description", "Description")) ' Format the price as Currency using the Function created above. mapContent.Add(New ColumnMapping("CurrentPrice", "CurrentPrice", FormatDelegate:=formatPrice)) mapContent.Add(New ColumnMapping("ProductImage", "ProductImage")) ' Define the document object. Dim doc As Object = Word.GenerateDocument(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Product Catalog.docx", Me.Products.SelectedItem, mapContent) ' Export the document object to Word. Word.Export(doc, "Catalog", 2, False, Me.Products, mapContent)
{ // Function to format a field as Currency. dynamic formatPrice = (decimal x) => { return Strings.Format(x, "c2"); }; // Map the Word column names to the entity column names. List<ColumnMapping> mapContent = new List<ColumnMapping>(); mapContent.Add(new ColumnMapping("ProductID", "ProductID")); mapContent.Add(new ColumnMapping("ProductName", "ProductName")); mapContent.Add(new ColumnMapping("Description", "Description")); // Format the price as Currency using the Function created above. mapContent.Add(new ColumnMapping("CurrentPrice", "CurrentPrice", FormatDelegate: formatPrice)); mapContent.Add(new ColumnMapping("ProductImage", "ProductImage")); // Define the document object. object doc = Word.GenerateDocument(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Product Catalog.docx", this.Products.SelectedItem, mapContent); // Export the document object to Word. Word.Export(doc, "Catalog", 2, false, this.Products, mapContent); }
Na barra de menus, escolha Depurar, Iniciar Depuração para executar o aplicativo.
No menu de Tarefas , escolha Lista de Produtos, escolha o botão de Catálogo para exibir o relatório.
(Opcional) adicione o seguinte código ao final do método de Catalog_Execute para salvar e exibir o relatório em um formato de .pdf:
Word.SaveAsPDF(doc, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Product Catalog.pdf", True)
Word.SaveAsPDF(doc, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Product Catalog.pdf", true);
Próximas etapas
Explore os APIs no namespace de OfficeIntegration para descobrir muito mais coisas que você pode fazer usando o bloco de integração do Office.