希望这里有人熟悉在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时,我得到一个未处理的异常。
答案 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();
}
希望这很有帮助,即使很晚。