private void Sumarizar(ConfiguracaoRelatorio configuracao, DadosRelatorio dados) { if (configuracao.Sumarios.Count == 0 || dados.Colunas.Count == 0) { return; } List <int> campos = configuracao.CamposSelecionados.Where(x => configuracao.Sumarios.Exists(y => y.CampoId == x.CampoId)).Select(z => z.Posicao).ToList(); Dictionary <int, string> colunas = new Dictionary <int, string>(); dados.Sumarizacoes.Colunas.Where(x => campos.Exists(y => y == x.Key)).OrderBy(x => x.Key).ToList().ForEach(x => { colunas.Add(x.Key, x.Value); }); dados.Sumarizacoes.Colunas = colunas; //Ordenar as colunas do sumario configuracao.Sumarios = configuracao.Sumarios.OrderBy(x => configuracao.CamposSelecionados.Single(y => y.CampoId == x.CampoId).Posicao).ToList(); PrepararSumarios(dados.Sumarizacoes, configuracao.Sumarios); foreach (var grupo in dados.Grupos) { PrepararSumarios(grupo.Sumarizacoes, configuracao.Sumarios); SumarizarGrupo(configuracao, grupo); } SumarizarTotal(configuracao, dados); }
public void Exportar(DadosRelatorio dados, out Arquivo.Arquivo arquivo) { arquivo = new Arquivo.Arquivo(); MemoryStream ms = new MemoryStream(); Exportar(dados, ms); arquivo.Buffer = ms; arquivo.ContentType = "application/vnd.ms-excel"; arquivo.Nome = "relatorio.xls"; }
public byte[] Exportar(DadosRelatorio dados) { byte[] bytes; using (MemoryStream ms = new MemoryStream()) { Exportar(dados, ms); bytes = ms.ToArray(); } return(bytes); }
public override void MontarCorpoDados() { base.MontarCorpoDados(); #region Cabeçalho do Relatório PdfPTable table = new PdfPTable(5); BaseColor preto = new BaseColor(0, 0, 0); BaseColor fundo = new BaseColor(200, 200, 200); Font font = FontFactory.GetFont("Verdana", 8, Font.NORMAL, preto); Font titulo = FontFactory.GetFont("Verdana", 8, Font.BOLD, preto); float[] colsW = { 10, 10, 10, 10, 10 }; table.SetWidths(colsW); table.HeaderRows = 1; table.WidthPercentage = 100f; table.DefaultCell.Border = PdfPCell.BOTTOM_BORDER; table.DefaultCell.BorderColor = preto; table.DefaultCell.BorderColorBottom = new BaseColor(255, 255, 255); table.DefaultCell.Padding = 10; table.AddCell(getNewCell("Número", titulo, Element.ALIGN_LEFT, 10, PdfPCell.BOTTOM_BORDER, preto, fundo)); table.AddCell(getNewCell("Emissão", titulo, Element.ALIGN_LEFT, 10, PdfPCell.BOTTOM_BORDER, preto, fundo)); table.AddCell(getNewCell("Vencimento", titulo, Element.ALIGN_LEFT, 10, PdfPCell.BOTTOM_BORDER, preto, fundo)); table.AddCell(getNewCell("Valor", titulo, Element.ALIGN_RIGHT, 10, PdfPCell.BOTTOM_BORDER, preto, fundo)); table.AddCell(getNewCell("Saldo", titulo, Element.ALIGN_RIGHT, 10, PdfPCell.BOTTOM_BORDER, preto, fundo)); #endregion var duplicatas = new DadosRelatorio().duplicatas; var clienteOld = string.Empty; foreach (var d in duplicatas) { if (d.cliente.RazaoSocial != clienteOld) { var cell = getNewCell(d.cliente.RazaoSocial, titulo, Element.ALIGN_LEFT, 10, PdfPCell.BOTTOM_BORDER); cell.Colspan = 5; table.AddCell(cell); clienteOld = d.cliente.RazaoSocial; } table.AddCell(getNewCell(d.Numero, font, Element.ALIGN_LEFT, 5, PdfPCell.BOTTOM_BORDER)); table.AddCell(getNewCell(d.Emissao.ToString("dd/MM/yyyy"), font, Element.ALIGN_LEFT, 5, PdfPCell.BOTTOM_BORDER)); table.AddCell(getNewCell(d.Vencimento.ToString("dd/MM/yyyy"), font, Element.ALIGN_LEFT, 5, PdfPCell.BOTTOM_BORDER)); table.AddCell(getNewCell(string.Format("{0:0.00}", d.Valor), font, Element.ALIGN_RIGHT, 5, PdfPCell.BOTTOM_BORDER)); table.AddCell(getNewCell(string.Format("{0:0.00}", d.Saldo), font, Element.ALIGN_RIGHT, 5, PdfPCell.BOTTOM_BORDER)); } doc.Add(table); }
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; } } } }
public Arquivo.Arquivo Executar(int id, int tipo, int setor, List <Termo> termos) { try { Relatorio relatorio = Obter(id, false); if (!ValidarExecutar(id, tipo, setor, termos, relatorio)) { return(null); } if (termos != null) { foreach (var termo in termos) { relatorio.ConfiguracaoRelatorio.Termos.Single(p => p.Ordem == termo.Ordem).Valor = termo.Valor; } } Executor executor = new Executor(); DadosRelatorio dados = executor.Executar(relatorio.ConfiguracaoRelatorio); //Fica a criterio da analise como montar esse dados para de pois criar uma logica dados.ConfiguracaoDocumentoPDF = new ConfiguracaoDocumentoPDF( "~/Content/_imgLogo/logomarca.png", "~/Content/_imgLogo/logomarca_simlam_pb.png", HttpContext.Current.Server.MapPath(@"~/Content/_pdfAspose/Relatorio.doc"), HttpContext.Current.Server.MapPath(@"~/Content/_pdfAspose/RelatorioPaisagem.doc")); dados.ConfiguracaoDocumentoPDF.OrientacaoRetrato = relatorio.ConfiguracaoRelatorio.OrientacaoRetrato; dados.ConfiguracaoDocumentoPDF.CabecalhoRodape = CabecalhoRodapeFactory.Criar(setor); dados.Operadores = ObterOperadores(null); dados.Filtros = relatorio.ConfiguracaoRelatorio.Termos; IExportador exportador = ExportadorFactory.Criar(tipo); if (!Validacao.EhValido) { return(null); } Arquivo.Arquivo arquivo; exportador.Exportar(dados, out arquivo); return(arquivo); } catch (Exception exc) { Validacao.AddErro(exc); } return(null); }
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); } } } }
public GrupoDados(DadosRelatorio relatorio) { _relatorio = relatorio; Dados = new ColecaoDados(_relatorio.Colunas); Sumarizacoes = new ColecaoDados(_relatorio.Colunas); }
public void Exportar(DadosRelatorio dados, Stream stream) { _dados = dados; ExcelXmlWorkbook pasta = new ExcelXmlWorkbook(); pasta.Properties.Author = "Sistema Integrado de Monitoramento e Licenciamento Ambiental"; pasta.Properties.Company = "Instituto de Defesa Agropecuária e Florestal"; pasta.Properties.Title = dados.Nome; Worksheet planilha = pasta[0]; IniciarRelatorio(dados, planilha); int linha = 2; if (dados.ComAgrupamento) { if (dados.Grupos.Count == 0) { linha = EscreverColunas(dados.Colunas.Select(x => x.Value).ToList(), planilha, linha); linha = EscreverSemDados(planilha, linha); } else { foreach (var grupo in dados.Grupos) { linha = EscreverTituloGrupo(grupo.Campo, grupo.Valor, planilha, linha); linha = EscreverColunas(dados.Colunas.Select(x => x.Value).ToList(), planilha, linha); linha = EscreverDados(grupo.Dados, planilha, linha); if (grupo.Sumarizacoes.Linhas.Count > 0) { linha = EscreverTituloSumario(planilha, linha, "Grupo"); linha = EscreverSumario(grupo.Sumarizacoes, planilha, linha); } if (dados.Totalizar) { linha = EscreverTotalGrupo(grupo.Total, planilha, linha); } linha++; } if (dados.Sumarizacoes.Linhas.Count > 0) { linha = EscreverTituloSumario(planilha, linha); linha = EscreverColunas(dados.Colunas.Select(x => x.Value).ToList(), planilha, linha); linha = EscreverSumario(dados.Sumarizacoes, planilha, linha); } if (dados.Totalizar) { linha = EscreverTotal(dados.Total, planilha, linha); } } } else { if (dados.Dados.Linhas.Count == 0) { linha = EscreverColunas(dados.Colunas.Select(x => x.Value).ToList(), planilha, linha); linha = EscreverSemDados(planilha, linha); } else { linha = EscreverColunas(dados.Colunas.Select(x => x.Value).ToList(), planilha, linha); linha = EscreverDados(dados.Dados, planilha, linha); if (dados.Sumarizacoes.Linhas.Count > 0) { linha = EscreverTituloSumario(planilha, linha); linha = EscreverSumario(dados.Sumarizacoes, planilha, linha); } if (dados.Totalizar) { linha = EscreverTotal(dados.Total, planilha, linha); } } } pasta.Export(stream); }
private void IniciarRelatorio(DadosRelatorio dados, Worksheet planilha) { planilha.Name = "Relatório"; planilha[0, 0].Value = dados.Nome; planilha[0, 0].Style = Destaque; }
public void Exportar(DadosRelatorio dados, Stream stream) { Documento = new Document(dados.ConfiguracaoDocumentoPDF.CaminhoDocumento); Builder = new DocumentBuilder(Documento); Dictionary <int, string> colunas = new Dictionary <int, string>(); #region Tabelas e Estilos Table tabela = FindTable(Documento, "Filtro1"); if (tabela != null) { ConfigurarEstilo(tabela); tabela.Rows.Clear(); } tabela = FindTable(Documento, "Linha1Coluna1"); if (tabela != null) { ConfigurarEstilo(tabela); tabela.Rows.Clear(); } #endregion Tabelas e Estilos Builder.MoveToDocumentEnd(); Builder.StartTable(); #region Filtros if (dados.Filtros != null && dados.Filtros.Count > 0) { int cont = 2; foreach (var item in dados.Filtros) { if (!string.IsNullOrEmpty(item.Campo.Alias)) { string filtro = item.Campo.Alias + " " + dados.Operadores.Single(x => Convert.ToInt32(x.Id) == item.Operador).Texto + " "; if (item.Campo.PossuiListaDeValores) { if (item.Campo.TipoDadosEnum == eTipoDados.Bitand) { int valor = Convert.ToInt32(item.Valor); foreach (var itemLista in item.Campo.Lista) { if ((valor & Convert.ToInt32(itemLista.Codigo)) > 0) { filtro += itemLista.Texto + '/'; } } filtro = filtro.Substring(0, filtro.Length - 1); } else { filtro += (item.Campo.Lista.FirstOrDefault(x => x.Id == item.Valor) ?? new Lista()).Texto; } } else { filtro += item.Valor; } if ((cont % 2) == 0) { InserirCelula(filtro, 50, Estilos["Estilo_0_0"]); } else { InserirCelula(filtro, 50, Estilos["Estilo_0_1"]); Builder.EndRow(); } cont++; } } if ((cont % 2) != 0) { Builder.EndRow(); } } else { InserirCelula("Nenhum Filtro Adicionado", 100, Estilos["Estilo_0_0"]); Builder.EndRow(); } EscreverLinhaEmBranco(); #endregion Filtros #region Escrever Dados if (dados.ComAgrupamento) { if (dados.Grupos.Count == 0) { InserirLinha(dados.Campos); EscreverDados(); } else { foreach (var grupo in dados.Grupos) { EscreverLinhaEmBranco(16); EscreverTituloGrupo(grupo.Campo, grupo.Valor); EscreverLinhaEmBranco(); InserirLinha(dados.Campos, Estilos["Estilo_2_0"]); InserirLinha(grupo.Dados, dados.Campos, Estilos["Estilo_3_0"], Estilos["Estilo_4_0"]); if (grupo.Sumarizacoes.Linhas.Count > 0 || dados.Totalizar) { EscreverLinhaEmBranco(); } if (grupo.Sumarizacoes.Linhas.Count > 0) { colunas = grupo.Sumarizacoes.Colunas; EscreverDadosSumario(grupo.Sumarizacoes, colunas); } if (dados.Totalizar) { EscreverTotal(grupo.Total.ToString(), Estilos["Estilo_12_0"], Estilos["Estilo_12_1"]); } } if (dados.Sumarizacoes.Linhas.Count > 0) { EscreverDadosSumarioTotal(dados.Sumarizacoes, colunas); } if (dados.Totalizar) { EscreverTotal(dados.Total.ToString()); } } } else { if (dados.Dados.Linhas.Count == 0) { InserirLinha(dados.Campos, Estilos["Estilo_3_0"]); } else { InserirLinha(dados.Campos, Estilos["Estilo_2_0"]); InserirLinha(dados.Dados, dados.Campos, Estilos["Estilo_3_0"], Estilos["Estilo_4_0"]); if (dados.Sumarizacoes.Linhas.Count > 0 || dados.Totalizar) { EscreverLinhaEmBranco(); } if (dados.Sumarizacoes.Linhas.Count > 0) { EscreverDadosSumarioTotal(dados.Sumarizacoes, dados.Sumarizacoes.Colunas); } if (dados.Totalizar) { EscreverTotal(dados.Total.ToString()); } } } #endregion Escrever Dados Builder.EndTable(); dados.ConfiguracaoDocumentoPDF.RelatorioNome = dados.Nome; dados.ConfiguracaoDocumentoPDF.RelatorioDataHoraImpressao = DateTime.Now.ToString(); dados.ConfiguracaoDocumentoPDF.RelatorioDataHoraAtualizacao = String.IsNullOrEmpty(dados.Data) ? DateTime.Now.ToString() : Convert.ToDateTime(dados.Data).ToString(); ConfigurarCabecalhoRodape(dados.ConfiguracaoDocumentoPDF); //Salvar o arquivo Builder.Document.Save(stream, SaveFormat.Pdf); }
/// <summary> /// /// </summary> /// <returns></returns> public static Resposta CarregarEstrutura(string nomeUsuario, string relatorioSelecionado) { Resposta resposta = new Resposta(); String pasta = System.Configuration.ConfigurationManager.AppSettings["PastaConfiguracao"].ToString(); String arquivo = System.Configuration.ConfigurationManager.AppSettings[relatorioSelecionado].ToString(); String caminhoCompleto = pasta + "\\" + arquivo; //String arquivo = @"C:\Klabin"; try { // Verifica existencia da pasta leitura //if (System.IO.Directory.Exists(pasta)) //{ // Obtem os nomes dos arquivos da pasta leitura String[] files = System.IO.Directory.GetFiles(pasta); // Percorre todos os arquivos da pasta //foreach (String sourceFile in files) //{ // Recupera o nome do arquivo String nomeArquivo = Path.GetFileName(caminhoCompleto); String line; List <DadosRelatorio> linesToPIMS = new List <DadosRelatorio>(); // Lê o arquivo System.IO.StreamReader file = new System.IO.StreamReader(caminhoCompleto); while ((line = file.ReadLine()) != null && line != String.Empty) { String[] lineSplited = line.Split(';'); DadosRelatorio dados = new DadosRelatorio(); dados.elemento = lineSplited[0]; dados.grupo = lineSplited[1]; dados.subGrupo = lineSplited[2]; dados.uom = lineSplited[3]; dados.tipoRelatorio = lineSplited[4]; dados.tipoGrafico = lineSplited[5]; dados.tag = lineSplited[6]; dados.filtroExpressao = lineSplited[7]; dados.tipoCalculo = lineSplited[8]; dados.totalizadorDia = lineSplited[9]; dados.totalizadorDiaAnt = lineSplited[10]; dados.totalizadorMes = lineSplited[11]; dados.totalizadorMesAnt = lineSplited[12]; dados.minimo = lineSplited[13]; dados.meta = lineSplited[14]; dados.maximo = lineSplited[15]; dados.casasDecimais = "2"; //lineSplited[16]; linesToPIMS.Add(dados); } resposta.Dados = linesToPIMS; resposta.Status = true; file.Close(); //} //} //else //{ // throw new Exception("Pasta " + arquivo + " não existe"); //} } catch (Exception ex) { IHM.Log.Xml.TraceLog.LogEvent(ex.Message, IHM.Log.Xml.TraceLog.TipoLog.Erro); resposta.Status = false; resposta.Mensagem = ex.Message; } return(resposta); }
private RelatorioDuplicatasDynamic RelatorioDuplicatasGeneric() { var rpt = new RelatorioDuplicatasDynamic(); rpt.BasePath = Server.MapPath("/"); rpt.PageTitle = "Folha de Pagamento"; rpt.ImprimirCabecalhoPadrao = true; rpt.Paisagem = true; rpt.ImprimirRodapePadrao = true; var lItens = new DadosRelatorio().duplicatas; var lItensViewModel = lItens.Select(x => new ReportDuplicata { Emissao = x.Emissao.ToString(), Numero = x.Numero, Saldo = x.Saldo.ToString(), Vencimento = x.Vencimento.ToString(), Valor = x.Valor.ToString(), RazaoSocial = x.cliente.RazaoSocial }).ToList(); lItensViewModel.AddRange(lItens.Select(x => new ReportDuplicata { Emissao = x.Emissao.ToString(), Numero = x.Numero, Saldo = x.Saldo.ToString(), Vencimento = x.Vencimento.ToString(), Valor = x.Valor.ToString(), RazaoSocial = x.cliente.RazaoSocial }).ToList()); lItensViewModel.AddRange(lItens.Select(x => new ReportDuplicata { Emissao = x.Emissao.ToString(), Numero = x.Numero, Saldo = x.Saldo.ToString(), Vencimento = x.Vencimento.ToString(), Valor = x.Valor.ToString(), RazaoSocial = x.cliente.RazaoSocial }).ToList()); lItensViewModel.AddRange(lItens.Select(x => new ReportDuplicata { Emissao = x.Emissao.ToString(), Numero = x.Numero, Saldo = x.Saldo.ToString(), Vencimento = x.Vencimento.ToString(), Valor = x.Valor.ToString(), RazaoSocial = x.cliente.RazaoSocial }).ToList()); lItensViewModel.AddRange(lItens.Select(x => new ReportDuplicata { Emissao = x.Emissao.ToString(), Numero = x.Numero, Saldo = x.Saldo.ToString(), Vencimento = x.Vencimento.ToString(), Valor = x.Valor.ToString(), RazaoSocial = x.cliente.RazaoSocial }).ToList()); lItensViewModel.AddRange(lItens.Select(x => new ReportDuplicata { Emissao = x.Emissao.ToString(), Numero = x.Numero, Saldo = x.Saldo.ToString(), Vencimento = x.Vencimento.ToString(), Valor = x.Valor.ToString(), RazaoSocial = x.cliente.RazaoSocial }).ToList()); lItensViewModel.AddRange(lItens.Select(x => new ReportDuplicata { Emissao = x.Emissao.ToString(), Numero = x.Numero, Saldo = x.Saldo.ToString(), Vencimento = x.Vencimento.ToString(), Valor = x.Valor.ToString(), RazaoSocial = x.cliente.RazaoSocial }).ToList()); lItensViewModel.AddRange(lItens.Select(x => new ReportDuplicata { Emissao = x.Emissao.ToString(), Numero = x.Numero, Saldo = x.Saldo.ToString(), Vencimento = x.Vencimento.ToString(), Valor = x.Valor.ToString(), RazaoSocial = x.cliente.RazaoSocial }).ToList()); lItensViewModel.AddRange(lItens.Select(x => new ReportDuplicata { Emissao = x.Emissao.ToString(), Numero = x.Numero, Saldo = x.Saldo.ToString(), Vencimento = x.Vencimento.ToString(), Valor = x.Valor.ToString(), RazaoSocial = x.cliente.RazaoSocial }).ToList()); lItensViewModel.AddRange(lItens.Select(x => new ReportDuplicata { Emissao = x.Emissao.ToString(), Numero = x.Numero, Saldo = x.Saldo.ToString(), Vencimento = x.Vencimento.ToString(), Valor = x.Valor.ToString(), RazaoSocial = x.cliente.RazaoSocial }).ToList()); rpt.MontarTitulo("Número", "Emissão", "Vencimento", "Valor", "Saldo", "Saldo Novamente"); rpt.MontarValores <ReportDuplicata>(lItensViewModel, (x) => x.RazaoSocial, (x) => x.Numero, (x) => x.Emissao, (x) => x.Vencimento, (x) => x.Valor, (x) => x.Saldo, (x) => x.Saldo); return(rpt); }
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); }
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); }