找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 6503|回复: 5

[其他] 关于库存API调用问题。

[复制链接]
发表于 2013-2-23 21:46:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
本人试着调用库存API完成增加采购入库单,但不知怎么样回事,在最后INVOKEAPI时,却一直提示:“对象引用未设置到对象的实例。”我检查了个参数,尤其是对象,他们都已经被实例化了。请各位高手帮忙看一下,这个项目耽误了很长时间了,老板催得很急。以下是项目的代码。生成API部分基本上完全仿照例程来做的。

以下是代码。

Private Sub Command3_Click()

'GrdDispLis是一个MSFLEXGRID,为一个数据列表,是采购入库单的数据来源。
  Dim U8EnvCtx As New U8EnvContext
  Dim U8ApiBroker As New U8ApiComBroker
  Dim cDlCode, sDate, cWhCode, cWhName, cInvCode, cMaker, cAuditor As String
  Dim nRdId, nRdAutoId As Long
  Dim DomHead, DomBody As New BusinessObject
  Dim domMsg As MSXML2.IXMLDOMDocument2
  Dim bSucess As Boolean
  Dim domPosition As Object
  bSucess = True
  Set domMsg = New MSXML2.DOMDocument
  Dim oConn As New ADODB.Connection
  InitRes
  Login
  GrdDispList.Row = GrdDispList.RowSel
  GrdDispList.Col = 2
  sDate = GrdDispList.Text
  GrdDispList.Col = 5
  cWhCode = GrdDispList.Text
  GrdDispList.Col = 21
  cMaker = GrdDispList.Text
  GrdDispList.Col = 22
  cMaker = GrdDispList.Text
  nAutoId = CalcRdAutoId()
  Set U8EnvCtx.U8Login = g_oLogin
  U8ApiBroker.Connect "U8API/PuStoreIn/Add", U8EnvCtx
  U8ApiBroker.AssignNormalValue "sVouchType", "01"
  Set DomHead = U8ApiBroker.GetBoParam("DomHead")
  Set DomBody = U8ApiBroker.GetBoParam("DomBody")
  DomHead.RowCount = 1
  cDlCode = GeneralRdCode()
  nRdId = CalcRdId()
  DomHead(0).SetValue "bOmFirst", "False"
  DomHead(0).SetValue "ccode", cDlCode
  DomHead(0).SetValue "ID", nRdId
  DomHead(0).SetValue "ddate", sDate
  DomHead(0).SetValue "iverifystate", 0
  DomHead(0).SetValue "cvouchtype", "01"
  DomHead(0).SetValue "iswfcontrolled", 0
  DomHead(0).SetValue "cvencode", "002"
  DomHead(0).SetValue "cvenabbname", "001"
  DomHead(0).SetValue "cbustype", "普通采购"
  DomHead(0).SetValue "cmaker", cMaker
  DomHead(0).SetValue "iexchrate", 0
  DomHead(0).SetValue "cexch_name", "人民币"
'  DomHead(0).SetValue "utfs", "0"
  DomHead(0).SetValue "bpufirst", False
  DomHead(0).SetValue "cWhCode", cWhCode
  DomHead(0).SetValue "brdflag", "0"
  DomHead(0).SetValue "csource", "库存"
  DomBody.RowCount = 1
  DomBody(0).SetValue "autoid", nAutoId
  DomBody(0).SetValue "id", nRdId
  DomBody(0).SetValue "cinvcode", cInvCode
  DomBody(0).SetValue "editprop", "A"
  DomBody(0).SetValue "autoid", nAutoId
  DomBody(0).SetValue "iQuantity", 1
  DomBody(0).SetValue "iMatSettleState", 0
  U8ApiBroker.AssignNormalValue "domPosition", domPosition
  U8ApiBroker.AssignNormalValue "cnnFrom", oConn
  U8ApiBroker.AssignNormalValue "domMsg", domMsg
  U8ApiBroker.AssignNormalValue "bCheck", False
  U8ApiBroker.AssignNormalValue "bBeforCheckStock", False
  U8ApiBroker.AssignNormalValue "bIsRedVouch", False
' bSucess = U8ApiBroker.InvokeApi()
  If U8ApiBroker.InvokeApi() = False Then
     MsgBox U8ApiBroker.GetLastError(), vbCritical
  Else
     errMsgRet = CStr(U8ApiBroker.GetResult("errMsg"))
     VouchIdRet = CStr(U8ApiBroker.GetResult("VouchId"))
  End If
  U8ApiBroker.Disconnect
  Set U8ApiBroker = Nothing
End Sub

 楼主| 发表于 2013-3-1 11:05:00 | 显示全部楼层
没有高人给指点一下吗?
回复 点赞 拍砖

使用道具 举报

发表于 2013-4-26 10:08:43 | 显示全部楼层
  MSXML2.IXMLDOMDocument2 domMsg = new MSXML2.IXMLDOMDocument2();
  我的实例化时说  接口无法实例化啊,这个MSXML2.IXMLDOMDocument2接口
需要自己类实现吗?
回复 点赞 拍砖

使用道具 举报

发表于 2013-4-26 21:26:23 | 显示全部楼层
没有仔细看Set domMsg = New MSXML2.DOMDocument
楼主现在搞好了没?楼主qq多少啊?
回复 点赞 拍砖

使用道具 举报

发表于 2014-4-29 10:08:14 | 显示全部楼层
zhaosanxing 发表于 2013-4-26 10:08
MSXML2.IXMLDOMDocument2 domMsg = new MSXML2.IXMLDOMDocument2();
  我的实例化时说  接口无法实例化 ...

同样的问题
回复 点赞 拍砖

使用道具 举报

发表于 2015-2-11 13:22:27 | 显示全部楼层
如果能用的话,我接着回复你
回复 点赞 拍砖

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-11-23 23:53 , Processed in 0.067603 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表