Поиск по умолчанию в acumatica селекторе содержит, и это создает много проблем при вводе данных в один раз селектора на пользовательской странице. Есть ли способ изменить поведение для запуска вместо содержит.
Обновление
Я пробовал следующий код, и это фильтрация на основе запуска с, но не отображение всех столбцов в селекторе
#region Custom Selector Attribute
public class LotSerialNbrSelectionAttribute : PXCustomSelectorAttribute
{
public LotSerialNbrSelectionAttribute(Type type, Type[] fieldlist)
: base(type,fieldlist)
{
}
protected virtual IEnumerable GetRecords()
{
PXView view = new PXView(this._Graph, !this._DirtyRead, this._Select);
PXCache lotSerCach = this._Graph.Caches[typeof(InfoLotSerialFilter)];
List<object> result = new List<object>();
Int32 totalrow = 0;
Int32 startrow = PXView.StartRow;
result = view.Select(PXView.Currents, PXView.Parameters,
PXView.Searches, PXView.SortColumns, PXView.Descendings,
PXView.Filters, ref startrow, PXView.MaximumRows, ref totalrow);
PXView.StartRow = 0;
string searchval = string.Empty;
if(PXView.Filters.Length > 0)
searchval = PXView.Filters[0].Value.ToString();
InfoLotSerialFilter searchrow = lotSerCach.Current as InfoLotSerialFilter;
foreach(PXResult<INLotSerialStatus> line in result)
{
INLotSerialStatus row = line;
if(string.IsNullOrEmpty(searchval))
yield return row;
else
{
if(row.LotSerialNbr.StartsWith(searchval))
yield return row;
}
}
}
}
#endregion
Вызов атрибута
#region LotSerialNbr
public abstract class lotSerialNbr : IBqlField
{
}
protected string _LotSerialNbr;
[PXString(100, IsUnicode = true )]
[PXUIField(DisplayName = "Serial Number" )]
[LotSerialNbrSelectionAttribute(typeof(Search2<INLotSerialStatus.lotSerialNbr,InnerJoin<INSite,On<INSite.siteID,Equal<INLotSerialStatus.siteID>>,CrossJoin<MemoSetUp>>,Where<INLotSerialStatus.qtyHardAvail,Greater<decimal0>,And<INLotSerialStatus.siteID,NotEqual<MemoSetUp.memoOutSiteId>>>>),
new Type[]{typeof(INLotSerialStatus.inventoryID),
typeof(INLotSerialStatus.lotSerialNbr),
typeof(INSite.siteCD) }
)]
public virtual string LotSerialNbr
{
get
{
return this._LotSerialNbr;
}
set
{
this._LotSerialNbr = value;
}
}
#endregion
Результат
InventoryID и SiteID не отображаются в браузере выбора