コード例 #1
0
        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            using (var relP = new RelatorioPrograma())
            {
                var id                 = string.IsNullOrEmpty(txtPrograma.Text) ? (int?)null : int.Parse(txtPrograma.Text);
                var idCapacitacao      = string.IsNullOrWhiteSpace(cbxOfertas.SelectedValue) ? (int?)null : int.Parse(cbxOfertas.SelectedValue);
                var idTurmaCapacitacao = string.IsNullOrWhiteSpace(cbxTurmas.SelectedValue) ? (int?)null : int.Parse(cbxTurmas.SelectedValue);
                var idModulos          = string.IsNullOrWhiteSpace(cbxModulos.SelectedValue) ? (int?)null : int.Parse(cbxModulos.SelectedValue);

                var lstResult = relP.ConsultarProgramas(id, idCapacitacao, idTurmaCapacitacao, idModulos);
                if (lstResult != null && lstResult.Rows.Count > 0)
                {
                    foreach (DataColumn item in lstResult.Columns)
                    {
                        item.Caption = (from ListItem i in _lsItens where i.Value == item.ColumnName select i.Text).FirstOrDefault() ?? item.Caption;
                    }

                    // Converter os resultados do DataTable em DTO para o totalizador ficar feliz da vida.
                    var resultadoConvertido = WebFormHelper.GetDictionaryFromDataTable(lstResult).Select(resultado => new DTORelatorioPrograma
                    {
                        Cpf             = resultado["Cpf"].ToString(),
                        UF              = resultado["UF"].ToString(),
                        StatusMatricula = resultado["StatusMatricula"].ToString()
                    }).ToList();

                    // Converter os resultados em dados totalizadores.
                    var totalizadores = new List <DTOTotalizador>
                    {
                        TotalizadorUtil.GetTotalizador(resultadoConvertido, "Total da quantidade de alunos", "Cpf",
                                                       enumTotalizacaoRelatorio.ContarDistintos, false),
                        TotalizadorUtil.GetTotalizador(resultadoConvertido, "Total da quantidade por status", "StatusMatricula",
                                                       enumTotalizacaoRelatorio.Contar),
                        TotalizadorUtil.GetTotalizador(resultadoConvertido, "Total da quantidade de alunos UF", "UF",
                                                       enumTotalizacaoRelatorio.ContarDistintos)
                    };

                    ucTotalizadorRelatorio.PreencherTabela(totalizadores);

                    Session.Add("dsRelatorio", lstResult);
                    dgRelatorio.DataSource = lstResult;
                    dgRelatorio.DataBind();

                    componenteGeracaoRelatorio.Visible = true;
                    ucFormatoSaidaRelatorio.Visible    = true;
                    btnPesquisar.CssClass = "btn btn-default mostrarload";
                    Filtros.CssClass      = "panel-collapse collapse";
                }
                else
                {
                    ucTotalizadorRelatorio.LimparTotalizadores();
                    componenteGeracaoRelatorio.Visible = false;
                    ucFormatoSaidaRelatorio.Visible    = false;
                }

                WebFormHelper.ValidarVisibilidadeCamposGrid(dgRelatorio, chkListaCamposVisiveis.Items);
            }
        }