在Epicor中搜索对话框

时间:2013-12-19 13:58:50

标签: customization epicorerp

希望这里有人熟悉在Epicor 9中创建自定义。我已经将它发布到Epicor论坛,但不幸的是,该论坛似乎已经死了。我能得到的任何帮助都会非常感激。

我在订单输入表单上创建了一个自定义,以显示和存储有关我们订单的一些额外信息。其中一个领域是工作中的建筑师。我们使用AR的GroupCode将架构师存储在客户表中,以区别于常规客户。我已经成功添加了一个按钮,用于启动客户搜索对话框并过滤结果,仅显示架构师(具有GroupCode AR的架构师)。这就是问题所在。我有两个问题:

1:在客户搜索中,有一个客户类型字段,默认值为Customer。其他选择是<所有>,怀疑或前景。如何使搜索表单默认为<所有>

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();
        }
    }
}

当我选择一条记录并单击OK时,我得到一个未处理的异常。

1 个答案:

答案 0 :(得分:0)

我认为您遇到的问题是您没有先将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();
    }

希望这很有帮助,即使很晚。