number of columns in a table field

Bill Marriott wjm at wjm.org
Wed May 31 00:30:52 EDT 2006


Kay,

Sorry, I'm not sure what you're talking about -- of course all those UI 
options are great but the way one must use them is not. The standard method, 
I believe, is to use a group the hold all those fields and controls, and 
then scroll that group around. But the performance of such a solution is 
truly awful when you have to move around hundreds of rows of a couple dozen 
columns. Not to mention that the Geometry Munger likes to resize the group 
when it feels like it, and group scroll bars -- horizontal and vertical --  
like to resize themselves at will. You end up rolling your own geometry 
manager and scrolling manager and resize manager, etc. I do not think it is 
fun to build all these things from scratch, especially when I want to have 
some advanced options like splitters and discontinuous selections, proper 
cross-platform handling of keyboard controls, response to scroll wheels, 
etc., etc. There are various sample stacks out there that try to address the 
shortcomings of the built-in table object, but none of them are perfect... 
which just shows you how hard it is to do.

Even rolling my own, I had one standalone where people couldn't scroll to 
the very bottom of a group after a certain number of rows were used. And to 
fix it I had to completely delete everything and rebuild from scratch. It 
wasn't my code; Rev simply "held on" to something deep in its bowels and 
wouldn't let go of it. Groups like to make themselves a couple pixels off 
the size of the selected objects so you have a very unprofessional-looking 
appearance. More than once I had scrollbar thumbs that refused to move all 
the way to the beginning or end of their range. If you're not careful during 
development you can force the group's size to reset and it's difficult to 
realign it just right. I don't like having to spend 60% - 70% of my 
development time "reinventing the wheel" and working around display 
idiosyncrasies just to get a decent grid UI. That is not "software at the 
speed of thought" or "rapid application development" by any stretch.

The basic table object can't right-justify or center-justify columns, easily 
lock column and row headings, or even apply its own number formatting rules 
automatically. If a user tries to edit a cell, they get an edit box that is 
much larger than the size of the cell being edited. If you try to edit the 
right-most  visible column of a table, Rev forces horizontal scrolling and 
the addition of an extra column. Using the built-in, undocumented, set and 
get cell commands is slower than molasses; but if you don't use those 
methods the contents of the field disappear when you make changes (like 
resizing the field) during development. You can't easily select columns of 
data, and you can't embed radio buttons, check boxes, or drop-down lists. 
This is in sharp contrast to what one can do in FileMaker, Excel, Visual 
Basic, and most other development environments I can think of.

I am not making this stuff up, much of it is already documented in BugZilla.

In short, the Revolution table object is crap and the alternatives are 
exercises in frustration. In my opinion ... Attention to *QUALITY* grid 
handling is an absolute necessity for the next major update if Rev wants to 
be taken seriously for database work.

Kay C Lan wrote
> Whilst Table representation certainly has its advantages and place, I
> think if you look a little deeper into a 'customised' display you'll
> be quickly impressed with the power and flexibility it provides.






More information about the use-livecode mailing list