我想获得定制的S.O.使用QuickBooks QBFC的发票模板字段。
答案 0 :(得分:4)
以下是如何从销售订单中读取自定义字段:
OwnerIDList
的{{1}}。SalesOrderQuery
个对象的DataExtRetList
中读取自定义标头字段。SalesOrderRet
中包含的DataExtRetList
和SalesOrderLineRet
对象SalesOrderLineGrouptRet
中读取自定义订单项字段(如果您正在阅读订单项)。< / LI>
醇>
如果您已使用SalesOrderRet
,则必须将IncludeRetElementList
添加到列表中;如果你不这样做,那么在自定义字段工作之前不要开始使用DataExtRet
。与任何交易查询一样,除非您在请求中设置IncludeRetElementList
标记,否则您将看不到任何订单项数据。
自定义字段在the QuickBooks SDK Manual中有详细记录。我建议您查看 QBSDK程序员指南中的 DataExt:使用自定义字段和私有数据部分。
答案 1 :(得分:2)
详细说明Paul Keister的答案,你必须添加&#34; 0&#34;查询是因为这是您尝试检索的自定义字段的所有者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());
}
}