Discussion:
Max number of columns in a datagrid?
Bob Sneidar via use-livecode
2018-11-20 23:30:50 UTC
Permalink
Hi all.

I'm importing a csv file with a LOT of columns, and I am running into an issue with setting the dgProp ["columns"] of the datagrid. It's choking on the number of columns it seems. What is the max?

Bob S
dunbarxx via use-livecode
2018-11-21 03:36:54 UTC
Permalink
Hi.

Never thought about this. But I made a DG, and put this into a button:
on mouseup
repeat 300
put random(9999) & tab after temp
end repeat
set the dgText of grp 1 to temp
end mouseup

No problem. With a horizontal scrollbar, I can zoom to each side of the DG.

But If I try to change the count to more than 300, the DG loses its hScroll,
and it seems that many separate numbers appear overlapped in column 1.
Further, a lot of time is spent while the DG is digesting this new property
change.

Trevor is the one to address this, assuming anything I just did makes sense.

Craig Newman



--
Sent from: http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html
Bob Sneidar via use-livecode
2018-11-21 15:39:19 UTC
Permalink
I had set the dgProp ["columns"] to more than 900. :-) Not only did the DG fail to display any data, but it actually KILLED THE DG! I could no longer set the dgData to empty, nor could I edit the contents in the property inspector and delete the text. I had to delete the DG and create a new one. I have less than 100 now so all good.

I don't consider this a bug though. I simply exceeded the limits of LC to handle that many columns of data. I think it has to do with the maximum width of a card. The fields would have to be created whether or not they are displayed. If they exceed the max card width, I can see how there would be problems.

Bob S
Post by dunbarxx via use-livecode
Hi.
on mouseup
repeat 300
put random(9999) & tab after temp
end repeat
set the dgText of grp 1 to temp
end mouseup
No problem. With a horizontal scrollbar, I can zoom to each side of the DG.
But If I try to change the count to more than 300, the DG loses its hScroll,
and it seems that many separate numbers appear overlapped in column 1.
Further, a lot of time is spent while the DG is digesting this new property
change.
Trevor is the one to address this, assuming anything I just did makes sense.
Craig Newman
dunbarxx via use-livecode
2018-11-21 16:08:12 UTC
Permalink
I tested with a table field. It can hold far many more columns, but it, too,
will go haywire if the tabStops are wide and the number of columns exceeds
about 1500.

I was surprised that the number of columns matters. Certainly they are not
all drawn at once, but rather "exposed" based on internal workings and the
current thumbPos.

This really needs a response from the team.

Craig



--
Sent from: http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html
JJS via use-livecode
2018-11-21 21:27:10 UTC
Permalink
what the h*ll you're going to do with 1500 columns?

who's gonna work with that?
Post by dunbarxx via use-livecode
I tested with a table field. It can hold far many more columns, but it, too,
will go haywire if the tabStops are wide and the number of columns exceeds
about 1500.
I was surprised that the number of columns matters. Certainly they are not
all drawn at once, but rather "exposed" based on internal workings and the
current thumbPos.
This really needs a response from the team.
Craig
--
Sent from: http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html
_______________________________________________
use-livecode mailing list
http://lists.runrev.com/mailman/listinfo/use-livecode
dunbarxx via use-livecode
2018-11-21 21:39:24 UTC
Permalink
People with wide monitors?



--
Sent from: http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html
Tom Glod via use-livecode
2018-11-21 23:49:08 UTC
Permalink
hahaha!...It never occured to me that people would have such large numbers
of columns .......it sounds like lots of fun..... what is the data?

also....wondering .....if there is another way..... would a graph database
help?

On Wed, Nov 21, 2018 at 4:39 PM dunbarxx via use-livecode <
Post by dunbarxx via use-livecode
People with wide monitors?
--
http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html
_______________________________________________
use-livecode mailing list
http://lists.runrev.com/mailman/listinfo/use-livecode
Bob Sneidar via use-livecode
2018-11-26 18:48:19 UTC
Permalink
For me the issue was converting a csv file exported from a copier. The csv file has a LOT of columns (page counts for virtually everything and paper type black and color the copier is capable, including scans, fax etc.) In the end I decided to not use that file format and instead use the smaller export file which is not so mindbogglingly granular.

Bob S
Post by Tom Glod via use-livecode
hahaha!...It never occured to me that people would have such large numbers
of columns .......it sounds like lots of fun..... what is the data?
also....wondering .....if there is another way..... would a graph database
help?
dunbarxx via use-livecode
2018-11-26 22:08:02 UTC
Permalink
All:

