cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Grid view with merge headers

SOLVED
Highlighted
Regular Member

Grid view with merge headers

I've currently have a task to create a grid view with sub headers like a picture bellow. I've struggled with this for few days but haven't got any clue to custom girdview header like this. Can anyone give me any ideas to handle that. Thanks alot!Annotation 2020-04-27 102319.png

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted

Re: Grid view with merge headers

Hello @quangnguyenduc4,

 

I can suggest four alternatives, all of which are bad, but in different ways:

  1. Wait for PTC to implement this merging;
  2. Customize Advanced Grid widget or implement your own grid from scratch;
  3. Collection widget in "Table" mode might be able to help;
  4. Create a service returning a table as HTML and render it using HtmlTextArea widget;
  5. Export data to Excel and group cells on POI level (you'll need to write a custom Java extension for that too);

All of those options (except for (1)) are either just ugly or complex and ugly. Option (4) will probably bring you the highest value in the long-term perspective, but it requires some development. At least, that's what I usually do when the users need some advanced grid operations (grouping, merging, filtering, formatting, etc.) -- then I just say "You will use web interface to preview the data, and you'll be able to click "Export to Excel" to get the actual grid".

 

Regards,
Constantine

View solution in original post

6 REPLIES 6
Highlighted

Re: Grid view with merge headers

I don't think you will be able to do nothing like this with the standard neither with the advanced (https://marketplace.ptc.com/apps/247648/grid-advanced---version-421#!overview) grid widget.

Highlighted

Re: Grid view with merge headers

Hello @quangnguyenduc4,

 

I can suggest four alternatives, all of which are bad, but in different ways:

  1. Wait for PTC to implement this merging;
  2. Customize Advanced Grid widget or implement your own grid from scratch;
  3. Collection widget in "Table" mode might be able to help;
  4. Create a service returning a table as HTML and render it using HtmlTextArea widget;
  5. Export data to Excel and group cells on POI level (you'll need to write a custom Java extension for that too);

All of those options (except for (1)) are either just ugly or complex and ugly. Option (4) will probably bring you the highest value in the long-term perspective, but it requires some development. At least, that's what I usually do when the users need some advanced grid operations (grouping, merging, filtering, formatting, etc.) -- then I just say "You will use web interface to preview the data, and you'll be able to click "Export to Excel" to get the actual grid".

 

Regards,
Constantine

View solution in original post

Highlighted

Re: Grid view with merge headers

I forgot to mention another option, which also works well for some of my customers -- embed some BI solution like Tableau or QlikView in a mashup and move all grids (and data visualization) there.

Highlighted

Re: Grid view with merge headers

Hi Constantine,

 

I'm curious in this option (embed BI), how easy to query TW services and alike from thouse BI tools it's? or you have to build especial connectivity services and alike?

Highlighted

Re: Grid view with merge headers

Hello Carles,

 

The easiest is to expose ThingWorx data via HTTP, but you would soon run into performance and security limitations. It looks OK for proof-of-concepts, but doesn't really work in prod, where you have a lot of data, your users want single-sign-on, and BI engine tries to DOS your platform by triggering hundreds of queries, which ThingWorx can't throttle intelligently.

 

So the proper way to do it is to push data into some external data source. The exact details vary on available infrastructure and your use cases. An external RDBMS exposed via JDBC is probably the most reasonable default option to consider.

 

Probably the most advanced thing you can do is wrap some data loading SDK provided by your BI (all of them have one) into a ThingWorx extension, and use it to push data directly into BI's own storage, where it will be stored in the native BI format. Here it largely depends on the SDK capabilities. For example, Tableau Server doesn't support modifying existing data and only allows to append it (or at least that's how it used to work a couple of years ago). That's something to consider before embarking on this journey.

 

We tried all three approaches, and the third one worked best for us. It is slightly harder to implement, but gives you the best performance and long-term scalability. You are paying the price by getting vendor-locked, obviously, since there are no standards there.

 

Embedding BI web UI into mashups is another story, it's also perfectly doable via other set of SDKs, but also requires writing extensions (at least if you want to do BI filtering, change report pages, highlight something, etc. from your mashups). Same story about SSO for web UI -- it's doable via javascript extensions without too much effort.

 

That all may sound rather complex, but we're talking about a couple of weeks of work for an experienced ThingWorx developer, and the technical risks are quite low.

 

Regards,
Constantine

Highlighted

Re: Grid view with merge headers

WoW, thanks for your "two cents" about it!

Announcements

Thingworx Navigate content has a new home! Click here to access the new Thingworx Navigate forum!