Desenvolvimento - Visual Basic .NET
Pequeno projeto de controle de pedidos de uma pizzaria em Visual Basic .Net - Parte 5
Quinto artigo. Ao final, teremos um pequeno, porém importante projeto que servirá como base para o desenvolvimento de projetos maiores. É importante que você acompanhe as explicações de todas as partes do código. O objetivo desse material é ser uma referência básica para seus futuros projetos. O modelo de programação está bem baseado no VB6. Existem outros orientados a objeto. Não foi o intuito neste artigo explorá-lo.
por Marcos Roberto de MoraesNos artigos anteriores codificamos o formulário de clientes, produtos e um formulário genérico de pesquisa, o qual se pode reutilizar para a pesquisa das demais tabelas do nosso projeto, como a de produtos, por exemplo. Também codificamos o formulário de pedidos de pizza, o primeiro que lidou com a abertura e conexão ao banco trabalhando com quatro tabelas diferentes: clientes, produtos, pedidos e pedidositens.
Neste artigo (parte 5) e no último (parte 6) terminaremos a aplicação criando dois relatórios no Crystal Reports, o relatório simples de telefones de clientes (parte 5), e o relatório de Pedidos (parte 6 -final).
Deixarei como atividade um relatório similar ao final deste artigo, para quem quiser praticar mais.
Formulário de Pedidos:
No artigo passado codificamos o formulário acima, agora precisamos incluir o código para acessar o relatório de pedidos no momento do fechamento onde colocamos um msgbox, informando a continuação do assunto do artigo anterior.
Abaixo, altere o código do botão fechar onde deixei em vermelho:
1) Código do botão fechar comentado.
Private Sub cmdFechar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFechar.Click
Dim data As Date = TxtData.Text
Dim hora As Date = TxtHora.Text
"exibe mensagem de sucesso
MsgBox("Pedido efetuado com sucesso", 16, "Entregar a PIZZA")
MsgBox("Próxima aula, nesse local, colocaremos " _
& " rotina para exibir o relatório do pedido criado", 64, "Aviso")
Retire essas linhas sublinhadas e acrescente a linha em vermelho.
"" aqui acrescente essas duas linhas
RelPedidos.Tag = TxtIdPedido.Text
RelPedidos.Show()
Me.Close()
End Sub
Essas duas linhas em vermelho serão responsável por passar respectivamente passar o parâmetro de busca (que é o filtro pelo número do pedido) e chamar o formulário que criaremos chamado RelPedidos, que conterá dentro dele o relatório com o pedido do cliente.
Porém faremos isso depois. Agora, vamos aprender a usar o Crystal Reports criando um relatório mais simples, que usa apenas uma tabela, como o de Clientes por exemplo.
Crystal Reports
O Crystal Reports é uma das mais conhecidas ferramenta de geração de relatórios e está integrada ao ambiente do Visual Studio, desta forma temos facilitada a tarefa de desenvolver relatórios para os nossos projetos.
Para exemplificar utilizaremos a nossa aplicação como base para a criação de três relatórios em ordem de dificuldade crescente (se isso fosse possível J).
Preparando o ambiente
Criando um DataSet de conexão que será utilizado apenas para criar os Relatórios.
1) Clique no menu Data – Add New Data Source ... [próxima figura]
2) Selecione Database e clique no botão Next na janela Data Source Configuration Wizard.
3) Na próxima janela selecione o a conexão com o Banco Pizza.mdf e depois clique no botão Next. [veja figura]
4) Dê o nome para a conexão de PizzariaDataSet e clique em [Next >]
5) Selecione todas as tabelas, dê o nome para o DataSet de PizzariaDataSet e clique em [Finish]
6) O Resultado será a apresentação do DataSet de nome PizzariaDataSet na janela do Solution Explorer.
7) Dê um clique duplo sobre o DataSet PizzariaDataSet.xsd, você terá como resultado o modelo lógico do Banco de Dados.
Primeiro Exemplo
1) Vamos Acrescentar no Menu Principal do formulário MdiPrincipal o Item Relatórios, com os seguintes Itens à Lista Telefônica Clientes, à Clientes.
Veja a figura:
1) Agora acrescente uma nova pasta para melhor organização do nosso projeto. Botão direito sobre o nome do projeto – Add – New Folder. Chame essa pasta de Relatorios.
2) Dentro dessa pasta (Relatorios) crie um novo formulário. Dê o nome para ele de “FrmTelefones.vb” e salve.
3) Clique com o botão direito do mouse sobre o nome da Pasta Relatórios e acrescente um novo Item (Add.. New Item...) chamada Crystal Reports. Dê o nome de RptTelefones.rpt. Veja a figura:
4) Clique no Botão ADD, nesse momento você verá a caixa de diálogo chamada Crystal Reports Gallery. No primeiro GroupBox você tem três opções:
1. Using the Report Wizard è assistente para a criação de relatórios com o Crystal Reports, é a opção recomendada para quem está iniciando o uso da ferramenta.
2. As a Blank Report è Como o próprio nome diz, iniciando um novo relatório em branco. Recomendado para os usuários com maior afinidade com a ferramenta, pois toda a configuração deverá ser feita sem guias assistentes.
3. From an Existing Report è A partir de um relatório existente. Inicia um novo relatório com base em um existente.
Nesse grupo selecione a primeira opção.
No segundo GroupBox temos três opções de assistentes. O Primeiro Standard é para um relatório padrão, é o mais utilizado. O Cross-Tab, quando precisamos cruzar linhas e colunas (tipo planilha do excel). E o terceiro é um assistente para a criação de etiquetas de endereçamento, com base em arquivos de dados.
Nesse grupo selecione Standard. E clique em OK.
5) Na próxima janela Standard Report Creation Wizard, clique no sinal [+] a esquerda de Project Data, em seguida novamente no sinal de [+] a esquerda de ADO.Net DataSet, Aparecerá nesse momento o DataSet PizzariaDataSet com o nome das tabelas. Veja a figura:
6) Clique na tabela clientes e em seguida no sinal de > para selecioná-la. E em Seguida clique no botão avançar. Veja a figura:
7) Na próxima caixa de diálogo, você deverá selecionar os campos desejados, selecione conforme a próxima figura e clique em Avançar.
8) Na próxima caixa de diálogo (grouping) vamos selecionar o campo cidade para que fique agrupado por cidade, ou seja, teremos a lista de telefones agrupada por cidade e clique em Avançar. Selecione conforme figura:
9) A próxima janela, summaries, não deve ser mudada, clique em Avançar.
10) A próxima janela, Record Selection, também não deve ser mudada, clique em Avançar.
11) Na janela de Estilos, selecione Standard, mas você poderá depois criar e escolher o estilo ao seu gosto. Agora clique me Concluir.
O resultado deverá ser parecido com a figura abaixo:
Observe que a janela possui algumas Seções e dois Grupos (Cabeçalho de Grupo e rodapé do Grupo). Comentaremos cada uma delas em aula.
Também em aula será explicado como formatar o relatório.
Bom, vamos voltar agora ao projeto e fazer com que o relatório seja apresentado no formulário FrmTelefones.
12) Na caixa de ferramentas arraste o objeto CrystalReportViewer para o formulário FrmTelefones.vb. Conforme figura.
13) Inclua as linhas antes da Classe FrmTelefones:
Imports System.Data
Imports System.data.SqlClient
14) Define a variável pública para a conexão:
Dim conexao As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Pizza\Pizza.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
15) Agora de um duplo clique no formulário e Load do FrmTelefones coloque o código abaixo, que será responsável por carregar o formulário que criamos:
Public Class FrmTelefones
Private Sub FrmTelefones_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
"Primeiro: Define a consulta que preenche
"um DataSet com o conteúdo da Tabela de Clientes
Dim queryClientes As String
queryClientes = "SELECT * FROM Clientes" "Exibir todos os clientes
Dim clienteAdapter As SqlDataAdapter
clienteAdapter = New SqlDataAdapter(queryClientes, conexao)
Dim Ds As DataSet = New DataSet()
clienteAdapter.Fill(Ds, "Clientes")
"Criando um novo objeto do tipo do relatório criado (RptTelefones)
Dim rpt As New RptTelefones
"Definindo o resultado da busca, como sendo o conteúdo do relatório
rpt.SetDataSource(Ds)
"Exibindo os dados no relatório.
CrystalReportViewer1.ReportSource = rpt
End Sub
End Class
16) Coloque o código no item clique do menu para chamar o formulário que contém o relatório de telefones.
Private Sub ListaTelefônicaClientesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListaTelefônicaClientesToolStripMenuItem.Click
FrmTelefones.Show()
FrmTelefones.WindowState = FormWindowState.Maximized
End Sub
Atividade Extra
Crie um relatório com os dados do Cliente. Conforme realizamos com a Lista Telefônica e acesse pelo menu Clientes.
Nota do Maromo: Esse foi o quinto artigo do pequeno projeto “Disk-Pizza”, no próximo encerraremos esta sequencia de artigos. ME DESCULPEM humildemente pela demora, acontece que em dezembro, tirei umas merecidas férias.
Um abraço,
Marcos Roberto de Moraes [Maromo]
Mestrando em Educação
Especialista em Administração de Sistemas de Informação
- Entity Framework 4: Repositório GenéricoVisual Basic .NET
- As edições 14 da Easy .net Magazine e 88 da .net Magazine já estão disponíveis.ADO.NET
- Postando no Twiiter com .NET e Migre.meC#
- Setup ApplicationsVisual Basic .NET
- Problemas na manipulação de arquivos do MS Excel com .NETVisual Basic .NET