Epicor9 - Как отфильтровать столбцы в окне поиска UDAdapter

Я создал следующую функцию SearchOnUDAdapterShowDialog() с помощью мастера настройки, которая позволяет пользователям искать содержимое таблицы UD. Проблема в том, что в результатах поиска отображаются все столбцы в таблице UD. Мне нужно отобразить только несколько релевантных столбцов и изменить имена столбцов по умолчанию на удобные для пользователя имена.

private void SearchOnUD100AdapterShowDialog()
{
    // Wizard Generated Search Method
    // You will need to call this method from another method in custom code
    // For example, [Form]_Load or [Button]_Click

    bool recSelected;
    string whereClause = string.Empty;
    System.Data.DataSet dsUD100Adapter = Epicor.Mfg.UI.FormFunctions.SearchFunctions.listLookup(this.oTrans, "UD100Adapter", out recSelected, true, whereClause);
    if (recSelected)
    {
        System.Data.DataRow adapterRow = dsUD100Adapter.Tables[0].Rows[0];

        // Map Search Fields to Application Fields
        EpiDataView edvVendorDetail = ((EpiDataView)(this.oTrans.EpiDataViews["VendorDetail"]));
        System.Data.DataRow edvVendorDetailRow = edvVendorDetail.CurrentDataRow;
        if ((edvVendorDetailRow != null))
        {
            edvVendorDetailRow.BeginEdit();
            edvVendorDetailRow["ShortChar09"] = adapterRow["Key1"];
            edvVendorDetailRow.EndEdit();
        }
    }
}

Ценю твою помощь. Благодарю.

1 ответ

Решение

Попробуйте вызвать это непосредственно перед вызовом listLookup:

EpiSearchBase adapterSearchForm = ((Epicor.Mfg.UI.Adapters.UD100Adapter)oTrans_adapter).SearchForm;     
adapterSearchForm.ClearEpiSearchColumns();

// Paramters: Data Column Name, Column Header Text, Width, Is Result, Position
adapterSearchForm.SetEpiSearchColumn(new EpiSearchColumn("Key1", "Alteration Fee Type", -1, true, 0), true);        
adapterSearchForm.SetEpiSearchColumn(new EpiSearchColumn("Character01", "Description", -1, false, 1), true);
Другие вопросы по тегам