使用c#devkit,我如何訪問發票上的行ItemID?使用c#devkit,我如何訪問發票上的行ItemID
我的回答是XML有一個部分,看起來像這樣:
<Line>
<Desc>TestItem</Desc>
<Amount>66.00</Amount>
<Taxable>false</Taxable>
<ItemId idDomain="QBO">3</ItemId>
<UnitPrice>33</UnitPrice>
<Qty>2</Qty>
<ServiceDate>2013-01-07-08:00</ServiceDate>
</Line>
,可以從該用的devkit像這樣拉數據:
List<Intuit.Ipp.Data.Qbo.Invoice> customerInvoicesWithinDateRange = invoice.ExecuteQuery<Intuit.Ipp.Data.Qbo.Invoice>(context).ToList<Intuit.Ipp.Data.Qbo.Invoice>();
foreach (var invoiceFound in customerInvoicesWithinDateRange)
{
foreach (var line in invoiceFound.Line)
{
things += line.Desc + " <br> ";
things += line.Taxable.ToString() + " <br> ";
things += line.ServiceDate.ToShortDateString() + " <br> ";
things += line.Amount.ToString() + "<br>";
}
}
但沒有line.ItemId,行.Qty也不是line.UnitPrice中的對象。
我知道當我設置line.Items對象時,它是作爲ItemsChoiceType2對象,但是當我嘗試訪問line.Items對象時,我得到「NullReferenceException:對象引用未設置爲對象的實例」。
我錯過了什麼步驟來獲得難以捉摸的「3」?
感謝
編輯: @Peter 當我這樣做:
List<Intuit.Ipp.Data.Qbo.Invoice> customerInvoicesWithinDateRange = invoice.ExecuteQuery<Intuit.Ipp.Data.Qbo.Invoice>(context).ToList<Intuit.Ipp.Data.Qbo.Invoice>();
var quantity = customerInvoicesWithinDateRange[0].Line[0].Items[Array.IndexOf(customerInvoicesWithinDateRange[0].Line[0].ItemsElementName, Intuit.Ipp.Data.Qbo.ItemsChoiceType2.Qty)];
我得到 「System.ArgumentNullException:值不能爲空。」在第二行。我認爲customerInvoicesWithinDateRange [0] .Line [0] .ItemsElementName爲null。在我的foreach循環中也是空的。
編輯編輯:
納米,實際上我在dind't有我想任何行查詢的發票。包裹在下面解決了最後的障礙:
if (customerInvoicesWithinDateRange[0].Line[0].Items != null)
再次感謝您的幫助。
@IPPPeterL感謝:
所以,沒有任何錯誤檢查,數量可以從以下行獲得!也感謝您的pastebin存儲庫,沒有我會在第3天放棄這個項目。 – safetyOtter