Para saber el campo que ha sido modificado debes utilizar el método GetItemStatus
Algo así:
For ll_for = 1 to ll_filas
if ldw_datos.GetItemStatus (ll_for, 'campo1', Primary!) <> NotModified! then
// Campo1 Modificado
end if
if ldw_datos.GetItemStatus (ll_for, 'campo2', Primary!) <> NotModified! then
// Campo2 Modificado
end if
...
...
next
Eso mismo lo puedes hacer para el buffer Filter! y Delete! si es el caso.
Un saludo