2013-07-09 35 views
0

之前,我有這個程序工作。但是,我不知道我是否刪除了某些東西,或者我忘了添加一些東西,但是我看起來越多,看起來就越少。也許我需要的只是一雙新鮮的眼睛來看待它,但從我所知道的來看,這是100%正確的,斷點告訴我,一切都是正確的。InventoryAdd不會添加到QB庫存

這不會添加到quickbooks庫存,我不知道爲什麼,它沒有任何意義。

 public void ProductAdd(IMsgSetRequest requestMsgSet) 
    { 
     IItemInventoryAdd itemInventoryAddRq = requestMsgSet.AppendItemInventoryAddRq(); 

     #region ADD PRODUCT INFORMATION 
     for (int i = 0; i <= this.Form.productsList.Items.Count - 1; i++) 
     { 

      itemInventoryAddRq.Name.SetValue(Form.productID[i].ToString()); 
      itemInventoryAddRq.SalesDesc.SetValue(Form.productsList.Items[i].ToString().ToUpper()); 
      itemInventoryAddRq.PurchaseDesc.SetValue(Form.productsList.Items[i].ToString().ToUpper()); 
      itemInventoryAddRq.SalesPrice.SetValue(Form.QBprice[i]); 
      itemInventoryAddRq.AssetAccountRef.FullName.SetValue("Inventory Asset"); 
      itemInventoryAddRq.COGSAccountRef.FullName.SetValue("Cost of Goods Sold"); 
      itemInventoryAddRq.ManufacturerPartNumber.SetValue(Form.QBsku[i].ToString().ToUpper()); 

      IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet); 
     } 

     #endregion 
    } 
+0

在第一次檢查,我在你注意到for循環使用我<= this.Form.productsList.Items.Count - 1,但不知道爲什麼你不只是做這取而代之:我 Pharap

+0

循環從0開始,而不是1。如果我刪除-1,它將通過循環額外的時間,並找出他們的不足的項目。 循環按原樣工作。它的快捷方式不會添加該項目,或者缺少信息,或者某種類型的東西。 –

+0

我知道它從0開始,再看一次。我是說刪除-1並交換<=爲一個<。他們解決相同的問題,但第二種方法使用較少的代碼,並且更清楚發生了什麼。 – Pharap

回答

0

當我在循環之外有我的追加請求時,我傾向於奇怪的行爲。儘管每次都應該創建一個項目,但SessionManager.DoRequests並不總是像你所擁有的那樣工作。我會改寫這樣的循環:

public void ProductAdd(IMsgSetRequest requestMsgSet) 
{ 
    #region ADD PRODUCT INFORMATION 
    for (int i = 0; i <= this.Form.productsList.Items.Count - 1; i++) 
    { 

     IItemInventoryAdd itemInventoryAddRq = requestMsgSet.AppendItemInventoryAddRq(); 

     itemInventoryAddRq.Name.SetValue(Form.productID[i].ToString()); 
     itemInventoryAddRq.SalesDesc.SetValue(Form.productsList.Items[i].ToString().ToUpper()); 
     itemInventoryAddRq.PurchaseDesc.SetValue(Form.productsList.Items[i].ToString().ToUpper()); 
     itemInventoryAddRq.SalesPrice.SetValue(Form.QBprice[i]); 
     itemInventoryAddRq.AssetAccountRef.FullName.SetValue("Inventory Asset"); 
     itemInventoryAddRq.COGSAccountRef.FullName.SetValue("Cost of Goods Sold"); 
     itemInventoryAddRq.ManufacturerPartNumber.SetValue(Form.QBsku[i].ToString().ToUpper()); 

    } 

    IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet); 
    #endregion 
}