I am add a User Code to populate a DropDown list in an EpiCombo box. All works as should for forms.
I have Created the User Code and created an extended field under Extended User Defined Table Maintenance. I then customized in the Opportunity/Quote Entry and Dashboard. Works like a champ.
As I studied this, User Codes is the way to go rather than statics as I will be creating the same fields in OrderHed. The best means of doing this seems to be LIKE statements when I get to that portion so when Quotes are converted to Sales Orders, the information will automatically carry over to the Sales Order.
However, I have a requirement to use this in a Updatable BAQ Dashboard as well. When applied to the BAQ Dashboard, the dropdown boxes work great but also allows the user to TYPE entries into the field. I want the user to be RESTRICTED to ONLY select items from the dropdowns defined.
I see many other posts on this but they all see to be for earlier version of Epicor that really don’t apply to E10 (10.1.500.46 used).
I personally would want a BPM to stop the transaction if the data entered is not a valid option. This protects your data better than any customization can.
You can set the drop down style in the grid view or stand alone combos on the screens load event.
Here’s my notes on the different styles
// Populate drop downs upon screen load
private static void CustomerEntryForm_Load(object sender, EventArgs args)
{
EpiUltraGrid myGridList = new EpiUltraGrid();
//Get control of the grid where the dropdown is being added
myGridList = (EpiUltraGrid)csm.GetNativeControlReference("92d409d2-7e11-4ca2-8068-15dfa87f415f");
// Create custom value list. First entry is data, second is visible mask
var valueList = myGridList.DisplayLayout.ValueLists.Add( "VL1" );
valueList.ValueListItems.Add( "Surfaces", "Surfaces" );
valueList.ValueListItems.Add( "Decking", "Decking" );
valueList.ValueListItems.Add( "Construction Projects", "Construction Projects" );
//Associate with the correct column (Check field help for the Field Name of the cell
//where the dropdown will be used
myGridList.DisplayLayout.Bands[0].Columns["Character02"].ValueList = valueList;
//Setting the Style = DrowDownList limits the user input to only select from the dropdown (No Typing //excepted)
myGridList.DisplayLayout.Bands[0].Columns["Character02"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
//Setting the Style = DrowDownValidate limits the user input to only select from the dropdown, //however you can still type in the cell to search for drop down selection
myGridList.DisplayLayout.Bands[0].Columns["Character02"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownValidate;
// SRCombo is the name of a combo box created on the screen (hidden)
// This is used to call the SalesRep Apadater
myGridList.DisplayLayout.Bands[0].Columns["Character01"].ValueList = SRCombo;
//Standard EpiCombo or BAQCombo DropDown Style Selections
BAQCombo activePriceListsDP = (BAQCombo)csm.GetNativeControlReference("dd5e12a6-1f69-49a8-8873-72045d7b2556");
//DropDown Allows user to Type in to the dropdown box
activePriceListsDP.DropDownStyle = Infragistics.Win.UltraWinGrid.UltraComboStyle.DropDown;
//DropDownList make it just a dropdown (not typing permitted)
activePriceListsDP.DropDownStyle = Infragistics.Win.UltraWinGrid.UltraComboStyle.DropDownList;
//Setting the Style = DrowDownValidate limits the user input to only select from the dropdown, //however you can still type in the cell to search for drop down selection
activePriceListsDP.DropDownStyle = Infragistics.Win.UltraWinGrid.UltraComboStyle.DropDownValidat;
activePriceListsDP.Text = "";
}
If the field is required, then make sure the field is not blank in a BPM too.
In the condition, make sure you check if the field has changed from Any to Any or is added.
foreach (var tt in ttMyTable.Where(tt => !tt.Unchanged()))
{
var udCodeList = Db.UDCodes.Where(U => U.Company == tt.Company && U.CodeTypeID == "MyCode").Select(U => U.CodeID).ToList();
if (!udCodeList.Contains)
{
throw new BLException("Please choose a valid code.");
}
}
Struggling Again. Predecessor created a BAQCombo. I am trying to set to DropDownList to only allow selects from the list. Upgraded to 10.2.500 now.
When I create the Menu Item, a View is created and works. The field I want is populated in the list with valid values. However, it allows typing which I want as select from List only.
I am trying to follow zwilli526 references but getting confused.
I am sorry I am not providing good information. I have been working on for a week and am now flusterered.
Since the Menu created a View and a MyGrid is already assigned EpiUltraGrid with EpiGuid 9756841d-2692-4bc0-b407-e9bca6f66cc6
Do I follow the path for myGridList or BAQCombo DropdownStyle (if the latter, how do I find the GUID for the (BAQCombo)csm.GetNativeControlReference("?");