Subject Re: [IBO] Re: Master Detail: strange behaviour
Author Jason Wharton
Please use a fresh subject line when starting a new topic.

> I don't know if it's a bug or a feature, but it's causing me some
> serious user interface problems.
> There is a difference in behavior:
> You have:
> Query with commitaction=caClose
> Some IBO bars around
> If you have a dataset opened and press the Insert button, enter the
> fields, post, commit: dataset is closed, ok. Data disappears, you get
> the feeling that the work is done.
> If you have the dataset in search mode, press the insert button, enter
> the fields, post, commit: dataset stays in a strange state... it's
> prepared, so you can still see the data just entered in IB_Edits, and
> it does not close so it does not automatically return in search
> state... my user (and me) are lost...
> This is not a good behavior.
> I feel that even if starting in search, IBO should close the query
> after the post or, since it's just closed but was in search, return in
> search mode.
> Or am I missing something?

You have stumbled across something I had not thought out ahead of time. I
understand what it is you are describing and I believe I know exactly why
IBO is doing what it is doing.

When you are in search mode and go directly into insert state and post a
record the dataset has what I call an active buffer but the dataset itself
(its cursor) isn't active. Thus, if you test the Active property it will
return false but the BufferActive property will return true. Thus, when the
CommitAction is carried out it is looking for all datasets which have (or
had) an active cursor and they are closed. Because the CommitAction isn't
checking BufferActive instead of Active you are getting the behavior you are
describing. Is all I need to do in order to give it consistent behavior is
to have CommitAction as caClose make sure to close the dataset even if it is
just in the buffer active state rather than the full cursor active state.

Does this make sense? Now that you understand, hopefully, do you think what
I am proposing is the best solution?

Jason Wharton
CPS - Mesa AZ