0

在 qb 中进行购买时,您会针对所购买的商品输入账单。我的问题如下:当使用 qbfc 哪个组件是正确的组件时,我尝试了 ibillquery、itranscationquery 但似乎找不到正确的组件。

Dim MsgRq As IMsgSetRequest
        MsgRq = sessMgr.CreateMsgSetRequest("US", 4, 0)

    Dim bquery As IBillQuery
    bquery = MsgRq.AppendBillQueryRq
    bquery.ORBillQuery.RefNumberList.Add("")

    Dim MsgRs As IMsgSetResponse
    MsgRs = sessMgr.DoRequests(MsgRq)

    Dim resp As IResponse
    resp = MsgRs.ResponseList.GetAt(0) 

    Dim blist As IBillRetList
    blist = resp.Detail

    Dim x As Integer
    For x = 0 To blist.Count - 1
        Dim bret As IBillRet
        bret = blist.GetAt(x)
        Console.Write(bret.ORItemLineRetList.GetAt(0).ItemLineRet.Desc.GetValue)
    Next 

以上方法适用于检索实际账单信息机器人而不是基础股票。

4

1 回答 1

0

QuickBooks 中的许多采购交易都可以使用项目和/或费用。它可以是账单、项目收据、支票或信用卡。在查询这些事务时,需要检查是否有 ORItemLineRetList。如果 ORItemLineRetList 为 null,则该事务中没有项目。唯一只有项目的采购交易是采购订单。

ORItemLineRet 中的每个项目,该项目可以是 ItemLineRet 或 ItemGroupLineRet。对于 ItemLineRet,您可以访问有关项目的信息,例如它的名称/列表 ID、描述、数量和成本。

根据您的代码,我将通过 ORItemLineRetList 进行另一个循环。代码可能不是 100%,因为我不使用 VB


Dim x as Integer
For x = 0 to blist.Count -1
    Dim bret as IBillRet
    bret = blist.GetAt(x)
    If bret.ORItemLineRetList IsNot Null
        For y = 0 to bret.ORItemLineRetList.Count -1
            Dim bItemLine as IORItemLineRet
            bItemLine = bret.ORItemLineRetList.GetAt(y)
            If bItemLine.ItemLineRet IsNot Null
                Console.Write(bItemLine.ItemLineRet.ItemRef.FullName.GetValue)
            End If
        Next
     End If
Next
于 2014-01-21T05:41:46.543 回答