Power Builder - Validar campos

 
Vista:

Validar campos

Publicado por Oscar (1178 intervenciones) el 20/08/2003 07:08:40
Hola:
¿Cómo se valida una columna tipo char o varchar, para no dejar pasar a la siguiente columna o a una fila anterior, si el usuario no escribe nada y simplemente se limita a pulsar ENTER o dar clic en otro campo o fila?. Deseo mantener el cursor en el foco, hasta que escriba algo.

Por si acaso, intenté con lo siguiente:
* En column View/Column especifications, puse:
string(GetText())<>''
Resultado: No funcionó.

* En el evento ItemChanged, coloqué:
string ls_texto
ls_texto = dw_1.GetItemString(dw_1.GetRow(),"nombre_campo")
If ls_texto = "" then
messageBox("Aviso", "Escriba algo")
return 1
end if
Resultado: Funciona; pero no se queda en el foco (el usuario puede dar tranquilamente un clic en otro campo o fila).

* En otros casos, con otras expresiones, sólo me valida cuando se escribe algo y luego se borra.
* Se personalizó el evento dberror, con un mensaje propio, cuando el campo no debe aceptar null (es lo menos deseable). Me cansé de probar.

En fin, ¿Como se evita pasar otro campo, si no se escribe nada?
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 campos

Publicado por Pedro López (68 intervenciones) el 20/08/2003 12:50:06
Prueba lo siguiente:

En las propiedades de la columna, en la pestaña "Edit", debes marcar las casillas "Required" y "Empty String is Null".

Con esto consigues el efecto que quieres, pero te aparece el mensaje de error en inglés "Value required for this item".

Para evitar que te aparezca el mensaje de error por defecto, y poner el que tú quieras, puedes escribir en el evento "itemerror" el siguiente código:

// ITEMERROR
if dwo.name = "nombre_campo" and (data = "" or IsNull (data)) then

// Valor requerido
MessageBox('Aviso', 'El valor del campo <NOMBRE_CAMPO> es obligatorio', StopSign!)
// No mostrar el mensaje de error por defecto
return 1

else

// Mostrar el mensaje de error por defecto
return 0

End if

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 campos

Publicado por Oscar (1178 intervenciones) el 20/08/2003 19:53:34
Muchas gracias Pedro. No se me ocurrió probar ese método. Funciona tal como quería.

Un saludo!
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