0

这里需要一点帮助。

我只想使用 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
4

1 回答 1

0

我认为问题在于您如何添加组行,但尚未对其进行测试。您应该从您的 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
于 2014-01-10T17:40:29.860 回答