Looking for a data grid

Maybe this is something already discussed here, but I can’t find a suitable data grid (cross-platform) component which permits me to display sets of data in a feature rich way, like having collapsable hierarchical rows and possibly pivot tables.
I was not able to find one, but perhaps someone of you has suggestions.

Unfortunately the plain Xojo Listbox is too simple for this, though a custom subclass could be probably built for this purpose. But it’s a lot of work which I’d gladly avoid due to lack of time.

I’m also considering integrating in a web view some JavaScript component, since many of them exists (see below), but I know this would also probably require a lot of extra work to make the JavaScript component communicate with my application. I’m not very expert with web technologies, so I don’t really know the extent if this problem and possible pitfalls. Someone already did something like that?

Just to better explain what I mean, here are some examples:
http://www.mzsolutions.eu/Pivot-grid-with-drill-down-plugin.html
http://webpivottable.com/demo/
http://www.treegrid.com/treegrid/www/
http://www.gumption.org/2004/pivot_table/test_page.html

Thanks in advance for help and suggestions.

We have a cross-platform software system that uses a Xojo console app to talk to an Adobe AIR app, created with the (now) Apache Flex libraries and Flash Builder. It has allowed us to produce very flexible data grids and highly-customizable interfaces.

However, this is only one approach and although it has worked for us, we don’t necessarily recommend it now considering Adobe’s diminishing support of Flex (they open sourced it to Apache) and the work it would take you to learn MXML/ActionScript, besides the cost of Flash Builder.

As you mention, creating your own custom ListBox or reusing a plugin may be an easier route. If you haven’t yet, take a look at the Monkeybread page to see if they have any.

Have you looked at my Listbox Subclass?

Mergable Cell Listbox

It might do most of what you want.

  • Karen

Very Nice, Karen

Karen, it’s a very nice class, and the first example is very close to what I need.
However I’m sure I need to handle a lot more things, like reordering data, pin the left column and scroll horizontally, and so on.
So I think this may be a very good starting point to build a custom subclass, but still far from my needs.
Anyway is a pretty cool listbox, and I will keep in consideration if I can’t find a better solution.
Just a question: licensing it, do I get the source code?

[quote=58769:@Tomas Sancio]We have a cross-platform software system that uses a Xojo console app to talk to an Adobe AIR app, created with the (now) Apache Flex libraries and Flash Builder. It has allowed us to produce very flexible data grids and highly-customizable interfaces.

However, this is only one approach and although it has worked for us, we don’t necessarily recommend it now considering Adobe’s diminishing support of Flex (they open sourced it to Apache) and the work it would take you to learn MXML/ActionScript, besides the cost of Flash Builder.

As you mention, creating your own custom ListBox or reusing a plugin may be an easier route. If you haven’t yet, take a look at the Monkeybread page to see if they have any.[/quote]

Tomas, this is an amazing solution, but, as you already said it would be over complicate (and long) to implement. In the end I don’t know if it worth the efforts. Also the Flash Builder is something I’d gladly avoid.
But thanks for telling me your experience.

[quote=58777:@Massimo Valle]Karen, it’s a very nice class, and the first example is very close to what I need.
However I’m sure I need to handle a lot more things, like reordering data, pin the left column and scroll horizontally, and so on.
[/quote]

I was thinking about pinning the left column before this … With a single listbox subclass that could only happen if all the columns were the same width. I have thought of a couple of ways around that…
In the past for my own use I have used 2 listboxes with the left column in it’s own listboxe with vertical scrolling linked between the two using an external scrollbar… But IIRC it was hard to sync the scrolling well when using keyboard navigation.

The second way would be to put it in a container control and draw the left column oneself… That has it’s own challenges but should be doable

Yes… It is a subclass of the Xojo listbox

Thanks… Did that while I was out of work and had time on my hands.

[quote=58784:@Karen Atkocius]I was thinking about pinning the left column before this … With a single listbox subclass that could only happen if all the columns were the same width. I have thought of a couple of ways around that…
In the past for my own use I have used 2 listboxes with the left column in it’s own listboxe with vertical scrolling linked between the two using an external scrollbar… But IIRC it was hard to sync the scrolling well when using keyboard navigation.

The second way would be to put it in a container control and draw the left column oneself… That has it’s own challenges but should be doable[/quote]

Well, I’m not sure about performance, but having time to write a custom class I would probably try to build a canvas based grid. It’s true that the listbox already provide basic features that should be rewritten, but for some parts the built-in features of the listbox force you to do a lot of convolutions which results in a not-very-neat design.