Tab Stop Order in Kinetic Browser?

Hey Hey!

I’m in the process of making the issue material app “scanner” friendly. Is there a way to change which control gets focus on pressing TAB? I want to ignore tab going to the assembly field after the job # is entered.

I don’t think there is a way to set the tab stops like in Classic yet. I’ve had the same ask from our users.

1 Like

There’s an idea in the system for that. But it may not go anywhere as dev comments indicate it was set-up this was by design.

You CAN use events to “set-focus”… but that would be a lot of work.

I actually set up a custom layer for Issuing Materials via scanner. This including creating some custom textboxes to receive the data (in a tab friendly manner), without interfering with base functionality.

Details can be found here, if its helpful:

4 Likes

You could probably re-arrange those textboxes like this?

2 Likes

This is awesome, David! Exactly what I was looking for. I was hoping to use the base layer so I don’t have to wire up the transaction code. Thanks!

Yeah, the problem was the event. You scan in the job, but the system has to load it before you can scan in your assembly… which has to load before you can scan your material.

So… Its not just field placement, but allowing for data loading between each entry.

1 Like

Architectural :poop: below.

There’s been a movement for a different UI paradigm besides CRUD (Create, Read, Update, Delete). It’s called Task Oriented UI. Instead of working on an entity, the UI helps to perform a task. This would mean we would have an app that would be barcode friendly and not just wedging the input into a CRUD screen. There are many advantages to this approach. You can read all about it if you want to.

4 Likes

Haha… interesting analogy in that article:

You can’t make a dog bark by cutting open its chest and squeezing the lungs.

How I Met Your Mother Yes GIF by HULU

In theory, i agree with the Task Based Form concept, however, I disagree that this is what most users want.

They’re good for mindless data entry, which is perfect for some roles. But for the most part, if I delivered a “task based form”, I would immediately and repeatedly get plagued with suggestions and requests to add to it. “It would be great if I could also see this.” “I would love it if i could also do ‘that’ on this screen.”

Again, I agree it’s best to keep things clean and concise, but I think users tend to think they need instant access to more than they really need. Unfortunately it’s our job as admins to either placate or deny.

2 Likes

David, what bindings did you use for your barcode scan fields? The interesting thing with my solution is we need to scan the part number, not the mtl seq. I can modify the base combo box to accept the part num and use the mtl seq as a value, but there is a bug since 2023 regarding the combo drop downs and tabbing.

Yeah, I fought this as well… trying to scan values directly into the comboboxes had issues. That’s one of the reasons I just used new textboxes at the top of the form. This gave me the tab-stop order I wanted and it was easy to dump values. Their only purpose is to hold the initial scan value and then I pushed the values into the respective dataviews via onblur events with row-updates. Basically circumventing the comboboxes all together.

So my actual scan fields were bound to:
TransView.Job
TransView.Assembly
TransView.Material
TransView.Qty
TransView.Bin
TransView.Lot

Then, I had (4) separate events which took scanned values and pushed them into their respective dataviews

User would scan (1) barcode into the top textbox, that barcode was a combination of Job/Asmbl/MatlSeq and included tabs in between the values. So that initial scan actually populated (3) textboxes. I then had an onblur event which pushed the values from the textboxes into:

  • KeyFields.JobNum
  • IM.ToAssemblySeq
  • IM.ToJobSeq

image

User would then scan a qty barcode into the Qty custom textbox and the onblur Event (2) pushed the value :

  • IM.TranQty

image

User scanned into the Bin textbox, Event (3) pushed value to:

  • IM.FromBinNum

image

User scanned into the Lot textbox, Event (4) pushed value to :

  • IM.LotNum

image

2 Likes