2013-12-19 43 views
0

希望这里有人熟悉在Epicor 9中创建自定义设置。我也已将此内容发布到Epicor论坛,但不幸的是,论坛似乎已经死了。任何帮助,我可以得到非常感激。Epicor中的搜索对话框

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

1:在客户搜索中,有一个客户类型字段默认为Customer的值。其他选择是< all>,suspect或Prospect。我如何使搜索表单默认为< all>?

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

当我选择一条记录,然后单击确定,我得到一个未处理的异常。

回答

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

希望即使迟到也有帮助。