Multiple Grids filtered by single filter? Dashboard with multiple BAQ grids

Being a slight bit lazy instead of searching in depth I come here. Feel free to point me to places if this exists somewhere else, otherwise maybe a discussion on the concept.

During tutorials we learned how to link grids in Application Studio, and add filtering to grids. Now I am creating a single page Dashboard for sales people that will have three or four grids. Quotes in varying phases, and Sales Orders. I am anticipating Sales people wanting to filter the grids on items relating to them only, easy enough to filter but can we filter three or four with one single filter?

I like at least one BAQ driven grid for a specific purpose. Due to the nature of our business we anticipate leaving projects as Quotes after we get a PO while teams review and make last minute adjustments to quantities, and methods of manufacture. All of our products will be CPQ driven creating part on the fly line items with calculated MoM’s. We will have teams reviewing and attaching critical production documentation before we convert to Sales Order and then MRP will spin up jobs and scheduling will do it’s thing. So my uber fancy BAQ gives the sales person progress feedback as teams complete their tasks preparing the Quote to be converted. The other two primary grids are basic Quote (pre-won) and Sales Orders. I may add a third to give feedback on purchase status of bought out parts.

Thanks in advance.

Hi Tory,

The short answers is yes, you should be able to filter multiple grids based on a single filter… you just need to call out that filter’s binding in the Where Clause for each grid.

Here’s an example I have if it is helpful.

This is a dashboard I have that shows part information. The Textbox up top is bound to KeyFields.PartNum.

The (5) grids below are all driven by separate BAQ’s (NOT by dataviews). The BAQ ID is added to the Grid Model > Provider Model.

Then, in Provider Model, in the BAQ Options… I add a Where clause:
UD02_Key1 = '?{KeyFields.PartNum}'

Every time KeyFields.PartNum value changes, the BAQ’s automatically refresh and repopulate the grids.

If you have a grid that is populated by a DataView, I think you’ll need a DataTable > Column Changed event so when the value of your filter changes, you would re-run your kinetic-bAQ or rest-kinetic events to repopulate those dataviews based on the new filter.

Anyway, I know the above is not the same as what you’re looking for (I’m doing Part based stuff… not sales based stuff), but may point you in the right direction.

3 Likes

OK Not only is this helpful information (I do have more questions, regarding Provider Model, etc…), but now I want this page too. That looks super cool, and really gets the grey matter twitching with ideas…

I’m still a newbie so I am leveraging the wizard to build the dashboard from a BAQ and then manually adding subsequent grids through dataviews. I am intrigued by your provider model approach and curious if it would be more flexible in the long run.

Would you mind maybe explaining why you chose this direction over dataview. My dashboard has been only bee reviewed by one person so far, so I have time to change approach if it will make my life easier. I will warn you I do hope to make the Quotes and Sales Orders into clickable links and I think I do that by referencing stuff in the dataview, I know I did it in our test database probably a year ago but I’ve long since forgotten how I did it, LOL.

I think that’s a true statement. In order to make them clickable links, I think they DO need to be bound to a dataview. At least, that’s been my experience.

If that’s the case, again, you would have your filter textbox bound to MyView.MyFilter.

Then you need an event so when that column changes it runs the “get” type actions. Like a kinetic-baq event.

In the properties of that kinetic-baq event, you put in your BAQ ID, the dataview name that is going to be updated with the results, mode would be “get”.

Then in the BAQ Execute Options, you can add your where clause there. I would assume the format would be the same:

BAQTable_BAQColumn = '?{MyView.MyFilter}'

So, now, when your filter changes, your event fires and performs the kinetic-baq “get” event to run your BAQ… WHERE your BAQ column = your filter… and the results are loaded into your target dataview.

You MAY need a grid-refresh action in your event (on success) of running your “get” action.

I’ve done this by adding a panel card with filter controls (text boxes, etc.) and binding those to TransView fields. And then using TransView.xxx to filter the BAQ results in the Provider Model.

When the value in TransView.xxx changes, the grids with that filter refresh.

YMMV.