Existem algumas formas de desenvolver relatórios utilizando ASP.Net.
- Utilizado um grid para exibir as informações
- Crystal reports: modelando um template com colunas, agrupamentos, sub grupos, etc.
- Gráficos
No
exemplo que vou demonstrar será utilizado o gridview.
No gridview é possível formatar as informações que serão exibidas através de
css, criar um cabeçalho , rodapé e ordenação.
O
Visual Studio já tem alguns templates pre definidos para montar um grid. Isso
agiliza a desenvolvimento, caso você não entenda muito de css.
Na
guia tools clique e arraste para tela o controle GridView. após feito isso
clique no grid adicionado e vá até a guia propriedades.
altere a propriedade ID, no meu caso vou chamar de gdvCliente.
Por padrão a propriedade AutoGenerateColumns vem marcada como True. Essa propriedade irá
criar o grid com todas as colunas do seu DataSource.
Agora vou definir um template, clique no grid e clique na seta que esta na lateral
direita superior e clique em Auto Format. Como na imagem abaixo:
A janela abaixo irá aparecer e vou escolher o template Snowy
Pine.
Agora vamos ao código.
Eu inclui um arquivo do tipo LINQ to SQL, com o nome de Banco.dbml e arrastei
para ele a tabela de clientes.
No
arquivo Default.aspx.cs eu adicionei o seguinte código:
BancoDataContext bd = new BancoDataContext();
var resultado = from r in bd.Clientes orderby r.nome select { r.nome, r.email, r.telefone };
gdvCliente.DataSource
= resultado;
gdvCliente.DataBind();
Basicamente fiz uma query selecionando todos os registros da tabela
Cliente exibindo somente os campos “Nome”, “Email” e “Telefone”.
Informei que o DataSource do meu grid(“gdvCliente”) é o
resultado dessa consulta.
E chamei o método DataBind(), que é responsável por carregar
o grid com as informações do DataSource.
Veja o resultado:
Também é possível incluir alguns filtros, nesse exemplo vou adicionar os seguintes controles:
- Label – titulo do filtro
- TextBox – receberá o valor que fará o filtro – txtNome
- Button – Executará o filtro - btnFiltrar
No evento onClick do botão Filtrar eu adicionei o seguinte
código:
BancoDataContext bd = new BancoDataContext();
var resultado = from r in bd.Clientes where r.nome.Contains(txtNome.Text) orderby r.nome select new { r.nome, r.email,
r.telefone };
gdvCliente.DataSource
= resultado;
gdvCliente.DataBind();
Basicamente o código é o mesmo, a única diferença é a
clausula where onde eu informei que o campo nome deve conter o valor
filtrado.
Veja o resultado:
Nenhum comentário:
Postar um comentário