Page 1 of 2
Tables + displayCollection
Posted: Fri Aug 07, 2009 1:11 pm
by ConvertFromOldNGs
by CassMan >> Wed, 19 Sep 2007 11:28:22 GMT
Hello,
I would like to use a table to display all instances within a collection, preferrably using a scroll bar as there may be as many as 100 entries. I am currently using the displayCollection method and this displays the first 26 entries (the maximum for the tables height), but does not allow the user to scroll, even though a scroll bar is present (It allows you to scroll by half a row to display the fixedRow too.
I have since been informed that this is because the displayCollection method only fills the table and discards any further entries. What should i use instead to allow all entries to be visible? Or, is there something i could change to do this but still using displayCollection?
Thank you in advance
Re: Tables + displayCollection
Posted: Fri Aug 07, 2009 1:11 pm
by ConvertFromOldNGs
by CassMan >> Wed, 19 Sep 2007 13:27:44 GMT
Thanks guys, but i have worked it out. due to the fact that displaycollection only displays until the table is full, i decided to create an iterator and fill the table rows one by one - an easy fix really. I really don't understand why displayCollection does not allow scrolling though. Odd.
Thanks anyway.
Re: Tables + displayCollection
Posted: Fri Aug 07, 2009 1:11 pm
by ConvertFromOldNGs
by John Munro >> Wed, 19 Sep 2007 14:02:56 GMT
It does allow scrolling - we have tables with millions of rows in them, it should be able to do 100 in its sleep.
What was the displayCollection line you were using?
John
Re: Tables + displayCollection
Posted: Fri Aug 07, 2009 1:11 pm
by ConvertFromOldNGs
by CassMan >> Wed, 19 Sep 2007 15:49:59 GMT
I assumed it must do, otherwise there would be no point. But i just couldn't get it working.
The original line was:
table.displayCollection(myContributions, false, 0, null);
But i tried numerous different ones. There wasn't a problem before as the number of entries was always less than the table size, but due to a recent occurence i was asked to change it to allow more rows.
Rich
Re: Tables + displayCollection
Posted: Fri Aug 07, 2009 1:11 pm
by ConvertFromOldNGs
by John Munro >> Wed, 19 Sep 2007 16:15:03 GMT
That looks fine
Did you set the scrollBars property of the table to either Vertical or Both?
Another thing that could cause the Table to stop adding rows would be if you set the bcontinue parameter to false in your implementation of displayRow on the table.
On a completely separate note, if you have the update parameter of displayCollection set to false and the objects in the collection are updated by another user, your table won't update automatically. Depending on the situation this may not be important or you may have some other way of making sure it's not a problem, I just thought I'd point it out.
John
Re: Tables + displayCollection
Posted: Fri Aug 07, 2009 1:11 pm
by ConvertFromOldNGs
by Patwos >> Wed, 19 Sep 2007 21:11:28 GMT
"On a completely separate note, if you have the update parameter of displayCollection set to false and the objects in the collection are updated by another user, your table won't update automatically. Depending on the situation this may not be important or you may have some other way of making sure it's not a problem, I just thought I'd point it out."
Given that the most frequent use of displayCollection are from methods on a form, it is highly likely that the implied self for the myContributions collection is a form. If their code matches the most frequent usage of displayCollection, the collection in question is transient and he would therefore have to use false for the update parameter.
Hope that helps,
Pat.
Re: Tables + displayCollection
Posted: Fri Aug 07, 2009 1:11 pm
by ConvertFromOldNGs
by
cnwjhp1 >> Wed, 19 Sep 2007 21:43:11 GMT
Given that the most frequent use of displayCollection are from methods on a form, it is highly likely that the implied self for the myContributions collection is a form. If their code matches the most frequent usage of displayCollection, the collection in question is transient and he would therefore have to use false for the update parameter.
Or it could be a reference to a persistent collection, held on the form for convenience, perhaps to avoid coding app.myRoot.myOrganisation.myTeam.myContributions each time.
Re: Tables + displayCollection
Posted: Fri Aug 07, 2009 1:11 pm
by ConvertFromOldNGs
by Allistar >> Wed, 19 Sep 2007 22:39:35 GMT
I always understood that it's not possible to hold a reference to an exclusive reference on another class (such as a form). To workaround this I'd implement a method on the form called something like "getCollection" which returns the long winded name. This saves nothing at runtime but may ease development if you refer to the collection a lot.
--
A.
Re: Tables + displayCollection
Posted: Fri Aug 07, 2009 1:11 pm
by ConvertFromOldNGs
by
dcooper@jade.co.nz >> Wed, 19 Sep 2007 23:37:56 GMT
Some people think this is a little morally questionable
But you can hold the reference in a string property:
s := coll.getOidString;
And then get it back into a variable when you need it with:
coll := s.asOid.Collection;
Clearly you can cast to whatever type you need, so long as the string OID and the variable's type are compatible.
Dean.
Re: Tables + displayCollection
Posted: Fri Aug 07, 2009 1:11 pm
by ConvertFromOldNGs
by Allistar >> Thu, 20 Sep 2007 1:57:24 GMT
Another, equally morally questionable way of doing this is to define an iterator on the form and attach it to the collection in the load of the form like this:
myIterator := coll.createIterator();
then in your code you could call
coll := myIterator.getCollection();
just remember to delete the iterator when the form is deleted.
Ick.
Allistar.