Beispiel #1
0
        //-- 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());
        }
Beispiel #2
0
        //-- 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());
        }
Beispiel #3
0
        //-- 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());
        }
Beispiel #4
0
        //-- 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());
        }
Beispiel #5
0
        //-- 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());
        }
Beispiel #6
0
        //-- 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());
            }
        }
Beispiel #7
0
        //-- 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());
        }
Beispiel #8
0
        //-- rodape

        private static string[] GetConteudoRodape(this IRelatorioParte relatorioParte)
        {
            return(relatorioParte.GetConteudoCabecalho());
        }
Beispiel #9
0
        //-- total

        private static string[] GetConteudoTotal(this IRelatorioParte relatorioParte)
        {
            return(relatorioParte.GetConteudoSubTotalTitulo("Total -> "));
        }