2013-12-19 87 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(); 
    } 

希望即使遲到也有幫助。