It is certainly possible that one might need an enormous DG or table field.
It never happens that one must view such a beast all at once, or even a
large part of it; that is not the issue. The point is that one cannot have
such a control at all, and that seems unfair.

If one is looking at the first ten columns, and it is desired to jump over
to columns 6000-6010, well, you cannot. Surely the dataSet can be stored in
a field or custom property, and loaded as needed, but that requires a
significant amount of pre-processing. The whole point of DG's and
tableFields is that they can be navigated with virtually unconscious
well-worn user actions.

The limit may be intrinsic. It at least should be published.

Craig





--
Sent from: http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html
Richard Gaskin via use-livecode
2018-11-26 23:04:26 UTC
Permalink
Post by dunbarxx via use-livecode
It is certainly possible that one might need an enormous DG or table field.
It never happens that one must view such a beast all at once, or even
a large part of it; that is not the issue. The point is that one
cannot have such a control at all, and that seems unfair.
Don't settle for unfair. Grab the DG code and enhance it. The
virtualization method used for vscroll could be adapted for hscroll.
Post by dunbarxx via use-livecode
If one is looking at the first ten columns, and it is desired to jump
over to columns 6000-6010, well, you cannot.
I wouldn't ask a user to scroll 30 feet. I'd rethink the design.
Post by dunbarxx via use-livecode
Surely the dataSet can be stored in a field or custom property, and
loaded as needed, but that requires a significant amount of pre-
processing. The whole point of DG's and tableFields is that they can
be navigated with virtually unconscious well-worn user actions.
Few read what I write here, so this will likely be as lost as the last
time I addressed this a couple days ago. But I'm just OCD enough to
keep trying, so here goes:


A field is a single control.

A DataGrid is many hundreds of countrols, many of which are fields.

The DG is a good option where you need the unprecedented flexibility it
provides with form layouts.

For everything else using a single control, the engine-native field
object, will outperform because all the processing needed to render the
contents happens in highly-optimized machine-compiled C++.

Try the field object.

Really.

I don't keep writing this to mislead.
Post by dunbarxx via use-livecode
The limit may be intrinsic. It at least should be published.
Perhaps it should. I believe the 65,535px limit for group contents is
documented, and since a DG is a collection of groups it applies there.

If you feel we should replicate limits of groups in the discussion of
the DG I would have no problem with you submitting a pull request for
that. Where would be the appropriate place for that addition, Dict,
Lessons, or User Guide?
--
Richard Gaskin
Fourth World Systems
Software Design and Development for the Desktop, Mobile, and the Web
____________________________________________________________________
***@FourthWorld.com http://www.FourthWorld.com
Bob Sneidar via use-livecode
2018-11-27 00:06:33 UTC
Permalink
I read it. :-) My original question was simply, how many columns can a datagrid have? In other words is there a limit? The reason it mattered to me at the time was because I was importing a csv file with a lot of columns and it was easier for me to set the dgProp ["columns"] to the first line of the file, and the dgText [true] to the whole file. Down and dirty, no looping to grab just the pertinent data.

The problem was that one of the file formats exported by the copier had way too many columns, so if I was going to use that file, I was going to have to preprocess the file. Also, I was concerned because I didn't just fail to set the detect, I KILLED the datagrid object and had to delete it and create a new one. That could present a problem for anyone trying the same thing in an app in the future. Think importing complex spreadsheets.

Now I've decided not to use that file, but another one I can get from the copier and that is far less granular. I don't even need to use a datagrid, but it happens to be a really handy way to convert a csv file to an array without having to write my own code to do it. :-) Plus, I can show the end user something to indicate that I have the data, and allow them to peruse it and even get stats for a particular selected row.

I did not intend for this thread to become a debate on how datagrids should work. I love the fact that we even have them! Just to be clear how fundamental I think a real table object is, where row and column data can be referenced like a spreadsheet, the only reason I have gon on to develop in Livecode is due almost exclusively to the datagrid.

Bob S
Post by Richard Gaskin via use-livecode
A field is a single control.
A DataGrid is many hundreds of countrols, many of which are fields.
The DG is a good option where you need the unprecedented flexibility it provides with form layouts.
For everything else using a single control, the engine-native field object, will outperform because all the processing needed to render the contents happens in highly-optimized machine-compiled C++.
Try the field object.
Really.
I don't keep writing this to mislead.
Bob Sneidar via use-livecode
2018-11-27 00:10:17 UTC
Permalink
correction set the dgtext. Stupid spell correct.

