RDLC报告VS2012中的对齐

时间:2015-08-21 07:49:52

标签: c# asp.net reporting-services rdlc dynamic-rdlc-generation

我在VS 2012中使用RDLC报告,我面临对齐问题,在这方面有帮助,我只能找到左,右,中心,我需要在文本框中对齐文本,如何我可以这样做吗?

  

VS 2012 RDLC报告中的对齐,证明

2 个答案:

答案 0 :(得分:-1)

不幸的是,SSRS无法做到这一点(仍然 - 它只能在你的雷达上工作8年,微软)。

如果你想做很多额外的工作来完成它,你可以尝试:

http://knackbi.blogspot.com/

答案 1 :(得分:-1)

使用任何相同宽度字体的字符串列表尝试此功能,例如courier new。

        public static List<string> GetText(string text, int width)
    {
        string[] palabras = text.Split(' ');
        StringBuilder sb1 = new StringBuilder();
        StringBuilder sb2 = new StringBuilder();
        int length = palabras.Length;
        List<string> resultado = new List<string>();
        for (int i = 0; i < length; i++)
        {
            sb1.AppendFormat("{0} ", palabras[i]);
            if (sb1.ToString().Length > width)
            {
                resultado.Add(sb2.ToString());
                sb1 = new StringBuilder();
                sb2 = new StringBuilder();
                sb1.AppendFormat("{0} ", palabras[i]);
                sb2.AppendFormat("{0} ", palabras[i]);
            }
            else
            {
                sb2.AppendFormat("{0} ", palabras[i]);
            }
        }
        resultado.Add(sb2.ToString());

        List<string> resultado2 = new List<string>();
        string temp;

        int index1, index2, salto;
        string target;
        int limite = resultado.Count;
        foreach (var item in resultado)
        {
            target = " ";
            temp = item.ToString().Trim();
            index1 = 0; index2 = 0; salto = 2;

            if (limite <= 1)
            {
                resultado2.Add(temp);
                break;
            }
            while (temp.Length <= width)
            {
                if (temp.IndexOf(target, index2) < 0)
                {
                    index1 = 0; index2 = 0;
                    target = target + " ";
                    salto++;
                }
                index1 = temp.IndexOf(target, index2);
                temp = temp.Insert(temp.IndexOf(target, index2), " ");
                index2 = index1 + salto;

            }
            limite--;
            resultado2.Add(temp);
        }
        return resultado2;
    }