¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como converter um campo de string para número no banco de dados de forma eficiente

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...

Tenho um campo que é uma string no banco de dados, mas quero convertê-lo para um número para poder formatar decimais, etc.

Eu tentei

toNumber {table.field}

mas recebo "a string não é numérica" - então nem todos são numéricos ou há nulos?

então tentei o

Se TextoNumérico ({table.field}) Então

ANúmero ({table.field})

Senão

0

mas obtenho um 0 indesejado que aparece no relatório.

Eu tentei

Se TextoNumérico ({table.field}) Então

ANúmero ({table.field})

Senão

({table.field})

mas então recebo "era esperado um número aqui"

Então, qual é a forma mais eficiente de conseguir isso? Li postagens sobre perguntas semelhantes, mas não encontro a resposta que funcione para mim.

Obrigado por toda a ajuda! Jenn

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Jenn,

O que deseja devolver se o valor não for numérico?

Seu primeiro fragmento de fórmula deve fornecer o que você está procurando:


If NumericText ({table.field}) Then
      ToNumber ({table.field})
Else
     0

Se você colocar uma versão sem formatação de {table.field} ao lado do campo anterior, quais são seus valores quando retorna "0"?

Isso lhe dará uma ideia de quais elementos no banco de dados estão causando a falha do NumericText.

Talvez tente com IsNumeric(str) e veja se isso é diferente.

Verifique também a configuração de localização do banco de dados em comparação com a configuração de CR, se os separadores decimais forem diferentes, você pode ter problemas.

Certifique-se também de cortar os dados primeiro, espaços em branco no final ou no início farão com que o NumericText falhe.

Portanto, talvez seja necessário fazer algum formato no texto antes de verificar se é numérico.

Para ter certeza, talvez tente


StringVar myNumericString

myNumericString := Replace({table.field}," ","");
myNumericString := Trim(myNumericString);       // Above will do this but just for fun 

 
If NumericText(myNumericString) then 
	ToNumber(myNumericString);
Else 
	0;

Com sorte isso ajuda.

Darren

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Obrigado Darren. Isso funcionou. Muito apreciado.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

JC,

Apenas remova a parte "Else 0" e isso irá inserir um NULL, se o campo não puder ser convertido em um número.

Em seguida, você terá que formatar o item da Fórmula no layout do relatório para lidar com valores zero como <suprimir> ou o que quer que você deseje que os valores "nulos" apareçam como.

Espero que faça sentido.

Darren

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Ao adicionar o campo no relatório, os elementos que aparecem como zeros são exibidos como branco ou uma linha de traços.


Existe alguma maneira de exibir " " em branco em vez de "0"?

jc

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?