Bob S
Post by Bob Sneidar via use-livecode
Also, I was concerned because I didn't just fail to set the detect
Geoff Canyon via use-livecode
2018-11-28 01:31:16 UTC
Permalink
On Mon, Nov 26, 2018 at 3:08 PM Richard Gaskin via use-livecode <
Post by Richard Gaskin via use-livecode
Try the field object.
Not that this couldn't be worked around, but isn't a field limited in the
width of what it can display? i.e. put a single line 100,000 characters
long into an un-wrapped field, and the field fails in some way.

gc
Geoff Canyon via use-livecode
2018-11-28 22:56:01 UTC
Permalink
I just checked, and (LC 8 on a Mac) indeed fields fail beyond a certain
width/character limit/???

This:

on mouseUp
repeat with i = 1 to 10000
put char -10 to -1 of ("aaaaaaaaaa" & i & " ") after x
end repeat
put x into fld 1
end mouseUp

results in a field that scrolls right only until it displays about "aa294
aaaaaa295 aaaaaa296 aaaaaa2" So, something like 3,000 characters wide.
Again, something that could be worked around, but basically whether it's a
field or the DG, some sort of virtualized display seems necessary.
Post by Geoff Canyon via use-livecode
On Mon, Nov 26, 2018 at 3:08 PM Richard Gaskin via use-livecode <
Post by Richard Gaskin via use-livecode
Try the field object.
Not that this couldn't be worked around, but isn't a field limited in the
width of what it can display? i.e. put a single line 100,000 characters
long into an un-wrapped field, and the field fails in some way.
gc
JJS via use-livecode
2018-11-22 21:04:51 UTC
Permalink
you mean like this one:

https://www.legamaster.com/products/product/interactive-products/e-screen-interactive-touch-monitors/ptx-9800uhd-e-screen-8713797081610/?no_cache=1&cHash=158c87c7f0527df039ce11bc76eae9ab


But who can cope with 1500 columns, most people would stop and lost
track before reaching the 50th

What kind of data is that?
Post by dunbarxx via use-livecode
People with wide monitors?
--
Sent from: http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html
_______________________________________________
use-livecode mailing list
http://lists.runrev.com/mailman/listinfo/use-livecode
Geoff Canyon via use-livecode
2018-11-22 21:36:58 UTC
Permalink
It's not relevant to the current discussion, but waaaay back when, I worked
with a guy who had created some monster spreadsheets in Excel with
something like 9,000 columns. It was working, but it was incredibly slow --
this was running on 68k Macs. Not expecting success, I suggested he give
FileMaker a shot. He did, and amazingly, not only did it happily handle
database definitions with 9,000 fields, it was not just faster than Excel,
it was actually speedy. It had zero problems, and he built out the entirety
of his solution that way.

On Thu, Nov 22, 2018 at 1:05 PM JJS via use-livecode <
Post by JJS via use-livecode
https://www.legamaster.com/products/product/interactive-products/e-screen-interactive-touch-monitors/ptx-9800uhd-e-screen-8713797081610/?no_cache=1&cHash=158c87c7f0527df039ce11bc76eae9ab
But who can cope with 1500 columns, most people would stop and lost
track before reaching the 50th
What kind of data is that?
Post by dunbarxx via use-livecode
People with wide monitors?
--
http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html
Post by dunbarxx via use-livecode
_______________________________________________
use-livecode mailing list
Please visit this url to subscribe, unsubscribe and manage your
http://lists.runrev.com/mailman/listinfo/use-livecode
_______________________________________________
use-livecode mailing list
http://lists.runrev.com/mailman/listinfo/use-livecode
JJS via use-livecode
2018-11-23 17:58:17 UTC
Permalink
well it's incredible big!

