예제 #1
0
        //-- alinhado

        private static string GetAlinhado(this IRelatorioCampo relatorioCampo, string value)
        {
            var conteudo = value;

            if (conteudo.Length > relatorioCampo.Tamanho)
            {
                return(conteudo.Substring(0, relatorioCampo.Tamanho));
            }

            switch (relatorioCampo.Alinhamento)
            {
            case RelatorioAlinhamento.Direita:
                return(conteudo.PadLeft(relatorioCampo.Tamanho, ' '));

            case RelatorioAlinhamento.Centro:
                var tamanhoDisp  = relatorioCampo.Tamanho - value.Length;
                var tamanhoLeft  = tamanhoDisp / 2;
                var tamanhoRight = tamanhoDisp - tamanhoLeft;
                return
                    (string.Empty.PadLeft(tamanhoLeft, ' ') + value +
                     string.Empty.PadRight(tamanhoRight, ' '));

            default:
            case RelatorioAlinhamento.Esquerda:
                return(conteudo.PadRight(relatorioCampo.Tamanho, ' '));

            case RelatorioAlinhamento.Justificado:
                break;
            }

            return(string.Empty);
        }
예제 #2
0
        //-- codigo

        public static string GetCodigo(this IRelatorioCampo relatorioCampo, RelatorioFormato formato)
        {
            if (formato.IsAlinhado())
            {
                return(relatorioCampo.GetAlinhado(relatorioCampo.Codigo));
            }
            else
            {
                return(relatorioCampo.Codigo);
            }
        }
예제 #3
0
        //-- descricao

        public static string GetDescicao(this IRelatorioCampo relatorioCampo, RelatorioFormato formato)
        {
            if (formato.IsAlinhado())
            {
                return(relatorioCampo.GetAlinhado(relatorioCampo.Descricao));
            }
            else
            {
                return(relatorioCampo.Descricao);
            }
        }
예제 #4
0
 public static string GetValue(this IRelatorioCampo relatorioCampo, RelatorioFormato formato, object value)
 {
     if (formato.IsAlinhado())
     {
         return(relatorioCampo.GetAlinhado(relatorioCampo.GetValueStr(value)));
     }
     else
     {
         return(relatorioCampo.GetValueStr(value));
     }
 }
예제 #5
0
        //-- value

        private static string GetValueStr(this IRelatorioCampo relatorioCampo, object value)
        {
            var conteudo = string.Empty;

            var formato = $"N{relatorioCampo.Precisao}";

            if (value != null)
            {
                if (value is bool || value is bool?)
                {
                    conteudo = (bool)value ? "T" : "F";
                }
                else if (value is DateTime || value is DateTime?)
                {
                    conteudo = ((DateTime)value).ToString();
                }
                else if (value is long || value is long?)
                {
                    conteudo = ((long)value).ToString();
                }
                else if (value is int || value is int?)
                {
                    conteudo = ((int)value).ToString();
                }
                else if (value is short || value is short?)
                {
                    conteudo = ((short)value).ToString();
                }
                else if (value is decimal || value is decimal?)
                {
                    conteudo = ((decimal)value).ToString(formato, CultureInfo.InvariantCulture);
                }
                else if (value is double || value is double?)
                {
                    conteudo = ((double)value).ToString(formato, CultureInfo.InvariantCulture);
                }
                else if (value is float || value is float?)
                {
                    conteudo = ((float)value).ToString(formato, CultureInfo.InvariantCulture);
                }
                else
                {
                    conteudo = value.ToString();
                }
            }

            return(conteudo);
        }