protected void PreencherComboQuestionario() { using (var rel = new RelatorioQuestionario()) { var listaQuestionarios = rel.ListaQuestionario(ObterFiltro()).OrderBy(x => x.Nome).ToList(); if (string.IsNullOrWhiteSpace(txtQuestionario.Text)) { ViewState["_Questionario"] = Helpers.Util.ObterListaAutocomplete(listaQuestionarios); txtQuestionario.Text = ""; } var idTipoQuestionario = 0; if (!int.TryParse(ddlTipoQuestionario.SelectedValue, out idTipoQuestionario)) { IList <TipoQuestionario> tiposQuestionario = null; if (listaQuestionarios.Any()) { var questionarioIDs = listaQuestionarios.Select(x => x.ID).ToList(); tiposQuestionario = new ManterTipoQuestionario().ObterTodosIQueryable() .Where(x => x.ListaQuestionario.Any(y => questionarioIDs.Contains(y.ID))) .OrderBy(x => x.Nome) .ToList(); } else { tiposQuestionario = new ManterTipoQuestionario().ObterTodos().OrderBy(x => x.Nome).ToList(); } WebFormHelper.PreencherLista(tiposQuestionario, ddlTipoQuestionario, true); } } }
protected void txtQuestionario_OnTextChanged(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(txtQuestionario.Text)) { LimparCampos(); } else { var idQuestionario = int.Parse(txtQuestionario.Text); if (idQuestionario == 0) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Atencao, "Questionário inválido selecionado."); } else { using (var rel = new RelatorioQuestionario()) { if (string.IsNullOrWhiteSpace(txtSolucaoEducacional.Text)) { ViewState["_SE"] = Helpers.Util.ObterListaAutocomplete(rel.ListaSolucaoEducacional(idQuestionario)); txtSolucaoEducacional.Text = ""; } LimparCampos(); } } } }
private void GerarDadosRespondentes(DTORelatorioQuestionarioRespondente resultadoRespondente = null) { resultadoRespondente = resultadoRespondente ?? (Cache["dsRelatorioRespondente"] as DTORelatorioQuestionarioRespondente); if (resultadoRespondente == null) { throw new AcademicoException("Relatório respondente não encontrado para exibição. Tente novamente"); } // Dados padrões da consulta. var enunciados = resultadoRespondente.Enunciados.OrderBy(x => x.Id).ToList(); var questoes = resultadoRespondente.Questoes.OrderBy(x => x.IdEnunciado).ThenBy(x => x.Id).ToList(); // As respostas não recebem as respostas diretamente. Elas recebem DTOs com as respostas. var dtoRespostas = RelatorioQuestionario.ConverterDtoRespostas( ParticipacoesPaginaAtual(resultadoRespondente.Consulta), questoes); rptEnunciados.DataSource = enunciados; rptQuestoes.DataSource = questoes; rptRespostas.DataSource = dtoRespostas; // Glory Bind. rptEnunciados.DataBind(); rptQuestoes.DataBind(); rptRespostas.DataBind(); }
/// <summary> /// Buscar dados estatísticos, a partir dos dados respondentes. /// </summary> public List <DTORelatorioQuestionarioEstatistico> ExecutarRelatorioEstatistico() { try { using (var rel = new RelatorioQuestionario()) { // Obtém primeiro os dados respondentes para calcular os dados estatísticos. var dadosRespondentes = ExecutarRelatorioRespondente(false); var resultado = rel.ObterRelatorioEstatistico(dadosRespondentes.Enunciados, dadosRespondentes.Questoes, dadosRespondentes.Consulta); Cache["dsRelatorioEstatistico"] = resultado; return(resultado); } } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, ex.Message); } catch { WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Resultado não pode ser processado, por favor adicione mais filtros."); } return(new List <DTORelatorioQuestionarioEstatistico>()); }
protected void ddlTipoQuestionario_OnSelectedIndexChanged(object sender, EventArgs e) { using (var rel = new RelatorioQuestionario()) { int idTipoQuestionario; if (int.TryParse(ddlTipoQuestionario.SelectedValue, out idTipoQuestionario)) { PreencherComboQuestionario(); } } }
protected void PreencherCombos(object sender, EventArgs e) { using (var rel = new RelatorioQuestionario()) { ViewState["_Demandas"] = Helpers.Util.ObterListaAutocomplete(rel.ListaProcessos()); switch (ObterTipoRelatorioSelecionado()) { case enumTipoRelatorioResposta.Respondente: case enumTipoRelatorioResposta.Estatistico: PreencherComboQuestionario(); ListBoxesStatus.PreencherItens(rel.ListaStatus(), "ID", "Nome"); if (ObterTipoRelatorioSelecionado() == enumTipoRelatorioResposta.Estatistico) { // Relatório estatístico sempre será de pesquisa. ddlTipoQuestionario.SelectedValue = ((int)enumTipoQuestionario.Pesquisa).ToString(); } else { WebFormHelper.PreencherLista(new ManterTipoQuestionario().ObterTodos().OrderBy(x => x.Nome).ToList(), ddlTipoQuestionario, true); } txtQuestionario.Text = ""; LimparCampos(); break; case enumTipoRelatorioResposta.Consolidado: var listaSe = rel.ListaSolucaoEducacionalPorCategorias(ucCategorias1.IdsCategoriasMarcadas); ViewState["_SE"] = Helpers.Util.ObterListaAutocomplete(listaSe); txtSolucaoEducacional.Text = ""; LimparCampos(); break; default: throw new ArgumentOutOfRangeException(); } } }
protected void txtOferta_OnTextChanged(object sender, EventArgs e) { using (var rel = new RelatorioQuestionario()) { var filtro = ObterFiltro(); if (filtro.IdOferta.HasValue) { ViewState["_Turma"] = Helpers.Util.ObterListaAutocomplete(rel.ListaTurma(filtro)); } txtTurma.Text = ""; PreencherComboQuestionario(); } }
protected void cbxProfessor_OnSelectedIndexChanged(object sender, EventArgs e) { if (cbxProfessor.SelectedIndex > 0) { using (var rel = new RelatorioQuestionario()) { var lista = Helpers.Util.ObterListaAutocomplete(rel.ListaSolucaoEducacionalPorProfessor(ObterFiltro())); ViewState["_SE"] = lista; txtOferta.Text = ""; LimparCampos(); } } }
protected void Page_Load(object sender, EventArgs e) { // Persistir o preenchimento das soluções quando o relatório for Consolidado. if (ObterTipoRelatorioSelecionado() == enumTipoRelatorioResposta.Consolidado) { ucCategorias1.TreeNodeCheckChanged += PreencherCombos; } if (IsPostBack) { return; } // No primeiro load, define a página atual como 0. PaginaAtual = 1; using (var rel = new RelatorioQuestionario()) { PreencherCombos(null, null); ucCategorias1.PreencherCategorias(false); if (RelatorioTutor) { divDemandas.Visible = divTipoQuestionario.Visible = divQuestionario.Visible = false; // Relatório de tutor sempre será de pesquisa. ddlTipoQuestionario.SelectedValue = ((int)enumTipoQuestionario.Pesquisa).ToString(); divTutor.Visible = true; WebFormHelper.PreencherLista(rel.ListaProfessor(), cbxProfessor, false, true); txtSolucaoEducacional.Attributes.Add("data-mensagemVazia", "Selecione um tutor"); } ListBoxesUF.PreencherItens(rel.ListaUf(), "ID", "Nome"); ListBoxesNivelOcupacional.PreencherItens(rel.ListaNivelOcupacional(), "ID", "Nome"); var lista = rel.ListaSolucaoEducacional(); ViewState["_SE"] = Helpers.Util.ObterListaAutocomplete(lista); } }
/// <summary> /// Obter dados respondentes (perguntas e respostas dos usuários, agrupadas pelos nomes das questões. /// </summary> /// <returns></returns> public DTORelatorioQuestionarioRespondente ExecutarRelatorioRespondente(bool salvarEmChave = true) { using (var rel = new RelatorioQuestionario()) { var dadosRespondentes = rel.ObterRelatorioRespondente(ObterFiltro()); // Armazenar em Cache para ser utilizado posteriormente, caso necessário. if (salvarEmChave) { Cache["dsRelatorioRespondente"] = dadosRespondentes; Cache["camposSeremExibidosRelatorioRespondente"] = chkListaCamposVisiveisRespondente.Items.Cast <ListItem>() .Where(x => x.Selected) .Select(x => x.Value) .ToList(); } // Obter todos os questionários com as respostas dos usuários. return(dadosRespondentes); } }
protected void txtSolucaoEducacional_OnTextChanged(object sender, EventArgs e) { using (var rel = new RelatorioQuestionario()) { var filtro = ObterFiltro(); if (filtro.IdSolucaoEducacional != null) { ViewState["_Oferta"] = Helpers.Util.ObterListaAutocomplete(rel.ListaOferta(filtro)); } txtOferta.Text = ""; PreencherComboQuestionario(); var listaQuestionarios = new RelatorioQuestionario().ListaQuestionario(ObterFiltro()).OrderBy(x => x.Nome).ToList(); IList <TipoQuestionario> tiposQuestionario = null; if (listaQuestionarios.Any()) { var questionarioIDs = listaQuestionarios.Select(x => x.ID).ToList(); tiposQuestionario = new ManterTipoQuestionario().ObterTodosIQueryable() .Where(x => x.ListaQuestionario.Any(y => questionarioIDs.Contains(y.ID))) .OrderBy(x => x.Nome) .ToList(); } else { tiposQuestionario = new ManterTipoQuestionario().ObterTodos().OrderBy(x => x.Nome).ToList(); } WebFormHelper.PreencherLista(tiposQuestionario, ddlTipoQuestionario, true); LimparCampos(); } }
protected void rblTipoRelatorio_OnSelectedIndexChanged(object sender, EventArgs e) { // Esconde todos os campos e os exibe de acordo com o tipo de relatório. divDemandas.Visible = divTipoQuestionario.Visible = divQuestionario.Visible = divRelatorioRespondente.Visible = divRelatorioEstatistico.Visible = divRelatorioConsolidado.Visible = divStatus.Visible = divUf.Visible = divNivelOcupacional.Visible = false; // Limpar o evento e o postback da seleção da categoria, pois só serve para o consolidado. ucCategorias1.TreeNodeCheckChanged = null; ddlTipoQuestionario.Enabled = true; var tipoRelatorioSelecionado = ObterTipoRelatorioSelecionado(); // Preencher os filtros personalizados de cada tipo de relatório. PreencherFiltros(tipoRelatorioSelecionado); switch (tipoRelatorioSelecionado) { case enumTipoRelatorioResposta.Respondente: filtroCamposExibidos.Visible = false; // Limpar e exibir drop de questionários. txtQuestionario.Text = ""; LimparCampos(); // Só exibe os campos abaixo se não for relatório de tutor. divDemandas.Visible = divTipoQuestionario.Visible = divQuestionario.Visible = !RelatorioTutor; divStatus.Visible = true; divUf.Visible = true; divNivelOcupacional.Visible = true; break; case enumTipoRelatorioResposta.Estatistico: filtroCamposExibidos.Visible = true; // O relatório consolidado só funciona para relatórios do tipo de Pesquisa. ddlTipoQuestionario.Enabled = false; ddlTipoQuestionario.SelectedValue = ((int)enumTipoQuestionario.Pesquisa).ToString(); LimparCampos(); // Limpar e exibir drop de questionários. txtQuestionario.Text = ""; PreencherComboQuestionario(); // Só exibe os campos abaixo se não for relatório de tutor. divDemandas.Visible = divTipoQuestionario.Visible = divQuestionario.Visible = !RelatorioTutor; divStatus.Visible = true; divUf.Visible = true; divNivelOcupacional.Visible = true; break; case enumTipoRelatorioResposta.Consolidado: ucCategorias1.TreeNodeCheckChanged = PreencherCombos; filtroCamposExibidos.Visible = true; // Exibir diretamente a lista de Soluções Educacionais, sem precisar da listagem de questionários. using (var rel = new RelatorioQuestionario()) { var lista = rel.ListaSolucaoEducacional(); ViewState["_SE"] = Helpers.Util.ObterListaAutocomplete(lista); txtSolucaoEducacional.Text = ""; LimparCampos(); } break; } // Forçar a recriação das categorias. ucCategorias1.PreencherCategorias(false); }