Yes Excell and outlook too can being very slow, on my job i have a
laptop from this year(lenovo) and it's running office 360, it's terrible
slow. But...it could also be due to the rest of the shitty software we
have to use like Labware(that's really crying and a pain in the *ss).
But thay say on calculations that Excell is the top.

Anyway hope you get it figured out.
Post by Geoff Canyon via use-livecode
It's not relevant to the current discussion, but waaaay back when, I worked
with a guy who had created some monster spreadsheets in Excel with
something like 9,000 columns. It was working, but it was incredibly slow --
this was running on 68k Macs. Not expecting success, I suggested he give
FileMaker a shot. He did, and amazingly, not only did it happily handle
database definitions with 9,000 fields, it was not just faster than Excel,
it was actually speedy. It had zero problems, and he built out the entirety
of his solution that way.
On Thu, Nov 22, 2018 at 1:05 PM JJS via use-livecode <
Post by JJS via use-livecode
https://www.legamaster.com/products/product/interactive-products/e-screen-interactive-touch-monitors/ptx-9800uhd-e-screen-8713797081610/?no_cache=1&cHash=158c87c7f0527df039ce11bc76eae9ab
But who can cope with 1500 columns, most people would stop and lost
track before reaching the 50th
What kind of data is that?
Post by dunbarxx via use-livecode
People with wide monitors?
--
http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html
Post by dunbarxx via use-livecode
_______________________________________________
use-livecode mailing list
Please visit this url to subscribe, unsubscribe and manage your
http://lists.runrev.com/mailman/listinfo/use-livecode
_______________________________________________
use-livecode mailing list
http://lists.runrev.com/mailman/listinfo/use-livecode
_______________________________________________
use-livecode mailing list
http://lists.runrev.com/mailman/listinfo/use-livecode
Richard Gaskin via use-livecode
2018-11-24 00:38:20 UTC
Permalink
Post by Geoff Canyon via use-livecode
It's not relevant to the current discussion, but waaaay back when, I
worked with a guy who had created some monster spreadsheets in Excel
with something like 9,000 columns. It was working, but it was
incredibly slow -- this was running on 68k Macs. Not expecting
success, I suggested he give FileMaker a shot. He did, and amazingly,
not only did it happily handle database definitions with 9,000 fields,
it was not just faster than Excel, it was actually speedy. It had zero
problems, and he built out the entirety of his solution that way.
Did he create a layout in FileMaker with 9,000 fields?

If he had I suspect it would expose the root of the issue as being not
so much about internal handling of the data, but about rendering it all.

One more reason to remember that spreadsheets are not databases. Very
different tools with very different feature focuses and tradeoffs.
--
Richard Gaskin
Fourth World Systems
Software Design and Development for the Desktop, Mobile, and the Web
____________________________________________________________________
***@FourthWorld.com http://www.FourthWorld.com
Geoff Canyon via use-livecode
2018-11-24 02:46:24 UTC
Permalink
I don't remember what-all he did with it, but FileMaker proved to be
remarkably resilient pretty much no matter what he threw at it. The one
limitation back then was that a given file couldn't be more than 32MB(!).

On Fri, Nov 23, 2018 at 4:38 PM Richard Gaskin via use-livecode <
Post by Richard Gaskin via use-livecode
Post by Geoff Canyon via use-livecode
It's not relevant to the current discussion, but waaaay back when, I
worked with a guy who had created some monster spreadsheets in Excel
with something like 9,000 columns. It was working, but it was
incredibly slow -- this was running on 68k Macs. Not expecting
success, I suggested he give FileMaker a shot. He did, and amazingly,
not only did it happily handle database definitions with 9,000 fields,
it was not just faster than Excel, it was actually speedy. It had zero
problems, and he built out the entirety of his solution that way.
Did he create a layout in FileMaker with 9,000 fields?
If he had I suspect it would expose the root of the issue as being not
so much about internal handling of the data, but about rendering it all.
One more reason to remember that spreadsheets are not databases. Very
different tools with very different feature focuses and tradeoffs.
--
Richard Gaskin
Fourth World Systems
Software Design and Development for the Desktop, Mobile, and the Web
____________________________________________________________________
_______________________________________________
use-livecode mailing list
http://lists.runrev.com/mailman/listinfo/use-livecode
Richard Gaskin via use-livecode
2018-11-25 23:04:30 UTC
Permalink
Post by Geoff Canyon via use-livecode
Post by Richard Gaskin via use-livecode
Post by Geoff Canyon via use-livecode
It's not relevant to the current discussion, but waaaay back when,
I worked with a guy who had created some monster spreadsheets in
Excel with something like 9,000 columns. It was working, but it was
incredibly slow -- this was running on 68k Macs. Not expecting
success, I suggested he give FileMaker a shot. He did, and
amazingly, not only did it happily handle database definitions with
9,000 fields, it was not just faster than Excel, it was actually
speedy. It had zero problems, and he built out the entirety of his
solution that way.
Did he create a layout in FileMaker with 9,000 fields?
If he had I suspect it would expose the root of the issue as being
not so much about internal handling of the data, but about rendering
it all.
One more reason to remember that spreadsheets are not databases.
Very different tools with very different feature focuses and
tradeoffs.
I don't remember what-all he did with it, but FileMaker proved to be
remarkably resilient pretty much no matter what he threw at it.
Interesting, but alas missed what I was trying to convey which is
relevant for us LC folks:

Plenty of tools can put data in memory. Easy to do; most will do it well.

The challenge is in also *rendering* all of it on screen.

As we consider our options for work in LiveCode, it can be helpful to
think about the implications of rendering, both in technical terms and
for the user experience.

Technically, rendering is computationally expensive. Indeed, it's
infinitely more expensive than not rendering. :) So any time we have
more data than can be rendered efficiently, we might ask ourselves if we
really need to render all of it.

