首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用QuickBooks API列出所有销售收入

如何使用QuickBooks API列出所有销售收入
EN

Stack Overflow用户
提问于 2016-04-11 17:15:46
回答 1查看 443关注 0票数 0

上下文

我使用QuickBooks桌面应用程序和QuickBooks QBFC将销售数据导入到QuickBooks中。

我需要为公司文件中的所有销售收据建立一个备忘值列表。这是因为备忘录包含一个销售引用,必须在导入新的销售收据之前检查其副本。

问题

我目前使用的代码是:

代码语言:javascript
复制
IMsgSetRequest requestMsgSet = qbSessionManager.CreateMsgSetRequest("UK", 13, 0);

ISalesReceiptQuery salesReceiptQuery = requestMsgSet.AppendSalesReceiptQueryRq();

salesReceiptQuery.metaData.SetValue(ENmetaData.mdNoMetaData);
salesReceiptQuery.IncludeRetElementList.Add("Memo");

IMsgSetResponse responseMsgSet = qbSessionManager.DoRequests(requestMsgSet);

IResponseList responseList = responseMsgSet.ResponseList;

for (int i = 0; i < responseList.Count; i++)
{
    IResponse response = responseList.GetAt(i);

    if (response.StatusCode == 0)
    {
        ExistingOrderIds.Add(response.Detail.ToString());
    }
    else
    {
        Log.Error("While building OrderId list. Error returned when listing memos from QuickBooks Sales Receipts");
        Log.Error(response.StatusCode + " " + response.StatusMessage + " " + response.Detail);
    }
}

这只返回一个IResponseList项,而response.detail.toString()则生成"System.__ComObject“。这个公司的档案里实际上有几百张销售收据。

问题

我在这里做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-11 18:10:36

好了,终于破解了。我的误解是你在IResponseList上迭代。实际上,单个IResponseList在ISalesReceiptRet对象列表中包含了我的所有备忘录。因此,需要在ISalesReceiptRetList上进行迭代。QuickBooks OSR示例在这一点上不太清楚!因此,工作代码如下:

代码语言:javascript
复制
IMsgSetRequest requestMsgSet = qbSessionManager.CreateMsgSetRequest("UK", 13, 0);

ISalesReceiptQuery salesReceiptQuery = requestMsgSet.AppendSalesReceiptQueryRq();

salesReceiptQuery.metaData.SetValue(ENmetaData.mdNoMetaData);
salesReceiptQuery.IncludeRetElementList.Add("Memo");

IMsgSetResponse responseMsgSet = qbSessionManager.DoRequests(requestMsgSet);

IResponse response = responseMsgSet.ResponseList.GetAt(0);

ISalesReceiptRetList salesReceiptRetList = (ISalesReceiptRetList)response.Detail;

for (int i = 0; i < salesReceiptRetList.Count; i++)
{
    if (salesReceiptRetList.GetAt(i).Memo != null)
    {
        string memo = salesReceiptRetList.GetAt(i).Memo.GetValue();

        if (memo != string.Empty)
        {
           ExistingOrderIds.Add(memo);
        } 
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36555111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档