Power Builder - Validacion de datos

 
Vista:

Validacion de datos

Publicado por NovatoX (2 intervenciones) el 28/08/2002 18:15:45
Hasta ahora no entiendo muy bien como puedo validar los datos, he colocado reglas de validacion en los campos del datawindow, el problema es que si el usuario no modifica ningun dato en estos campos no se llegan a validar los datos, por ejemplo digo que no quede el campo en blanco pero si el usuario ni toco el campo estonces lo guarda de lo mas normal , la idea no es validar desde el script como hago. Ah ademas quiero controlar que los ingresos de datos en un campo solo sena caracteres de la (A a la Z) no y tambien espacios en blanco , donde hago esto
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

Es posible que NO se pueda hacer

Publicado por Milson Cardona (613 intervenciones) el 28/08/2002 21:10:16
Buenos Dias
un saludo especial desde COLOMBIA

Bueno, Lógicamente para que PB haga una validación a un campo de un DW, el usuario debe digitar cualquier cosa en el campo, para que se disparé la validación.
cuando estas haciendo una aplicación, es muy dificil que no tengas que hacer validaciones extras en el código.
hay 2 tipos de validaciones, al momento de digitar y al momento de guardar..

las validaciones al momento de digitar, las puedes hacer por código(más recomendable en los eventos itemchange o editchange) O en las propiedades del DW, aunque esta última es MENOS flexible que la primera.

las validaciones al guardar, son necesarias para el problema que tienes, deben hacerse en el scrip del objecto que utilizas para guardar, bien sea un User Event, un Botón, Una Opcion del menú entre otras.
en este Scrip debes preguntar
IF ISNULL(dw_1.getitemnumber(dw_1.getrow(),'campo_a_validar')) THEN
messagebox('Validacion','el campo no puede ser nulo') RETURN
END IF.....
de esta manera evitas que los campos que no pueden ser nulos siempre sean digitados antes de guardar, otra manera de validar esto, es poner estos campos NOT NULL en la DB para que al guardar, la misma DB saque el error.

espero que esto te ayude, recuerda que estoy al servicio de todos los participantes en este foro........me cuentas la evolución de tu problema.

Claro que otra forma de solucionar el problema es que obliges al usuario: es decir poner la propiedad protect = 1 de todos los campos del DW e ir habilitando uno a uno los campos del DW, a medida que el usuario, vaya llenando el anterior, esto lo puedes hacer así: DW_1
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

la segunda pregunta

Publicado por Milson Cardona (613 intervenciones) el 28/08/2002 21:48:47
perdona porque el anterior comentario me quedo a medias...

como te escribía
Claro que otra forma de solucionar el problema es que obliges al usuario: es decir poner la propiedad protect = 1 de todos los campos del DW e ir habilitando uno a uno los campos del DW, a medida que el usuario, vaya llenando el anterior, esto lo puedes hacer así: DW_1.object.datawindow.nombredelcampo.protect = 0 en el evento itemchange.......pero esto es muy engorroso tanto para el usuario como para el programador..... además de una mala programación

la segunda pregunta:

bueno, en PB 6.5 que es el que trabajo, no conozco una máscara, que solo permita escribir Letras de la A a la Z, pero lo puedes hacer con una validación en el evento EDITCHANGE de DW......el código será el siguiente...

antes de comenzar quiero decirte que este evento tiene un argumento DATA, que almacena el contenido del campo y es con el que estamos trabajando, OSEA puedes pegar este código tal y como esta

CHOOSE CASE this.getcolumname()
CASE \\\'campo_a_validar\\\'
//verificamos si el último caracter del campo es un Número, Y // lo quitamos de data, y luego ponemos el resultado en el campo nuevamente
IF ISNUMBER(MID(data,len(data)-1,len(data))) THEN
ls_cadena = MID(data,1,len(data)-1)
THIS.setitem(this.getrow(),\\\'campo_a_validar\\\',ls_cadena)
END IF
END CHOOSE

me cuentas como te vá
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:Validacion de datos

Publicado por Ricardo (1957 intervenciones) el 30/08/2002 16:04:41
Lo que puedes hacer es validar los campos desde que entras al registro, es decir, desde que te posicionas, ya que aqui se dispara el itemfocuschange( ), ahí puedes hacer la validacion, tal y como lo menciona Milson ( verificar si es nulo, por campo, pero sin necesidad de que el usuario interactue con cada campo).

Con respecto a la validadcion de las letras tendrias que hacer una funcion para filtrar los caracteres que no son validos y aplicarla en el itemchange del campo a validar. Ya que la mascara es solo para definir el tipo de campo y el formato en que seran almacenados los datos.

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