And this leads us to the user experience: we render data where doing so
has value to the user. Everything that doesn't benefit the user has no
place on the user's screen; it becomes just noise, effectively an
anti-feature.

What meaningful task is a user expected to perform with many thousands
of columns rendered on screen? How could it even be cognitively
possible for a human to perform such tasks with any useful efficiency?

The answer would of course depend on the task in question. But as a
general rule, it may be safe to consider that if the user has to scroll
horizontally more than the width of the room they're sitting in, it
might be time to explore a simpler design that culls the noise for them
and lets them see the smaller subset of data they're actually looking
for more easily.


Furthering awareness of both of these aspects, technical and UX, we come
back to the original issue cited in this thread, with LC sometimes not
correctly rendering uncommonly large numbers of columns.

This limitation may have been eliminated, or close to eliminated, with
the field object. And now that fields have column-independent
alignment, it's rare that there's ever a need to replace that one object
with a thousand-object DataGrid for simple list views.

The DataGrid is bound to a limitation within LC for group contents: the
formattedWidth and formattedHeight of a group cannot exceed 32765 px.
Attempting to go beyond that flips the signed bit internally and objects
will be rendered incorrectly.

I suppose it might be nice to see that extended, but in practice do we
really need it? How big should a group meaningfully be?

32,765 px is about 30 feet in size. That's a lot to ask a user to
scroll through, not to mention being a lot to ask LC to buffer so it can
handle the scroll efficiently.

When we're faced with such monstrous scrolling requirements imposed on
our users, a technical limitation in the engine may not be a bad thing
at all. It may turn out to be the prompting we need to re-think our
designs to deliver a more useful and fluid user experience.
--
Richard Gaskin
Fourth World Systems
Software Design and Development for the Desktop, Mobile, and the Web
____________________________________________________________________
***@FourthWorld.com http://www.FourthWorld.com
Alex Tweedly via use-livecode
2018-11-27 01:46:28 UTC
Permalink
Post by Richard Gaskin via use-livecode
This limitation may have been eliminated, or close to eliminated, with
the field object.  And now that fields have column-independent
alignment, it's rare that there's ever a need to replace that one
object with a thousand-object DataGrid for simple list views.
the formattedWidth and formattedHeight of a group cannot exceed 32765
px. Attempting to go beyond that flips the signed bit internally and
objects will be rendered incorrectly.
I suppose it might be nice to see that extended, but in practice do we
really need it?  How big should a group meaningfully be?
32,765 px is about 30 feet in size.  That's a lot to ask a user to
scroll through, not to mention being a lot to ask LC to buffer so it
can handle the scroll efficiently.
Hmmmm - 32765 pixels at 227 dpi is "only" about 12 feet :-)
Still too much - except ....

While it might be too much for horizontal scrolling, it's not so clear
for vertical scrolling.  Twelve feet is about 13 pages vertically of
A4/letter paper; so if I had a document that (for its own reasons) was
in continuous format rather than paginated, I might well want to have it
all in a single group. I probably wouldn't want to scroll through it -
but I might want to have some method of (say) going directy to a
specified chapter or verse - and then see it in its continuous context.

And if we were to consider non-European languages, maybe that would
apply horizontally as well ??

