Example #1
0
        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);
        }
Example #5
0
        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);
        }
Example #7
0
        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);
                    }
                }
            }
        }
Example #8
0
 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;
 }
Example #11
0
        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);
        }
Example #14
0
        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);
        }
Example #15
0
        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);
        }