` Printed Icetips Article

Icetips Article



Par2: Determining a record has changed
2000-02-17 -- Dennis Evans
 
The WindowManager TakeCompleted method uses a routine called ChangeAction.
The routine compares the record buffer before the update method is called.
If there has been no change in the record the update method is not called,
if the record has changed the update method is called.

So, I would use the Update method, after the parent call.

if RetunValue = Level:Benign
  do you stuff
end

Any value other than benign indicates an update error.   The main point is
the update method is only called when the record buffer has changed.


To catch an OK press on a form and determine whether the record
was changed or not:

 From the ChangeAction routine,

CODE
  LOOP
    SELF.Response = RequestCancelled
    SETCURSOR(Cursor:Wait)
    UnChanged = SELF.Primary.Me.EqualBuffer(SELF.Saved)
    IF UnChanged
      Error = 0
    ELSE
      Error = SELF.Primary.Update(CHOOSE(SELF.HistoryKey))
    END

   This line tests the the buffer if the buffer has not changed the
EqualBuffer method will return a true value, the update method is not
called.    The buffer is stored in the PrimeUpdate method, some thing some
where is changing a value in the record buffer  if the update method is
being called.   I use this technique in a similar manner and works here,
even with the Ok pressed



Printed November 23, 2024, 2:22 am
This article has been viewed/printed 35203 times.