VB.NET连接SAP实际应用方法介绍
创始人
2024-06-19 21:40:18
0

大家可能对于VB.NET的开发能力非常感兴趣。因为它的应用能够帮助我们带来一个良好的功能强大的开发平台。VB.NET连接SAP中只是把读取出来的内容存放在数据库中,然后利用GridView显示出来。 当然可以直接存入DataTable或DataSet中直接显示出来。#t#

 

以下见代码示例:

 

 

  1. Imports System  
  2. Imports System.Collections.Generic  
  3. Imports System.ComponentModel  
  4. Imports System.Data  
  5. Imports System.Drawing  
  6. Imports System.Text  
  7. Imports System.Windows.Forms  
  8. Imports System.Data.OleDb  
  9. Imports System.Xml  
  10. Public Class SAPConn  
  11. Public oFunction As Object ' SAP Functions  
  12. Public oConnection As Object ' SAP oConnection  
  13. Dim cmd As OleDbCommand  
  14. Dim SqlAd As OleDbDataAdapter  
  15. Dim sql As String  
  16. '测试连接的代码  
  17. Private Sub BtnConnn_Click(ByVal sender As 
    System.Object, ByVal e As System.EventArgs) 
    Handles BtnConnn.Click  
  18. Try  
  19. oFunction = CreateObject("SAP.Functions.unicode")  
  20. oConnection = oFunction.Connection  
  21. oConnection.User = "CRMDEV69" 
  22. oConnection.Password = "654321" 
  23. oConnection.System = "CD2" 
  24. oConnection.ApplicationServer = "172.18.95.173" 
  25. oConnection.SystemNumber = 7 
  26. oConnection.Client = "164" 
  27. oConnection.Language = "ZH" 
  28. If oConnection.Logon(0, True) = True Then  
  29. MsgBox("连接成功!")  
  30. Else  
  31. MsgBox("连接失败!")  
  32. End If  
  33. Catch ex As Exception  
  34. MsgBox(ex.ToString(), MsgBoxStyle.Information, "提示")  
  35. Return  
  36. End Try  
  37. End Sub  
  38. Private Sub Button1_Click(ByVal sender As 
    System.Object, ByVal e As System.EventArgs) 
    Handles Button1.Click  
  39. Dim GetCustomers As Object  
  40. Dim Customers As Object  
  41. Dim i As Integer  
  42. Dim sqlstr As String = "" 
  43. ' 通过RFC接口远程运行SAP内部函数ZCSMS_GET_HRINFO  
  44. ' 赋要调用的SAP内建函数名  
  45. Try  
  46. GetCustomers = oFunction.Add("ZCSMS_GET_HRINFO")  
  47. '设置输入参数并赋值  
  48. GetCustomers.Exports("BEGDAFROM") = ""  
  49. GetCustomers.Exports("BEGDATO") = ""  
  50. GetCustomers.Exports("MILL") = "7960"  
  51. GetCustomers.Exports("NUMBERFROM") = "0061500001"  
  52. GetCustomers.Exports("NUMBERTO") = "0061500200"  
  53. Customers = GetCustomers.Tables("THR")  
  54. If GetCustomers.Call Then  
  55. '循环插入到数据库表中  
  56. For i = 1 To Customers.RowCount  
  57. sqlstr = "Insert into ghy_employee(MILL, 
    PERNR, NAME1, STEXT) values ('"
     & Customers
    (i, "MILL") & "','" & Customers(i, "PERNR") 
    & "','" & Customers(i, "NAME1") & "','" 
    & Customers(i, "STEXT") & "' )"  
  58. Config.ExecAccess(sqlstr)  
  59. Next i  
  60. MsgBox("获取数据成功")  
  61. Else  
  62. MsgBox(" 搜索出错! 出错信息: " + 
    GetCustomers.exception)  
  63. End If  
  64. Catch ex As Exception  
  65. MsgBox(ex.ToString)  
  66. Return  
  67. End Try  
  68. End Sub  
  69. '通过GridView显示数据  
  70. Private Sub Button2_Click(ByVal sender As System.
    Object, ByVal e As System.EventArgs) Handles 
    Button2.Click  
  71. sql = "select * from ghy_employee " 
  72. SqlAd = New OleDbDataAdapter(sql, oConn)  
  73. DS.Clear()  
  74. If DS.Tables.Contains("ghy_employee") Then  
  75. DS.Tables.Remove("ghy_employee")  
  76. End If  
  77. SqlAd.Fill(DS, "ghy_employee")  
  78. DvInvoice.DataSource = DS.Tables("ghy_employee").
    DefaultView  
  79. DvInvoice.Refresh()  
  80. DvInvoice.ClearSelection()  
  81. DvInvoice.Columns("MILL").HeaderText = "工厂" 
  82. DvInvoice.Columns("PERNR").HeaderText = "员工编号" 
  83. DvInvoice.Columns("NAME1").HeaderText = "员工姓名" 
  84. DvInvoice.Columns("STEXT").HeaderText = "员工部门" 
  85. End Sub  
  86. End Class 

 

 

以上两种写法都是利用创建组件OCX的方式进行, 通过调用类的方法进行也可以实现。 缺点是中文无法正常显示。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...