ASP .NET - Exibindo os dados de um GridView em um relatório ReportViewer no VS 2017 - II
Este artigo mostra como exibir dados de um controle GridView em um relatório ReportViewer no Visual Studio 2017 Community. |
Continuando o artigo anterior vamos definir o código no arquivo code-behind Default.aspx.cs para carregar os dados no GridView e exibir os dados selecionados no relatório Reportviewer.
Definindo o código da página Default.aspx
Abra o projeto criado no artigo anterior no VS 2017 Community e no arquivo Default.aspx.cs inclua o código abaixo no evento Load :
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
gvCustomers.DataSource = GetDados("SELECT TOP 15 * FROM Customers ORDER BY NEWID()");
gvCustomers.DataBind();
}
}
|
Neste código chamamos o método GetDados() passando a instrução SQL para retornar os primeiros 15 registros da tabela Customers exibindo-os no GridView gvCustomers.
A seguir temos o código do método GetDados():
private DataTable GetDados(string query)
{
string conString = ConfigurationManager.ConnectionStrings["conexaoSQL"].ConnectionString;
SqlCommand cmd = new SqlCommand(query);
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
return dt;
}
}
}
}
|
Agora vamos definir o código do evento
ExibirRDLC que ocorre quando o usuário clicar no botão de comando:
protected void ExibirRDLC(object sender, EventArgs e)
{
Customer dsCustomers = new Customer();
foreach (GridViewRow row in gvCustomers.Rows)
{
if ((row.FindControl("chkSelect") as CheckBox).Checked)
{
string customerId = row.Cells[1].Text;
string contactName = row.Cells[2].Text;
string city = row.Cells[3].Text;
string country = row.Cells[4].Text;
dsCustomers.Tables[0].Rows.Add(row.Cells[1].Text, row.Cells[2].Text, row.Cells[3].Text, row.Cells[4].Text);
}
}
ReportViewer1.ProcessingMode = ProcessingMode.Local;
ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Relatorio.rdlc");
ReportDataSource datasource = new ReportDataSource("Customers", dsCustomers.Tables[0]);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(datasource);
}
|
No código acima criamos uma instância da classe Customers e percorremos o
GridView para obter as linhas selecionadas atribuindo-as a variáveis locais que
tem o mesmo nome das colunas exibidas preenchendo o DataTable com os
dados selecionados.
A seguir definimos o caminho do relatório local que vamos usar e atribuimos os dados obtidos ao relatório.
Executando o projeto e selecionando algunas linhas do GridView temos o seguinte resultado:
Pegue o projeto completo aqui:
AspNet_RptGridView.zip
"Havendo Deus antigamente falado muitas vezes, e de muitas maneiras, aos pais,
pelos profetas, a nós falou-nos nestes últimos dias no Filho (Jesus)"
Hebreus 1:1
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ?
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: