Power builder no se actualiza un campo

Mi situación es la siguiente, tengo un DW con 3 campos visibles, estoy validando en uno de ellos un rango permitido de valores, si esta fuera del rango lo cambio por código al valor mayor permitido, el caso es que cuando pierde el enfoque ese campo, regresa el valor original y no el que le cambie por código.
esto dentro del evento <itemchanged>
if TRIM(dw_procesos_f.GetColumnName()) = 'tiempo' then
    sTiempo = dw_procesos_f.GetItemString(dw_procesos_f.GetRow(),'tiempo')
    sMinutos = MID(sTiempo,3,2)
    sSegundos = MID(sTiempo,5,2)
    if integer(sMinutos) > 59 then
        sMinutos = '59'
    end if
    if integer(sSegundos) > 59 then
        sSegundos = '59'
    end if
    sNvoTiempo = Mid(sTiempo,1,2)+sMinutos+sSegundos
    dw_procesos_f.SetItem(dw_procesos_f.GetRow(),'tiempo',sNvoTiempo)
    dw_procesos_f.accepttext( );
end if
Hasta antes de salir, el valor modificado sigue siendo el permitido, una vez posicionándose en el otro campo, regresa al valor anterior.

1 Respuesta

Respuesta
1
El código de validación colocalo en el evento editchanged, ira validando mientras escribas en el SLE que quieres valir y no cuando saltes al siguiente.
También puedes usar el evento itemfocuschanged, eso ocurre cuando te enfocas en otra columna.
con this.gettext() capturas el dato ingresado actualmente ejem
choose case dwo.name
case 'columna_nombre_cliente'
ls_cliente = this.gettext(9
end choose
****
Deberias usar GetText(9 y SetText() cuando quieras evaluar datos que se estan ingresando en la DW que no son recuperados de la BD, ya que estos aun no se encuentran en el Buffer Primary del DW.
El tip, fue muy bueno, aunque yo quería que me resolvieras con código y todo, valió la pena hacer investigación, te agradezco el tiempo y los conocimientos transmitidos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas