Editar Control Name de un DataWindows

Estoy programando el evento Clicked dentro de un DataWindows, en le cual tengo un Control Name que personalice como 3 Radiobuttons, el problema es que cuando hago clic en cualquier área del Datawindows me realiza las acciones o validaciones de cuando cambio de radiobuttons, y eso genera incomodidad. Quisiera encontrar la manera solo programar esa área dentro del DataWindows.

1 respuesta

Respuesta
1

Usa el evento itemchangeg del datawindow.

if dwo.name = 'nombre del campo' then

if data = 'valor del campo' then

else

end if

end if

mm sí había pensado en usar ese evento pero como lo usaría para que sólo funcione en el Control Name que tiene los radiobuttons, si puedes ejemplificarmelo mejor, te lo agradecería. Salu2 :D

Si el nombre del campo se llama "pers_sexo" y es string: (F/M)

if dwo.name = 'pers_sexo' then

if data = 'M' then

messagebox('sexo', 'masculino')

else

messagebox('sexo', 'femenino')

end if

end if

El problema es que mi Data Windows se llama Dw_1 y el control name es tipo_usuario y al hacer lo que me sugeriste me arroja algunos errores, acá parte de mi Script.

String BB

BB = dw_1.getitemstring( getrow(),"tipo_usuario" )
if dw_1.name = 'tipo_usuario' then
CHOOSE CASE BB
CASE 'A'
if messagebox("Mensaje de Validación","¿Desea cambiar el tipo de usuario?", question!, yesno!) = 1 then
dw_2.Reset()
dw_2.InsertRow(2)
this.Object.tipo_usuario.protect=false
else
//dw_master.ctaplaca.clicked=false
this.Object.tipo_usuario.protect=true
end if
CASE 'D'
if messagebox("Mensaje de Validación","¿Desea cambiar el tipo de usuario?", question!, yesno!) = 1 then
dw_2.Reset()
dw_2.InsertRow(2)
this.Object.tipo_usuario.protect=false
else
this.Object.tipo_usuario.protect=true
end if
CASE 'T'
if messagebox("Mensaje de Validación","¿Desea cambiar el tipo de usuario?", question!, yesno!) = 1 then
dw_2.Reset()
dw_2.InsertRow(2)
this.Object.tipo_usuario.protect=false
else
this.Object.tipo_usuario.protect=true
end if
END CHOOSE

end if

"dwo" es un parámetro del evento itemchanged, ese parámetro especifica el control del datawindow, por eso la condición es así...

if dwo.name = 'tipo_usuario' then

... Otro parámetro de ese evento es "data", ese parámetro es del tipo string y es el valor que obtiene el control indicado.

La condición completa sería así:

if dwo.name = 'tipo_usuario' then

choose case data

case 'A'

case 'D'

case 'T'

end choose

end if

mm realmente eres un experto ahora si me corrió la aplicación, ahora tengo otro problema. Yo estaba usando protect porque cuando hacia la validación del cambio de usuario, al seleccionar NO en la validación también me cambia el tipo de radiobutton, eso me funcionó en el evento clicked del datawindows , pero en el evento itemchanged no esta funcionando correctamente, que me recomendarías al momento de hacer esta validación:
messagebox("Mensaje de Validación","¿Desea cambiar el tipo de usuario?",question!, yesno!)
para que al momento de darle no en la pregunta no cambie el radiobutton. Salu2

if messagebox('', '', question!, yesno!) = 2 then return

Lo que probado tambien pero el radiobutton sigue cambiando, estoy buscando de que manera bloquear 'tipo_usuario' al momento de que la validación sea NO,protect lo bloquea luego de cambiar de radiobutton. No se si conoce alguna otra propiedad que pueda usar ?

Sinceramente no entendí lo que necesitas.

jajajaja bueno no hay problema ya lo conseguí y fue gracias al parámetro dwo.name ,que si me funciono con el ventó clicked :D
Acá te dejo una imagen de lo que quería :)
Validación:

Si Le doy Sí, el radiobutton sí cambia:

Vuelvo a validar y le doy no:

Y el radiobutton no cambia, eso me salia pero hacia clic en cualquier área del datawindows y me hacia la validación. Ahora quiero mejorar en los temas de SQL y Reportes en Power Builder je je. Gracias por tu ayuda experto (Y)

No se ven las imágenes y entiendo que ya resolviste tu problema. Si es así, cierra la pregunta por favor, caso contrario, me aclaras nuevamente para resolverlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas