¿Cómo eliminar letras en datawindows?

Muchas gracias por ayudarme anteriormente ahora tengo una duda sobre como eliminar letras de un campo de datawindow. ¿Por ejemplo el campo por de datawindows contiene letras y números (alfanuméricos) algo como A2S3D40 existe alguna manera que dentro de un botón eliminar las letras en todo el datawindows y solo conservar los números por ejemplo 2340?

4 Respuestas

Respuesta
1

Para que ingresar letras y números si solo deseas los números, pues puedes validar el campo para que solo ingrese números

Los datos son los que se importan desde excel. (El caso en que me ayudo). Al cargar los datos son alfanuméricos. Por ejemplo A2S3E1S2 y mi duda es sobre si es posible mediante un botón se elimine las letras y solo conservar los números.

string num

long ls_cant, i

string ls_num,ls_cadena

ls_cadena=dw_1.object.campo[nro_registro]

ls_cant = len(ls_cadena)

 FOR i=1 to ls_cant

  ls_num= mid(ls_cadena, i, 1)

    IF isnumber( string(ls_cadena) ) then

    num=num + ls_num

  END IF

dw_1.object.nombre_campo[nro_registro]=num

NEXT

Si deseas que recorra toda la columna debes agregar un for por eso pongo

"nro_registro " esta es la base para lo que deseas

Respuesta
1

Si tu intención es que solo te ingresen valores numéricos te recomiendo usar una mascara y/o formato numérico, este lo encuentras en las propiedades edit y format del campo dentro del dw.

De lo contrario tendrás que obtener la cadena recorrerla y quitarle las letras

Respuesta
1

Antes de recorrer los datos que contiene el campo string, puedes validar si son todos los valores numéricos o alfanuméricos, con la siguiente función de power:

This statement returns TRUE if the text in sle_ID begins with one or more uppercase or lowercase letters (^ at the beginning of the pattern means that the beginning of the string must match the characters that follow):

Match(sle_ID.Text, "^[A-Za-z]")

This statement returns FALSE if the text in sle_ID contains any digits (^ inside a bracket is a complement operator):

Match(sle_ID.Text, "[^0-9]")

Respuesta
1

Deberías crear una función para que te devuelva solamente los números dentro de un string, long o double...

//fn_solo_numero(String as_cadena) return double
string ls_retorno
long li_cant_letras, li_indice
string ls_letra
li_cant_letras = len(as_cadena)
FOR li_indice = 1 to li_cant_letras
  ls_letra = mid(as_cadena, li_indice, 1)
  IF isnumber(string(ls_letras)) then
    ls_retorno = ls_retorno + ls_letra
  END IF
NEXT
return double(ls_retorno)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas