Диалоги поиска в Epicor

Надеюсь, кто-то из присутствующих знаком с созданием настроек в Epicor 9. Я также разместил это на форумах Epicor, но, к сожалению, этот форум кажется довольно мертвым. Любая помощь, которую я могу получить, будет очень признательна.

Я создал настройку формы ввода заказа для отображения и хранения дополнительной информации о наших заказах. Одна из таких областей - архитектор на работе. Мы храним архитекторов в таблице клиентов, используя групповой код AR, чтобы отличать их от постоянных клиентов. Я успешно добавил кнопку, которая запускает диалог поиска клиентов и фильтрует результаты, чтобы отображались только архитекторы (с GroupCode AR). Вот где возникают проблемы. У меня два вопроса:

1: В поиске клиентов есть поле типа клиента, в котором по умолчанию установлено значение «Клиент». Другие варианты: ‹все>, Подозреваемый или Перспективный. Как я могу сделать форму поиска по умолчанию ‹все>?

2: Как мне выбрать архитектора (заказчика), которого я выбираю в диалоговом окне поиска, и указать его CustID в поле ShortChar01 в моей настройке ввода заказа? Вот код, который у меня есть:

private void SearchOnCustomerAdapterShowDialog()
{
    // 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;
    string whereClause = "GroupCode = 'AR'";
    System.Data.DataSet dsCustomerAdapter = Epicor.Mfg.UI.FormFunctions.SearchFunctions.listLookup(this.oTrans, "CustomerAdapter", out recSelected, true, whereClause);
    if (recSelected)
    {
        System.Data.DataRow adapterRow = dsCustomerAdapter.Tables[0].Rows[0];

        // Map Search Fields to Application Fields
        EpiDataView edvOrderHed = ((EpiDataView)(this.oTrans.EpiDataViews["OrderHed"]));
        System.Data.DataRow edvOrderHedRow = edvOrderHed.CurrentDataRow;
        if ((edvOrderHedRow != null))
        {
            edvOrderHedRow.BeginEdit();
            edvOrderHedRow["ShortChar01"] = adapterRow["CustID"];
            edvOrderHedRow.EndEdit();
        }
    }
}

Когда я выбираю запись и нажимаю ОК, я получаю необработанное исключение.


person Justin Kloth    schedule 19.12.2013    source источник


Ответы (1)


Я думаю, что проблема, с которой вы столкнулись, заключается в том, что вы сначала не добавляете CustNum в заказ на продажу. На мой взгляд, сначала я бы сделал это так, но в oTrans может быть метод ChangeCustomer BO, который вы могли бы вызвать, чтобы убедиться, что все настройки по умолчанию правильные.

EpiDataView edvOrderHed = ((EpiDataView)(this.oTrans.EpiDataViews["OrderHed"]));
if (edvOrderHed.HasRow)
    {

        edvOrderHed[edvOrderHed.Row].BeginEdit();
        edvOrderHed[edvOrderHed.Row]["CustNum"] = adapterRow["CustNum"];
        edvOrderHed[edvOrderHed.Row]["ShortChar01"] = adapterRow["CustID"];
        edvOrderHed[edvOrderHed.Row].EndEdit();
    }

Надеюсь, что это поможет, даже если поздно.

person Van Amburg    schedule 28.05.2014