O Crystal Reports é um software que permite a criação de relatórios, gráficos.
A diferença deste tutorial é que o código para impressão é realizada via código. Observe que somente no final deste tutorial é que haverá mudança a este respeito.
Relatório de funcionários
Adicione um novo item:
- Botão direito no Solution Explorer no nome do projeto;
- Selecione Add / New Item.
Será aberta a janela abaixo:
Em Installed Templates, selecione Reporting e verifique se a opção ao lado é Crystal Reports.
Em Name, digite: rptFuncionarios.rpt e clique no botão Add.
Será exibida a janela abaixo:
Clique no botão OK.
Será exibida a janela abaixo:
Dê um clique no sinal de + da pasta Criar Nova Conexão.
Dê um clique no sinal de + da pasta OLE DB (ADO).
Será aberta a janela abaixo:
Selecione o provedor: Microsoft OLE DB Provider for SQL Server e clique no botão Avançar.
Será aberta a janela abaixo:
Deixe as configurações conforme abaixo:
Ovbserve que está sendo utilizado na opção Autenticação: Autenticação do SQL Server, por isso o usuário e a senha é sa. Caso não seja este tipo de autenticação, deixe selecionada a opção: Segurança Integrada.
Clique no botão Concluir. Será exibida a janela abaixo:
Clique no sinal de + do ícone bdFFolha e vá clicando até aparecer as tabelas funcionarios e folha. Veja imagem abaixo:
Selecione a tabela funcionarios.
Clique no botão >, para que a tabela seja passada para a janela da direita (Tabelas Selecionadas).
Clique no botão Avançar. Será exibida a janela abaixo:
Clique no botão >> para que os campos sejam passados para a janela da direita (Campos a Serem Exibidos). Clique no botão Concluir para encerrar. O relatório será exibido em sua estrutura.
Clique no botão Main Report View, para exibir os registros.
Para voltar a estrutura clique no botão Main Report.
Clique na caixa de ferramentas (ToolBox) e arraste o controle Text Object ao lado data impressão (na section 2 – Cabeçalho da Página), e conforme a imagem acima, digite: Relatório de Funcionários.
Clique com o botão direito sobre o conteúdo que você acabou digitar, e selecione Format Object.
Na guia Fonte, altere para negrito.
Clique com o botão direito sobre o rótulo: mun_codigo e selecione Edit Text Object, e altere o rótulo de cada um, deixando-os com a seguinte descrição:
Id, Funcionário, DtAdmissão e CTPS.
Formate-os com negrito e retire o sublinhado.
Alterando o formato da data da impressão
Clique com o botão direito sobre a data da impressão da section 2, e selecione Format Object. Deixe conforme figura abaixo:
A seguir, clique no botão Personalizar.
Na opção Ordem, selecione DMA, para que a data seja exibida no formato aqui do Brasil, ou seja: dia, mês e ano.
Confirme no botão OK, até voltar a estrutura do relatório.
Você pode alterar os dados, na forma que eles serão exibidos, ou seja: classificar uma determinada coluna em ordem.
Clique no menu Crystal Reports / Report / Record Sort Expert. Veja figura abaixo:
Clique no campo funcionarios.nome e depois no botão >, como mostra a figura acima.
Clique no botão OK para confirmar.
Clique no botão Main report preview, para visualizar o relatório.
Clique no botão Save All e feche esta janela.
Ligando o relatório com o Visual Studio
Crie um novo form com o nome: frmRFuncionarios e altere as propriedades:
Text: Relatório de Funcionários
WindowState: Maximized
Vá até a caixa de ferramentas e no grupo Elaborando Relatório, arraste o componente CrystalReportViewer dentro deste formulário. Veja figura abaixo:
O relatório ficará com a aparência abaixo:
Altere a propriedade Name para: rptRelatorio.
Duplo clique na barra de título do formulário.
Insira três bibliotecas no início deste form:
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.IO;
No evento Load deste form, insira as linhas abaixo:
string caminhoDiretorio = Path.GetDirectoryName(System.AppDomain.CurrentDomain.BaseDirectory.ToString()); // Obtém o caminho onde esta o relatório. Importante, que se você estiver dentro do visual studio, o relatório deverá estar na pasta bin\debug ou bin\release
string caminhoRelatorio = caminhoDiretorio + "\\rptMunicipios.rpt";
ReportDocument cr = new ReportDocument(); // Instancia a classe ReportDocument
cr.Load(caminhoRelatorio); // Carrega o relatório
rptRelatorio.ReportSource = cr; // Exibe
cr.Refresh(); // Atualiza o relatório, para que houver inclusões, alterações, exclusões, o conteúdo seja atualizado.
Será aberta a janela, sendo exibido os registros.
Vá até o form frmFuncionarios.
No botão imprimir, insira as linhas abaixo para carregar e exibir o relatório:
frmRRelatorio objRelatorio = new frmRRelatorio();
objRelatorio.ShowDialog();
Execute a aplicação e faça os testes.