Número de corda em um campo de fórmula
-
22-08-2019 - |
Pergunta
Eu estou usando um campo de fórmula para concatonate 2 valores decimais separados por um hífen. No entanto, eu quero o resultado para cortar todos os zeros finais desnecessários e pontos decimais para ambos os valores.
Por exemplo, eu quero valores 10 e 8,5 para ser "10-8,5". Agora ele mostra "10,00-8,50".
A fórmula que estou usando é CSTR({field1}) + " - " + CSTR({field2}).
Solução
Eu acredito que este é o que você está procurando:
converter números decimais em texto que mostra apenas os diferentes de zero casas decimais
Especialmente esta linha pode ser útil:
StringVar text := Totext ( {Your.NumberField} , 6 , "" ) ;
O primeiro parâmetro é o decimal a ser convertido, o segundo parâmetro é o número de casas decimais eo terceiro parâmetro é o separador para milhares / milhões etc.
Outras dicas
CSTR({number_field}, 0, '')
O segundo espaço reservado é para decimais.
O último espaço reservado é para milhares separador.
Eu escrevi uma função simples para isso:
Function (stringVar param)
(
Local stringVar oneChar := '0';
Local numberVar strLen := Length(param);
Local numberVar index := strLen;
oneChar = param[strLen];
while index > 0 and oneChar = '0' do
(
oneChar := param[index];
index := index - 1;
);
Left(param , index + 1);
)
Você também pode tentar usar a substituir a função:
substituir ( "10,00", "00", "")
mas não vai funcionar se houver diferentes de zero números após o ponto decimal.