I want to get custom S.O. Invoice Template fields using QuickBooks QBFC.
问问题
1821 次
2 回答
4
以下是从销售订单中读取自定义字段的方法:
- 将“0”添加
OwnerIDList
到SalesOrderQuery
. DataExtRetList
从附加到SalesOrderRet
从查询返回的对象中读取自定义标头字段。DataExtRetList
从每个中包含的对象SalesOrderLineRet
和SalesOrderLineGrouptRet
对象中读取自定义订单项字段SalesOrderRet
(如果您正在读取订单项)。
如果您已经在使用IncludeRetElementList
,则必须添加DataExtRet
到列表中;如果你不是,那么在IncludeRetElementList
你有自定义字段工作之前不要开始使用。就像任何交易查询一样,除非您IncludeLineItems
在请求中设置标志,否则您不会看到任何订单项数据。
自定义字段在QuickBooks SDK 手册中有详细记录。我建议您查看QBSDK 程序员指南中的DataExt:使用自定义字段和私有数据部分。
于 2013-04-06T17:19:11.137 回答
2
为了详细说明 Paul Keister 的答案,您必须在查询中添加“0”的原因是因为这是您尝试检索的自定义字段的所有者 ID。0 可能是值,但如果所有者 ID 不同,您将不得不在此处使用不同的值。
一些示例 C# 代码:
//set the owner id of the custom field you are trying to get back
IInvoiceQuery invoiceQuery = requestMsgSet.AppendInvoiceQueryRq();
invoiceQuery.OwnerIDList.Add("0");
//set up query parameters and actually call your query...
//call this method for each invoice to get its custom fields (if they exist)
static void GetInvoiceCustomFields(IInvoiceRet invoice)
{
if (invoice.DataExtRetList == null)
{
return;
}
for (int i = 0; i < invoice.DataExtRetList.Count; i++)
{
IDataExtRet extData = invoice.DataExtRetList.GetAt(i);
Console.WriteLine("external data name: " + extData.DataExtName.GetValue());
Console.WriteLine("external data value: " + extData.DataExtValue.GetValue());
}
}
于 2015-11-11T19:04:32.100 回答