Power Builder - validar solo letras o numeros en dw

 
Vista:

validar solo letras o numeros en dw

Publicado por Mirella (5 intervenciones) el 02/11/2006 17:11:06
Hola chicos, como puedo validar el ingreso de solo letras en algunas cajas de mi dw y tambien solo numeros en otras. Por ejemplo tengo estos campos en mi dw

descripcion
prefijo
costo
cantidad
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:validar solo letras o numeros en dw

Publicado por Arnaldo (4 intervenciones) el 03/11/2006 13:29:12
puedes utilizar esta funcion proveida por el power builder <Match DataWindow expression function>..permite determinar el tipo de dato ingresado en un contenedor..
ejemplo... para tu campo descripcion que es tipo string puedes controlar de la sigte manera:
evento itemchanged

if getcolumnname() = 'descripcion' then
if Match(data, "^[A-Z]") = false then // controla que solo ingrese caracter mayuscula
messagebox('Atención','El valor ingresado es inválido')
return 1
end if
end if

Otra solucion es ubicar este control en la propiedad VALIDATION EXPRESSION del campo en el diseño de tu datawindow...podes acceder a esta propiedad a traves VIEW > COLUMN SPECIFICATIONS...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:validar solo letras o numeros en dw

Publicado por Will (13 intervenciones) el 03/11/2006 17:05:13
te recomiendo que crees una función global de validación y a esta función lo podras llamar desde cualquier formulario/evento
te paso mi ejemplo.
mi funcion se llama f_comprobar_letras
argumento typo string as_cadena
retorno tipo boolean

//script de la función
If Not Match(as_cadena,"^[A-ZÑa-zñ]+$") then
MessageBox("Error","Ingrese solo letras",StopSign!)
return false
end if

return true

ahora eso depende de tu desde donde lo invoques.
si es desde un datawindow tienes el evento itemchanged. ummm pero no es recomendable
mejor crea un evento en el datawindow ue_usekey con event ID pbm_dwnkey

this.accepttext()
long ll_row
ll_row = this.getrow()
string ls_data

If key = keyenter! then
choose case lower(getcolumnname())
case "des_articulo"
ls_data = this.object.des_articulo[ll_row]
if f_comprobar_letras(ls_data) = false then
this.setcolumn("des_articulo") ; this.setfocus() ; return -1
end if
End Choose
end if

// el evento se ejectua cuando presionas la tecla intro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar