Subject | [IBO] Data entry user interface (was: Re: Master Detail: strange behaviour) |
---|---|
Author | Marco Menardi |
Post date | 2001-11-15T06:18:11Z |
--- In IBObjects@y..., "Jason Wharton" <jwharton@i...> wrote:
I've unzipped all what I've found in the AddOns. Could be more
specific? Or there is another place where to go?
I was referring to the situation, I think very common, when the user
is inserting the master record AND the detail ones (like
master=customer, detail=customer phone numbers). Otherwise I user
referential integrity (on cascade delete) instead of triggers... any
drawbacks?
understand and manage a two level of doing things for simple
situations like the above (post-commit / cancel-rollback). So I think
it would be better "hide" the innermost level and make post behave
like commit, and cancel like rollback.
it was designed for is always frustrating and with modest results.
This kind of application should be (Helen, are you lissening? ;))
discussed in a huge chapter of GSG. I think that master IBO big list
of properties is one step, use it effectly is the most important and
less explained one. I've the feeling I'm freezed at that point :(
What can I say? Fantastic as usual. Even trying to use IBO my own way,
I'm getting more and more convinced that it's a great set of
components, really well designed. I would like to put my contribution
to it, if any good idea comes out from this tired brain...
Regards,
Marco Menardi
_____
_____
> You have some good ideas going and most if it is very much like Ido, but
> there are some better ways. Look at the Lobbyist sample applicationin the
> ZIP in the AddOn folder. Particularly the FRM_LOB.pas form/unit andrelationships
> FRM_PPB.pas form/unit. You will see how I have master detail
> on those forms as well as how I make these forms both master anddetail to
> eachother. Be patient with it and I think you will have some neatthings
> click for you if you give it due diligence.Sorry, but in IB 4.2Fxx I've found nothing with those names, even if
I've unzipped all what I've found in the AddOns. Could be more
specific? Or there is another place where to go?
> I use a base form which uses a transaction in a way that allows youto
> easily allow a user to interact with master-detail relationships. Iuse
> triggers to wipe out detail records if a master is deleted, not arollback.
I was referring to the situation, I think very common, when the user
is inserting the master record AND the detail ones (like
master=customer, detail=customer phone numbers). Otherwise I user
referential integrity (on cascade delete) instead of triggers... any
drawbacks?
> You should only use rollback if you want to cancel the users work asa
> whole.That was my meaning. But I don't think a normal use can easily
understand and manage a two level of doing things for simple
situations like the above (post-commit / cancel-rollback). So I think
it would be better "hide" the innermost level and make post behave
like commit, and cancel like rollback.
> Please get familiar with the IBF_Base.pas form/unit. It has alot of
> useful functionality built into it. The lobbyist sample applicationmakes
> very heavy use of it.I'm looking forward. Using a tool (IBO for the specific) not the way
it was designed for is always frustrating and with modest results.
>easy it
> Once you see what is going on in there it should become apparent how
> is to create powerful and yet easy applications for your users towork with.
This kind of application should be (Helen, are you lissening? ;))
discussed in a huge chapter of GSG. I think that master IBO big list
of properties is one step, use it effectly is the most important and
less explained one. I've the feeling I'm freezed at that point :(
> The big bonus of it is there is very little code needed on top ofthis.
What can I say? Fantastic as usual. Even trying to use IBO my own way,
I'm getting more and more convinced that it's a great set of
components, really well designed. I would like to put my contribution
to it, if any good idea comes out from this tired brain...
Regards,
Marco Menardi
>strange
> Regards,
> Jason Wharton
> CPS - Mesa AZ
> http://www.ibobjects.com
>
>
> ----- Original Message -----
> From: "Marco Menardi" <mmenaz@l...>
> To: <IBObjects@y...>
> Sent: Wednesday, November 14, 2001 10:41 PM
> Subject: [IBO] Data entry user interface (was: Re: Master Detail:
> behaviour)you
>
>
> > Jason, I think that what you suggest is really fine.
> > I would like to take some of your time to share with you all my
> > "vision" of data entry forms, because if you think that it's right
> > will better address my needs, otherwise I ask you all to tell methe
> > right direction because I'm confused!master
> > Well, I create the form and immediately put the dataset (or the
> > dataset) in search mode. This way I've no traffic from the serverForm.ActiveControl,
> > getting rows that I don't use. The focus is on the
> > if set. This is the "natural state" of the form, to which mustreturn
> > after each operation.presses
> > So the user at this point should have these goals:
> > a) find a record already entered to edit/delete
> > b) find if a certain record exists, and if not insert it
> > c) he knows that he has to insert a new record
> >
> > At this point, for a) and b) he fills some fields and start the
> > search. In a) after post/cancel/delete he must be put back to the
> > "natural state", the search state.
> > For c) he presses the insert button, sets some fields, then
> > post or cancel. Natural state has to be reached again.and
> >
> > If we are dealing with master-detail, the "natural state" is with
> > master in search while details are open (to prevent different grid
> > ib_edit behaviour when the dataset is prepared instead ofinactive.
> > After a close the dataset remains prepared).master
> > Here I've found that having IB_xxxBars jumping focus between
> > and detail is terrible. So I have a set of IB_xxxBars linked tothe
> > master dataset and other jumping between the details datasets, ifmore
> > than one.should
> > So when master is posted, all the details should be too. Cancel
> > behave the same, even if this prevents to have mastermodifications
> > cancelled but detail preserved. I think that we should loose someI
> > flexibility in favour of a simpler, better goal oriented user
> > interface.
> > So, since master/detail work must be inside the same transaction,
> > would have some automation between the master events and thetransaction is
> > transaction one, so when a edit/insert in the master begins, the
> > transaction starts, and when master is post/cancel, the
> > Committed or RolledBack.some
> > Is it good and functional? Is there a better way?
> > Thanks
> > Marco Menardi
> >
> >
> > --- In IBObjects@y..., "Jason Wharton" <jwharton@i...> wrote:
> > > 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
> > > > serious user interface problems.enter
> > > > 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,
> > theyou
> > > > fields, post, commit: dataset is closed, ok. Data disappears,
> > getbutton,
> > > > the feeling that the work is done.
> > > >
> > > > If you have the dataset in search mode, press the insert
> > enterit's
> > > > the fields, post, commit: dataset stays in a strange state...
> > > > prepared, so you can still see the data just entered inIB_Edits,
> > andsearch
> > > > it does not close so it does not automatically return in
> > > > state... my user (and me) are lost...query
> > > > This is not a good behavior.
> > > > I feel that even if starting in search, IBO should close the
> > > > after the post or, since it's just closed but was in search,of
> > return in
> > > > search mode.
> > > > Or am I missing something?
> > >
> > > You have stumbled across something I had not thought out ahead
> > time. Iand
> > > 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
> > post adataset
> > > record the dataset has what I call an active buffer but the
> > itselfit
> > > (its cursor) isn't active. Thus, if you test the Active property
> > willThus,
> > > return false but the BufferActive property will return true.
> > when theCommitAction
> > > CommitAction is carried out it is looking for all datasets which
> > have (or
> > > had) an active cursor and they are closed. Because the
> > isn'tbehavior
> > > checking BufferActive instead of Active you are getting the
> > you areeven
> > > 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
> > if it isactive
> > > just in the buffer active state rather than the full cursor
> > state.______________________________________________________________________
> > >
> > > Does this make sense? Now that you understand, hopefully, do you
> > think what
> > > I am proposing is the best solution?
> > >
> > > Regards,
> > > Jason Wharton
> > > CPS - Mesa AZ
> > > http://www.ibobjects.com
> >
> >
> >
> >
>
_____
> > IB Objects - direct, complete, custom connectivity to Firebird or______________________________________________________________________
> InterBase
> > without the need for BDE, ODBC or any other layer.
> >
>
_____
> > http://www.ibobjects.com - your IBO community resource for TechInfo
> papers,http://docs.yahoo.com/info/terms/
> > keyword-searchable FAQ, community code contributions and more !
> >
> > Your use of Yahoo! Groups is subject to
> >
> >