Requiered

Ok
Hola como estas.
Utilice el required por que no son muchos campos a validar son dos o 3
Bueno me duda es que me aparece el mensaje en ingles
row is required
Entonces no me resulto capturar ese error en el dberror para mandar un mensaje personalizado como lo puedo hacer o eso es una rerstriccion.

1 Respuesta

Respuesta
1
¿Cómo estás?,
veo que estás "tirando de Power" cantidad en dos demanas, te veo entre los expertos resolviendo dudas, ¿no?
Bueno, tu problema se resuelve de forma sencilla.
Como es un error (mensaje) que lanza el datawindow(no el motor de Base de Datos), no lo puedes recoger en el evento dberror del datawindow.
Debes tratarlo en el evento "ItemError" del datawindow.
Los posibles "Return X" que puedes hacer son
Return 1
Return 2
Return 3
Return 4
Estudialos y elige el que más te convenga.
Un saludo y nos vemos el Lunes (si Dios quiere).
Hola master me funciono lo del mensaje pero en la ejecución me di cuenta de otro problema
Que pasa le puse a los 3 campos de la datawindows required lo ejecuto y cuando apretó tab o enter y me los pide de nuevo hasta ahie stamos correctos
per después que los ingreso los 3 y me devuel vo al primer campo le borro el contenido aprieto enter y no me lo pide de nuevo es decir, los datos me los valida solo la primera vez que los ingreso
oka thanks. janomix
- Como te avisé, controlar los errores de un datawindow mediante los propios campos puede dar lugar a complicaciones, pero bueno, aquí estamos para ayudar:
Como ya sabrás, para que muestre el mensaje que le incluyes en la columna del objeto datawindow, en el evento itemerror debes tener lo siguiente:
Return 0
¿Ok?
Vale, lo que te está pasando es que, una vez que "salta" el evento itemerror el datawindow no vuelve a identificar ese error...
Para que esto no ocurra debemos establecer a NULO los campos, cuando estos se queden vacíos, entonces, volverá a saltar el itemerror.
Para ello debes entrar en el evento editchanges (sucede cuando se cambia el contenido de un campo del datawindow) y poner lo siguiente (suponemos que en el datawindow quieres controlar los campos de tipo numérico y char):
string ls_columna, ls_tipo_dato
ls_columna = dwo.Name
ls_tipodato = dwo.ColType
// Si hay datos , no lo tratamos (está bien)
If Trim(data) <> "" Then
Return 0
End If
Choose Case ls_tipo_dato
CASE "long"
integer numero_nulo
SetNull(numero_nulo)
This.SetItem(row, ls_columna, numero_nulo)
Return 3
CASE "char(10)"
string cadena_nulo
SetNull(cadena_nulo)
This.SetItem(row, ls_columna, cadena_nulo)
Return 3
End Choose
Si quieres controlar otros tipos de datos... los metes dentro del Choose Case y listo.
¡ Que vaya bien !

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas