Subject | Re: please help with FieldsDisplayLabel and OrderingLinks |
---|---|
Author | Michael Fung |
Post date | 2003-09-05T01:19:24Z |
Thanks Marco. I know that and this is just what I wanted to avoid,
editing all queries for ordering to work. But seems like it is the
only solution (as there is no alternate tips from Helen). This lesson
teach me that I should test a new tool well before writing code.
Thanks again.
Michael
editing all queries for ordering to work. But seems like it is the
only solution (as there is no alternate tips from Helen). This lesson
teach me that I should test a new tool well before writing code.
Thanks again.
Michael
--- In IBObjects@yahoogroups.com, "Marco Menardi" <mmenaz@l...> wrote:
> Try with a column alias:
> SELECT P.ID
> , P.PN
> , B.NAME BRAND
> , K.NAME PACKAGE
> , C.NAME CATEGORY
> , P.PHY_QTY
> , U.NAME UNIT
>
> and then:
> BRAND=ITEM=1
>
> displaylabel sets the label to display on the grid for a certain
> column, but the match is done between the field name of a column (or
> it's alias) and the OrderingItem#.
> regards
> Marco Menardi
>
> --- In IBObjects@yahoogroups.com, "Michael Fung" <ibo@c...> wrote:
> > Thanks Marco,
> >
> > I already corrected the OrderingItems, sorry I did not state my
> > problem specific enough. The problem is in the OrderingLinks. It
> > doesn't work if I enter "B.NAME=Item=1" or "Brand.NAME=Item=1",
the
> > sort glyph won't show up. If I enter "NAME=Item=1", then all
three
> > columns are sorted together which is not I wanted. It seems
> > OrderingLinks does not distinguish same column names from
different
> > tables.
> >
> > Any idea?
> >
> > Thanks again,
> > Michael
> >
> >
> >
> > --- In IBObjects@yahoogroups.com, "Marco Menardi" <mmenaz@l...>
wrote:
> > > --- In IBObjects@yahoogroups.com, "Michael Fung" <ibo@c...>
wrote:
> > > > Dear all,
> > > >
> > > > I used IB_Connection.FieldsDisplayLabel to set the grid
column
> > title
> > > > globally, like that:
> > > >
> > > > Brand.Name=Brand
> > > > Category.Name=Category
> > > > Currency.Name=Currency
> > > > Package.Name=Package
> > > > Unit.Name=Unit
> > > >
> > > >
> > > > It worked like a charm. So I didn't bother to name the fields
in
> > all
> > > > queries, like that:
> > > >
> > > > SELECT P.ID
> > > > , P.PN
> > > > , B.NAME
> > > > , K.NAME
> > > > , C.NAME
> > > > , P.PHY_QTY
> > > > , U.NAME
> > > >
> > > > FROM PRODUCT P
> > > > LEFT OUTER JOIN BRAND B ON B.ID = P.BRAND_ID
> > > > LEFT OUTER JOIN PACKAGE K ON K.ID = P.PACKAGE_ID
> > > > LEFT OUTER JOIN CATEGORY C ON C.ID = P.CATEGORY_ID
> > > > LEFT OUTER JOIN UNIT U ON U.ID = P.UNIT_ID
> > > >
> > > > However, when I come to setup Ordering for the queries, it
> > doesn't
> > > > work becuase of the same 'NAME' fields!
> > > >
> > > > Is there a workaround? Could you save me from rewriting all
> > qeries,
> > > > please?
> > > >
> > > > TIA,
> > > > Michael
> > >
> > > This is a problem not related with FieldsDisplayLabel, it's
that you
> > > must provide to Firebird a NON AMBIGUOUS field reference.
> > > So in OrderingItems you must provide table names too, like:
> > > NAME=C.NAME
> > > BRAND NAME=B.NAMEor whatever you like.
> > > To check what ibo does, use the SQL monitor and have a look at
the
> > > query generated when you change OrderingItemNo. If you see
a "ORDER
> > BY
> > > <ambiguous fieled name here>" you know that Firebird will
reject it.
> > > In addition, as a free suggestion, consider that if you make
> > > intelligent use of domains, there is the wonderful possibility
to
> > > define a lot of properties related to domains at the
IB_Connection
> > > level, to gain a lot of time, consistency and error free
> > developement.
> > > regards
> > > Marco Menardi