UN GUSTO MITCHEL:
LO QUE USUALMENTE HAGO EN ESE CASO LO SIGUENTE: EN EL CODIGO ASOCIADO AL EVENTO LOSTFOCUS DEL CONTROL THISFORM.GRIDX.COLUMNX.TEXT1, VERIFICO QUE SI DICHO CONTROL ES VACIO, ENTONCES HAGO VISIBLE OTRA FORMA DENTRO DEL MISMO FORMULARIO Y HAGO INVISIBLE LA ANTERIOR, DE TAL FORMA QUE AL TERMINAR DE HACER LA VALIDACION CORRESPONDIENTE
EJEMPLO
IF mcodigo <> doctosd.codigo OR EMPTY(mcodigo)
mcodigo = doctosd.codigo
SELECT invent01
LOCATE FOR invent01.codigo = mcodigo
IF EOF()
THISFORMSET.FORM1.Visible = .F.
THISFORMSET.Form2.Visible = .T.
THISFORMSET.Form2.REFRESH
ENDIF
DO CASE
CASE tipo_doc.inv = 1
xvalor = deletras(invent01.costo)
OTHERWISE
xvalor = invent01.precio
ENDCASE
SELECT doctosd
replace doctosd.codigo WITH invent01.codigo, doctosd.valorq WITH IIF(invent01.local,xvalor,0), doctosd.valord WITH IIF(not invent01.local,xvalor,0)
=TABLEUPDATE(.t.)
THISFORM.grid1.Refresh
ENDIF
THISFORM.BTgrabar.enabled = .T.
THISFORM.BTundo.enabled = .T.