Dynamic List Items in Order Entry Customization

Hello all,

I’m going to be working on this for the next hour or so, I figured I’d ask you guys/gals if any of you have done something similar.

So basically I have a UD field on the OrderDtl table for Sales Sub Categories. We’re having issues writing reports/trackers that capture all the data about the orders (such as royalty information)… So this is what the Sales Sub Category will be for going forward. (We need to use the OrderDtl.SalesSubCatID_c field so it’s easier to report on it in the future) Now I’d like this combobox to act like the dynamic lists in Product Configurators.

So as an example if someone selected the Sales Category “MLB” I would like only the “MLB - ****” Sub Categories to show. Has anyone done this or something similar?

image

There are some other examples out there but this one should get you started

It’s a little disappointing that there’s no documentation on any of the epiCombo box controls… Like I’d want to know what exactly the EpiFiltersAppend and EpiFiltersParams controls do, and maybe even a few examples of the syntax that is required. (I looked on EpicWeb and sure, there’s the 1000 page customization guide, but there’s little to no information about the individual controls)

I’m sure I can achieve what I want to using epifiltersappend and params, but I’ve never really used these so I have no idea how they’re controlled.

The video helped a little bit, but in the video Jose adds both combo boxes; I’m going to be using a default combo box plus the custom one I added… So now I don’t know if I need to go the route the video shows, or maybe a simple search wizard route.

FYI Epicor controls are Infragistics controls (for the most part) and Infragistics has awesome documentation online.

I think the main problem here is that most examples out there are for fields/data that are already in Epicor. Like with the video it’s Customer info and then ShipTo info off of that Customer.

I’m trying to put in manual data into my custom field (Sales Sub Category) and have that manual list/data filter off of what’s selected on the default Sales Category combo.

E.g. -
Sales Categories = Fundraisers, Concessions, Other

Sales Sub Categories = Example1, Example 2, Example 3, …, Example 7.

If Fundraisers is selected then only display Example 2, 3, 4, and 5. If Concessions is selected then display Example 6 and 7. If Other is selected then display Example 1.

I’m hoping this isn’t too difficult since it is definitely needed. We’re looking at a list of sub categories that may be over 50 choices…

I haven’t done it, but you might consider building out a table in UserCodes table (or a UD table) that has a combination of all the things you’re looking for, and then using a BAQ combo box as your custom control. Then, upon change to the first category, you could send a parameter to that BAQ combo and filter the list retrieved.

1 Like

I know you said you haven’t done it, but maybe you could help a little…

So I got the epiCombo to pull in from the UD Code’s LongDesc field -
image

image

BUT I can’t figure out how to get it in list form. I figured I could make the list using tilde’s, but it doesn’t seem to recognize that … Any ideas?

Ok, so in this example, I’ve created my UserCodes adapter and passed in a pre-load search filter to get the right table. I think you can further filter it later, but this is a good example.

First, I created a data table to hold the results

private DataTable dtCarrier;

//call UserCodes adapter and filter it

		UserCodesAdapter adapterUserCodes = new UserCodesAdapter(oTrans);
		adapterUserCodes.BOConnect();
		SearchOptions opts = new SearchOptions(SearchMode.AutoSearch);
		opts.PreLoadSearchFilter = "CodeTypeID = 'Carrier'";
		opts.DataSetMode=DataSetMode.RowsDataSet;
		adapterUserCodes.InvokeSearch(opts);
		
	dtCarrier = adapterUserCodes.UserCodesData.UDCodes;

	comboCarrier.DataSource = dtCarrier;
	comboCarrier.DisplayMember = "LongDesc";
	comboCarrier.ValueMember = "CodeDesc";

//Assumes you have a combobox called comboCarrier

	dtCarrier = adapterUserCodes.UserCodesData.UDCodes;

	comboCarrier.DataSource = dtCarrier;
	comboCarrier.DisplayMember = "LongDesc";
	comboCarrier.ValueMember = "CodeDesc";
1 Like

When I made codes I have an entry for each item:

image

I was thinking of doing this, but we’re going to be having something like ~100 sub categories, so I’d rather just keep it as one code…

Excuse me for misunderstanding, but how does this make it so LongDesc is setup in list format?

LongDesc is a separate field than CodeDesc. I set it up in my example to be the “Display Member” of the combo box, which is what the user sees. The Value member is what get stored/recorded by the control. You could put whatever field from the data that you want as the Display member though…

1 Like

I understand that, but I already posted a pic of this setup without using any code…

I just can’t seem to get the LongDesc stuff to be in a list format by using one UD Code - I guess if it’s not possible I’ll have to go with creating codes for all the sub categories like Ben said.

Oh sorry, I think I understand what you’re saying now. I think Ben’s suggestion is what I would do because it would be tightly coupled with the source data.

Hi Caleb,
I think you are complicating yourself a bit, here is what recommend.
Add 1 Set of UD Codes for your Sales Category
Then create another UDCode for the subcategory and make the “LongDescription” match the “Parent” category
Then you should be able to use my Video to do the filtering with no problem

  1. Create a User Code called SalesCat which has codes
    Fundraisers,
    Concessions,
    Other
    image
  2. Create a User Code called SalesSubCat which has alll the subcategories (individually not tilde separated)
    make the Long Description for each of these = to the SalesCat they match to Above

Then use the video to filter by the “LongDesc” (include it in the HiddenAppendRows and use the same technique in my video to pass in the filter from the other combobox

3 Likes

You should create one code for each subcategory that’s the propper way to do it

-Jose

You can paste insert from excel

-Jose

Caleb I would say to go for UD codes as per Jose recommendation. I’ve used this method a few times, will post some screenshots later. Possible to do without custom code.

You want the UD codes separated out, means it will be easier to add and remove them in future and also when the combo value is stored in a field on your record, you want have to parse the tilde delimited list to get the value as you already have it.

Jose,

I have the default Sales Cat combo box pulling off of the UD code SalesCat as shown here:
image image

Now I’m trying to get the custom combo box to filter off that info but I can’t seem to get the correct syntax/order down.

So here’s my Sales Category combo info:

And
Here’s the Sales Sub Category Custom combo info:

Within the epiFiltersAppend I have “CodeDesc = ‘?[SalesCatId, 0]’” but I’m getting the error that this isn’t a valid column. If I change it to LongDesc I don’t get any errors but then the combo box comes up as blank.

For your post (#15) you show that I need my Descriptions to matchup with the actual sales codes, but I wanted to say that I’m not using FullDescription for that, I’m using just the Description field.
See -

What am I doing wrong here?

In your filter condition, check the capitilisation – should be SalesCatID not SalesCatId. Also, if that doesn’t work then try OrderDtl.SalesCatID

Regards
Mark