- There is an error in this formula. Do you want to save it anyway?
- Existe um erro na fórmula. Você quer salvá-lo de qualquer maneira?
- A string is required here.
- Uma string é necessária aqui.
A função ToText pode ser usado para converter número, data, boolean, ou valores de tempo para uma string (texto). Ele fornece controles que permitem controlar a forma como a cadeia resultante parece.
É usado principalmente para de concatenação (por exemplo, você pode criar um título para o relatório que mostra os registros coberto, ou um nome de grupo que mostra o intervalo de datas incluídas).
- Adicionar parâmetros para um título de relatório
- Controlar a forma como os nomes de grupos aparecer (você pode forçar as suas datas para aparecer no formato de 3/7/10 ou 20100901.
No meu caso por exemplo, estava tentando criar um título concatenando algumas informações:
'Grupo: '+{CONSULTA_PRINCIPAL.GRUPO}+' - '+ {CONSULTA_PRINCIPAL.DESCRIÇÃO DO GRUPO} + {CONSULTA_PRINCIPAL.ANO}
E o erro “A string is required here.” ou “Uma string é necessária aqui.” me retornava.
Esse erro estava atrelado a informação de ANO, como esta concatenando, precisava traduzir tudo com string, e para isso é necessário acrescentar ToText antes de {CONSULTA_PRINCIPAL.ANO}, e o resultado fica assim:
'Grupo: '+{CONSULTA_PRINCIPAL.GRUPO}+' - '+ {CONSULTA_PRINCIPAL.DESCRIÇÃO DO GRUPO} + ToText({CONSULTA_PRINCIPAL.ANO},0,"")
Vamos ver mais sobre a função ToText
ToText para valores booleanos
Sintaxe |
ToText (x) |
Exemplos
Exemplo | Resultar |
ToText ({Concluído}) | Verdadeiro quando o campo Concluída é verdade.False quando o campo Concluída é falsa. |
ToText para números (e moedas)
Sintaxe | Variável | Opcional |
ToText (x, y, z, w) | x | O número de converter em texto |
y | O número de casas decimais a incluir no resultado (opcional). O valor será arredondado para que a casa decimal. | |
z | O personagem a ser usado como separador de milhares. Se você não especificar um, ele vai usar o seu padrão de aplicação. (Opcional) | |
w | O personagem a ser usado como separador decimal. Se você não especificar um, ele vai usar o seu padrão de aplicação.(Opcional) |
Exemplos
Exemplo | Resultar |
ToText (12345.678) | “12345.678” |
ToText (12345.678,2) | “12.345,67” |
ToText (12345.678,0) | “12345” |
ToText (12345.678, 0, ‘,’, ‘.’) | “12,345.67” |
ToText (12345.678,0, “”) | “12345” |
“O tempo registrado para a Mudança #” & ToText (12345.567,0, “”) | “O tempo registrado para a Mudança # 12345” |
ToText para datas
Sintaxe | Variável | Opcional |
ToText (x, y) | x | O valor de data a ser convertido. |
y | Uma cadeia de texto que define como o valor a ser formatado.(Opcional) |
Exemplos (onde datefield = 15 janeiro de 2011)
Exemplo | Resultar |
ToText (datefield {} “, yyyymm”) | “201101” |
ToText (datefield {}, “dd-MMM-yyyy”) | “15-Jan-2011” |
ToText (datefield {}, “DD MMM yyyy”) | “15 de janeiro de 2011” |
ToText (datefield {}, “MM / dd / aa”) | “01/15/11” |
ToText (datefield {}, “dddd, MMM d, yyyy”) | “Sábado, 1 de janeiro, 2011” |
Isto parece um pouco confuso no início. Às vezes pode retornar o dia da semana e às vezes eles retornam um número. Isto é porque o formato é determinado pelo padrão específico:
Padrão | Resultar |
d | Dia numérico do mês sem zero à esquerda (1, 7, 31) |
dd | Dia numérico do mês, com zero à esquerda (01, 07, 31) |
ddd | Três abreviatura dia do dia da semana (Mon, Sat) |
dddd | O nome completo do dia da semana (segunda-feira, Sábado) |
M | Mês numérico sem o zero à esquerda (1, 7, 12) |
MM | Mês numérico com zero à esquerda (01, 07, 12) |
MMM | Três abreviatura carta do mês (janeiro, fevereiro, março) |
MMMM | Nome completo do mês (janeiro, fevereiro, março) |
yy | Dois últimos dígitos do ano (11, 14, 22) |
aaaa | Total de quatro dígitos do ano (2011, 2014, 2022) |
ToText para tempos
Sintaxe | Variável | Opcional |
ToText (x, y, z, w) | x | O valor de tempo a ser convertido. |
y | Uma cadeia de texto que define como o valor a ser formatado.(Opcional) | |
z | Uma cadeia de texto que define a string AM. (Opcional) | |
w | Uma cadeia de texto que define a string PM. (Opcional) |
Exemplos (onde TimeField = 14:43:23)
Exemplo | Resultar |
ToText (TimeField {}, “HH: mm: ss”) | “14:43:23” |
ToText (TimeField {}, “hh: mm: ss tt”) | “02:43:23” |
ToText (TimeField {}, “h * mm * ss tt”, ‘sou’, ‘pm’) | “2 * 43 * 23 horas” |
Aqui estão os padrões usados por ToText ao converter tempo:
Padrão | Resultar |
h | Horas sem zeros à esquerda em formato de 12 horas (1, 7, 12) |
hh | Horas, com zeros à esquerda em formato de 12 horas (01, 07, 12) |
H | Horas sem zeros à esquerda em formato de 24 horas (1, 12, 17, 24) |
HH | Horas, com zeros à esquerda em formato de 24 horas (01, 12, 17, 24) |
m | Minutos sem zeros à esquerda (5, 15, 55) |
mm | Minutos, com zeros à esquerda (05, 15, 55) |
s | Segundos sem zeros à esquerda (5, 15, 55) |
ss | Segundos, com zeros à esquerda (05, 15, 55) |
t, tt | Inclui um único ou multi-caráter AM / PM string. |
Se você quiser incluir qualquer um dos caracteres padrão em sua cadeia resultante, você pode. Você só precisa colocá-los entre aspas.
Com informações de http://crystaltricks.com/wordpress/?p=149
Olá !
Você sabe como incrementar um campo de data com mês em uma fórmula no Crystal Report ?
por exemplo. tenho um campo do tipo data no Banco de dados.
’01/01/2014′
gostaria de incrementar mais 18 meses nessa data.
atenciosamente.
Olá Elton,
Nuca fiz isso, mas tenta fazer esse incremento somando à data a quantidade de dias correspondente aos 18 meses.
Olá tenho uma consulta no meu relatório que retorna as datas assim:
01/01/2014
01/02/2014
01/03/2014
Preciso que sejam mostradas em linha assim:
01/01/2014 – 01/02/2014 – 01/03/2014
Você poderia me ajudar, estou sem nenhuma informação de como resolver.
Obrigado
Olá Daniel,
Se você deseja os resultado em uma mesma linha, você pode concatenar os resultados no Cristal. Se o concatenar não está resolvendo, passa para mim para dar uma olhada e ver no que posso ajudar.
Tenho um campo no Crystal que ao inves de mostra 20141201 ele mostra 201401201 , como resolver ? , terei que fazer um If e Else ?
Olá, clique no campo da data e vá em “Format Fiel”. Nessa janela de propriedades vocÇe consegue ver como está formatada a Data, e ainda pode formatar da forma desejada.
Bom dia!
Ótimo artigo o seu. Estou trabalhando bastante com Crystal Reports e essa função vai me quebrar um galhão!
Apenas me tire uma dúvida. Usei o ToText({param},”MMM”) para plotar um gráfico e no eixo aparecer a abreviação dos meses, mas agora ele organizar os dados na ordem alfabética dos meses e não sequencial, como resolver? Até alterei a ordem para “Na ordem original”, mas como estou plotando 3 anos em barras empilhadas, nessa opção ele “desempilha” os dados e coloca tudo em sequencia.
Obrigado!
Ola Cassio,
Atualmente estou trabalhando com Reporting Services, deixei o Crystal de canto, vou ficar te devendo essa.