2013-02-25 63 views
1

我試圖使用IPP.NET將發票插入Quickbooks Online。這個問題似乎是在設定項目。嘗試使用IPP.NET插入QBO發票

下面是用於第一線,工作正常我的VB代碼的一個片段:

Dim qboInvoiceLine1 as new intuit.ipp.data.qbo.invoiceline 
qboInvoiceline1.desc="Desc1" 
qboInvoiceLine1.amount=10 
qboInvoiceLine1.AmountSpecified=True 

如果我添加以下代碼設置的項目,我得到一個錯誤形成XML ..

Dim items1 as List(Of Intuit.Ipp.Data.Qbo.Item)=New List(Of Intuit.Ipp.Data.Qbo.Item) 
Dim item1 as new intuit.ipp.data.qbo.item 
item1.id=new intuit.ipp.data.qbo.idtype 
item1.id.value="1" 
items1.add(item1) 
qboInvoiceLine1.Items=items1.ToArray 

我甚至不明白爲什麼項目ID似乎是某種數組或項目列表。文檔的一個來源表明發票行有一個itemID屬性,但似乎並非如此。任何人都可以給我設置發票行的itemID代碼嗎?

回答

1
ItemsChoiceType2[] invoiceItemAttributes = { ItemsChoiceType2.ItemId, ItemsChoiceType2.UnitPrice,ItemsChoiceType2.Qty }; 
object[] invoiceItemValues = { new IdType() { idDomain = idDomainEnum.QB, Value = "5" }, new decimal(33), new decimal(2) }; 
var invoiceLine = new InvoiceLine(); 
invoiceLine.Amount = 66; 
invoiceLine.AmountSpecified = true; 
invoiceLine.Desc = "test " + DateTime.Now.ToShortDateString(); 
invoiceLine.ItemsElementName = invoiceItemAttributes; 
invoiceLine.Items = invoiceItemValues; 
invoiceLine.ServiceDate = DateTime.Now; 
invoiceLine.ServiceDateSpecified = true; 
listLine.Add(invoiceLine); 
+2

.NET DevKit中的一些屬性通過Items/ItemsElementName屬性進行設置。對於發票,這些屬性是ItemsChoiceType2枚舉器的一部分,並將該值傳遞到相同的Items數組索引中。 – 2013-02-25 18:09:21