EpiCombo is BAQ Dashboard restrict to DropDown List only

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).

Any thoughts out there?

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 = "";
		
	
}

Great info but I am doing this from User Codes rather than ValueListItems, as this will carry from Quote to Sales to Shipped orders.

Trouble I am having is UserCodes react differently regarding the BAQ Dashboard. Work as should in Forms.

Could you share an example. Still learning.

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.");
  }
}

The example I shared will work for a user codes. I should have left out the value list portion.

You just need to grab the appropriate column and set the .Style to DropDownValidate;

myGridList.DisplayLayoutBands[0].Columns["YourUSERCODEcolumn"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownValidate;

Wasnt quite the same but figured is out from your example. Kept trying to put it under the wrong (EpiUltraGrid)csm.GetNativeControlReference)

Thank you

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("?");

All I want is:

ReasonChange.DropDownStyle = Infragistics.Win.UltraWinGrid.UltraComboStyle.DropDownList;

Guys HELP! I am beating myself up on this and making it harder than it has to be.