Tengo que validar el ingreso de información en cada edit y dropdown en el datawindow. Yo quisiera comparar que el usuario ingreso información y cuando no ingreso información para enviar a guardar.
1 Respuesta
Respuesta de Antonio Garcia
1
1
Antonio Garcia, clipper todas sus versiones (manejo total) power builder todas...
La forma de evaluar los ingresos en un datawindow es por medio del evento itemchanged() Este evento envía 3 datos, Data = el nuevo valor o valor que ingreso el usuario, en format string. dwo = el objeto de edición o el que posee el foco row = la fila que tiene el foco de edicion. Con esto ya puedes componer un sistema de validación. Digamos que tienes un campo del tipo numérico, el cual llamare numero, y este campo no deberá permitir ingresar negativos. El script puede quedar más o menos así INTEGER li_return = 0 INTEGER li_numero CHOOSE CASE LOWER(dwo.name) CASE 'numero' li_numero = INTEGER(data) IF (li_numero < 0) THEN li_return = 1 MESSAGEBOX('ERROR', 'no puede ingresar un valor negativo') END IF END CHOOSE RETURN(li_return) Como veras estoy utilizado un valor por medio de la variable li_return Esta valor lo recibe el evento y lo evalúa luego después de ser ejecutado los resultados que puedes devolver son 0 = todo va bien 1 = dato rechazado y no permite cambiar el foco de edición 2 = dato rechazado y si permite cambar el foco de edición De la misma forma que devuelves un valor en el evento itemchanged, tendrás que hacerlo en el evento itemerror, en donde simplemente retornas 1 O bien RETURN(1) Para más información simplemente buscala en el F1 del lenguaje. Con todo esto, ademas tentras que utilizar la función ACCEPTTEXT() La cual devuelve dos valores 1 = todo va bien -1 = ocurrio un error Esta función ejecuta la evaluación del itemchanged(), y según el resultado de este evento es el que devuelve, Te sirve para el caso en que el usuario escribe el dato en la columna y con el ratón va y hace click en un botón, y nunca presiono RETURN. El ACCEPTTEXT() forzá a hacer la asignación del ultimo dato editado. Por lo que igualmente ejecuta el evento itemchanged y el resto ya lo imaginas.