none
Formatar numero pelo Formula Workshop RRS feed

  • Pergunta

  • Bom dia desenvolvedores!

    estou com um probleminha...

    segue o exemplo:

     

    SELECT {STP_RELATORIO;1.CASASDECIMAIS}
        CASE 1:
            {STP_RELATORIO;1.VALOR}To //Comando de formatação.
        CASE 2:
            {STP_RELATORIO;1.VALOR}To //Comando de formatação.
        CASE 3:
            {STP_RELATORIO;1.VALOR}To //Comando de formatação.
        CASE 4:
            {STP_RELATORIO;1.VALOR}To //Comando de formatação.
        CASE 5:
            {STP_RELATORIO;1.VALOR}To //Comando de formatação.
        DEFAULT:
            {STP_RELATORIO;1.VALOR}To //Comando de formatação.

     

    No banco de dados eu tenho um campo que verifica se o valor tem ou nao casas decimais...

    se for do tipo 1 tem uma casa decimais, tipo 2, duas casas e assim por diante.

     

    O problema é que o campo valor  nao esta formatado.

    como formato ele? existe algum comando FORMAT?

     

    por exemplo se o campo casasdecimais retornar 1,

    campo valor = 1,0.

    Se retornar 4,

    campo valor = 1,0000.

    • Editado MarceloSchneider quarta-feira, 27 de outubro de 2010 14:08 Faltou Detalhe
    quarta-feira, 27 de outubro de 2010 14:06

Respostas

  • Marcelo, vamos lá... Veja se este passo-a-passo resolve a sua necessidade...

    Não importa da onde está vindo o valor, no seu relatório, você incluiu esse valor como um campo (arrastou ele pra dentro do relatório), certo? Então... Clique com o botão direito nesse objeto e escolha a opção "Format Object":

    Feito isso, na aba Number, clique no botão "Customize...":

    E então clique no botão para customizar o valor de Decimals:

    Aí, no Formula Editor, o que o Crystal Reports está esperando é um número que vai indicar quantas casas decimais ele deve mostrar para aquele objeto. Portanto, digite o seguinte na fórmula:

    {STP_RELATORIO;1.CASASDECIMAIS}

    Pronto... Isso não resolve a sua necessidade?


    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    • Marcado como Resposta MarceloSchneider quinta-feira, 28 de outubro de 2010 16:45
    quinta-feira, 28 de outubro de 2010 15:00
    Moderador
  • Resolve!

    mas fiz diferente, criei uma formula na mão.

    SELECT {STP_RELATORIO;1.CASASDECIMAIS}
        CASE 1:
                   ToText (Round (ToNumber ({STP_RELATORIO;1.VALOR}),1))
        CASE 2:
                   ToText (Round (ToNumber ({STP_RELATORIO;1.VALOR}),2))
        CASE 3:
                   ToText (Round (ToNumber ({STP_RELATORIO;1.VALOR}),3))
        CASE 4:
                   ToText (Round (ToNumber ({STP_RELATORIO;1.VALOR}),4))
        CASE 5:
                   ToText (Round (ToNumber ({STP_RELATORIO;1.VALOR}),5))
        DEFAULT:
                  ({STP_RELATORIO_PONTOS_AUDITORIA;1.VALOR})

    funcionou tambem.

    obrigado pela força!

    • Editado MarceloSchneider quinta-feira, 28 de outubro de 2010 16:44 faltou detalhe
    • Marcado como Resposta MarceloSchneider quinta-feira, 28 de outubro de 2010 16:45
    quinta-feira, 28 de outubro de 2010 16:44

Todas as Respostas

  • Marcelo,

    Veja se isto te ajuda em algo:

    http://victoriayudin.com/2009/06/02/dynamically-change-decimal-places-in-crystal-reports/


    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    quarta-feira, 27 de outubro de 2010 15:35
    Moderador
  • Isso nao ajuda muito :/ nem tem isso no meu relatório.

    quarta-feira, 27 de outubro de 2010 16:58
  • Marcelo,

    Não tem isso no seu relatório? Como assim? Você está utilizando Crystal Reports, certo?

    Clica com o botão direito no campo que você quer aplicar a formatação, escolha a opção "Format Field" e adapte a solução apresentada no link que te enviei...


    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    quarta-feira, 27 de outubro de 2010 21:58
    Moderador
  • é que nao estou utilizando um field.. e sim um object, q vem da procedure.

    entao acho q o unico jeito de fazer é criando uma fórmula.

    quinta-feira, 28 de outubro de 2010 12:31
  • Marcelo, vamos lá... Veja se este passo-a-passo resolve a sua necessidade...

    Não importa da onde está vindo o valor, no seu relatório, você incluiu esse valor como um campo (arrastou ele pra dentro do relatório), certo? Então... Clique com o botão direito nesse objeto e escolha a opção "Format Object":

    Feito isso, na aba Number, clique no botão "Customize...":

    E então clique no botão para customizar o valor de Decimals:

    Aí, no Formula Editor, o que o Crystal Reports está esperando é um número que vai indicar quantas casas decimais ele deve mostrar para aquele objeto. Portanto, digite o seguinte na fórmula:

    {STP_RELATORIO;1.CASASDECIMAIS}

    Pronto... Isso não resolve a sua necessidade?


    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    • Marcado como Resposta MarceloSchneider quinta-feira, 28 de outubro de 2010 16:45
    quinta-feira, 28 de outubro de 2010 15:00
    Moderador
  • Resolve!

    mas fiz diferente, criei uma formula na mão.

    SELECT {STP_RELATORIO;1.CASASDECIMAIS}
        CASE 1:
                   ToText (Round (ToNumber ({STP_RELATORIO;1.VALOR}),1))
        CASE 2:
                   ToText (Round (ToNumber ({STP_RELATORIO;1.VALOR}),2))
        CASE 3:
                   ToText (Round (ToNumber ({STP_RELATORIO;1.VALOR}),3))
        CASE 4:
                   ToText (Round (ToNumber ({STP_RELATORIO;1.VALOR}),4))
        CASE 5:
                   ToText (Round (ToNumber ({STP_RELATORIO;1.VALOR}),5))
        DEFAULT:
                  ({STP_RELATORIO_PONTOS_AUDITORIA;1.VALOR})

    funcionou tambem.

    obrigado pela força!

    • Editado MarceloSchneider quinta-feira, 28 de outubro de 2010 16:44 faltou detalhe
    • Marcado como Resposta MarceloSchneider quinta-feira, 28 de outubro de 2010 16:45
    quinta-feira, 28 de outubro de 2010 16:44