Caveat: Hiding Controls

I just wanted to make an issue aware just in case anyone else stumbles across it.

I completely revamped my MES WorkQueue screen. I have hidden all of the tabs on my page except for a new one I created.

When I open or close the MES WorkQueue screen I get an access violation for:
trans_AfterResourceGroupSearch

I decompiled the code for the form and I can see that method tries to access a tab with the title “Job Details”. I unhide the “Job Details” tab, the problem goes away.

Strange, I wouldn’t expect for the control to not be found because it was hidden. I try to get tricky and rename my tab to “Job Details” - well that doesn’t work either I because since I only have one tab, the tab title (“Job Details”) doesn’t actually display. If put a second tab (doesn’t matter what I call it), the tabs show back up and everything works.

So lesson learned.

Yeah this happens all over the place in Epicor. A lot of the native controls can’t be hidden / removed easily

1 Like

Is there a way to change a controls parent? I tried to grab in the control tree and drag but no dice :tada:

Or how to get rid of a nagging auto-hide dock panel?

Visible = false; nope
Width/Height = 0; nope

Screen shot… what do you need to remove?

Just undock it (Push Pin)
Tools -> Save Layout then open Customization mode, make a small change and save it.

I swear I’ve tried that several times, but maybe since you said it will work this time. (You have the magic touch)

Here is the tree view btw

1 Like

No Exit customization mode,
Open the Form
UnDock It (Push Pin)
Then go to Tools or Actoins -> Save Layout
Then go to Tool -> Customization
Make a Change
Save it

2 Likes

Ahhhh I forgot the Save Layout step :blush:

Thanks! :gift: :tada: :confetti_ball:

Well you’re on a roll for Epicor Trivia - why not raise the ante:
Why can I not use csm and get ref to form, and the call Close()?

Erp.UI.App.WorkQueueEntry.WorkQueueForm frm = (Erp.UI.App.WorkQueueEntry.WorkQueueForm)csm.GetNativeControlReference("2dcd1674-5e34-4d98-b493-c75747027376");
frm.Close();```

You don’t need to use CSM to get a refernece to the form you already havea reference to the form
See your image 2 posts Up… On the left tree WorkQueueForm (that is your reference) just do WorkQueueForm.WhatEverYouWant();

Oh. I thought that the system controls could not be accessed like that. For example, I cant just use Button1.Click(). That only applies to children of the form then?

Btw - the ref may have worked - I placed the code in the wrong button click handler… Happy Hump Day :stuck_out_tongue_winking_eye:

The form is special :slight_smile:
short bus kinda special

As long as there’s room for me on there, I am happy.

http://cdn.lolwot.com/wp-content/uploads/2015/08/20-animals-making-some-seriously-crazy-faces-2.jpg

Hey Chris,

If you ever have time, I would love to see a rundown of what you have done to your work queue screen. Just some screen shots of what you changed and what the business reasoning was. I know that I don’t have the technical expertise to do what you did, but having benchmarks from other users who have done creative things can be useful for knowing what’s possible and who/what to ask to get something more useful. (I can’t google something if I don’t even know it exists!)

Again, I’m just curious to see what you came up with because we have a huge problem with clocking in and out of operations and I’m grasping at anything that can be easier for shop floor workers.

Brandon

By all means I’d love to share. I’m nearly obligated by the fact that none of it could have happened without this website!

Here is my modified WorkQueue screen. By default I list all open jobs (this can easily be changed to filter by default). The user general will only use the dropdown on the top right to filter jobs on his machine but if needed, they can filter by job number (accepts partials) or dates.

User selects a job and pressed start button then gets a confirmation to start job. At which time, the screen closes.

Additionally, the UltraGrid does some really amazing grouping easily like this where jobs are grouped by machine:

For my Reporting Qty screen I’ve made changes that allow for the user to only report the number of boxes (the Part entry allows us to enter how many pieces per box are std). Then it does the math and calculates the item qty to report.

Once reported, there is a BPM which auto prints the labels to the proper printer based on workstation, it prints a label type (style) defined in Part entry, and also prints how ever many labels per box was assigned in the Part Entry screen.

Also I added a way to see what PN you are reporting as well as button to print a master/skid label.

1 Like

Since you’ve hidden all of the other tabs, and since you said it closes the screen, I’m assuming that end end the job with the end activity button on the main MES screen? So using this method you would lose the ability to mass complete correct? Or did you add another button somewhere that isn’t shown?

Definitely cool stuff.

Or maybe I should give you a minute to finish. I didn’t realize you weren’t done. oops.

In this particular implementation you can’t mass complete BUT, it would pretty straight forward to bring back a button to do so for all selected jobs.