Kinetic BAQ/RDD Report: How to allow user to enter multiple items, paste-insert gone?

Please tell me there is a way to let users paste in a list of Parts, or whatever else into a Kinetic BAQ or RDD Report filter instead of playing carpal tunnel speedrun any% clicking a potentially massive number of items in the Search Results list.

For reference, everyone in my company is a certified Wizard with the Paste Insert functionality in the Classic UI, which appears to only be available in grids:

With the UI that’s built by the out of box “Wizard”, I don’t believe so. You’d need to go into app studio and create a custom layer to add that, then add your customized layer to the menu (or override the existing one)

That search box only takes input of one PartNum at a time, the search dialog allows for multi select but no functionality to paste in a selection list that i’m aware of.

It works okay for me.

Paste Filters

This works for Job Traveler because the system has a “validateFilter.Jobs” process that it runs.

If you’re just using a BAQ report, its not so friendly.

I was able to hack around it, if you’re interested. Unfortunately, I couldn’t get it to right-click paste insert… but I COULD get it to work with CTRL+V.

You’ll need a custom layer on your BAQ Report Form.

I added a custom textbox where a user could paste in their excel values. We need a “Paste Here” text box because we need to modify the list coming from Excel (or other sources):

I gave the textbox an ID of Filter1PasteInsert… and then bound that to TransView.Filter1Paste.

I then created an event:

Trigger is onBlur of that added textbox

Row-Update #1: I’m taking my pasted value from TransView.Filter1PasteInsert and cleaning that up. When you paste in from excel, it contains carriage returns, line feeds, etc. So, the row update is going to take your pasted value and write the new value to a second TransView field I called “CleanFilter1”

Here is my full expression:
"{TransView.Filter1Paste}".split("\\r").join("~").split("\\n").join("~").split(" ").join("~").replace(/~~+/g,"~").replace(/^~|~$/g,"")

The end result SHOULD be a tilde (~) delimited list.

ON SUCCESS of that row-update… perform Row-Update #2

This one takes the “cleaned” tilde delimited list from TransView.CleanFilter1 and passes that value to ReportParam.Filter1.

Here’s the preview results… I pasted in (3) values copied from Excel. The row updates turned that into a tilde delimited list… and the ReportParam.Filter1 accepted those as individual values.

Again… not pretty… but if your users are “paste-dependent”… it will work.

The Simpsons Eating GIF

That’s a keeper for my tips bookmarks!

David, I appreciate the effort and insight. I’ll give this a shot and report back, maybe tweak the idea a bit.

Very Nice David!

I looked at the JobTrav and turns out it’s a fancy component called a Search Chip Selector.

You bind it to a dataview column and optionally set the labels.

Then you create an OnSearch event

having a search-show action:


validation json:

{
	"validateFilter": "JobNum = '%value%'",
	"errorMessage": "Invalid Job"
}

and a search-value-set action:

Done.
SearchChip

Yes, and that is set up exactly like @bderuvo’s original example using Job Traveler. There is a built in validation filter for Jobs and the Search Chip Selector is bound to ReportParam.Jobs.

The problem is doing this with a BAQ report and the provided “Filter” Search Chip Selector is bound to ReportParam.Filter1… and you end up with an error:

image

Does it work if you put this in the validation property?

{
“validateFilter”: “JobNum = ‘%value%’”,
“errorMessage”: “Invalid Job”
}

Not if I’m not filtering job numbers.

I don’t have a BAQ report that attempts that.

There may be other stock validationFilters… like Part, or Sales Orders… I’m not sure. But I attempted to use validateFilter of ProdCode and it puked.

Makes sense. Too bad we’re stabbing in the dark without proper docs. I’ll try some things when I get around to it. I bet it works like:

{
“validateFilter”: “1=1”,
“errorMessage”: “Never invalid”
}

but that kinda defeats the purpose.

!!! EDIT: Don’t do this keep reading !!!

{
“validateFilter”: “1=1”,
“errorMessage”: “Never invalid”
}

Just tried the above, it loaded every single part (I know, big yikes) into the ReportParam.PartNum field:

image

If I use PartNum = '%value%' the entire pasted list is evaluated in the validation rule:

Still haven’t worked out how to split the pasted data and validate each part.

Are we sure it’s meant to? JOBTRAV doesn’t. AFAIK.

Does PartNum = ‘%value%’ work for your BAQ?

Are we sure it’s meant to?

Does PartNum = ‘%value%’ work for your BAQ?

I have no idea. Still testing things out, reading the documentation helps slightly but… only just slightly.

Yikes is right. Sorry about that. At least now we know what that does. Says: lookup entity I’m searching, where validateFilter returns true. Rather than: is this a valid filter string syntax.

FWIW, this does seem to work well. see:

FYI I’m swamped, haven’t had a chance to try this yet.