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

Community Tip - Help us improve the PTC Community by taking this short Community Survey! X

Grid view with merge headers

quangnguyenduc4
6-Contributor

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

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

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.

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

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.

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?

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

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

Top Tags