none
Qual problema dessa expressão? RRS feed

  • Pergunta

  • =iif(Fields!nome.Value.ToString().Length > 32, Fields!nome.Value.ToString().Substring(0,32), Fields!nome.Value.ToString())

    Estou com um grande problema com essa expressão, não sei oq está dando de  errado.

    A idéia é a seguinte : Se a variavel tiver mais de 32 caracteres ele pega apenas os 32 primeiros, caso tenha menos de 32 caracters ele pega a variavel sem restrição.


    Eu to fazendo isso para evitar o salto de linha quando vem nomes muito grandes, por exemplo: Astrogildo Vascaino da Silva Ribeiro de Magalhães Cruz, esse nome ocuparia 2 linhas ficando um espaço feio entre duas linhas no relatório.

    Se alguem tiver outra idéia para resolver isso, poste aew.
    quinta-feira, 3 de janeiro de 2008 16:46

Respostas

  •  

    Voce nao pode setar a propriedade "Cangrow" para false?

     

    Anyway, você pode também usar a seguinte expressão:

     

    =iif(Len(Fields!nome.Value.ToString()) > 32, Left(Fields!nome.Value.ToString(),32), Fields!nome.Value.ToString())

     

    Dica, utilize a janela de expressoes para criar suas expressoes. Você pode escolher as funções e ver qual a sintaxe correta.

     

    Att

    Guilherme

     

    quinta-feira, 3 de janeiro de 2008 17:33

Todas as Respostas

  • Renan:

     

    Dê uma olhada neste código.

     

    Code Block

    private void button1_Click(object sender, EventArgs e)

    {

    string Name1 = "";

    string Name2 = "";

    Name1 = Convert.ToString("Astrogildo Vascaino da Silva Ribeiro de Magalhães Cruz").Substring(0, 32).Trim();

    Name2 = Convert.ToString("Astrogildo Vascaino da Silva Ribeiro de Magalhães Cruz").Substring(0, 32);

    MessageBox.Show(Name1 + char.ConvertFromUtf32(13) + Name2, "Sem Trim", MessageBoxButtons.OK, MessageBoxIcon.Information);

    Name1 = Convert.ToString("Astrogildo Vascaino da Silva Ribeiro de Magalhães Cruz").Substring(0,32).Trim();

    Name2 = Convert.ToString("Astrogildo Vascaino da Silva Ribeiro de Magalhães Cruz").Substring(0, 32);

    MessageBox.Show(Name1 + char.ConvertFromUtf32(13) + Name2, "Com Trim", MessageBoxButtons.OK, MessageBoxIcon.Information);

    }

     

     

    Abs,
    quinta-feira, 3 de janeiro de 2008 17:29
  •  

    Voce nao pode setar a propriedade "Cangrow" para false?

     

    Anyway, você pode também usar a seguinte expressão:

     

    =iif(Len(Fields!nome.Value.ToString()) > 32, Left(Fields!nome.Value.ToString(),32), Fields!nome.Value.ToString())

     

    Dica, utilize a janela de expressoes para criar suas expressoes. Você pode escolher as funções e ver qual a sintaxe correta.

     

    Att

    Guilherme

     

    quinta-feira, 3 de janeiro de 2008 17:33
  • Voce nao pode setar a propriedade "Cangrow" para false?

    Era exatamente isso que eu queria saber, não sabia qual propriedade fazia isso pra mim =D

    Vlw mesmo Boreki.
    quinta-feira, 3 de janeiro de 2008 18:22