How to set up Child UD Table of Standard Table

Because it is a table, you should be able to add multiples.

It will return all of the entries tied to the parent record. So if you have part ABC and 4 records in UD39 for part ABC, it will pull the 4 records. Then if you change the parent part the data will change to match the new parent record.

Thanks guys. I’m getting there. Will I need to invoke some method in order to display the rows from the table? I would’ve expected them to show by default when I click into the tab with my grid but there are no rows in my grid.

You will have to do New, New UD39, for the first row to appear.

I saw that as an option. I clicked it. It didn’t make any new rows in my table, though. Since my table is pre-populated I was really hoping it would show existing rows in UD39 provided the Key matches my PartNum.

I am so new to Customizations… I apologize. I’ll keep playing with it.

Did you manage to resolve this Dan as I am experiencing the same issue with getting the data to display in the grid and am a little unsure where I am going wrong.

Kirsty,
No, I gave up and went a different route. The issue I was trying to address still hasn’t been resolved but we make due without.

Ahh right okay, thank you for letting me know.

@dr_dan, did you EpiBind your UD39View (when customizing the form with the UltraGrid in focus)? How did you populate your UD39 table? What keys did you use when you used the customization wizard to link the child table?

OK So I have feedback and encouragement. After months of letting this sit, I am back at it.
I was able to get the grid to display the child rows based on the key I am matching to parent table. I even got it to let me edit those rows in the grid and it saved them in the UD table. However, I can’t seem to get it to add a new row from there, even though there’s a button for it. It lets me hit Enter on the grid and it creates a new blank row, but it will not save that.

@KirsJone - I believe I can help you get the table to show results if you’re still having issues. I found that it will not display unless it is finding “unique” rows based on all 5 keys. My data set that I imported did not have “uniqueness” from the 5 keys. Another thing I read somewhere else: Keys 1-4 are user definable to match up. But Key 5 is an auto-key that the wizard writes a script to increment based on keys 1-4. So in my case, I am only using Key 1. I had to edit my table in Excel to make Key 5 = to the count of Key 1. So if I have 4 rows with the same Key 1, I had to add a Key 5 value of 0, 1, 2, 3 to each row respectively. Excel makes this very easy. I did a =countif($B$2:$B2, $B2) - 1 and copied this all the way down my table. This essentially did the counting of each row.

One thing that wasn’t mentioned is that when you setup that customization wizard to link the UD table, you have to save/close and then re-launch to see that View in your bindings. Then, after you select the new UD View in your bindings for the Ultragrid, you have to save/close and re-launch to get the column collection to display the columns from the UD table. After this, you can edit which columns display and the captions of each.

Any suggestions on how to troubleshoot why I can’t create/save a new row?

Hi, its been a while since I have looked at this. I did manage to solve the issue and get it to add a new row and save.

Where you click the new drop down do you see your UD table there? Also check if any fields in the UD Table are required.

I managed to solve this on topic Add UD child table (nothing populating) and also share my code. Let me know if this helps you?

I do remember when going through the wizards where I link them I clicked next so I could enable the create new then click back to then enter the link. Not sure if this makes a difference.

Regards
Kirsty

Thanks! I’ll check it out! This is kind of like the story of my Epicor life so far. I fart around with something until I finally am on the verge of being “capable” and then I learn that there’s a better way and start over!! :thinking:

So I tried this method. I love the concept. If I wasn’t trying to make an updatable grid, this would certainly be the easy way to do it. However, my original post has evolved into an updatable child UD table. We are using a table to track lower level serialized parts (for reference). We don’t want to “serial track” all our purchased parts. We just want to make a note of which serialized components go into which finished products.

Our strategy is to use a UD table that is a child of the SerialNo table. I have created a new tab that will display the children components that have serial numbers. All is well except that I can’t quite take it as far as I want. I have an updateable dashboard right now which seems like it’s the winner. But I want certain columns to be auto-populated. For instance, if I want to add a new row, I want the key and another column to populate based on the already entered key that is filtering my grid. I tried to use the mapping expression in the BAQ to do a lookup to ttResult but it wasn’t having it.

Any ideas how to get the columns to automatically use existing data from the filtered grid?

If it is a child table to the parent table, you could just use the Wizard. If you open the Script Editor under Tools -> Wizards there will be a Wizard to add a UD Table as a Child. Then you restart the form and you will see the UD Table as an EpiBinding, you can then create a Grid and bind to UDXX.

That’s the start, then you have to do some more code to get the full native experience, its just boilerplate.

EDIT

I am reading this post backwards, I see you got that far - good. So you have the boilerplate, now you need to modify the code to support everything it lacks - epicor’s wizard is old, it misses alot of stuff like RefreshTool… you have to add all that

Gotcha. Thanks!

So I finally have something I feel works for our needs. I ended up ditching all the “slick tricks” and just did a customization featuring an Ultragrid with a couple buttons. I modified Extended Properties to prevent directly editing the columns I am auto-populating.

The stock behavior of the Child UD Wizard had a few odd behaviors.It would delete all rows if you did not select any. I think this is because it’s relying on you to hit the Delete button to delete a row… but I added that method to the Delete button I created. So I was able to fix that.

It also would insert a row but not call the method of the GetNewUD13Record() when you hit Enter in the grid - which left a partially filled row that would never save. So I added a Cancel to the beforeRowInsert event and then called the GetNewUD13Record() method. Now when you hit Enter, it acts just like you would expect.

Thank you everyone who has commented and helped. I’ll have to figure out which is the closest to the solution :slight_smile:

This was the solution I went with. I struggled a bit with it because I didn’t realize I had to close and re-launch to bind it and then close and re-launch to see the collection in the grid to modify columns. But this ended up being the most straightforward option.