Alex.
Richard Gaskin via use-livecode
2018-11-27 18:34:51 UTC
Permalink
Post by Alex Tweedly via use-livecode
Post by Richard Gaskin via use-livecode
This limitation may have been eliminated, or close to eliminated,
with the field object. And now that fields have column-independent
alignment, it's rare that there's ever a need to replace that one
object with a thousand-object DataGrid for simple list views.
the formattedWidth and formattedHeight of a group cannot exceed 32765
px. Attempting to go beyond that flips the signed bit internally and
objects will be rendered incorrectly.
I suppose it might be nice to see that extended, but in practice do we
really need it? How big should a group meaningfully be?
32,765 px is about 30 feet in size. That's a lot to ask a user to
scroll through, not to mention being a lot to ask LC to buffer so it
can handle the scroll efficiently.
Hmmmm - 32765 pixels at 227 dpi is "only" about 12 feet :-)
Still too much - except ....
If LC is rendering such high resolution so small, that would be a bug,
and a clear indicator that resolution independence would need to be
ported from the mobile engine to the desktop engine if it hasn't been
already.
Post by Alex Tweedly via use-livecode
While it might be too much for horizontal scrolling, it's not so clear
for vertical scrolling. Twelve feet is about 13 pages vertically of
A4/letter paper; so if I had a document that (for its own reasons) was
in continuous format rather than paginated, I might well want to have
it all in a single group. I probably wouldn't want to scroll through
it - but I might want to have some method of (say) going directy to a
specified chapter or verse - and then see it in its continuous
context.
The existing field object does a fine job buffering for smooth scrolling
of just about any text of practical length. Logically, the limit of
field contents is about 4GB (UINT4), but in practical terms other memory
needs may not allow quite that much. FWIW I've loaded the Bible into a
field and it scroll quite nicely, much more smoothly than Microsoft
Word's paging scroll.
Post by Alex Tweedly via use-livecode
And if we were to consider non-European languages, maybe that would
apply horizontally as well ??
What non-European languages have no line wrapping? How do such
languages display anything on any electronic or printed surface?
--
Richard Gaskin
Fourth World Systems
Software Design and Development for the Desktop, Mobile, and the Web
____________________________________________________________________
***@FourthWorld.com http://www.FourthWorld.com
Alex Tweedly via use-livecode
2018-11-28 00:24:23 UTC
Permalink
Post by Richard Gaskin via use-livecode
The existing field object does a fine job buffering for smooth
scrolling of just about any text of practical length.  Logically, the
limit of field contents is about 4GB (UINT4), but in practical terms
other memory needs may not allow quite that much.  FWIW I've loaded
the Bible into a field and it scroll quite nicely, much more smoothly
than Microsoft Word's paging scroll.
Yes, a scrolling field is fine. But if you wanted to have a field (no
scroll bar) and other controls overlaid (or beside) the field and have
the whole thing scroll (as a group), then you could run into the pixel
limitation.
Wouldn't you ?   Or maybe I'm missing something.
Post by Richard Gaskin via use-livecode
Post by Alex Tweedly via use-livecode
And if we were to consider non-European languages, maybe that would
apply horizontally as well ??
What non-European languages have no line wrapping?  How do such
languages display anything on any electronic or printed surface?
I didn't say "no line wrapping". There are (I think) languages which can
be written vertically (e.g. Japanese, Korean), and in this case you get
a series of vertical lines - and a series of those vertical lines placed
adjacent to each other, requiring horizontal scroll to get through the
document (i.e. a complete transposition of English). So the pixel limit
night then be relevant for horizontal, just as it is for vertical.

But as you say - so long as you stick to scrolling the field, not
putting an unscrolled field into a scrolled group, you won't hit the
group pixel limit anyway.

And - since I can barely spell Unicode, far less understand all the
implications - I'll go back to being quiet now :-)

Alex.
Bob Sneidar via use-livecode
2018-11-26 18:46:17 UTC
Permalink
That wasn't the issue. The issue was, how many columns before noticeable decline in performance, and eventually death for the datagrid.

