gteric 发表于 2015-9-20 08:20:55

用VB调用RFC,将数据写入SAP

  +++++++++++++++++++++++ 实例:调用上面定义的ZRFC_01 以表为参数传入RFC +++++++++++++++
  Private Sub CmdAdd_Click()
'添加记录
Dim logname As String, password As String
Dim xi
Dim func As Object
Dim TT As Object
     Set Functions = CreateObject("Sap.Functions.unicode")   ' 创建RFC的本地对象
    Set Connect = Functions.Connection               ' 设置连接
   
    Connect.ApplicationServer = "128.1.1.95"
    Connect.Client = "800"
    Connect.SystemNumber = "00"
    Connect.Language = "EN"
    Connect.User = "ZCONN"
    Connect.password = "****"
  
    If Not Connect.logon(0, True) Then            ' 软件登录SAP并判断
     MsgBox "登录SAP R/3失败,请重新登录!", vbOKOnly + vbExclamation, "系统提示"
      Command1.SetFocus
    Else ' 登录SAP成功
  
      
      Set func = Functions.Add("ZRFC_01")
      Set TT = func.tables("ZTEMPTABLE")
      func.Exports("ACTION") = "CREATE"
         With TT
            'Next we set fields to obtain
            'Refresh table
            TT.FreeTable
            'Then set values,类似与ADDNEW
         
            'xi是获取当前表的行数,以便定位记录行
            '此处在赋值时,用字段名称来表示列,也可以用数字来表示,比如TT(xi, 1) = "iii"
            '注意:行和列都是从1开始,不是从0开始计数
            TT.Rows.Add
            xi = TT.rowcount   
            TT(xi, "ZUSERID") = "iii"
            TT(xi, "ZPASSWD") = "你好北京"
         
            TT.Rows.Add
            xi = TT.rowcount
            TT(xi, "ZUSERID") = "ooo"
            TT(xi, "ZPASSWD") = "我好!"
         
            TT.Refresh
         
      End With
         If func.call = True Then
         
          x = func.imports("RETURN")
          y = func.imports("ERRNUM")
         
          Debug.Print "x:" & x
          Debug.Print "y:" & y
         Else
            MsgBox "call failed!"
      End If
     End If
    Connect.LogOff
End Sub
页: [1]
查看完整版本: 用VB调用RFC,将数据写入SAP