public void CompletarConfiguracao(ConfiguracaoRelatorio configuracao) { configuracao.FonteDados = _fatoBus.Obter(configuracao.FonteDadosId); foreach (var campo in configuracao.CamposSelecionados) { campo.Campo = configuracao.FonteDados.Campos.SingleOrDefault(c => c.Id == campo.CampoId); } foreach (var campo in configuracao.Ordenacoes) { campo.Campo = configuracao.FonteDados.Campos.SingleOrDefault(c => c.Id == campo.CampoId); } foreach (var termo in configuracao.Termos) { if ((eTipoTermo)termo.Tipo == eTipoTermo.Filtro) { termo.Campo = configuracao.FonteDados.Campos.SingleOrDefault(c => c.Id == termo.CampoId); } } foreach (var campo in configuracao.Sumarios) { campo.Campo = configuracao.FonteDados.Campos.SingleOrDefault(c => c.Id == campo.CampoId); } foreach (var campo in configuracao.Agrupamentos) { campo.Campo = configuracao.FonteDados.Campos.SingleOrDefault(c => c.Id == campo.CampoId); } }
public ActionResult ObterOrdenarColunas(ConfiguracaoRelatorio configuracao) { PersonalizadoVM vm = new PersonalizadoVM(); vm.ConfiguracaoRelatorio = configuracao; vm.ConfiguracaoRelatorio.CamposSelecionados = vm.ConfiguracaoRelatorio.CamposSelecionados.OrderBy(x => x.Posicao).ToList(); return(PartialView("OrdenarColunas", vm)); }
public ActionResult ObterOrdenarValores(ConfiguracaoRelatorio configuracao) { PersonalizadoVM vm = new PersonalizadoVM(); vm.ConfiguracaoRelatorio = configuracao; vm.ConfiguracaoRelatorio.FonteDados = _fatoBus.Obter(vm.ConfiguracaoRelatorio.FonteDados.Id); vm.DimensoesLst = ViewModelHelper.CriarSelectList(configuracao.FonteDados.DimensoesLst, false, false); return(PartialView("OrdenarValores", vm)); }
public ActionResult ObterFiltros(ConfiguracaoRelatorio configuracao) { PersonalizadoVM vm = new PersonalizadoVM(); vm.ConfiguracaoRelatorio = configuracao; vm.ConfiguracaoRelatorio.FonteDados = _fatoBus.Obter(vm.ConfiguracaoRelatorio.FonteDados.Id); vm.OperadoresLst = ViewModelHelper.CriarSelectList(_bus.ObterOperadores(null), false, false); return(PartialView("Filtros", vm)); }
public RelTratamento(VO.Ciclos ciclo, int opcao, string empresa, string comentario, ConfiguracaoRelatorio configRelatorio) { InitializeComponent(); this.ciclo = ciclo; this.opcao = opcao; this.empresa = empresa; this.comentario = comentario; this.configRelatorio = configRelatorio; }
public ActionResult ObterSumarizar(ConfiguracaoRelatorio configuracao) { PersonalizadoVM vm = new PersonalizadoVM(); vm.ConfiguracaoRelatorio = configuracao; vm.ConfiguracaoRelatorio.CamposSelecionados = vm.ConfiguracaoRelatorio.CamposSelecionados .Where(x => x.Campo.TipoDados == (int)eTipoDados.Inteiro || x.Campo.TipoDados == (int)eTipoDados.Real) .OrderBy(x => x.Campo.Alias).OrderBy(x => x.Campo.DimensaoNome).ToList(); return(PartialView("Sumarizar", vm)); }
private void SumarizarTotal(ConfiguracaoRelatorio configuracao, DadosRelatorio dados) { foreach (var sumarioConfig in configuracao.Sumarios) { ConfiguracaoCampo campo = configuracao.CamposSelecionados.Single(x => x.CampoId == sumarioConfig.CampoId); var listaSumarios = sumarioConfig.ListarSumarios(); foreach (var sumarioLinha in dados.Sumarizacoes.Linhas.OrderBy(x => x)) { var itens = dados.Dados.Itens(campo.Posicao).Concat(dados.Grupos.SelectMany(g => g.Dados.Itens(campo.Posicao))); bool possuiItens = itens != null && itens.Count() > 0; if (itens == null || itens.Count() == 0) { dados.Sumarizacoes[sumarioLinha, campo.Posicao] = 0; continue; } if (listaSumarios.Keys.Any(y => y == (eTipoSumario)sumarioLinha)) { switch ((eTipoSumario)sumarioLinha) { case eTipoSumario.Contar: dados.Sumarizacoes[sumarioLinha, campo.Posicao] = itens.Distinct().Count(); break; case eTipoSumario.Somar: dados.Sumarizacoes[sumarioLinha, campo.Posicao] = possuiItens ? itens.Sum(x => Convert.ToDouble(((x != null && x.ToString() != string.Empty) ? x : 0))) : 0; break; case eTipoSumario.Media: dados.Sumarizacoes[sumarioLinha, campo.Posicao] = (possuiItens ? itens.Average(x => Convert.ToDouble(((x != null && x.ToString() != string.Empty) ? x : 0))) : 0).ToString("N2").Replace(".", string.Empty); break; case eTipoSumario.Maximo: dados.Sumarizacoes[sumarioLinha, campo.Posicao] = possuiItens ? itens.Max(x => Convert.ToDouble(((x != null && x.ToString() != string.Empty) ? x : 0))) : 0; break; case eTipoSumario.Minimo: dados.Sumarizacoes[sumarioLinha, campo.Posicao] = possuiItens ? itens.Min(x => Convert.ToDouble(((x != null && x.ToString() != string.Empty) ? x : 0))) : 0; break; } } else { dados.Sumarizacoes[sumarioLinha, campo.Posicao] = null; } } } }
private void LimparConfiguracao(ConfiguracaoRelatorio configuracao) { Fato resultado = ObterFato(configuracao.FonteDados.Id, false); if (resultado != null && resultado.Id > 0) { configuracao.FonteDadosId = resultado.Id; configuracao.FonteDadosTid = resultado.Tid; } configuracao.FonteDados = null; foreach (var campo in configuracao.CamposSelecionados) { campo.CampoId = campo.Campo.Id; campo.CampoCodigo = resultado.Campos.SingleOrDefault(x => x.Id == campo.CampoId).Codigo; campo.Campo = null; } foreach (var campo in configuracao.Ordenacoes) { campo.CampoId = campo.Campo.Id; campo.CampoCodigo = resultado.Campos.SingleOrDefault(x => x.Id == campo.CampoId).Codigo; campo.Campo = null; } foreach (var termo in configuracao.Termos) { if (termo.Tipo == (int)eTipoTermo.Filtro) { termo.CampoId = termo.Campo.Id; termo.CampoCodigo = resultado.Campos.SingleOrDefault(x => x.Id == termo.CampoId).Codigo; termo.Campo = null; } } foreach (var campo in configuracao.Sumarios) { campo.CampoId = campo.Campo.Id; campo.CampoCodigo = resultado.Campos.SingleOrDefault(x => x.Id == campo.CampoId).Codigo; campo.Campo = null; } foreach (var campo in configuracao.Agrupamentos) { campo.CampoId = campo.Campo.Id; campo.CampoCodigo = resultado.Campos.SingleOrDefault(x => x.Id == campo.CampoId).Codigo; campo.Campo = null; } }
public ActionResult ObterOpcoes(ConfiguracaoRelatorio configuracao, bool obterCamposFato = false) { PersonalizadoVM vm = new PersonalizadoVM(_fatoBus.ObterFonteDados()); vm.ConfiguracaoRelatorio = configuracao; vm.ConfiguracaoRelatorio.FonteDados = _fatoBus.Obter(vm.ConfiguracaoRelatorio.FonteDados.Id); if (obterCamposFato) { vm.ConfiguracaoRelatorio.CamposSelecionados.Clear(); } return(PartialView("Opcoes", vm)); }
private void PrepararSumarios(DadosRelatorio dados, ConfiguracaoRelatorio configuracao) { foreach (var item in configuracao.Sumarios) { var sumarios = item.ListarSumarios(); foreach (var sum in sumarios) { if (!dados.Sumarizacoes.Linhas.Contains((int)sum.Key)) { dados.Sumarizacoes.Linhas.Add((int)sum.Key); } } } }
private void Executar(ConfiguracaoRelatorio config) { #region Obter Eleitos List <Dictionary <string, object> > eleitos; List <Dictionary <string, object> > aux; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { eleitos = _da.Eleitos(config.DadosAte, bancoDeDados); } if (eleitos == null || eleitos.Count == 0) { return; } #endregion #region Atualizar Fato / Dimensao using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(_configSys.UsuarioRelatorio)) { try { bancoDeDados.IniciarTransacao(); aux = eleitos.Where(x => x["Acao"].ToString() == "3").ToList(); _da.Excluir(aux, bancoDeDados); aux = eleitos.Where(x => !aux.Exists(y => y["Id"] == x["Id"])).ToList(); _da.Salvar(aux, bancoDeDados); bancoDeDados.Commit(); } catch { bancoDeDados.Rollback(); throw; } } #endregion }
private void SumarizarGrupo(ConfiguracaoRelatorio configuracao, GrupoDados grupo) { ColecaoDados sumario = new ColecaoDados(); foreach (var sumarioConfig in configuracao.Sumarios) { ConfiguracaoCampo campo = configuracao.CamposSelecionados.Single(x => x.CampoId == sumarioConfig.CampoId); sumario.Colunas.Add(campo.Posicao, campo.Alias); var listaSumarios = sumarioConfig.ListarSumarios(); foreach (var sumarioLinha in grupo.Sumarizacoes.Linhas) { if (listaSumarios.Keys.Any(y => y == (eTipoSumario)sumarioLinha)) { switch ((eTipoSumario)sumarioLinha) { case eTipoSumario.Contar: sumario[sumarioLinha, campo.Posicao] = grupo.Dados.ItensDistintos(campo.Posicao); break; case eTipoSumario.Somar: sumario[sumarioLinha, campo.Posicao] = grupo.Dados.Somar(campo.Posicao); break; case eTipoSumario.Media: sumario[sumarioLinha, campo.Posicao] = grupo.Dados.Media(campo.Posicao); break; case eTipoSumario.Maximo: sumario[sumarioLinha, campo.Posicao] = grupo.Dados.Maximo(campo.Posicao); break; case eTipoSumario.Minimo: sumario[sumarioLinha, campo.Posicao] = grupo.Dados.Minimo(campo.Posicao); break; } } else { sumario[sumarioLinha, campo.Posicao] = null; } } grupo.Sumarizacoes = sumario; } }
private void MergiarConfiguracao(ConfiguracaoRelatorio configuracao) { configuracao.FonteDados = _fatoBus.Obter(configuracao.FonteDadosId); if (configuracao.FonteDados != null && configuracao.FonteDados.Id > 0) { configuracao.CamposSelecionados = configuracao.CamposSelecionados.Where(x => configuracao.FonteDados.Campos.Exists(y => y.Id == x.CampoId)).ToList(); configuracao.Ordenacoes = configuracao.Ordenacoes.Where(x => configuracao.FonteDados.Campos.Exists(y => y.Id == x.CampoId)).ToList(); configuracao.Termos = configuracao.Termos.Where(x => configuracao.FonteDados.Campos.Exists(y => y.Id == x.CampoId)).ToList(); configuracao.Sumarios = configuracao.Sumarios.Where(x => configuracao.FonteDados.Campos.Exists(y => y.Id == x.CampoId)).ToList(); configuracao.Agrupamentos = configuracao.Agrupamentos.Where(x => configuracao.FonteDados.Campos.Exists(y => y.Id == x.CampoId)).ToList(); } }
private void ConfigurarImportacao(ConfiguracaoRelatorio configuracao) { Fato resultado = ObterFato(configuracao.FonteDadosId, false); if (resultado != null && resultado.Id > 0) { configuracao.FonteDados = new Fato(); configuracao.FonteDados.Id = resultado.Id; configuracao.FonteDados.Tid = resultado.Tid; } configuracao.CamposSelecionados.RemoveAll(x => x.CampoCodigo <= 0); foreach (var campo in configuracao.CamposSelecionados) { campo.CampoId = resultado.Campos.SingleOrDefault(x => x.Codigo == campo.CampoCodigo).Id; } configuracao.Ordenacoes.RemoveAll(x => x.CampoCodigo <= 0); foreach (var campo in configuracao.Ordenacoes) { campo.CampoId = resultado.Campos.SingleOrDefault(x => x.Codigo == campo.CampoCodigo).Id; } configuracao.Termos.RemoveAll(x => (x.Tipo == (int)eTipoTermo.Filtro) && x.CampoCodigo <= 0); foreach (var termo in configuracao.Termos) { if (termo.Tipo == (int)eTipoTermo.Filtro) { termo.CampoId = resultado.Campos.SingleOrDefault(x => x.Codigo == termo.CampoCodigo).Id; } } configuracao.Sumarios.RemoveAll(x => x.CampoCodigo <= 0); foreach (var campo in configuracao.Sumarios) { campo.CampoId = resultado.Campos.SingleOrDefault(x => x.Codigo == campo.CampoCodigo).Id; } configuracao.Agrupamentos.RemoveAll(x => x.CampoCodigo <= 0); foreach (var campo in configuracao.Agrupamentos) { campo.CampoId = resultado.Campos.SingleOrDefault(x => x.Codigo == campo.CampoCodigo).Id; } }
public List <ConfiguracaoRelatorio> Configuracoes(eFato fato) { List <ConfiguracaoRelatorio> retorno = new List <ConfiguracaoRelatorio>(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(_configSys.UsuarioRelatorio)) { Comando comando = bancoDeDados.CriarComando(@"select t.id, t.fato, t.processo, t.intervalo, t.dados_ate, sysdate execucao_inicio, t.execucao_fim, t.em_execucao, t.erro, t.tid from cnf_fato_etl t" ); if (fato != eFato.Todos) { comando.DbCommand.CommandText += " where t.id = :fato"; comando.AdicionarParametroEntrada("fato", (int)fato, DbType.Int32); } comando.DbCommand.CommandText += " order by t.id"; using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { ConfiguracaoRelatorio conf; while (reader.Read()) { conf = new ConfiguracaoRelatorio(); conf.Id = reader.GetValue <Int32>("id"); conf.Fato = reader.GetValue <String>("fato"); conf.Processo = reader.GetValue <String>("processo"); conf.Intervalo = new TimeSpan(reader.GetValue <Int32>("intervalo"), 0, 0); conf.DadosAte = reader.GetValue <DateTime>("dados_ate"); conf.ExecucaoInicio = reader.GetValue <DateTime>("execucao_inicio"); conf.ExecucaoFim = reader.GetValue <DateTime>("execucao_fim"); conf.EmExecucao = reader.GetValue <Boolean>("em_execucao"); conf.Erro = reader.GetValue <Boolean>("erro"); conf.Tid = reader.GetValue <String>("tid"); retorno.Add(conf); } reader.Close(); } return(retorno); } }
private void VerificarConfiguracao(ConfiguracaoRelatorio configuracao) { if (configuracao.CamposSelecionados.Count == 0) { Validacao.Add(Mensagem.RelatorioPersonalizado.CampoSelecionarObrigatorio); } if (string.IsNullOrWhiteSpace(configuracao.Nome)) { Validacao.Add(Mensagem.RelatorioPersonalizado.NomeObrigatorio); } if (string.IsNullOrWhiteSpace(configuracao.Descricao)) { Validacao.Add(Mensagem.RelatorioPersonalizado.DescricaoObrigatoria); } AnalisarTermos(configuracao.Termos); }
private ConfiguracaoRelatorio Eleger(List <ConfiguracaoRelatorio> eleitos) { ConfiguracaoRelatorio eleito = null; TimeSpan menor = TimeSpan.MaxValue; foreach (var c in eleitos) { if (c.DadosAte == null) { throw new Exception(c.Fato + " - DadosAte não pode ser nula."); } if ((DateTime.Now - c.DadosAte) < menor) { eleito = c; } } return(eleito); }
public void AtualizarConfiguracao(ConfiguracaoRelatorio configuracao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, _configSys.UsuarioRelatorio)) { bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"update cnf_fato_etl c set c.dados_ate = :dados_ate, c.execucao_inicio = :execucao_inicio, c.execucao_fim = sysdate, c.em_execucao = :em_execucao, c.erro = :erro, c.tid = :tid where c.id = :id" ); comando.AdicionarParametroEntrada("dados_ate", configuracao.DadosAte, DbType.Date); comando.AdicionarParametroEntrada("execucao_inicio", configuracao.ExecucaoInicio, DbType.Date); comando.AdicionarParametroEntrada("em_execucao", (configuracao.EmExecucao ? 1 : 0), DbType.Int32); comando.AdicionarParametroEntrada("erro", (configuracao.Erro ? 1 : 0), DbType.Int32); comando.AdicionarParametroEntrada("tid", configuracao.Tid, DbType.String); comando.AdicionarParametroEntrada("id", configuracao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); bancoDeDados.Commit(); } }
internal void AtualizarETL() { ConfiguracaoRelatorio config = _daRelatorio.Configuracao(eFato.Processo); config.Tid = Guid.NewGuid().ToString(); config.EmExecucao = true; _daRelatorio.AtualizarConfiguracao(config); config.EmExecucao = false; try { Executar(config); config.Erro = false; config.DadosAte = config.DadosAte.AddDays((config.ExecucaoInicio - config.DadosAte).Days); _daRelatorio.AtualizarConfiguracao(config); } catch { config.Erro = true; _daRelatorio.AtualizarConfiguracao(config); throw; } }
/// <summary> /// Exporta o relatório. /// </summary> /// <param name="exportType"></param> /// <param name="mimeType"></param> /// <param name="encoding"></param> /// <param name="fileNameExtension"></param> /// <param name="warnings"></param> /// <returns></returns> public override System.IO.Stream Export(Colosoft.Reports.Web.ExportType exportType, out string mimeType, out string encoding, out string fileNameExtension, out Colosoft.Reports.Warning[] warnings) { if (_alteraStatus != null) { _alteraStatus("Criando relatório"); } var userInfo = Glass.Data.Helper.UserInfo.GetUserInfo; if (!Document.Parameters.ContainsKey("Logotipo")) { int?idLoja = null; if (Document is Glass.Relatorios.IRelatorioLoja) { idLoja = ((Glass.Relatorios.IRelatorioLoja)Document).IdLoja; } // Recupera o caminho físico do arquivo do logotipo var caminhoLogotipo = Configuracoes.Logotipo.GetReportLogo(DiretorioLogotipos, (uint?)idLoja); Document.Parameters.Add("Logotipo", caminhoLogotipo); } if (!Document.Parameters.ContainsKey("TextoRodape")) { Document.Parameters.Add("TextoRodape", ConfiguracaoRelatorio.TextoRodapeRelatorio(NomeFuncionario)); } if (!Document.Parameters.ContainsKey("CorRodape")) { Document.Parameters.Add("CorRodape", "DimGray"); } return(base.Export(exportType, out mimeType, out encoding, out fileNameExtension, out warnings)); }
public ActionResult ValidarFiltros(ConfiguracaoRelatorio configuracao) { _validar.AnalisarTermos(configuracao.Termos); return(Json(new { EhValido = Validacao.EhValido, Msg = Validacao.Erros }, JsonRequestBehavior.AllowGet)); }
private Comando MontarSQL(ConfiguracaoRelatorio configuracao, BancoDeDados banco) { #region Alias de tabelas List <ConfiguracaoCampo> campos = configuracao.CamposSelecionados.Where(c => c.Campo != null).ToList(); List <string> tabelas = campos.Select(x => x.Campo.Tabela).Union( configuracao.Agrupamentos.Select(a => a.Campo.Tabela).Union( configuracao.Termos.Where(t => (eTipoTermo)t.Tipo == eTipoTermo.Filtro).Select(t => t.Campo.Tabela)).Union( configuracao.Ordenacoes.Select(o => o.Campo.Tabela)) ).Distinct().ToList(); if (!tabelas.Contains(configuracao.FonteDados.Tabela)) { tabelas.Add(configuracao.FonteDados.Tabela); } Dictionary <string, string> aliasesTabelas = new Dictionary <string, string>(); int i = 0; foreach (var tab in tabelas) { aliasesTabelas.Add(tab, string.Format("t{0}", i)); i++; } #endregion #region SQL - SELECT string selectSql = ""; foreach (var a in configuracao.Agrupamentos.OrderBy(x => x.Prioridade)) { a.Alias = a.Campo.Nome; selectSql += string.Format(@"{0}.{1} ""{2}"", ", aliasesTabelas[a.Campo.Tabela], a.Campo.Nome, a.CampoId); } foreach (var a in campos.OrderBy(x => x.Posicao)) { selectSql += string.Format(@"{0}.{1} ""{2}"", ", aliasesTabelas[a.Campo.Tabela], a.Campo.Nome, a.CampoId); } selectSql = selectSql.Substring(0, selectSql.Length - 2); #endregion #region SQL - FROM string tabelasSql = string.Join(", ", aliasesTabelas.Select(x => string.Format("{0} {1}", x.Key, x.Value))); #endregion #region SQL - WHERE (joins) string joinSql = ""; string aliasFato = aliasesTabelas[configuracao.FonteDados.Tabela]; foreach (var tab in aliasesTabelas) { if (configuracao.FonteDados.Tabela == tab.Key) { continue; } joinSql += string.Format("{0}.id = {1}.fato (+) and ", aliasesTabelas[configuracao.FonteDados.Tabela], tab.Value); } #endregion Comando comando = banco.CriarComando(""); #region SQL - WHERE (filtros) string filtros = ""; i = 0; foreach (var termo in configuracao.Termos.OrderBy(x => x.Ordem)) { if ((eTipoTermo)termo.Tipo != eTipoTermo.Filtro) { filtros += TermoSimples(termo); continue; } filtros += TermoFiltro(termo, aliasesTabelas, comando, i); i++; } #endregion #region SQL - ORDERBY string orderSql = ""; foreach (var campo in configuracao.Agrupamentos.OrderBy(c => c.Prioridade)) { orderSql += string.Format("{0}.{1}, ", aliasesTabelas[campo.Campo.Tabela], campo.Campo.Nome); } foreach (var campo in configuracao.Ordenacoes.Where(y => y.Campo.CampoOrdenacao).OrderBy(o => o.Prioridade)) { orderSql += string.Format("{0}.{1} {2}, ", aliasesTabelas[campo.Campo.Tabela], campo.Campo.Nome, campo.Crescente ? "" : "desc"); } if (!string.IsNullOrEmpty(orderSql)) { orderSql = orderSql.Substring(0, orderSql.Length - 2); } #endregion #region SQL final bool possuiWhere = !string.IsNullOrEmpty(joinSql) || !string.IsNullOrEmpty(filtros); string sql = string.Format("select {0} from {1}", selectSql, tabelasSql); if (possuiWhere) { if (!string.IsNullOrEmpty(joinSql)) { sql = string.Format("{0} where {1}", sql, joinSql); if (!string.IsNullOrEmpty(filtros)) { sql = string.Format("{0} ({1})", sql, filtros); } } else if (!string.IsNullOrEmpty(filtros)) { sql = string.Format("{0} where ({1})", sql, filtros); } } if (sql.Substring(sql.Length - 5, 4).Contains("and")) { sql = sql.Substring(0, sql.Length - 5); } if (!string.IsNullOrEmpty(orderSql)) { sql = string.Format("{0} order by {1}", sql, orderSql); } comando.DbCommand.CommandText = string.Format(sql); #endregion return(comando); }
public DadosRelatorio Executar(ConfiguracaoRelatorio configuracao) { List <List <ValoresBanco> > dados = new List <List <ValoresBanco> >(); DadosRelatorio retorno = null; using (BancoDeDados banco = BancoDeDados.ObterInstancia(UsuarioRelatorio)) { // Montar o comando Comando comando = MontarSQL(configuracao, banco); // Executar using (IDataReader reader = banco.ExecutarReader(comando)) { while (reader.Read()) { if (reader.FieldCount > 0) { List <ValoresBanco> lista = new List <ValoresBanco>(); for (var i = 0; i < reader.FieldCount; i++) { lista.Add(new ValoresBanco() { Chave = (configuracao.Agrupamentos.FirstOrDefault(x => x.CampoId == Convert.ToInt32(reader.GetName(i))) ?? new ConfiguracaoAgrupamento()).Alias, Valor = reader.GetValue(i) }); lista.Where(x => string.IsNullOrEmpty(x.Chave)).ToList().ForEach(r => { r.Chave = configuracao.CamposSelecionados.First(x => x.CampoId == Convert.ToInt32(reader.GetName(i))).Alias; }); if (lista.Last().Valor is DateTime) { DateTime dataAux = Convert.ToDateTime(lista.Last().Valor); if (dataAux.ToLongTimeString() == DateTime.MinValue.ToLongTimeString()) { lista.Last().Valor = dataAux.ToShortDateString(); } } } dados.Add(lista); } } reader.Close(); } // Agrupar retorno = CarregarDados(configuracao, dados); //Data de execução comando = banco.CriarComando(@"select t.execucao_fim data from cnf_fato_etl t, tab_fato f where t.id = f.id_fato_etl and f.nome = :nome"); comando.AdicionarParametroEntrada("nome", configuracao.FonteDados.Nome, DbType.String); retorno.Data = banco.ExecutarScalar(comando).ToString(); // Sumarizar Sumarizar(configuracao, retorno); } return(retorno); }
private DadosRelatorio CarregarDados(ConfiguracaoRelatorio configuracao, List <List <ValoresBanco> > dados) { Dictionary <int, string> colunas = new Dictionary <int, string>(); configuracao.CamposSelecionados.OrderBy(x => x.Posicao).ToList().ForEach(x => { colunas.Add(x.Posicao, x.Alias); }); DadosRelatorio retorno = new DadosRelatorio(colunas); retorno.Nome = configuracao.Nome; retorno.Totalizar = configuracao.ContarRegistros; retorno.ComAgrupamento = configuracao.Agrupamentos.Count > 0; string grupo = null; GrupoDados grupoDados = null; int linha = 0; foreach (var item in dados) { int c = 0; foreach (var coluna in item) { if (!retorno.ComAgrupamento) { retorno.Dados[linha, c] = coluna.Valor.ToString(); } else { if (c == 0) { string grupoAtual = coluna.Valor.ToString(); if (grupo != grupoAtual) { grupo = grupoAtual; grupoDados = retorno.CriarGrupo(); grupoDados.Campo = configuracao.Agrupamentos.Single(x => x.Alias == coluna.Chave).Campo.Alias; grupoDados.Valor = grupo; linha = 0; } } else { grupoDados.Dados[linha, (c - configuracao.Agrupamentos.Count)] = coluna.Valor.ToString(); } } c++; } linha++; } foreach (var campo in configuracao.CamposSelecionados.OrderBy(x => x.Posicao)) { try { retorno.Campos.Add(new ValoresBanco() { Chave = campo.Alias, Valor = campo.Tamanho.ToString(), DimensaoColuna = campo.Campo.DimensaoNome + "@" + campo.Campo.Nome }); } catch (Exception e) { throw new Exception(campo.CampoId + " - " + campo.Alias + " - " + campo.Posicao + " - " + campo.Tamanho, e); } } return(retorno); }
private void Continuar_Click(object sender, EventArgs e) { var linhasAntes = Convert.ToInt32(txtLinhasAntes.Value); var linhasTratamento = Convert.ToInt32(txtLinhasTratamento.Value); var linhasDepois = Convert.ToInt32(txtLinhasDepois.Value); var config = new ConfiguracaoRelatorio(linhasAntes, linhasTratamento, linhasDepois); ConfiguracaoDAO.GravarConfigRelatorio(config.LeiturasAntes, config.LeiturasTrat, config.LeiturasDepois); if (Tratamento.Checked) { if (Todos.Checked) { RelTratamento relatorio = new RelTratamento(ciclo, 1, "", txtComentario.Text, config); relatorio.ShowDialog(this); this.Close(); } else if (Individual.Checked) { RelTratamento relatorio = new RelTratamento(ciclo, 2, cmbEmpresas.SelectedItem.ToString(), txtComentario.Text, config); relatorio.ShowDialog(this); this.Close(); } } else if (Geral.Checked) { bool continua = false; if (Todos.Checked) { if (txtFiltro.Text != "") { string aux = txtFiltro.Text; aux = aux.Replace('-', 'X'); aux = aux.Replace(';', 'X'); string[] compara = aux.Split('X'); int maior = 0; for (int i = 0; i < compara.Length; i++) { if (compara[i] != "" && Convert.ToInt32(compara[i]) > maior) { maior = Convert.ToInt32(compara[i]); continua = true; } else if (compara[i] != "") { continua = false; i = compara.Length; } } int n; if (txtFiltro.Text.Substring(txtFiltro.Text.Length - 1, 1) != ";") { if (Int32.TryParse(txtFiltro.Text.Substring(txtFiltro.Text.Length - 1, 1), out n)) { txtFiltro.Text = txtFiltro.Text + ";"; } else if (txtFiltro.Text.Substring(txtFiltro.Text.Length - 1, 1) == "-") { txtFiltro.Text = txtFiltro.Text.Substring(0, txtFiltro.Text.Length - 1) + ";"; } } } else { continua = true; } if (continua) { RelGeral relatorio = new RelGeral(ciclo, 1, "", txtComentario.Text, txtFiltro.Text, config); relatorio.ShowDialog(this); this.Close(); } else { MessageBox.Show("O filtro só pode ser ordenado em ordem crescente.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else if (Individual.Checked) { if (txtFiltro.Text != "") { string aux = txtFiltro.Text; aux = aux.Replace('-', 'X'); aux = aux.Replace(';', 'X'); string[] compara = aux.Split('X'); int maior = 0; for (int i = 0; i < compara.Length; i++) { if (compara[i] != "" && Convert.ToInt32(compara[i]) > maior) { maior = Convert.ToInt32(compara[i]); continua = true; } else if (compara[i] != "") { continua = false; i = compara.Length; } } int n; if (txtFiltro.Text.Substring(txtFiltro.Text.Length - 1, 1) != ";") { if (Int32.TryParse(txtFiltro.Text.Substring(txtFiltro.Text.Length - 1, 1), out n)) { txtFiltro.Text = txtFiltro.Text + ";"; } else if (txtFiltro.Text.Substring(txtFiltro.Text.Length - 1, 1) == "-") { txtFiltro.Text = txtFiltro.Text.Substring(0, txtFiltro.Text.Length - 1) + ";"; } } } else { continua = true; } if (continua) { RelGeral relatorio = new RelGeral(ciclo, 2, cmbEmpresas.SelectedItem.ToString(), txtComentario.Text, txtFiltro.Text, config); relatorio.ShowDialog(this); this.Close(); } else { MessageBox.Show("O filtro só pode ser ordenado em ordem crescente.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } }
public PersonalizadoVM(List <Lista> fontesDados) { ConfiguracaoRelatorio = new ConfiguracaoRelatorio(); FonteDadosLst = ViewModelHelper.CriarSelectList(fontesDados, true); }
public static List <ListaCiclosTratGrafico> populaTratamento(VO.Ciclos ciclo, List <LeiturasCiclo> leiturasCiclo, List <LeiturasTrat> leiturasTrat, ConfiguracaoRelatorio configRelatorio) { return(GerarListaTratamento(ciclo, leiturasCiclo, leiturasTrat, configRelatorio)); /*if (leiturasTrat == null || leiturasTrat.Count == 0) * { * return listaRetorno; * } * var nl = 1; * var nlt = 1; * var leiturainicial = ciclo.NLIniTrat; * var jmp = (leiturainicial - 1) / 9; * var i = 0; * * for (i = 0; i < ciclo.NLIniTrat - 1; i += jmp, nl += jmp) * { * listaRetorno.Add(new ListaCiclosTratGrafico() * { * NLT = nlt, * NL = nl, * horario = leiturasCiclo[i].horario, * T1 = leiturasCiclo[i].T1, * T2 = leiturasCiclo[i].T2, * T3 = leiturasCiclo[i].T3, * T4 = leiturasCiclo[i].T4 * }); * nlt++; * } * if (i <= ciclo.NLIniTrat - 1) * { * nl = leiturainicial - 1; * nlt = 10; * listaRetorno.Add(new ListaCiclosTratGrafico() * { * NLT = nlt, * NL = nl, * horario = leiturasCiclo[ciclo.NLIniTrat-2].horario, * T1 = leiturasCiclo[ciclo.NLIniTrat - 2].T1, * T2 = leiturasCiclo[ciclo.NLIniTrat - 2].T2, * T3 = leiturasCiclo[ciclo.NLIniTrat - 2].T3, * T4 = leiturasCiclo[ciclo.NLIniTrat - 2].T4 * }); * nlt = 11; * } * * * nl = ciclo.NLIniTrat; * * for (i = 0; i <= leiturasTrat.Count - 1; i += 2, nl += 2) * { * listaRetorno.Add(new ListaCiclosTratGrafico() * { * NLT = nlt, * NL = nl, * horario = leiturasTrat[i].horario, * T1 = leiturasTrat[i].T1, * T2 = leiturasTrat[i].T2, * T3 = leiturasTrat[i].T3, * T4 = leiturasTrat[i].T4 * }); * if (i == 0) * { * listaRetorno[listaRetorno.Count - 1].demarca_tratamento = true; * } * nlt++; * } * if (i == leiturasTrat.Count) * { * nl = ciclo.NLIniTrat + leiturasTrat.Count - 1; * listaRetorno.Add(new ListaCiclosTratGrafico() * { * NLT = nlt, * NL = nl, * horario = leiturasTrat[leiturasTrat.Count - 1].horario, * T1 = leiturasTrat[leiturasTrat.Count - 1].T1, * T2 = leiturasTrat[leiturasTrat.Count - 1].T2, * T3 = leiturasTrat[leiturasTrat.Count - 1].T3, * T4 = leiturasTrat[leiturasTrat.Count - 1].T4 * }); * nlt++; * } * * listaRetorno[listaRetorno.Count - 1].demarca_tratamento = true; * * nl = ciclo.NLIniTrat + ciclo.nlt; * * var countFim = ciclo.nlPostTrat; * jmp = countFim / 9; * * for (i = 0; i < countFim; i += 2, nl += 2) * { * listaRetorno.Add(new ListaCiclosTratGrafico() * { * NLT = nlt, * NL = nl, * horario = leiturasCiclo[nl - 1].horario, * T1 = leiturasCiclo[nl - 1].T1, * T2 = leiturasCiclo[nl - 1].T2, * T3 = leiturasCiclo[nl - 1].T3, * T4 = leiturasCiclo[nl - 1].T4 * }); * nlt++; * } * if (i < leiturasCiclo.Count - 1) * { * nl = leiturasCiclo.Count; * listaRetorno.Add(new ListaCiclosTratGrafico() * { * NLT = nlt, * NL = nl, * horario = leiturasCiclo[leiturasCiclo.Count - 1].horario, * T1 = leiturasCiclo[leiturasCiclo.Count - 1].T1, * T2 = leiturasCiclo[leiturasCiclo.Count - 1].T2, * T3 = leiturasCiclo[leiturasCiclo.Count - 1].T3, * T4 = leiturasCiclo[leiturasCiclo.Count - 1].T4 * }); * } * return listaRetorno;*/ }
private void Executar(ConfiguracaoRelatorio config) { #region Obter Eleitos List <Dictionary <string, object> > eleitos; List <Dictionary <string, object> > eleitosUC; List <Dictionary <string, object> > eleitosUP; List <Dictionary <string, object> > aux; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { eleitos = _da.Eleitos(config.DadosAte, bancoDeDados); } if (eleitos == null || eleitos.Count == 0) { return; } #endregion #region Atualizar Fato / Dimensao using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(_configSys.UsuarioRelatorio)) { try { bancoDeDados.IniciarTransacao(); #region UP - Unidade de Produção // Código 51 - Modelo: Abertura de livro de unidade de produção eleitosUP = eleitos.Where(x => x["cod_modelo"].ToString() == "51").ToList(); aux = eleitosUP.Where(x => x["Acao"].ToString() == "3").ToList(); _da.ExcluirUP(aux, bancoDeDados); aux = eleitosUP.Where(x => !aux.Exists(y => y["hst_titulo_id"] == x["hst_titulo_id"])).ToList(); _da.SalvarUP(aux, bancoDeDados); #endregion #region UC - Unidade de Consolidação // Código 52 - Modelo: Abertura de livro de unidade de consolidação eleitosUC = eleitos.Where(x => x["cod_modelo"].ToString() == "52").ToList(); aux = eleitosUC.Where(x => x["Acao"].ToString() == "3").ToList(); _da.ExcluirUC(aux, bancoDeDados); aux = eleitosUC.Where(x => !aux.Exists(y => y["hst_titulo_id"] == x["hst_titulo_id"])).ToList(); _da.SalvarUC(aux, bancoDeDados); #endregion bancoDeDados.Commit(); } catch { bancoDeDados.Rollback(); throw; } } #endregion }
public static List <ListaCiclosTratGrafico> GerarListaTratamento(VO.Ciclos ciclo, List <LeiturasCiclo> leiturasCiclo, List <LeiturasTrat> leiturasTrat, ConfiguracaoRelatorio configRelatorio) { var listaRetorno = new List <ListaCiclosTratGrafico>(); var linhasAntesTrat = configRelatorio.LeiturasAntes; var linhasTrat = configRelatorio.LeiturasTrat; var linhasDepoisTrat = configRelatorio.LeiturasDepois; if (leiturasTrat == null || leiturasTrat.Count == 0) { return(listaRetorno); } var totalCiclo = leiturasCiclo.Count; var totalAntesTrat = ciclo.NLIniTrat - 1; var inicioTrat = ciclo.NLIniTrat; var totalTrat = leiturasTrat.Count; var fimTrat = inicioTrat + totalTrat - 1; var totalDepoisTrat = totalCiclo - fimTrat; var nlt = 0; /// POPULA DADOS DO AQUECIMENTO //if (totalAntesTrat <= linhasAntesTrat) //{ // for (var i = 0; i < totalAntesTrat; i++) // { // nlt++; // listaRetorno.Add(new ListaCiclosTratGrafico() // { // NLT = nlt, // NL = i + 1, // horario = leiturasCiclo[i].horario, // T1 = leiturasCiclo[i].T1, // T2 = leiturasCiclo[i].T2, // T3 = leiturasCiclo[i].T3, // T4 = leiturasCiclo[i].T4 // }); // } //} //else //{ var indicesAntesTrat = PegarIndicesPorDivisao(0, totalAntesTrat - 1, linhasAntesTrat); foreach (var indice in indicesAntesTrat.ToList()) { nlt++; listaRetorno.Add(new ListaCiclosTratGrafico() { NLT = nlt, NL = indice + 1, horario = leiturasCiclo[indice].horario, T1 = leiturasCiclo[indice].T1, T2 = leiturasCiclo[indice].T2, T3 = leiturasCiclo[indice].T3, T4 = leiturasCiclo[indice].T4 }); } //} /// POPULA DADOS DO TRATAMENTO //if (totalTrat < linhasTrat) //{ // for (var i = 0; i < totalTrat; i++) // { // nlt++; // listaRetorno.Add(new ListaCiclosTratGrafico() // { // NLT = nlt, // NL = inicioTrat + i, // horario = leiturasCiclo[i].horario, // T1 = leiturasCiclo[i].T1, // T2 = leiturasCiclo[i].T2, // T3 = leiturasCiclo[i].T3, // T4 = leiturasCiclo[i].T4 // }); // } //} //else //{ var indicesTrat = PegarIndicesPorDivisao(0, totalTrat - 1, linhasTrat); foreach (var indice in indicesTrat.ToList()) { nlt++; listaRetorno.Add(new ListaCiclosTratGrafico() { NLT = nlt, NL = inicioTrat + indice, horario = leiturasTrat[indice].horario, T1 = leiturasTrat[indice].T1, T2 = leiturasTrat[indice].T2, T3 = leiturasTrat[indice].T3, T4 = leiturasTrat[indice].T4, demarca_tratamento = indice == 0 || indice == (totalTrat - 1) }); } //} /// POPULA DADOS DO RESFRIAMENTO //if (totalDepoisTrat <= linhasDepoisTrat) //{ // for (var i = fimTrat; i < totalCiclo; i++) // { // nlt++; // listaRetorno.Add(new ListaCiclosTratGrafico() // { // NLT = nlt, // NL = i + 1, // horario = leiturasCiclo[i].horario, // T1 = leiturasCiclo[i].T1, // T2 = leiturasCiclo[i].T2, // T3 = leiturasCiclo[i].T3, // T4 = leiturasCiclo[i].T4 // }); // } //} //else //{ var indicesDepoisTrat = PegarIndicesPorDivisao(fimTrat, totalCiclo - 1, linhasDepoisTrat); foreach (var indice in indicesDepoisTrat.ToList()) { nlt++; listaRetorno.Add(new ListaCiclosTratGrafico() { NLT = nlt, NL = indice + 1, horario = leiturasCiclo[indice].horario, T1 = leiturasCiclo[indice].T1, T2 = leiturasCiclo[indice].T2, T3 = leiturasCiclo[indice].T3, T4 = leiturasCiclo[indice].T4 }); } //} return(listaRetorno); }