Relatórios De Cristais Verificar Se O Texto Contém Algum Valor Numérico

estou a usar relatórios de cristal e numa das minhas fórmulas, gostaria de verificar se uma cadeia contém algum valor numérico ou não. Exemplos são mostrados abaixo...

"Chris(12)" Returns True
"123"       Returns True
"Pot"       Returns False
"John0"     Returns True

já consegui o que quero usando a função INSTR (). Eu fiz assim...

if INSTR(string,"0") <> 0 or INSTR(string,"1") <> 0 or INSTR(string,"2") <> 0 ... then
   True
else
   False
Só queria saber se há algum código mais curto ou eficiente. Muito obrigado.

Author: chris_techno25, 2014-02-28

1 answers

Crie uma função personalizada chamada ContainsNumber:

Function (Stringvar text)

  Local Booleanvar found := False;
  Local Numbervar i;

  For i := 1 To Len(text) Do (

    If IsNumeric(Mid(text, i, 1)) Then (
      found := True;
      Exit For
    )

  );

  found;

Utilizar no campo de fórmulas:

// FALSE
ContainsNumber ("ABC")

// TRUE
ContainsNumber ("ABC123")
 3
Author: craig, 2014-02-28 14:49:25