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