//-- detalhe private static string[] GetConteudoDetalhe(this IRelatorioParte relatorioParte) { var conteudos = new List <string>(); var conteudo = new List <string>(); var objetos = new List <object>(); if (relatorioParte.Objeto is IList) { foreach (var objeto in (relatorioParte.Objeto as IList)) { objetos.Add(objeto); } } else { objetos.Add(relatorioParte.Objeto); } foreach (var objeto in objetos) { foreach (var campo in relatorioParte.Campos) { var value = objeto.GetInstancePropOrField(campo.Codigo); conteudo.Add($"{campo.GetValue(_formato, value)}"); } } conteudos.Add(string.Join(_delimitador.Entre, conteudo).GetConteudoLinha()); return(conteudos.ToArray()); }
//-- titulo colunas private static string[] GetConteudoTituloColunas(this IRelatorioParte relatorioParte) { var conteudos = new List <string>(); var conteudo = new List <string>(); foreach (var campo in relatorioParte.Campos) { conteudo.Add($"{campo.GetDescicao(_formato)}"); } conteudos.Add(string.Join(_delimitador.Entre, conteudo).GetConteudoLinha()); return(conteudos.ToArray()); }
//-- corpo private static string[] GetConteudoCorpo(this IRelatorioParte relatorioParte) { var conteudos = new List <string>(); foreach (var parte in relatorioParte.Partes) { var conteudosParte = parte.GetConteudoExportacao(); foreach (var conteudoParte in conteudosParte) { conteudos.Add(conteudoParte); } } return(conteudos.ToArray()); }
//-- subtotal e total private static string[] GetConteudoSubTotalTitulo(this IRelatorioParte relatorioParte, string titulo) { var conteudos = new List <string>(); var conteudo = new List <string>(); conteudo.Add(titulo); foreach (var campo in relatorioParte.Campos) { var value = relatorioParte.Objeto.GetInstancePropOrField(campo.Codigo); conteudo.Add($"{campo.Descricao}: {campo.GetValue(_formato, value)}"); } conteudos.Add(string.Join(_delimitador.Entre, conteudo).GetConteudoLinha()); return(conteudos.ToArray()); }
//-- cabecalho private static string[] GetConteudoCabecalho(this IRelatorioParte relatorioParte) { var conteudos = new List <string>(); foreach (var campo in relatorioParte.Campos) { if (campo.Tamanho <= 0) { campo.Tamanho = _larguraDisponivel; } var value = relatorioParte.Objeto.GetInstancePropOrField(campo.Codigo); var conteudo = campo.GetValue(_formato, value); conteudos.Add(conteudo.GetConteudoLinha()); } return(conteudos.ToArray()); }
//-- parte private static string[] GetConteudoExportacao(this IRelatorioParte relatorioParte) { switch (relatorioParte.Tipo) { case RelatorioParteTipo.Cabecalho: return(relatorioParte.GetConteudoCabecalho()); case RelatorioParteTipo.Titulo: return(relatorioParte.GetConteudoTitulo()); case RelatorioParteTipo.Corpo: return(relatorioParte.GetConteudoCorpo()); case RelatorioParteTipo.Quebra: return(relatorioParte.GetConteudoQuebra()); case RelatorioParteTipo.TituloColunas: return(relatorioParte.GetConteudoTituloColunas()); default: case RelatorioParteTipo.Detalhe: return(relatorioParte.GetConteudoDetalhe()); case RelatorioParteTipo.SubTotal: return(relatorioParte.GetConteudoSubTotal()); case RelatorioParteTipo.Total: return(relatorioParte.GetConteudoTotal()); case RelatorioParteTipo.Sumario: return(relatorioParte.GetConteudoSumario()); case RelatorioParteTipo.Rodape: return(relatorioParte.GetConteudoRodape()); } }
//-- quebra private static string[] GetConteudoQuebra(this IRelatorioParte relatorioParte) { var conteudos = new List <string>(); var conteudo = new List <string>(); foreach (var campo in relatorioParte.Campos) { var value = relatorioParte.Objeto.GetInstancePropOrField(campo.Codigo); conteudo.Add($"{campo.Descricao}: {campo.GetValue(_formato, value)}"); } conteudos.Add(string.Join(_delimitador.Quebra, conteudo).GetConteudoLinha()); foreach (var parteQuebra in relatorioParte.Partes) { var conteudosQuebra = parteQuebra.GetConteudoExportacao(); foreach (var conteudoQuebra in conteudosQuebra) { conteudos.Add(conteudoQuebra); } } return(conteudos.ToArray()); }
//-- rodape private static string[] GetConteudoRodape(this IRelatorioParte relatorioParte) { return(relatorioParte.GetConteudoCabecalho()); }
//-- total private static string[] GetConteudoTotal(this IRelatorioParte relatorioParte) { return(relatorioParte.GetConteudoSubTotalTitulo("Total -> ")); }