Vb.net 使用QBFC在QuickBooks中添加组项

Vb.net 使用QBFC在QuickBooks中添加组项,vb.net,qbfc,Vb.net,Qbfc,这里需要一点帮助 我只是想用QBFC12添加一个带有项目列表的组项目,但是我遇到了一个问题。我曾经尝试过用Inventory Assembly创建类似的方法,效果很好。但是这个让我感觉很糟糕。处理请求时,它返回错误,告知请求中缺少字段。希望有人能帮我解决这个问题 谢谢 下面是我的代码: Dim msgSetRequest As IMsgSetRequest Dim QBSM As New QBSessionManager Try With QBSM .OpenCo

这里需要一点帮助

我只是想用QBFC12添加一个带有项目列表的组项目,但是我遇到了一个问题。我曾经尝试过用Inventory Assembly创建类似的方法,效果很好。但是这个让我感觉很糟糕。处理请求时,它返回错误,告知请求中缺少字段。希望有人能帮我解决这个问题

谢谢

下面是我的代码:

Dim msgSetRequest As IMsgSetRequest

Dim QBSM As New QBSessionManager

Try

    With QBSM

        .OpenConnection("", "QB Test")

        .BeginSession("", ENOpenMode.omDontCare)

    End With

Catch ex As Exception

    Throw New Exception(ex.Message)

    Return False

End Try

msgSetRequest = QBSM.CreateMsgSetRequest("US", 8, 0)
msgSetRequest.Attributes.OnError = ENRqOnError.roeStop

msgSetRequest.ClearRequests()

Dim gAdd As IItemGroupAdd = msgSetRequest.AppendItemGroupAddRq
gAdd.IsActive.SetValue(True)

gAdd.Name.SetValue("Group Name")

gAdd.ItemDesc.SetValue("Group Description")



For Each gListItem As clsInventoryGroupItem In gItem.InventoryGroupItemList

       Dim gItemAdd As IItemGroupLine = msgSetRequest.AppendItemGroupAddRq.ItemGroupLineList.Append

       gItemAdd.ItemRef.FullName.SetValue(gListItem.ItemRef)

       gItemAdd.Quantity.SetValue(gListItem.Quantity)

Next



Dim response As IMsgSetResponse = QBSM.DoRequests(msgSetRequest)

If response.ResponseList.GetAt(0).StatusCode = 0 Then

     MessageBox.Show("Success")

else

     MessageBox.Show("An Error occurred while inserting Group")

endif

我认为问题在于你是如何添加你的组线的,但还没有测试它。您应该从IItemGroupAdd对象gAdd调用它,而不是从msgSetRequest中使用ItemGroupLineList.Append。这是我想到的,但没有测试


Dim msgSetRequest As IMsgSetRequest

Dim QBSM As New QBSessionManager

Try

    With QBSM

        .OpenConnection("", "QB Test")

        .BeginSession("", ENOpenMode.omDontCare)

    End With

Catch ex As Exception

    Throw New Exception(ex.Message)

    Return False

End Try

msgSetRequest = QBSM.CreateMsgSetRequest("US", 8, 0)
msgSetRequest.Attributes.OnError = ENRqOnError.roeStop

msgSetRequest.ClearRequests()

Dim gAdd As IItemGroupAdd = msgSetRequest.AppendItemGroupAddRq
gAdd.IsActive.SetValue(True)

gAdd.Name.SetValue("Group Name")

gAdd.ItemDesc.SetValue("Group Description")



For Each gListItem As clsInventoryGroupItem In gItem.InventoryGroupItemList

       Dim gItemAdd As IItemGroupLine = gAdd.ItemGroupLineList.Append

       gItemAdd.ItemRef.FullName.SetValue(gListItem.ItemRef)

       gItemAdd.Quantity.SetValue(gListItem.Quantity)

Next



Dim response As IMsgSetResponse = QBSM.DoRequests(msgSetRequest)

If response.ResponseList.GetAt(0).StatusCode = 0 Then

     MessageBox.Show("Success")

else

     MessageBox.Show("An Error occurred while inserting Group")

endif