Bob S
Post by JJS via use-livecode
what the h*ll you're going to do with 1500 columns?
who's gonna work with that?
Post by dunbarxx via use-livecode
I tested with a table field. It can hold far many more columns, but it, too,
will go haywire if the tabStops are wide and the number of columns exceeds
about 1500.
I was surprised that the number of columns matters. Certainly they are not
all drawn at once, but rather "exposed" based on internal workings and the
current thumbPos.
This really needs a response from the team.
Craig
--
Sent from: http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html
_______________________________________________
use-livecode mailing list
http://lists.runrev.com/mailman/listinfo/use-livecode
_______________________________________________
use-livecode mailing list
http://lists.runrev.com/mailman/listinfo/use-livecode
hh via use-livecode
2018-11-26 23:17:50 UTC
Permalink
The limit of LC is not the sky but the 65535-limit
for coordinates of every object.
A line width can't be longer than 65535 pixels.
And if you have columns with a width of 11 pixels
each, then the right of column 5958 is 65538 what
is "off-limits".
Bob Sneidar via use-livecode
2018-11-27 00:08:49 UTC
Permalink
That makes sense. Anyone working with this much data should probably build in their own limits into the data they put into the grid. I know I will.

Bob S
Post by hh via use-livecode
The limit of LC is not the sky but the 65535-limit
for coordinates of every object.
A line width can't be longer than 65535 pixels.
And if you have columns with a width of 11 pixels
each, then the right of column 5958 is 65538 what
is "off-limits".
dunbarxx via use-livecode
2018-11-27 20:24:12 UTC
Permalink
What really needs to happen is that the DG or table field visual display is
loaded under script control. So the idea of jumping from a display of
columns 1-10 over to 6000-6010 is managed live, using the scrollbarDrag
message as the thumb is moved. What the user sees during that process is a
matter of style.

This would be a useful tool; it would effectively obviate the limits we have
been discussing.

Craig



--
Sent from: http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html
Richard Gaskin via use-livecode
2018-11-28 22:03:13 UTC
Permalink
Post by dunbarxx via use-livecode
What really needs to happen is that the DG or table field visual
display is loaded under script control. So the idea of jumping from
a display of columns 1-10 over to 6000-6010 is managed live, using
the scrollbarDrag message as the thumb is moved.
Yes, that's exactly what I was referring to a couple days ago when I wrote:

"Grab the DG code and enhance it. The virtualization method
used for vscroll could be adapted for hscroll."

http://lists.runrev.com/pipermail/use-livecode/2018-November/251675.html
--
Richard Gaskin
Fourth World Systems
Software Design and Development for the Desktop, Mobile, and the Web
____________________________________________________________________
***@FourthWorld.com http://www.FourthWorld.com
Niggemann, Bernd via use-livecode
2018-11-29 11:42:28 UTC
Permalink
From the dictionary p 59


Maximum length of a LINE in a field:

65,536 characters storage
No more than 32,786 pixels wide for display

Kind regards
Bernd


From: Geoff Canyon
I just checked, and (LC 8 on a Mac) indeed fields fail beyond a certain
width/character limit/???

This:

on mouseUp
repeat with i = 1 to 10000
put char -10 to -1 of ("aaaaaaaaaa" & i & " ") after x
end repeat
put x into fld 1
end mouseUp

results in a field that scrolls right only until it displays about "aa294
aaaaaa295 aaaaaa296 aaaaaa2" So, something like 3,000 characters wide.
Again, something that could be worked around, but basically whether it's a
field or the DG, some sort of virtualized display seems necessary.
Richard Gaskin via use-livecode
2018-11-29 18:15:35 UTC
Permalink
Post by Niggemann, Bernd via use-livecode
Post by Niggemann, Bernd via use-livecode
From the dictionary p 59
65,536 characters storage
No more than 32,786 pixels wide for display
I had thought there had been some work on that in recent years, but I
dug up the bug report and it seems it's been "hibernated":

https://quality.livecode.com/show_bug.cgi?id=10465
--
Richard Gaskin
Fourth World Systems
Software Design and Development for the Desktop, Mobile, and the Web
____________________________________________________________________
***@FourthWorld.com http://www.FourthWorld.com
Geoff Canyon via use-livecode
2018-11-29 18:14:24 UTC
Permalink
On Thu, Nov 29, 2018 at 3:42 AM Niggemann, Bernd via use-livecode <
Post by Niggemann, Bernd via use-livecode
From the dictionary p 59
65,536 characters storage
No more than 32,786 pixels wide for display
Kind regards
Bernd
I guess I should have just checked the dictionary :-)

So whether you use a DataGrid or simply a field, if the data you want to
display exceeds a certain width, you're going to have to do some work to
virtualize the display.

Continue reading on narkive:
Search results for 'Max number of columns in a datagrid?' (Questions and Answers)
5
replies
can i get question answer of asp.net ?
started 2006-10-11 00:02:47 UTC
software
Loading...