Fill Picker Control with BAQDV

Hey I am currently working on a customization that uses the Picker control (the two boxes with the arrows in between). I am trying to fill the left box (available list to pick from) using a BAQ DataView. Is there something I need to do to “refresh” my baq dataview? Or to get it to display the results? It seems to just come in blank. This is more or less the meat and potatoes:

	public void CreateEquipmentBAQDV()
	{
		bdvEquipment = new BAQDataView("DMR_TEST");
		oTrans.Add("Equipment", bdvEquipment);
	}

	public void SetupAttrListControl()
	{
	    PartForm.Controls.Add(_atrpnl);
		_atrpnl.Parent = (Control)csm.GetNativeControlReference("7e218246-2f6b-4309-88c1-a403231d3acf");
		_atrpnl.Left = 8;
		_atrpnl.Top = 48;
		_atrpnl.Width = 350;
		_atrpnl.Height = 300;
	    _atrpnl.PreserveSourceList = false;
	    _atrpnl.ReadOnly = true;
	 
	    /** The following is broken down into a few simple parts. It generates a string list delimited by whatever character you would like
	    ** This is only one of many implementations of InitDataBind. A screenshot above shows all of them. This is the only one I know how to use. 
	    ** It was modeled after the attributes in Customer Entry
	    ** @SourceDataView (string) - This is the dataview containing the values for your source (left) list
	    ** @SourceValueMember (string) - Think of this in terms of the dropdown list Value Member
	    ** @SourceDisplayMember (string) - Think of this in terms of the dropdown list Display Column
	    ** @StringDelimiter (char) - This is the character that you would like to use to seperate your values. Epicor typically uses ~ but you may use whatever suits your need
	    ** @TargetColumn (string) - The column binding to insert the delimited string into
	    ** @TargetDataView (string) - The dataview that your column to insert the string into resides.
	    ** @Trans (EpiTransaction) - duh....
	    **/
	    _atrpnl.InitDataBind("Equipment", "Equip_EquipID", "Equip_Description", ',', "AssignedTools_c", "PartPlant", oTrans);
	}

I have a workaround. I am able to use the DynamicQueryAdapter to accomplish what I am trying to do. But now that I have the list loading, I am looking to dynamically filter the items in the source list from a “search box” because there are so many items. I understand how to use a text box to update the RowFilter for the dataView I am using as the sourceview in my Picker Panel control. On my button click event, I am updating the RowFilter with the text value from my box and then changing the SourceList property on my control to my updated epiDataView. Instead of getting a whittled down list with descriptions I can read, I get a list of DataRowViews objects and the quantity seems to indicate the RowFilter is working and it’s bringing back the appropriate number of objects… I feel like I’m close but I can’t seem to figure it out and I can’t skim through the object explorer to bail me out. Any ideas?

Finally, if anyone can point me to any documentation for the EpiListPickerPanel or direct me to the DLL that would have the info on it so I can use ILspy to see what the heck my options are… I’d appreciate it greatly.

image

1 Like